diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2022-10-24 23:09:57 +1000 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2022-11-01 08:31:41 +1100 |
commit | 3d419a4dd227f174447e0b3978028a1cd52ccc5e (patch) | |
tree | b45b25a792e4d104e588b26bf0d42e29ea3a3b63 /accel | |
parent | cc30dc441b44ad15f4adfb13d9a68cba6fa39a23 (diff) | |
download | qemu-3d419a4dd227f174447e0b3978028a1cd52ccc5e.zip qemu-3d419a4dd227f174447e0b3978028a1cd52ccc5e.tar.gz qemu-3d419a4dd227f174447e0b3978028a1cd52ccc5e.tar.bz2 |
accel/tcg: Remove will_exit argument from cpu_restore_state
The value passed is always true, and if the target's
synchronize_from_tb hook is non-trivial, not exiting
may be erroneous.
Reviewed-by: Claudio Fontana <cfontana@suse.de>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'accel')
-rw-r--r-- | accel/tcg/cpu-exec-common.c | 2 | ||||
-rw-r--r-- | accel/tcg/translate-all.c | 12 |
2 files changed, 3 insertions, 11 deletions
diff --git a/accel/tcg/cpu-exec-common.c b/accel/tcg/cpu-exec-common.c index be6fe45..c7bc8c6 100644 --- a/accel/tcg/cpu-exec-common.c +++ b/accel/tcg/cpu-exec-common.c @@ -71,7 +71,7 @@ void cpu_loop_exit(CPUState *cpu) void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc) { if (pc) { - cpu_restore_state(cpu, pc, true); + cpu_restore_state(cpu, pc); } cpu_loop_exit(cpu); } diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index 319becb..90997fe 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -318,17 +318,9 @@ void cpu_restore_state_from_tb(CPUState *cpu, TranslationBlock *tb, #endif } -bool cpu_restore_state(CPUState *cpu, uintptr_t host_pc, bool will_exit) +bool cpu_restore_state(CPUState *cpu, uintptr_t host_pc) { /* - * The pc update associated with restore without exit will - * break the relative pc adjustments performed by TARGET_TB_PCREL. - */ - if (TARGET_TB_PCREL) { - assert(will_exit); - } - - /* * The host_pc has to be in the rx region of the code buffer. * If it is not we will not be able to resolve it here. * The two cases where host_pc will not be correct are: @@ -341,7 +333,7 @@ bool cpu_restore_state(CPUState *cpu, uintptr_t host_pc, bool will_exit) if (in_code_gen_buffer((const void *)(host_pc - tcg_splitwx_diff))) { TranslationBlock *tb = tcg_tb_lookup(host_pc); if (tb) { - cpu_restore_state_from_tb(cpu, tb, host_pc, will_exit); + cpu_restore_state_from_tb(cpu, tb, host_pc, true); return true; } } |