diff options
author | Peter Maydell | 2022-08-22 16:12:26 +0200 |
---|---|---|
committer | Richard Henderson | 2022-09-13 18:18:21 +0200 |
commit | a52417e1eeb4501993e29145d16faac59e8465ca (patch) | |
tree | 83814c59e01628d8c684eaa8d6cf0ff40da14dfc /target/m68k | |
parent | target/arm: Honour -semihosting-config userspace=on (diff) | |
download | qemu-a52417e1eeb4501993e29145d16faac59e8465ca.tar.gz qemu-a52417e1eeb4501993e29145d16faac59e8465ca.tar.xz qemu-a52417e1eeb4501993e29145d16faac59e8465ca.zip |
target/m68k: Honour -semihosting-config userspace=on
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>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220822141230.3658237-4-peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/m68k')
-rw-r--r-- | target/m68k/op_helper.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 4b3dfec130..a96a034050 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) { |