On 2/26/19 10:31 AM, Peter Maydell wrote: > On Wed, 20 Feb 2019 at 23:50, Richard Henderson > <richard.hender...@linaro.org> wrote: >> >> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > > >> @@ -9192,6 +9192,17 @@ static void disas_arm_insn(DisasContext *s, unsigned >> int insn) >> */ >> gen_goto_tb(s, 0, s->pc & ~1); >> return; >> + case 7: /* sb */ >> + if (!dc_isar_feature(aa32_sb, s)) { >> + goto illegal_op; >> + } >> + /* >> + * TODO: There is no speculation barrier opcode >> + * for TCG; MB and end the TB instead. >> + */ >> + tcg_gen_mb(TCG_MO_ALL | TCG_BAR_SC); >> + s->base.is_jmp = DISAS_TOO_MANY; > > Why do we do the "end the TB" code differently here than we > do for the implementation of ISB in the case immediately > above ?
No good reason, I suppose. This is how we end the TB for MSR, I think. But I can change it. r~