aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/__longjmp.S
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2012-05-25 13:31:57 -0700
committerRoland McGrath <roland@hack.frob.com>2012-05-25 13:41:03 -0700
commit8422c9a560e6e3c854739c8a13ecb1c6714f930f (patch)
tree145ab8a248defdcdc064755032eecb0eb69a4e97 /sysdeps/x86_64/__longjmp.S
parent3a097cc7a18309c864186c1b864b90889d2a45e9 (diff)
downloadglibc-8422c9a560e6e3c854739c8a13ecb1c6714f930f.zip
glibc-8422c9a560e6e3c854739c8a13ecb1c6714f930f.tar.gz
glibc-8422c9a560e6e3c854739c8a13ecb1c6714f930f.tar.bz2
Add systemtap static probe points in setjmp/longjmp on x86.
Diffstat (limited to 'sysdeps/x86_64/__longjmp.S')
-rw-r--r--sysdeps/x86_64/__longjmp.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
index c0c15dc..ef1147a 100644
--- a/sysdeps/x86_64/__longjmp.S
+++ b/sysdeps/x86_64/__longjmp.S
@@ -18,6 +18,7 @@
#include <sysdep.h>
#include <jmpbuf-offsets.h>
#include <asm-syntax.h>
+#include <stap-probe.h>
/* Jump to the position specified by ENV, causing the
setjmp call there to return VAL, or 1 if VAL is 0.
@@ -41,6 +42,7 @@ ENTRY(__longjmp)
orq %rax, %r9
# endif
#endif
+ LIBC_PROBE (longjmp, 3, LP_SIZE@%RDI_LP, -4@%esi, LP_SIZE@%RDX_LP)
/* We add unwind information for the target here. */
cfi_def_cfa(%rdi, 0)
cfi_register(%rsp,%r8)
@@ -60,5 +62,7 @@ ENTRY(__longjmp)
mov %esi, %eax
mov %R8_LP,%RSP_LP
movq %r9,%rbp
+ LIBC_PROBE (longjmp_target, 3,
+ LP_SIZE@%RDI_LP, -4@%eax, LP_SIZE@%RDX_LP)
jmpq *%rdx
END (__longjmp)