Skip to content

Commit 68e33d8

Browse files
committed
target/ppc: Use MO_128 for 16 byte atomics
Cc: [email protected] Reviewed-by: Philippe Mathieu-Daudé <[email protected]> Signed-off-by: Richard Henderson <[email protected]>
1 parent 26b1464 commit 68e33d8

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

target/ppc/translate.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3462,10 +3462,12 @@ static void gen_std(DisasContext *ctx)
34623462
if (HAVE_ATOMIC128) {
34633463
TCGv_i32 oi = tcg_temp_new_i32();
34643464
if (ctx->le_mode) {
3465-
tcg_gen_movi_i32(oi, make_memop_idx(MO_LEQ, ctx->mem_idx));
3465+
tcg_gen_movi_i32(oi, make_memop_idx(MO_LE | MO_128,
3466+
ctx->mem_idx));
34663467
gen_helper_stq_le_parallel(cpu_env, EA, lo, hi, oi);
34673468
} else {
3468-
tcg_gen_movi_i32(oi, make_memop_idx(MO_BEQ, ctx->mem_idx));
3469+
tcg_gen_movi_i32(oi, make_memop_idx(MO_BE | MO_128,
3470+
ctx->mem_idx));
34693471
gen_helper_stq_be_parallel(cpu_env, EA, lo, hi, oi);
34703472
}
34713473
tcg_temp_free_i32(oi);
@@ -4067,11 +4069,11 @@ static void gen_lqarx(DisasContext *ctx)
40674069
if (HAVE_ATOMIC128) {
40684070
TCGv_i32 oi = tcg_temp_new_i32();
40694071
if (ctx->le_mode) {
4070-
tcg_gen_movi_i32(oi, make_memop_idx(MO_LEQ | MO_ALIGN_16,
4072+
tcg_gen_movi_i32(oi, make_memop_idx(MO_LE | MO_128 | MO_ALIGN,
40714073
ctx->mem_idx));
40724074
gen_helper_lq_le_parallel(lo, cpu_env, EA, oi);
40734075
} else {
4074-
tcg_gen_movi_i32(oi, make_memop_idx(MO_BEQ | MO_ALIGN_16,
4076+
tcg_gen_movi_i32(oi, make_memop_idx(MO_BE | MO_128 | MO_ALIGN,
40754077
ctx->mem_idx));
40764078
gen_helper_lq_be_parallel(lo, cpu_env, EA, oi);
40774079
}
@@ -4122,7 +4124,7 @@ static void gen_stqcx_(DisasContext *ctx)
41224124

41234125
if (tb_cflags(ctx->base.tb) & CF_PARALLEL) {
41244126
if (HAVE_CMPXCHG128) {
4125-
TCGv_i32 oi = tcg_const_i32(DEF_MEMOP(MO_Q) | MO_ALIGN_16);
4127+
TCGv_i32 oi = tcg_const_i32(DEF_MEMOP(MO_128) | MO_ALIGN);
41264128
if (ctx->le_mode) {
41274129
gen_helper_stqcx_le_parallel(cpu_crf[0], cpu_env,
41284130
EA, lo, hi, oi);

0 commit comments

Comments
 (0)