aboutsummaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h b/nptl/sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
index 4a526b0f72..90b5764e81 100644
--- a/nptl/sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
+++ b/nptl/sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
@@ -18,12 +18,16 @@
02111-1307 USA. */
#include <setjmp.h>
+#include <stdint.h>
#include <unwind.h>
-#define _JMPBUF_CFA_UNWINDS(_jmpbuf, _context) \
- ({ void *_cfa = (void *) _Unwind_GetCFA (_context); \
- (_cfa < (void *)(((long *)(_jmpbuf))[0]) \
- || (_cfa == (void *)(((long *)(_jmpbuf))[0]) \
- && (void *) _Unwind_GetBSP (_context) \
- >= (void *)(((long *)(_jmpbuf))[17]))); \
+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
+ ({ uintptr_t _cfa = (uintptr_t) _Unwind_GetCFA (_context) - (_adj); \
+ (_cfa < (uintptr_t)(((long *)(_jmpbuf))[0]) - (_adj) \
+ || (_cfa == (uintptr_t)(((long *)(_jmpbuf))[0]) - (_adj) \
+ && (uintptr_t) _Unwind_GetBSP (_context) - (_adj) \
+ >= (uintptr_t)(((long *)(_jmpbuf))[17]) - (_adj))); \
})
+
+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
+ ((uintptr_t)(_address) - (_adj) < (uintptr_t)(((long *)_jmpbuf)[0]) - (_adj))