diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2022-12-05 17:45:02 -0600 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2023-01-17 10:36:16 -1000 |
commit | 20b6643324a79860dcdfe811ffe4a79942bca21e (patch) | |
tree | ebc1785b7fb8dcf5f23a931625dd2867d5426e2b /module-common.c | |
parent | d59d83a1c38869b1e1a4f957eb939aaa8a342721 (diff) | |
download | qemu-20b6643324a79860dcdfe811ffe4a79942bca21e.zip qemu-20b6643324a79860dcdfe811ffe4a79942bca21e.tar.gz qemu-20b6643324a79860dcdfe811ffe4a79942bca21e.tar.bz2 |
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>
Diffstat (limited to 'module-common.c')
0 files changed, 0 insertions, 0 deletions