On Sat, Oct 11, 2025 at 1:52 AM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> All callers of gen_storepair_tl() set the MO_TE flag. Set it once in
> the callee.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> target/riscv/insn_trans/trans_xthead.c.inc | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/target/riscv/insn_trans/trans_xthead.c.inc b/target/riscv/insn_trans/trans_xthead.c.inc
> index 859cbc26cb2..2f31842791e 100644
> --- a/target/riscv/insn_trans/trans_xthead.c.inc
> +++ b/target/riscv/insn_trans/trans_xthead.c.inc
> @@ -926,6 +926,7 @@ static bool gen_loadpair_tl(DisasContext *ctx, arg_th_pair *a, MemOp memop,
> addr1 = get_address(ctx, a->rs, imm);
> addr2 = get_address(ctx, a->rs, memop_size(memop) + imm);
>
> + memop |= MO_TE;
> tcg_gen_qemu_ld_tl(t1, addr1, ctx->mem_idx, memop);
> tcg_gen_qemu_ld_tl(t2, addr2, ctx->mem_idx, memop);
> gen_set_gpr(ctx, a->rd1, t1);
> @@ -937,19 +938,19 @@ static bool trans_th_ldd(DisasContext *ctx, arg_th_pair *a)
> {
> REQUIRE_XTHEADMEMPAIR(ctx);
> REQUIRE_64BIT(ctx);
> - return gen_loadpair_tl(ctx, a, MO_TE | MO_SQ, 4);
> + return gen_loadpair_tl(ctx, a, MO_SQ, 4);
> }
>
> static bool trans_th_lwd(DisasContext *ctx, arg_th_pair *a)
> {
> REQUIRE_XTHEADMEMPAIR(ctx);
> - return gen_loadpair_tl(ctx, a, MO_TE | MO_SL, 3);
> + return gen_loadpair_tl(ctx, a, MO_SL, 3);
> }
>
> static bool trans_th_lwud(DisasContext *ctx, arg_th_pair *a)
> {
> REQUIRE_XTHEADMEMPAIR(ctx);
> - return gen_loadpair_tl(ctx, a, MO_TE | MO_UL, 3);
> + return gen_loadpair_tl(ctx, a, MO_UL, 3);
> }
>
> static bool gen_storepair_tl(DisasContext *ctx, arg_th_pair *a, MemOp memop,
> @@ -964,6 +965,7 @@ static bool gen_storepair_tl(DisasContext *ctx, arg_th_pair *a, MemOp memop,
> addr1 = get_address(ctx, a->rs, imm);
> addr2 = get_address(ctx, a->rs, memop_size(memop) + imm);
>
> + memop |= MO_TE;
> tcg_gen_qemu_st_tl(data1, addr1, ctx->mem_idx, memop);
> tcg_gen_qemu_st_tl(data2, addr2, ctx->mem_idx, memop);
> return true;
> @@ -973,13 +975,13 @@ static bool trans_th_sdd(DisasContext *ctx, arg_th_pair *a)
> {
> REQUIRE_XTHEADMEMPAIR(ctx);
> REQUIRE_64BIT(ctx);
> - return gen_storepair_tl(ctx, a, MO_TE | MO_SQ, 4);
> + return gen_storepair_tl(ctx, a, MO_SQ, 4);
> }
>
> static bool trans_th_swd(DisasContext *ctx, arg_th_pair *a)
> {
> REQUIRE_XTHEADMEMPAIR(ctx);
> - return gen_storepair_tl(ctx, a, MO_TE | MO_SL, 3);
> + return gen_storepair_tl(ctx, a, MO_SL, 3);
> }
>
> /* XTheadSync */
> --
> 2.51.0
>
>