qemu-e2k/tcg
Richard Henderson 20b6643324 tcg/ppc: Reorg goto_tb implementation
The old ppc64 implementation replaces 2 or 4 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

	b       <dest>
and
	mtctr	r31

falling through to a general-case indirect branch.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2023-01-17 10:36:16 -10:00
..
aarch64 tcg/aarch64: Reorg goto_tb implementation 2023-01-17 10:36:02 -10:00
arm tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00
i386 tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00
loongarch64 tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00
mips tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00
ppc tcg/ppc: Reorg goto_tb implementation 2023-01-17 10:36:16 -10:00
riscv tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00
s390x tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00
sparc64 tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00
tci tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00
meson.build
optimize.c tcg: Reorg function calls 2023-01-05 11:41:29 -08:00
region.c tcg: Fix returned type in alloc_code_gen_buffer_splitwx_memfd() 2022-07-12 10:30:10 +05:30
tcg-common.c
tcg-internal.h tcg: Move ffi_cif pointer into TCGHelperInfo 2023-01-05 11:41:29 -08:00
tcg-ldst.c.inc
tcg-op-gvec.c
tcg-op-vec.c tcg: Pass number of arguments to tcg_emit_op() / tcg_op_insert_*() 2023-01-05 11:41:29 -08:00
tcg-op.c tcg: Add gen_tb to TCGContext 2023-01-17 10:08:51 -10:00
tcg-pool.c.inc
tcg.c tcg: Remove TCG_TARGET_HAS_direct_jump 2023-01-17 10:25:49 -10:00
tci.c tci: MAX_OPC_PARAM_IARGS is no longer used 2023-01-04 16:20:01 -08:00