mirror of git://sourceware.org/git/glibc.git
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:
parent
c54e5cf7db
commit
140cc7abf7
|
@ -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>
|
2014-04-17 Carlos O'Donell <carlos@redhat.com>
|
||||||
|
|
||||||
* manual/intro.texi (Roadmap to the manual): Sort chapter listing to
|
* manual/intro.texi (Roadmap to the manual): Sort chapter listing to
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include <jmpbuf-offsets.h>
|
#include <jmpbuf-offsets.h>
|
||||||
|
#include <stap-probe.h>
|
||||||
|
|
||||||
/* __longjmp(jmpbuf, val) */
|
/* __longjmp(jmpbuf, val) */
|
||||||
|
|
||||||
|
@ -56,6 +57,10 @@ ENTRY (__longjmp)
|
||||||
#else
|
#else
|
||||||
ldp x29, x30, [x0, #JB_X29<<3]
|
ldp x29, x30, [x0, #JB_X29<<3]
|
||||||
#endif
|
#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 d8, d9, [x0, #JB_D8<<3]
|
||||||
ldp d10, d11, [x0, #JB_D10<<3]
|
ldp d10, d11, [x0, #JB_D10<<3]
|
||||||
ldp d12, d13, [x0, #JB_D12<<3]
|
ldp d12, d13, [x0, #JB_D12<<3]
|
||||||
|
@ -98,6 +103,11 @@ ENTRY (__longjmp)
|
||||||
ldr x5, [x0, #JB_SP<<3]
|
ldr x5, [x0, #JB_SP<<3]
|
||||||
#endif
|
#endif
|
||||||
mov sp, x5
|
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
|
cmp x1, #0
|
||||||
mov x0, #1
|
mov x0, #1
|
||||||
csel x0, x1, x0, ne
|
csel x0, x1, x0, ne
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include <jmpbuf-offsets.h>
|
#include <jmpbuf-offsets.h>
|
||||||
|
#include <stap-probe.h>
|
||||||
|
|
||||||
/* Keep traditional entry points in with sigsetjmp(). */
|
/* Keep traditional entry points in with sigsetjmp(). */
|
||||||
ENTRY (setjmp)
|
ENTRY (setjmp)
|
||||||
|
@ -46,6 +47,10 @@ ENTRY (__sigsetjmp)
|
||||||
#else
|
#else
|
||||||
stp x29, x30, [x0, #JB_X29<<3]
|
stp x29, x30, [x0, #JB_X29<<3]
|
||||||
#endif
|
#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 d8, d9, [x0, #JB_D8<<3]
|
||||||
stp d10, d11, [x0, #JB_D10<<3]
|
stp d10, d11, [x0, #JB_D10<<3]
|
||||||
stp d12, d13, [x0, #JB_D12<<3]
|
stp d12, d13, [x0, #JB_D12<<3]
|
||||||
|
|
Loading…
Reference in New Issue