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 ? thanks -- PMM