On Mon, 22 Jun 2020 at 06:36, Max Filippov <jcmvb...@gmail.com> wrote: > > Since commit > ba3e7926691e ("icount: clean up cpu_can_io at the entry to the block") > it has been unnecessary for target code to call gen_io_end() after an IO > instruction in icount mode; it is sufficient to call gen_io_start() > before it and to force the end of the TB. > Remaining call in xtensa target translator is for the opcodes that may > change IRQ state. All of them end current TB, so gen_io_end is not > needed. Drop gen_io_end call from the xtensa target translator.
Most of the insns which set XTENSA_OP_CHECK_INTERRUPTS in their .op_flags also set XTENSA_OP_EXIT_TB_M1 or XTENSA_OP_EXIT_TB_0; the ones which don't are "rfe", "rfi", "rfwo" and "rfwu". Looking through what they do, they all end up calling gen_jump(), which will end the TB. Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM