qemu/tcg/sparc64
Richard Henderson a228ae3ea7 tcg/sparc64: Reorg goto_tb implementation
The old sparc64 implementation may replace two insns, which leaves
a race condition in which a thread could be stopped at a PC in the
middle of the sequence, and when restarted does not see the complete
address computation and branches to nowhere.

The new implemetation replaces only one insn, swapping between a
direct branch and a direct call.  The TCG_REG_TB register is loaded
from tb->jmp_target_addr[] in the delay slot.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2023-01-17 10:38:18 -10:00
..
tcg-target-con-set.h
tcg-target-con-str.h
tcg-target.c.inc tcg/sparc64: Reorg goto_tb implementation 2023-01-17 10:38:18 -10:00
tcg-target.h tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00