about summary refs log tree commit diff
path: root/sysdeps/x86_64
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
parent3a097cc7a18309c864186c1b864b90889d2a45e9 (diff)
downloadglibc-8422c9a560e6e3c854739c8a13ecb1c6714f930f.tar.gz
glibc-8422c9a560e6e3c854739c8a13ecb1c6714f930f.tar.xz
glibc-8422c9a560e6e3c854739c8a13ecb1c6714f930f.zip
Add systemtap static probe points in setjmp/longjmp on x86.
Diffstat (limited to 'sysdeps/x86_64')
-rw-r--r--sysdeps/x86_64/__longjmp.S4
-rw-r--r--sysdeps/x86_64/setjmp.S2
2 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
index c0c15dc810..ef1147abc1 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)
diff --git a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S
index 5639292da4..82ac73151c 100644
--- a/sysdeps/x86_64/setjmp.S
+++ b/sysdeps/x86_64/setjmp.S
@@ -19,6 +19,7 @@
 #include <sysdep.h>
 #include <jmpbuf-offsets.h>
 #include <asm-syntax.h>
+#include <stap-probe.h>
 
 ENTRY (__sigsetjmp)
 	/* Save registers.  */
@@ -47,6 +48,7 @@ ENTRY (__sigsetjmp)
 #endif
 	movq %rdx, (JB_RSP*8)(%rdi)
 	mov (%rsp), %RAX_LP	/* Save PC we are returning to now.  */
+	LIBC_PROBE (setjmp, 3, LP_SIZE@%RDI_LP, -4@%esi, LP_SIZE@%RAX_LP)
 #ifdef PTR_MANGLE
 	PTR_MANGLE (%RAX_LP)
 #endif