Message ID | 20220815190303.2061559-4-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Allow semihosting from user mode | expand |
Le 15/08/2022 à 21:02, Peter Maydell a écrit : > Honour the commandline -semihosting-config userspace=on option, > instead of never permitting userspace semihosting calls in system > emulation mode, by passing the correct value to the is_userspace > argument of semihosting_enabled(), instead of manually checking and > always forbidding semihosting if the guest is in userspace. > > (Note that target/m68k doesn't support semihosting at all > in the linux-user build.) > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > target/m68k/op_helper.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c > index 4b3dfec1306..a96a0340506 100644 > --- a/target/m68k/op_helper.c > +++ b/target/m68k/op_helper.c > @@ -203,8 +203,7 @@ static void cf_interrupt_all(CPUM68KState *env, int is_hw) > cf_rte(env); > return; > case EXCP_HALT_INSN: > - if (semihosting_enabled(false) > - && (env->sr & SR_S) != 0 > + if (semihosting_enabled((env->sr & SR_S) == 0) > && (env->pc & 3) == 0 > && cpu_lduw_code(env, env->pc - 4) == 0x4e71 > && cpu_ldl_code(env, env->pc) == 0x4e7bf000) { Reviewed-by: Laurent Vivier <laurent@vivier.eu>
diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 4b3dfec1306..a96a0340506 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -203,8 +203,7 @@ static void cf_interrupt_all(CPUM68KState *env, int is_hw) cf_rte(env); return; case EXCP_HALT_INSN: - if (semihosting_enabled(false) - && (env->sr & SR_S) != 0 + if (semihosting_enabled((env->sr & SR_S) == 0) && (env->pc & 3) == 0 && cpu_lduw_code(env, env->pc - 4) == 0x4e71 && cpu_ldl_code(env, env->pc) == 0x4e7bf000) {
Honour the commandline -semihosting-config userspace=on option, instead of never permitting userspace semihosting calls in system emulation mode, by passing the correct value to the is_userspace argument of semihosting_enabled(), instead of manually checking and always forbidding semihosting if the guest is in userspace. (Note that target/m68k doesn't support semihosting at all in the linux-user build.) Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- target/m68k/op_helper.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)