diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-01-29 21:02:08 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-01-29 21:02:08 +0000 |
commit | 2607bee41906da4f47d98a92749c11533396838c (patch) | |
tree | 0ac6b10026422c6863e63d843305c2ac2f3030f8 /libc/sysdeps/linux/arm/bits/setjmp.h | |
parent | ceb83067f2248eb6f9517440c127250c98bbd8f3 (diff) |
Patch by Joseph S. Myers to add support for ARM EABI
Diffstat (limited to 'libc/sysdeps/linux/arm/bits/setjmp.h')
-rw-r--r-- | libc/sysdeps/linux/arm/bits/setjmp.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libc/sysdeps/linux/arm/bits/setjmp.h b/libc/sysdeps/linux/arm/bits/setjmp.h index ad42f96cd..745cdb8f7 100644 --- a/libc/sysdeps/linux/arm/bits/setjmp.h +++ b/libc/sysdeps/linux/arm/bits/setjmp.h @@ -27,14 +27,22 @@ #ifndef _ASM /* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not saved. */ -#ifdef __MAVERICK__ +#ifdef __ARM_EABI__ +/* The exact set of registers saved may depend on the particular core + in use, as some coprocessor registers may need to be saved. The C + Library ABI requires that the buffer be 8-byte aligned, and + recommends that the buffer contain 64 words. The first 28 words + are occupied by v1-v6, sl, fp, sp, pc, d8-d15, and fpscr. (Note + that d8-15 require 17 words, due to the use of fstmx.) */ +typedef int __jmp_buf[64] __attribute__((aligned (8))); +#elif defined __MAVERICK__ typedef int __jmp_buf[34]; #else typedef int __jmp_buf[22]; #endif #endif -#define __JMP_BUF_SP 20 +#define __JMP_BUF_SP 8 /* Test if longjmp to JMPBUF would unwind the frame containing a local variable at ADDRESS. */ |