Patchwork [15/29,AARCH64] Use PTR_REG in getcontext.S.

login
register
mail settings
Submitter Andrew Pinski
Date Oct. 27, 2014, 7:59 a.m.
Message ID <1414396793-9005-16-git-send-email-apinski@cavium.com>
Download mbox | patch
Permalink /patch/3410/
State New
Headers show

Comments

Andrew Pinski - Oct. 27, 2014, 7:59 a.m.
Just like the other patches, this patch allows for getcontext.S to be used
between ILP32 and LP64.

* sysdeps/unix/sysv/linux/aarch64/getcontext.S: Use PTR_REG when
doing an add so wrapping of the pointer is correct for ILP32.
---
 sysdeps/unix/sysv/linux/aarch64/getcontext.S |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Will Newton - Nov. 18, 2014, 12:37 p.m.
On 27 October 2014 07:59, Andrew Pinski <apinski@cavium.com> wrote:
> Just like the other patches, this patch allows for getcontext.S to be used
> between ILP32 and LP64.
>
> * sysdeps/unix/sysv/linux/aarch64/getcontext.S: Use PTR_REG when
> doing an add so wrapping of the pointer is correct for ILP32.
> ---
>  sysdeps/unix/sysv/linux/aarch64/getcontext.S |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)

This looks ok to me.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
> index 70b2e32..4507040 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/getcontext.S
> +++ b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
> @@ -90,7 +90,7 @@ ENTRY(__getcontext)
>
>         /* Grab the signal mask */
>         /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
> -       add     x2, x0, #UCONTEXT_SIGMASK
> +       add     PTR_REG (2), PTR_REG (0), #UCONTEXT_SIGMASK
>         mov     x0, SIG_BLOCK
>         mov     x1, 0
>         mov     x3, _NSIG8
> --
> 1.7.2.5
>

Patch

diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
index 70b2e32..4507040 100644
--- a/sysdeps/unix/sysv/linux/aarch64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
@@ -90,7 +90,7 @@  ENTRY(__getcontext)
 
 	/* Grab the signal mask */
 	/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
-	add	x2, x0, #UCONTEXT_SIGMASK
+	add	PTR_REG (2), PTR_REG (0), #UCONTEXT_SIGMASK
 	mov	x0, SIG_BLOCK
 	mov	x1, 0
 	mov	x3, _NSIG8