diff options
Diffstat (limited to 'newlib/libc/machine/powerpc/setjmp.S')
-rw-r--r-- | newlib/libc/machine/powerpc/setjmp.S | 74 |
1 files changed, 1 insertions, 73 deletions
diff --git a/newlib/libc/machine/powerpc/setjmp.S b/newlib/libc/machine/powerpc/setjmp.S index ec3a443d7..c1376912f 100644 --- a/newlib/libc/machine/powerpc/setjmp.S +++ b/newlib/libc/machine/powerpc/setjmp.S @@ -1,17 +1,11 @@ /* This is a simple version of setjmp and longjmp for the PowerPC. - Ian Lance Taylor, Cygnus Support, 9 Feb 1994. - Modified by Jeff Johnston, Red Hat Inc. 2 Oct 2001. */ + Ian Lance Taylor, Cygnus Support, 9 Feb 1994. */ #include "ppc-asm.h" FUNC_START(setjmp) -#ifdef __ALTIVEC__ - addi 3,3,15 # align Altivec to 16 byte boundary - rlwinm 3,3,0,0,27 -#else addi 3,3,7 # align to 8 byte boundary rlwinm 3,3,0,0,28 -#endif stw 1,0(3) # offset 0 stwu 2,4(3) # offset 4 stwu 13,4(3) # offset 8 @@ -62,50 +56,14 @@ FUNC_START(setjmp) /* This requires a total of 21 * 4 + 18 * 8 + 4 + 4 + 4 bytes == 60 * 4 bytes == 240 bytes. */ -#ifdef __ALTIVEC__ - /* save Altivec vrsave and vr20-vr31 registers */ - mfspr 4,256 # vrsave register - stwu 4,16(3) # offset 248 - addi 3,3,8 - stvx 20,0,3 # offset 256 - addi 3,3,16 - stvx 21,0,3 # offset 272 - addi 3,3,16 - stvx 22,0,3 # offset 288 - addi 3,3,16 - stvx 23,0,3 # offset 304 - addi 3,3,16 - stvx 24,0,3 # offset 320 - addi 3,3,16 - stvx 25,0,3 # offset 336 - addi 3,3,16 - stvx 26,0,3 # offset 352 - addi 3,3,16 - stvx 27,0,3 # offset 368 - addi 3,3,16 - stvx 28,0,3 # offset 384 - addi 3,3,16 - stvx 29,0,3 # offset 400 - addi 3,3,16 - stvx 30,0,3 # offset 416 - addi 3,3,16 - stvx 31,0,3 # offset 432 - - /* This requires a total of 240 + 8 + 8 + 12 * 16 == 448 bytes. */ -#endif li 3,0 blr FUNC_END(setjmp) FUNC_START(longjmp) -#ifdef __ALTIVEC__ - addi 3,3,15 # align Altivec to 16 byte boundary - rlwinm 3,3,0,0,27 -#else addi 3,3,7 # align to 8 byte boundary rlwinm 3,3,0,0,28 -#endif lwz 1,0(3) # offset 0 lwzu 2,4(3) # offset 4 lwzu 13,4(3) # offset 8 @@ -153,36 +111,6 @@ FUNC_START(longjmp) lfdu 31,8(3) # offset 232 #endif -#ifdef __ALTIVEC__ - /* restore Altivec vrsave and v20-v31 registers */ - lwzu 5,16(3) # offset 248 - mtspr 256,5 # vrsave - addi 3,3,8 - lvx 20,0,3 # offset 256 - addi 3,3,16 - lvx 21,0,3 # offset 272 - addi 3,3,16 - lvx 22,0,3 # offset 288 - addi 3,3,16 - lvx 23,0,3 # offset 304 - addi 3,3,16 - lvx 24,0,3 # offset 320 - addi 3,3,16 - lvx 25,0,3 # offset 336 - addi 3,3,16 - lvx 26,0,3 # offset 352 - addi 3,3,16 - lvx 27,0,3 # offset 368 - addi 3,3,16 - lvx 28,0,3 # offset 384 - addi 3,3,16 - lvx 29,0,3 # offset 400 - addi 3,3,16 - lvx 30,0,3 # offset 416 - addi 3,3,16 - lvx 31,0,3 # offset 432 -#endif - mr. 3,4 bclr+ 4,2 li 3,1 |