diff options
Diffstat (limited to 'sysdeps/arm/bits')
-rw-r--r-- | sysdeps/arm/bits/setjmp.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sysdeps/arm/bits/setjmp.h b/sysdeps/arm/bits/setjmp.h index ea25a9b..6d87379 100644 --- a/sysdeps/arm/bits/setjmp.h +++ b/sysdeps/arm/bits/setjmp.h @@ -23,10 +23,14 @@ #endif #ifndef _ASM -/* Jump buffer contains v1-v6, sl, fp, sp, pc and (f4-f7) if we do FP. */ -# if __ARM_USES_FP -typedef int __jmp_buf[22]; -# else +/* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not + saved. */ typedef int __jmp_buf[10]; -# endif #endif + +#define __JMP_BUF_SP 8 + +/* Test if longjmp to JMPBUF would unwind the frame + containing a local variable at ADDRESS. */ +#define _JMPBUF_UNWINDS(jmpbuf, address) \ + ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP])) |