Message ID | 20230216054516.1267305-3-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | linux-user/sparc: Handle missing traps | expand |
On 16/2/23 06:45, Richard Henderson wrote: > Use TT_TRAP. > > For sparc32, 0x88 is the "Slowaris" system call, currently BAD_TRAP > in the kernel's ttable_32.S. For sparc64, 0x110 is tl0_linux32, the > sparc32 trap, now folded into the TARGET_ABI32 case via TT_TRAP. > > For sparc64, there does still exist trap 0x111 as tl0_oldlinux64, > which was replaced by 0x16d as tl0_linux64 in 1998. Since no one > has noticed, don't bother implementing it now. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > linux-user/sparc/cpu_loop.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/linux-user/sparc/cpu_loop.c b/linux-user/sparc/cpu_loop.c index c120c42278..d31ea057db 100644 --- a/linux-user/sparc/cpu_loop.c +++ b/linux-user/sparc/cpu_loop.c @@ -149,6 +149,12 @@ static void flush_windows(CPUSPARCState *env) #endif } +#ifdef TARGET_ABI32 +#define TARGET_TT_SYSCALL (TT_TRAP + 0x10) /* t_linux */ +#else +#define TARGET_TT_SYSCALL (TT_TRAP + 0x6d) /* tl0_linux64 */ +#endif + void cpu_loop (CPUSPARCState *env) { CPUState *cs = env_cpu(env); @@ -167,13 +173,7 @@ void cpu_loop (CPUSPARCState *env) } switch (trapnr) { -#ifndef TARGET_SPARC64 - case 0x88: - case 0x90: -#else - case 0x110: - case 0x16d: -#endif + case TARGET_TT_SYSCALL: ret = do_syscall (env, env->gregs[1], env->regwptr[0], env->regwptr[1], env->regwptr[2], env->regwptr[3],
Use TT_TRAP. For sparc32, 0x88 is the "Slowaris" system call, currently BAD_TRAP in the kernel's ttable_32.S. For sparc64, 0x110 is tl0_linux32, the sparc32 trap, now folded into the TARGET_ABI32 case via TT_TRAP. For sparc64, there does still exist trap 0x111 as tl0_oldlinux64, which was replaced by 0x16d as tl0_linux64 in 1998. Since no one has noticed, don't bother implementing it now. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- linux-user/sparc/cpu_loop.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)