On 8/21/21 9:59 PM, Richard Henderson wrote: > Misaligned thumb PC is architecturally impossible. > Assert is better than proceeding, in case we've missed > something somewhere. > > Expand a comment about aligning the pc in gdbstub. > Fail an incoming migrate if a thumb pc is misaligned. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > target/arm/gdbstub.c | 9 +++++++-- > target/arm/machine.c | 9 +++++++++ > target/arm/translate.c | 3 +++ > 3 files changed, 19 insertions(+), 2 deletions(-)
> diff --git a/target/arm/translate.c b/target/arm/translate.c > index dfeaa2321d..a93ea3c47c 100644 > --- a/target/arm/translate.c > +++ b/target/arm/translate.c > @@ -9595,6 +9595,9 @@ static void thumb_tr_translate_insn(DisasContextBase > *dcbase, CPUState *cpu) > uint32_t insn; > bool is_16bit; > > + /* Misaligned thumb PC is architecturally impossible. */ > + assert((dc->base.pc_next & 1) == 0); What about using tcg_debug_assert() instead? > if (arm_check_ss_active(dc) || arm_check_kernelpage(dc)) { > dc->base.pc_next += 2; > return; >