Skip to content

Commit

Permalink
linux-user/sparc: Use WREG_SP constant in sparc/signal.c
Browse files Browse the repository at this point in the history
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 <richard.henderson@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20191106113318.10226-7-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
  • Loading branch information
rth7680 authored and vivier committed Nov 6, 2019
1 parent 80180eb commit 8d9c72a
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions linux-user/sparc/signal.c
Expand Up @@ -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)
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 8d9c72a

Please sign in to comment.