summary refs log tree commit diff
path: root/nptl/sysdeps/unix
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/unix')
-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))