diff --git a/target/nios2/translate.c b/target/nios2/translate.c index c30fdf7ffc3e..0e8c950e1f3f 100644 --- a/target/nios2/translate.c +++ b/target/nios2/translate.c @@ -649,8 +649,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 = dc->base.tb->flags & CR_STATUS_U; R_TYPE(instr, code); - if (semihosting_enabled() && instr.imm5 == 1) { + if (semihosting_enabled(is_user) && instr.imm5 == 1) { t_gen_helper_raise_exception(dc, EXCP_SEMIHOST); return; }