From cdb47f096a5c5973f491ecbf12d26230e21221dc Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 9 Aug 1998 22:34:19 +0000 Subject: Update. 1998-08-09 22:32 Ulrich Drepper * sysdeps/powerpc/ffs.c: Fix typo. Add support for ffsl. Patch by Matt McLean . --- sysdeps/powerpc/__longjmp.S | 2 ++ sysdeps/powerpc/bits/setjmp.h | 6 +++--- sysdeps/powerpc/ffs.c | 12 +++++++++++- sysdeps/powerpc/setjmp.S | 2 ++ 4 files changed, 18 insertions(+), 4 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/powerpc/__longjmp.S b/sysdeps/powerpc/__longjmp.S index 5d6422c..875bab6 100644 --- a/sysdeps/powerpc/__longjmp.S +++ b/sysdeps/powerpc/__longjmp.S @@ -45,12 +45,14 @@ ENTRY (__longjmp) lfd %f21,((JB_FPRS+7*2)*4)(%r3) lwz %r22,((JB_GPRS+8)*4)(%r3) lfd %f22,((JB_FPRS+8*2)*4)(%r3) + lwz %r0,(JB_CR*4)(%r3) lwz %r23,((JB_GPRS+9)*4)(%r3) lfd %f23,((JB_FPRS+9*2)*4)(%r3) lwz %r24,((JB_GPRS+10)*4)(%r3) lfd %f24,((JB_FPRS+10*2)*4)(%r3) lwz %r25,((JB_GPRS+11)*4)(%r3) lfd %f25,((JB_FPRS+11*2)*4)(%r3) + mtcrf 0xFF,%r0 lwz %r26,((JB_GPRS+12)*4)(%r3) lfd %f26,((JB_FPRS+12*2)*4)(%r3) lwz %r27,((JB_GPRS+13)*4)(%r3) diff --git a/sysdeps/powerpc/bits/setjmp.h b/sysdeps/powerpc/bits/setjmp.h index 100f1d1..040a244 100644 --- a/sysdeps/powerpc/bits/setjmp.h +++ b/sysdeps/powerpc/bits/setjmp.h @@ -28,11 +28,11 @@ either representation. */ #if defined __USE_MISC || defined _ASM -# define JB_GPR1 0 /* also known as the stack pointer */ +# define JB_GPR1 0 /* Also known as the stack pointer */ # define JB_GPR2 1 -# define JB_LR 2 +# define JB_LR 2 /* The address we will return to */ # define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */ -# define JB_UNUSED 21 /* it's sometimes faster to store doubles word-aligned */ +# define JB_CR 21 /* Condition code registers. */ # define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */ #endif diff --git a/sysdeps/powerpc/ffs.c b/sysdeps/powerpc/ffs.c index fb1b2f4..01d5f74 100644 --- a/sysdeps/powerpc/ffs.c +++ b/sysdeps/powerpc/ffs.c @@ -18,8 +18,13 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#define ffsl __something_else #include +#undef ffs + +#ifdef __GNUC__ + int __ffs (int x) { @@ -29,4 +34,9 @@ __ffs (int x) return 32 - cnt; } weak_alias (__ffs, ffs) -weak_alais (__ffs, ffsl) +#undef ffsl +weak_alias (__ffs, ffsl) + +#else +#include +#endif diff --git a/sysdeps/powerpc/setjmp.S b/sysdeps/powerpc/setjmp.S index dc9d923..32b1b94 100644 --- a/sysdeps/powerpc/setjmp.S +++ b/sysdeps/powerpc/setjmp.S @@ -31,8 +31,10 @@ ENTRY (__sigsetjmp) stw %r0,(JB_LR*4)(3) stw %r15,((JB_GPRS+1)*4)(3) stfd %f15,((JB_FPRS+1*2)*4)(3) + mfcr %r0 stw %r16,((JB_GPRS+2)*4)(3) stfd %f16,((JB_FPRS+2*2)*4)(3) + stw %r0,(JB_CR*4)(3) stw %r17,((JB_GPRS+3)*4)(3) stfd %f17,((JB_FPRS+3*2)*4)(3) stw %r18,((JB_GPRS+4)*4)(3) -- cgit v1.1