diff options
Diffstat (limited to 'sysdeps/powerpc/bits')
-rw-r--r-- | sysdeps/powerpc/bits/setjmp.h | 19 | ||||
-rw-r--r-- | sysdeps/powerpc/bits/wordsize.h | 7 |
2 files changed, 22 insertions, 4 deletions
diff --git a/sysdeps/powerpc/bits/setjmp.h b/sysdeps/powerpc/bits/setjmp.h index b53cdea..3a0a0a0 100644 --- a/sysdeps/powerpc/bits/setjmp.h +++ b/sysdeps/powerpc/bits/setjmp.h @@ -31,14 +31,25 @@ # define JB_GPR1 0 /* Also known as the stack pointer */ # define JB_GPR2 1 # 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_CR 21 /* Condition code registers. */ -# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */ -# define JB_SIZE (58*4) +# if __WORDSIZE == 64 +# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18*2 words total. */ +# define JB_CR 21 /* Condition code registers. */ +# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */ +# define JB_SIZE (40*8) +# else +# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total. */ +# define JB_CR 21 /* Condition code registers. */ +# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */ +# define JB_SIZE (58*4) +# endif #endif #ifndef _ASM +# if __WORDSIZE == 64 +typedef long int __jmp_buf[40]; +# else typedef long int __jmp_buf[58]; +# endif #endif /* Test if longjmp to JMPBUF would unwind the frame diff --git a/sysdeps/powerpc/bits/wordsize.h b/sysdeps/powerpc/bits/wordsize.h new file mode 100644 index 0000000..d856583 --- /dev/null +++ b/sysdeps/powerpc/bits/wordsize.h @@ -0,0 +1,7 @@ +/* Determine the wordsize from the preprocessor defines. */ + +#if defined __powerpc64__ +# define __WORDSIZE 64 +#else +# define __WORDSIZE 32 +#endif |