qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 06/12] linux-user/sparc: Use WREG_SP constant in sparc/sig


From: Laurent Vivier
Subject: Re: [PATCH v2 06/12] linux-user/sparc: Use WREG_SP constant in sparc/signal.c
Date: Tue, 5 Nov 2019 10:50:13 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1

Le 25/10/2019 à 13:39, Richard Henderson a écrit :
> s/UREG_FP/WREG_SP/g
> 
> This is non-obvious because the UREG_FP constant is fact wrong.
> However, the previous search-and-replace patch made it clear that
> UREG_FP expands to WREG_O6, and we can see from the enumeration in
> target/sparc/cpu.h that WREG_O6 is in fact WREG_SP, the stack pointer.
> 
> The UREG_SP define is unused; remove it.
> 
> Signed-off-by: Richard Henderson <address@hidden>
> ---
>  linux-user/sparc/signal.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c
> index a967e2db73..0db4c5f84f 100644
> --- a/linux-user/sparc/signal.c
> +++ b/linux-user/sparc/signal.c
> @@ -104,9 +104,6 @@ struct target_rt_signal_frame {
>      qemu_siginfo_fpu_t  fpu_state;
>  };
>  
> -#define UREG_FP        WREG_O6
> -#define UREG_SP        WREG_I6
> -
>  static inline abi_ulong get_sigframe(struct target_sigaction *sa, 
>                                       CPUSPARCState *env,
>                                       unsigned long framesize)
> @@ -201,7 +198,7 @@ void setup_frame(int sig, struct target_sigaction *ka,
>          goto sigsegv;
>  
>      /* 3. signal handler back-trampoline and parameters */
> -    env->regwptr[UREG_FP] = sf_addr;
> +    env->regwptr[WREG_SP] = sf_addr;
>      env->regwptr[WREG_O0] = sig;
>      env->regwptr[WREG_O1] = sf_addr +
>              offsetof(struct target_signal_frame, info);
> @@ -255,7 +252,7 @@ long do_sigreturn(CPUSPARCState *env)
>      sigset_t host_set;
>      int i;
>  
> -    sf_addr = env->regwptr[UREG_FP];
> +    sf_addr = env->regwptr[WREG_SP];
>      trace_user_do_sigreturn(env, sf_addr);
>      if (!lock_user_struct(VERIFY_READ, sf, sf_addr, 1)) {
>          goto segv_and_exit;
> 

Applied to my linux-user branch.

Thanks,
Laurent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]