summary refs log tree commit diff
path: root/sysdeps/arm/bits/setjmp.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/arm/bits/setjmp.h')
-rw-r--r--sysdeps/arm/bits/setjmp.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/sysdeps/arm/bits/setjmp.h b/sysdeps/arm/bits/setjmp.h
index ea25a9ba87..6d8737970b 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]))