Message ID | 20170711175937.23140-4-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | arm: fixes for eret, isb and DISAS_UPDATE handling | expand |
On Tue, Jul 11, 2017 at 18:59:34 +0100, Alex Bennée wrote: > We already have an exit condition, DISAS_UPDATE which will exit the > run-loop. Expand on the difference with DISAS_EXIT in the comments. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Reviewed-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Emilio G. Cota <cota@braap.org> E.
diff --git a/target/arm/translate.h b/target/arm/translate.h index 15d383d9af..12fd79ba8e 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -140,7 +140,10 @@ static void disas_set_insn_syndrome(DisasContext *s, uint32_t syn) */ #define DISAS_BX_EXCRET 11 /* For instructions which want an immediate exit to the main loop, - * as opposed to attempting to use lookup_and_goto_ptr. + * as opposed to attempting to use lookup_and_goto_ptr. Unlike + * DISAS_UPDATE this doesn't write the PC on exiting the translation + * loop so you need to ensure something (gen_a64_set_pc_im or runtime + * helper) has done so before we reach return from cpu_tb_exec. */ #define DISAS_EXIT 12