qemu/accel/tcg
Richard Henderson 87f963be66 tcg: Really fix cpu_io_recompile
We have confused the number of instructions that have been
executed in the TB with the number of instructions needed
to repeat the I/O instruction.

We have used cpu_restore_state_from_tb, which means that
the guest pc is pointing to the I/O instruction.  The only
time the answer to the later question is not 1 is when
MIPS or SH4 need to re-execute the branch for the delay
slot as well.

We must rely on cpu->cflags_next_tb to generate the next TB,
as otherwise we have a race condition with other guest cpus
within the TB cache.

Fixes: 0790f86861
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20180319031545.29359-1-richard.henderson@linaro.org>
Tested-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2018-03-26 14:37:14 +02:00
..
atomic_template.h accel/tcg: Handle atomic accesses to notdirty memory correctly 2017-11-21 12:09:25 +00:00
cpu-exec-common.c accel/tcg/cpu-exec-common.c: Remove unnecessary include of memory-internal.h 2017-12-18 17:07:02 +03:00
cpu-exec.c cpu-exec: fix exception_index handling 2018-03-12 16:12:50 +01:00
cputlb.c accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00
Makefile.objs tcg: Add generic vector expanders 2018-02-08 15:54:05 +00:00
softmmu_template.h accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00
tcg-all.c tcg: make tcg_allowed global 2017-07-04 16:01:16 +02:00
tcg-runtime-gvec.c tcg: Add generic vector helpers with a scalar operand 2018-02-08 15:54:06 +00:00
tcg-runtime.c tcg: add cs_base and flags to -d exec output 2017-12-29 12:43:40 -08:00
tcg-runtime.h tcg: Add generic vector helpers with a scalar operand 2018-02-08 15:54:06 +00:00
trace-events trace-events: fix code style: print 0x before hex numbers 2017-08-01 12:13:07 +01:00
translate-all.c tcg: Really fix cpu_io_recompile 2018-03-26 14:37:14 +02:00
translate-all.h tcg: move tcg backend files into accel/tcg/ 2017-06-15 11:04:06 +02:00
translator.c tcg: convert tb->cflags reads to tb_cflags(tb) 2017-10-24 13:53:41 -07:00
user-exec-stub.c accel/tcg: move user-exec to accel/tcg/ 2017-09-17 06:52:19 -07:00
user-exec.c Drop remaining bits of ia64 host support 2018-02-05 18:09:45 +01:00