Peter Maydell <peter.mayd...@linaro.org> writes:
> On Wed, 11 Sep 2019 at 17:50, Alex Bennée <alex.ben...@linaro.org> wrote: >> >> We do this for other semihosting calls so we might as well do it for >> M-profile as well. >> >> Signed-off-by: Alex Bennée <alex.ben...@linaro.org> >> Reviewed-by: Richard Henderson <richard.hender...@linaro.org> >> >> --- >> v2 >> - update for change to gen_exception_internal_insn API >> v3 >> - update for decode tree >> v4 >> - use !IS_USER >> --- > >> diff --git a/target/arm/translate.c b/target/arm/translate.c >> index 34bb280e3da..6689acc911e 100644 >> --- a/target/arm/translate.c >> +++ b/target/arm/translate.c >> @@ -8424,7 +8424,13 @@ static bool trans_BKPT(DisasContext *s, arg_BKPT *a) >> if (!ENABLE_ARCH_5) { >> return false; >> } >> - gen_exception_bkpt_insn(s, syn_aa32_bkpt(a->imm, false)); >> + if (arm_dc_feature(s, ARM_FEATURE_M) && >> + semihosting_enabled() && !IS_USER(s) && >> + (a->imm == 0xab)) { >> + gen_exception_internal_insn(s, s->base.pc_next, EXCP_SEMIHOST); >> + } else { >> + gen_exception_bkpt_insn(s, syn_aa32_bkpt(a->imm, false)); >> + } >> return true; >> } > > This is still disabling semihosting for the linux-user-mode > build for M-profile, isn't it ? Sure - as rth suggested. But m-profile doesn't run Linux so why would we support it in linux-user? > > thanks > -- PMM -- Alex Bennée