aarch64: Add setjmp and longjmp SystemTap probes
Commit Message
From: Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
Add setjmp, longjmp and longjmp_target Systemtap probes.
ChangeLog:
2014-04-08 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.
---
sysdeps/aarch64/__longjmp.S | 10 ++++++++++
sysdeps/aarch64/setjmp.S | 5 +++++
2 files changed, 15 insertions(+)
Comments
On 8 April 2014 14:15, Will Newton <will.newton@linaro.org> wrote:
> From: Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
>
> Add setjmp, longjmp and longjmp_target Systemtap probes.
>
> ChangeLog:
>
> 2014-04-08 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.
> ---
> sysdeps/aarch64/__longjmp.S | 10 ++++++++++
> sysdeps/aarch64/setjmp.S | 5 +++++
> 2 files changed, 15 insertions(+)
Ping?
> diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S
> index 2d38bbf..1bb7be36 100644
> --- a/sysdeps/aarch64/__longjmp.S
> +++ b/sysdeps/aarch64/__longjmp.S
> @@ -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
> diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S
> index 5822abd..fd39319 100644
> --- a/sysdeps/aarch64/setjmp.S
> +++ b/sysdeps/aarch64/setjmp.S
> @@ -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]
> --
> 1.8.1.4
>
On 17 April 2014 13:18, Will Newton <will.newton@linaro.org> wrote:
> On 8 April 2014 14:15, Will Newton <will.newton@linaro.org> wrote:
>> From: Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
>>
>> Add setjmp, longjmp and longjmp_target Systemtap probes.
>>
>> ChangeLog:
>>
>> 2014-04-08 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.
>> ---
>> sysdeps/aarch64/__longjmp.S | 10 ++++++++++
>> sysdeps/aarch64/setjmp.S | 5 +++++
>> 2 files changed, 15 insertions(+)
>
> Ping?
Ping?
>> diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S
>> index 2d38bbf..1bb7be36 100644
>> --- a/sysdeps/aarch64/__longjmp.S
>> +++ b/sysdeps/aarch64/__longjmp.S
>> @@ -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
>> diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S
>> index 5822abd..fd39319 100644
>> --- a/sysdeps/aarch64/setjmp.S
>> +++ b/sysdeps/aarch64/setjmp.S
>> @@ -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]
>> --
>> 1.8.1.4
>>
>
>
>
> --
> Will Newton
> Toolchain Working Group, Linaro
On 8 April 2014 14:15, Will Newton <will.newton@linaro.org> wrote:
> From: Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
>
> Add setjmp, longjmp and longjmp_target Systemtap probes.
>
> ChangeLog:
>
> 2014-04-08 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.
OK /Marcus
@@ -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
@@ -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]