about summary refs log tree commit diff
path: root/ports/sysdeps/aarch64/jmpbuf-offsets.h
diff options
context:
space:
mode:
authorVenkataramanan Kumar <venkataramanan.kumar@linaro.org>2014-01-01 17:47:14 +0000
committerMarcus Shawcroft <marcus.shawcroft@linaro.org>2014-01-01 17:58:46 +0000
commit9188b6818a3d1a6e6d89bf10fa4aea27a591494c (patch)
treea39527a08f172d51a8e69fce1b969b0dcf5589a4 /ports/sysdeps/aarch64/jmpbuf-offsets.h
parentb06ece6aec66e5ea973bc3c7f835ff3258dd4bb5 (diff)
downloadglibc-9188b6818a3d1a6e6d89bf10fa4aea27a591494c.tar.gz
glibc-9188b6818a3d1a6e6d89bf10fa4aea27a591494c.tar.xz
glibc-9188b6818a3d1a6e6d89bf10fa4aea27a591494c.zip
[AArch64] Pointer mangling support for AArch64.
Diffstat (limited to 'ports/sysdeps/aarch64/jmpbuf-offsets.h')
-rw-r--r--ports/sysdeps/aarch64/jmpbuf-offsets.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/ports/sysdeps/aarch64/jmpbuf-offsets.h b/ports/sysdeps/aarch64/jmpbuf-offsets.h
index 84c2cccaf4..bcf2afa555 100644
--- a/ports/sysdeps/aarch64/jmpbuf-offsets.h
+++ b/ports/sysdeps/aarch64/jmpbuf-offsets.h
@@ -39,6 +39,22 @@
 #define JB_D14		 20
 #define JB_D15		 21
 
+#ifndef  __ASSEMBLER__
+#include <setjmp.h>
+#include <stdint.h>
+#include <sysdep.h>
+
+static inline uintptr_t __attribute__ ((unused))
+_jmpbuf_sp (__jmp_buf jmpbuf)
+{
+  uintptr_t sp = jmpbuf[JB_SP];
+#ifdef PTR_DEMANGLE
+  PTR_DEMANGLE (sp);
+#endif
+  return sp;
+}
+#endif
+
 /* Helper for generic ____longjmp_chk(). */
 #define JB_FRAME_ADDRESS(buf) \
-  ((void *) (buf[JB_SP]))
+  ((void *) _jmpbuf_sp (buf))