aarch64: Add setjmp and longjmp SystemTap probes

Add setjmp, longjmp and longjmp_target SystemTap probes.

ChangeLog:

2014-04-22  Will Newton  <will.newton@linaro.org>
	    Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>

	* sysdeps/aarch64/__longjmp.S: Include stap-probe.h.
	(__longjmp): Add longjmp and longjmp_target SystemTap
	probes.
	* sysdeps/aarch64/setjmp.S: Include stap-probe.h.
	(__sigsetjmp): Add setjmp SystemTap probe.
This commit is contained in:
Venkataramanan Kumar 2014-04-08 14:11:44 +01:00 committed by Will Newton
parent c54e5cf7db
commit 140cc7abf7
3 changed files with 24 additions and 0 deletions

View File

@ -1,3 +1,12 @@
2014-04-22 Will Newton <will.newton@linaro.org>
Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
* sysdeps/aarch64/__longjmp.S: Include stap-probe.h.
(__longjmp): Add longjmp and longjmp_target SystemTap
probes.
* sysdeps/aarch64/setjmp.S: Include stap-probe.h.
(__sigsetjmp): Add setjmp SystemTap probe.
2014-04-17 Carlos O'Donell <carlos@redhat.com>
* manual/intro.texi (Roadmap to the manual): Sort chapter listing to

View File

@ -18,6 +18,7 @@
#include <sysdep.h>
#include <jmpbuf-offsets.h>
#include <stap-probe.h>
/* __longjmp(jmpbuf, val) */
@ -56,6 +57,10 @@ ENTRY (__longjmp)
#else
ldp x29, x30, [x0, #JB_X29<<3]
#endif
/* longjmp probe takes 3 arguments, address of jump buffer as
first argument (8@x0), return value as second argument (-4@x1),
and target address (8@x30), respectively. */
LIBC_PROBE (longjmp, 3, 8@x0, -4@x1, 8@x30)
ldp d8, d9, [x0, #JB_D8<<3]
ldp d10, d11, [x0, #JB_D10<<3]
ldp d12, d13, [x0, #JB_D12<<3]
@ -98,6 +103,11 @@ ENTRY (__longjmp)
ldr x5, [x0, #JB_SP<<3]
#endif
mov sp, x5
/* longjmp_target probe takes 3 arguments, address of jump buffer
as first argument (8@x0), return value as second argument (-4@x1),
and target address (8@x30), respectively. */
LIBC_PROBE (longjmp_target, 3, 8@x0, -4@x1, 8@x30)
cmp x1, #0
mov x0, #1
csel x0, x1, x0, ne

View File

@ -18,6 +18,7 @@
#include <sysdep.h>
#include <jmpbuf-offsets.h>
#include <stap-probe.h>
/* Keep traditional entry points in with sigsetjmp(). */
ENTRY (setjmp)
@ -46,6 +47,10 @@ ENTRY (__sigsetjmp)
#else
stp x29, x30, [x0, #JB_X29<<3]
#endif
/* setjmp probe takes 3 arguments, address of jump buffer
first argument (8@x0), return value second argument (-4@x1),
and target address (8@x30), respectively. */
LIBC_PROBE (setjmp, 3, 8@x0, -4@x1, 8@x30)
stp d8, d9, [x0, #JB_D8<<3]
stp d10, d11, [x0, #JB_D10<<3]
stp d12, d13, [x0, #JB_D12<<3]