Message ID | 20220430175342.370628-5-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | target/m68k: Conditional traps + trap cleanup | expand |
Le 30/04/2022 à 19:53, Richard Henderson a écrit : > These are raised by guest instructions, and should not > fall through into the default abort case. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > linux-user/m68k/cpu_loop.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c > index 56417f7401..6ca3e1e63a 100644 > --- a/linux-user/m68k/cpu_loop.c > +++ b/linux-user/m68k/cpu_loop.c > @@ -44,6 +44,7 @@ void cpu_loop(CPUM68KState *env) > case EXCP_ILLEGAL: > case EXCP_LINEA: > case EXCP_LINEF: > + case EXCP_TRAP0 + 1 ... EXCP_TRAP0 + 14: > force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); In kernel, VEC_TRAP1 to VEC_TRAP14 use ILL_ILLTRP for si_code. Thanks, Laurent
diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 56417f7401..6ca3e1e63a 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -44,6 +44,7 @@ void cpu_loop(CPUM68KState *env) case EXCP_ILLEGAL: case EXCP_LINEA: case EXCP_LINEF: + case EXCP_TRAP0 + 1 ... EXCP_TRAP0 + 14: force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: @@ -76,6 +77,7 @@ void cpu_loop(CPUM68KState *env) /* just indicate that signals should be handled asap */ break; case EXCP_DEBUG: + case EXCP_TRAP15: force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC:
These are raised by guest instructions, and should not fall through into the default abort case. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- linux-user/m68k/cpu_loop.c | 2 ++ 1 file changed, 2 insertions(+)