Commit 731fcece2d for qemu.org
commit 731fcece2db8c528fce2ecc21e103d24597b34eb
Author: Richard Henderson <richard.henderson@linaro.org>
Date: Fri Jul 31 11:56:23 2026 -0700
target/s390x/tcg: Convert op_st32 to op_st
Note that op_st32 already or'd in insn->data, with the only use
being MO_ALIGN. We now put the entire MemOp in insn->data.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20260731185628.23161-11-richard.henderson@linaro.org>
diff --git a/target/s390x/tcg/insn-data.h.inc b/target/s390x/tcg/insn-data.h.inc
index d8b42f1399..1417d32b8b 100644
--- a/target/s390x/tcg/insn-data.h.inc
+++ b/target/s390x/tcg/insn-data.h.inc
@@ -848,15 +848,15 @@
F(0xed15, SQDB, RXE, Z, 0, m2_64, new, f1, sqdb, 0, IF_BFP)
/* STORE */
- D(0x5000, ST, RX_a, Z, r1_o, a2, 0, 0, st32, 0, 0)
- D(0xe350, STY, RXY_a, LD, r1_o, a2, 0, 0, st32, 0, 0)
+ D(0x5000, ST, RX_a, Z, r1_o, a2, 0, 0, st, 0, MO_BEUL)
+ D(0xe350, STY, RXY_a, LD, r1_o, a2, 0, 0, st, 0, MO_BEUL)
D(0xe324, STG, RXY_a, Z, r1_o, a2, 0, 0, st64, 0, 0)
E(0x6000, STD, RX_a, Z, f1, a2, 0, 0, st64, 0, 0, IF_AFP1)
E(0xed67, STDY, RXY_a, LD, f1, a2, 0, 0, st64, 0, 0, IF_AFP1)
- E(0x7000, STE, RX_a, Z, e1, a2, 0, 0, st32, 0, 0, IF_AFP1)
- E(0xed66, STEY, RXY_a, LD, e1, a2, 0, 0, st32, 0, 0, IF_AFP1)
+ E(0x7000, STE, RX_a, Z, e1, a2, 0, 0, st, 0, MO_BEUL, IF_AFP1)
+ E(0xed66, STEY, RXY_a, LD, e1, a2, 0, 0, st, 0, MO_BEUL, IF_AFP1)
/* STORE RELATIVE LONG */
- D(0xc40f, STRL, RIL_b, GIE, r1_o, ri2, 0, 0, st32, 0, MO_ALIGN)
+ D(0xc40f, STRL, RIL_b, GIE, r1_o, ri2, 0, 0, st, 0, MO_BEUL | MO_ALIGN)
D(0xc40b, STGRL, RIL_b, GIE, r1_o, ri2, 0, 0, st64, 0, MO_ALIGN)
/* STORE CHARACTER */
D(0x4200, STC, RX_a, Z, r1_o, a2, 0, 0, st, 0, MO_UB)
@@ -875,7 +875,7 @@
/* STORE HALFWORD RELATIVE LONG */
D(0xc407, STHRL, RIL_b, GIE, r1_o, ri2, 0, 0, st, 0, MO_BEUW)
/* STORE HIGH */
- D(0xe3cb, STFH, RXY_a, HW, r1_sr32, a2, 0, 0, st32, 0, 0)
+ D(0xe3cb, STFH, RXY_a, HW, r1_sr32, a2, 0, 0, st, 0, MO_BEUL)
/* STORE ON CONDITION */
D(0xebf3, STOC, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 0)
D(0xebe3, STOCG, RSY_b, LOC, 0, 0, 0, 0, soc, 0, 1)
diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index 1132a1a425..a2566abc64 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -4350,13 +4350,6 @@ static DisasJumpType op_st(DisasContext *s, DisasOps *o)
return DISAS_NEXT;
}
-static DisasJumpType op_st32(DisasContext *s, DisasOps *o)
-{
- tcg_gen_qemu_st_i64(o->in1, o->in2, get_mem_index(s),
- MO_BEUL | s->insn->data);
- return DISAS_NEXT;
-}
-
static DisasJumpType op_st64(DisasContext *s, DisasOps *o)
{
tcg_gen_qemu_st_i64(o->in1, o->in2, get_mem_index(s),