aboutsummaryrefslogtreecommitdiff
path: root/target/i386
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2021-07-26 13:38:42 -1000
committerRichard Henderson <richard.henderson@linaro.org>2021-10-13 07:58:00 -0700
commit26b14640d933d703c175a314479bdd0b8c26fedd (patch)
tree2d2b124b4bf2369b27537810d886a10a9c2eaf8b /target/i386
parentc21751f394591f2444c62bfcb1124300849ab46a (diff)
downloadqemu-26b14640d933d703c175a314479bdd0b8c26fedd.zip
qemu-26b14640d933d703c175a314479bdd0b8c26fedd.tar.gz
qemu-26b14640d933d703c175a314479bdd0b8c26fedd.tar.bz2
target/i386: Use MO_128 for 16 byte atomics
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/i386')
-rw-r--r--target/i386/tcg/mem_helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/i386/tcg/mem_helper.c b/target/i386/tcg/mem_helper.c
index 0fd696f..a207e62 100644
--- a/target/i386/tcg/mem_helper.c
+++ b/target/i386/tcg/mem_helper.c
@@ -136,7 +136,7 @@ void helper_cmpxchg16b(CPUX86State *env, target_ulong a0)
Int128 newv = int128_make128(env->regs[R_EBX], env->regs[R_ECX]);
int mem_idx = cpu_mmu_index(env, false);
- MemOpIdx oi = make_memop_idx(MO_TEQ | MO_ALIGN_16, mem_idx);
+ MemOpIdx oi = make_memop_idx(MO_TE | MO_128 | MO_ALIGN, mem_idx);
Int128 oldv = cpu_atomic_cmpxchgo_le_mmu(env, a0, cmpv, newv, oi, ra);
if (int128_eq(oldv, cmpv)) {