diff options
| author | Alex Bennée | 2021-04-15 18:24:53 +0200 |
|---|---|---|
| committer | Peter Maydell | 2021-04-17 19:51:14 +0200 |
| commit | 277aed998ac2cd3649bf0e13b22f47769519eb61 (patch) | |
| tree | 5dd627ea9786e61a81d531a22e437ac6254d562c /include | |
| parent | target/arm: drop CF_LAST_IO/dc->condjump check (diff) | |
| download | qemu-277aed998ac2cd3649bf0e13b22f47769519eb61.tar.gz qemu-277aed998ac2cd3649bf0e13b22f47769519eb61.tar.xz qemu-277aed998ac2cd3649bf0e13b22f47769519eb61.zip | |
accel/tcg: avoid re-translating one-shot instructions
By definition a single instruction is capable of being an IO
instruction. This avoids a problem of triggering a cpu_io_recompile on
a non-recorded translation which then fails because it expects
tcg_tb_lookup() to succeed unconditionally. The normal use case
requires a TB to be able to resolve machine state.
The other users of tcg_tb_lookup() are able to tolerate a missing TB
if the machine state has been resolved by other means - which in the
single-shot case is always true because machine state is synced at the
start of a block.
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210415162454.22056-1-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
