On Tue, 28 Mar 2023 at 18:27, Richard Henderson
<richard.henderson@linaro.org> wrote:
On 3/28/23 09:28, Peter Maydell wrote:
+ /*
+ * gen_exception_insn() will set is_jmp to DISAS_NORETURN,
+ * but since we're conditionally branching over it, we want
+ * to retain the existing value.
+ */
+ old_is_jmp = s->base.is_jmp;
gen_exception_insn(s, 0, EXCP_UDEF, syndrome);
+ s->base.is_jmp = old_is_jmp;
A third solution is to simply set is_jmp = DISAS_NEXT here.
I wasn't confident enough that the previous is_jmp had
to be DISAS_NEXT to do that -- there are a lot of
different values and it's not clear to me which are ones you
might find lying around in is_jmp at the start of an insn.
I like the set_disas_label() idea, but maybe for 8.1 at this
point...