Also save/restore fpu register in vbl interrupt
--HG-- branch : SDL-1.2 extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402198
This commit is contained in:
parent
b894bd1a3c
commit
0a1cd99daf
2 changed files with 29 additions and 0 deletions
|
@ -48,6 +48,9 @@
|
|||
|
||||
#include "SDL_vbltimer_s.h"
|
||||
|
||||
/* from audio/mint */
|
||||
void SDL_MintAudio_CheckFpu(void);
|
||||
|
||||
/* The first ticks value of the application */
|
||||
static Uint32 start;
|
||||
static SDL_bool supervisor;
|
||||
|
@ -119,6 +122,8 @@ int SDL_SYS_TimerInit(void)
|
|||
|
||||
supervisor=SDL_FALSE;
|
||||
|
||||
SDL_MintAudio_CheckFpu();
|
||||
|
||||
/* Install RunTimer in vbl vector */
|
||||
oldpile=(void *)Super(0);
|
||||
timer_installed = !SDL_AtariVblInstall(RunTimer);
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
.globl _SDL_AtariVblInstall
|
||||
.globl _SDL_AtariVblUninstall
|
||||
|
||||
.globl _SDL_MintAudio_hasfpu
|
||||
|
||||
/*--- Vector installer ---*/
|
||||
|
||||
_SDL_AtariVblInstall:
|
||||
|
@ -113,8 +115,30 @@ _my_vbl:
|
|||
notw vbl_mutex
|
||||
|
||||
moveml d0-d7/a0-a6,sp@-
|
||||
|
||||
/* Save FPU if needed */
|
||||
tstw _SDL_MintAudio_hasfpu
|
||||
beqs SDL_AtariVbl_nofpu1
|
||||
.chip 68060
|
||||
fsave sp@-
|
||||
fmoveml fpcr/fpsr/fpiar,sp@-
|
||||
fmovemx fp0-fp7,sp@-
|
||||
.chip 68000
|
||||
SDL_AtariVbl_nofpu1:
|
||||
|
||||
movel my_vector,a0
|
||||
jsr a0@
|
||||
|
||||
/* Restore FPU if needed */
|
||||
tstw _SDL_MintAudio_hasfpu
|
||||
beqs SDL_AtariVbl_Xbios_nofpu2
|
||||
.chip 68060
|
||||
fmovemx sp@+,fp0-fp7
|
||||
fmoveml sp@+,fpcr/fpsr/fpiar
|
||||
frestore sp@+
|
||||
.chip 68000
|
||||
SDL_AtariVbl_Xbios_nofpu2:
|
||||
|
||||
moveml sp@+,d0-d7/a0-a6
|
||||
|
||||
clrw vbl_mutex
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue