about summary refs log tree commit diff
path: root/sysdeps/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/alpha')
-rw-r--r--sysdeps/alpha/bits/setjmp.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/alpha/bits/setjmp.h b/sysdeps/alpha/bits/setjmp.h
index de37019218..af0b5ae577 100644
--- a/sysdeps/alpha/bits/setjmp.h
+++ b/sysdeps/alpha/bits/setjmp.h
@@ -74,4 +74,10 @@
 
 #ifndef __ASSEMBLY__
 typedef long int __jmp_buf[17];
+
+/* Test if longjmp to JMPBUF would unwind the frame containing a local
+   variable at ADDRESS.  */
+#define _JMPBUF_UNWINDS(_jmpbuf, _address)				\
+  ({ register void *_sp __asm__("$30"); void *_addr = (_address);	\
+     _sp <= _addr && _addr < (void *)((_jmpbuf)[JB_SP]); })
 #endif