Mercurial > sdl-ios-xcode
changeset 3866:afbcf97a5dd9 SDL-1.2
Save/restore fpu registers if needed
author | Patrice Mandin <patmandin@gmail.com> |
---|---|
date | Sat, 16 Sep 2006 11:50:34 +0000 |
parents | e958a003b69b |
children | 4dae257a9cbf |
files | src/audio/mint/SDL_mintaudio_it.S |
diffstat | 1 files changed, 51 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/audio/mint/SDL_mintaudio_it.S Sat Sep 16 10:38:09 2006 +0000 +++ b/src/audio/mint/SDL_mintaudio_it.S Sat Sep 16 11:50:34 2006 +0000 @@ -40,6 +40,7 @@ .globl _SDL_MintAudio_numbuf .globl _SDL_MintAudio_audiosize .globl _SDL_MintAudio_clocktics + .globl _SDL_MintAudio_hasfpu .globl _SDL_MintAudio_stfa @@ -77,7 +78,7 @@ /* Check if we are not already running */ tstw _SDL_MintAudio_mutex - bnes SDL_MintAudio_XbiosEnd + bne SDL_MintAudio_XbiosEnd notw _SDL_MintAudio_mutex /* Swap buffers */ @@ -85,9 +86,25 @@ moveml d0-d7/a0-a6,sp@- + /* Save FPU if needed */ + tstw _SDL_MintAudio_hasfpu + beqs SDL_MintAudio_Xbios_nofpu1 + fsave sp@- + fmoveml fpcr/fpsr/fpiar,sp@- + fmovemx fp0-fp7,sp@- +SDL_MintAudio_Xbios_nofpu1: + /* Callback */ jsr _SDL_MintAudio_Callback + /* Restore FPU if needed */ + tstw _SDL_MintAudio_hasfpu + beqs SDL_MintAudio_Xbios_nofpu2 + fmovemx sp@+,fp0-fp7 + fmoveml sp@+,fpcr/fpsr/fpiar + frestore sp@+ +SDL_MintAudio_Xbios_nofpu2: + /* Reserve space for registers */ subl #savamt,savptr @@ -131,7 +148,7 @@ /* Check if we are not already running */ tstw _SDL_MintAudio_mutex - bnes SDL_MintAudio_Dma8End + bne SDL_MintAudio_Dma8End notw _SDL_MintAudio_mutex /* Swap buffers */ @@ -139,9 +156,25 @@ moveml d0-d1/a0-a1,sp@- + /* Save FPU if needed */ + tstw _SDL_MintAudio_hasfpu + beqs SDL_MintAudio_Dma8_nofpu1 + fsave sp@- + fmoveml fpcr/fpsr/fpiar,sp@- + fmovemx fp0-fp7,sp@- +SDL_MintAudio_Dma8_nofpu1: + /* Callback */ jsr _SDL_MintAudio_Callback + /* Restore FPU if needed */ + tstw _SDL_MintAudio_hasfpu + beqs SDL_MintAudio_Dma8_nofpu2 + fmovemx sp@+,fp0-fp7 + fmoveml sp@+,fpcr/fpsr/fpiar + frestore sp@+ +SDL_MintAudio_Dma8_nofpu2: + /* Set new buffer */ moveq #0,d0 @@ -195,9 +228,25 @@ moveml d0-d7/a0-a6,sp@- + /* Save FPU if needed */ + tstw _SDL_MintAudio_hasfpu + beqs SDL_MintAudio_Stfa_nofpu1 + fsave sp@- + fmoveml fpcr/fpsr/fpiar,sp@- + fmovemx fp0-fp7,sp@- +SDL_MintAudio_Stfa_nofpu1: + /* Callback */ jsr _SDL_MintAudio_Callback + /* Restore FPU if needed */ + tstw _SDL_MintAudio_hasfpu + beqs SDL_MintAudio_Stfa_nofpu2 + fmovemx sp@+,fp0-fp7 + fmoveml sp@+,fpcr/fpsr/fpiar + frestore sp@+ +SDL_MintAudio_Stfa_nofpu2: + /* Set new buffer */ moveq #0,d0