On Fri, Jun 19, 2020 at 10:05 AM Peter Maydell <peter.mayd...@linaro.org> wrote: > I've just sent a patch that removes the target/arm gen_io_end() calls. > I had a quick look at sparc, xtensa and ppc, but they were too complicated > for a quick look to be sufficient :-)
I've checked the xtensa translator. The only gen_io_end() is for opcodes that end TB when a full instruction is translated, because they can change active interrupt requests. So it can be removed. I'll send a patch. One instance of gen_io_start is for the rsr.ccount opcode that reads current cycle counter that translates to reading QEMU_CLOCK_VIRTUAL clock. Looks like this adds one more case to the following list: > As I understand it, the definition of "I/O insn" is anything that can > either: > > - affect the icount deadline (e.g. by setting or removing a > QEMU_CLOCK_VIRTUAL timer) > > - interrupt the current translation block with cpu_loop_exit, > cpu_restore_state or similar. -- Thanks. -- Max