Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/powerpc/setjmp.S')
-rw-r--r--newlib/libc/machine/powerpc/setjmp.S74
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