From: Peter Maydell Date: Mon, 22 Aug 2022 14:12:28 +0000 (+0100) Subject: target/nios2: Honour -semihosting-config userspace=on X-Git-Tag: v7.2.0-rc0~88^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cab9f19370b5e26afbc7f62e08293507bf2a5f6b;p=thirdparty%2Fqemu.git target/nios2: Honour -semihosting-config userspace=on Honour the commandline -semihosting-config userspace=on option, instead of always permitting userspace semihosting calls in system emulation mode, by passing the correct value to the is_userspace argument of semihosting_enabled(). Note that this is a behaviour change: if the user wants to do semihosting calls from userspace they must now specifically enable them on the command line. nios2 semihosting is not implemented for linux-user builds. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-Id: <20220822141230.3658237-6-peter.maydell@linaro.org> Signed-off-by: Richard Henderson --- diff --git a/target/nios2/translate.c b/target/nios2/translate.c index ff631a42f66..8dc0a32c6c3 100644 --- a/target/nios2/translate.c +++ b/target/nios2/translate.c @@ -817,8 +817,9 @@ static void gen_break(DisasContext *dc, uint32_t code, uint32_t flags) { #ifndef CONFIG_USER_ONLY /* The semihosting instruction is "break 1". */ + bool is_user = FIELD_EX32(dc->tb_flags, TBFLAGS, U); R_TYPE(instr, code); - if (semihosting_enabled(false) && instr.imm5 == 1) { + if (semihosting_enabled(is_user) && instr.imm5 == 1) { t_gen_helper_raise_exception(dc, EXCP_SEMIHOST); return; }