target/arm: Drop unused address_offset from op_addr_{rr, ri}_post()

All the callers of op_addr_rr_post() and op_addr_ri_post() now pass in
zero for the address_offset, so we can remove that argument.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20250227142746.1698904-4-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2025-03-07 10:08:22 +00:00
parent ee786ca115
commit 5be4419c57

View File

@ -4941,7 +4941,7 @@ static TCGv_i32 op_addr_rr_pre(DisasContext *s, arg_ldst_rr *a)
} }
static void op_addr_rr_post(DisasContext *s, arg_ldst_rr *a, static void op_addr_rr_post(DisasContext *s, arg_ldst_rr *a,
TCGv_i32 addr, int address_offset) TCGv_i32 addr)
{ {
if (!a->p) { if (!a->p) {
TCGv_i32 ofs = load_reg(s, a->rm); TCGv_i32 ofs = load_reg(s, a->rm);
@ -4954,7 +4954,6 @@ static void op_addr_rr_post(DisasContext *s, arg_ldst_rr *a,
} else if (!a->w) { } else if (!a->w) {
return; return;
} }
tcg_gen_addi_i32(addr, addr, address_offset);
store_reg(s, a->rn, addr); store_reg(s, a->rn, addr);
} }
@ -4974,7 +4973,7 @@ static bool op_load_rr(DisasContext *s, arg_ldst_rr *a,
* Perform base writeback before the loaded value to * Perform base writeback before the loaded value to
* ensure correct behavior with overlapping index registers. * ensure correct behavior with overlapping index registers.
*/ */
op_addr_rr_post(s, a, addr, 0); op_addr_rr_post(s, a, addr);
store_reg_from_load(s, a->rt, tmp); store_reg_from_load(s, a->rt, tmp);
return true; return true;
} }
@ -4999,7 +4998,7 @@ static bool op_store_rr(DisasContext *s, arg_ldst_rr *a,
gen_aa32_st_i32(s, tmp, addr, mem_idx, mop); gen_aa32_st_i32(s, tmp, addr, mem_idx, mop);
disas_set_da_iss(s, mop, issinfo); disas_set_da_iss(s, mop, issinfo);
op_addr_rr_post(s, a, addr, 0); op_addr_rr_post(s, a, addr);
return true; return true;
} }
@ -5059,7 +5058,7 @@ static bool trans_LDRD_rr(DisasContext *s, arg_ldst_rr *a)
do_ldrd_load(s, addr, a->rt, a->rt + 1); do_ldrd_load(s, addr, a->rt, a->rt + 1);
/* LDRD w/ base writeback is undefined if the registers overlap. */ /* LDRD w/ base writeback is undefined if the registers overlap. */
op_addr_rr_post(s, a, addr, 0); op_addr_rr_post(s, a, addr);
return true; return true;
} }
@ -5111,7 +5110,7 @@ static bool trans_STRD_rr(DisasContext *s, arg_ldst_rr *a)
do_strd_store(s, addr, a->rt, a->rt + 1); do_strd_store(s, addr, a->rt, a->rt + 1);
op_addr_rr_post(s, a, addr, 0); op_addr_rr_post(s, a, addr);
return true; return true;
} }
@ -5147,13 +5146,14 @@ static TCGv_i32 op_addr_ri_pre(DisasContext *s, arg_ldst_ri *a)
} }
static void op_addr_ri_post(DisasContext *s, arg_ldst_ri *a, static void op_addr_ri_post(DisasContext *s, arg_ldst_ri *a,
TCGv_i32 addr, int address_offset) TCGv_i32 addr)
{ {
int address_offset = 0;
if (!a->p) { if (!a->p) {
if (a->u) { if (a->u) {
address_offset += a->imm; address_offset = a->imm;
} else { } else {
address_offset -= a->imm; address_offset = -a->imm;
} }
} else if (!a->w) { } else if (!a->w) {
return; return;
@ -5178,7 +5178,7 @@ static bool op_load_ri(DisasContext *s, arg_ldst_ri *a,
* Perform base writeback before the loaded value to * Perform base writeback before the loaded value to
* ensure correct behavior with overlapping index registers. * ensure correct behavior with overlapping index registers.
*/ */
op_addr_ri_post(s, a, addr, 0); op_addr_ri_post(s, a, addr);
store_reg_from_load(s, a->rt, tmp); store_reg_from_load(s, a->rt, tmp);
return true; return true;
} }
@ -5203,7 +5203,7 @@ static bool op_store_ri(DisasContext *s, arg_ldst_ri *a,
gen_aa32_st_i32(s, tmp, addr, mem_idx, mop); gen_aa32_st_i32(s, tmp, addr, mem_idx, mop);
disas_set_da_iss(s, mop, issinfo); disas_set_da_iss(s, mop, issinfo);
op_addr_ri_post(s, a, addr, 0); op_addr_ri_post(s, a, addr);
return true; return true;
} }
@ -5216,7 +5216,7 @@ static bool op_ldrd_ri(DisasContext *s, arg_ldst_ri *a, int rt2)
do_ldrd_load(s, addr, a->rt, rt2); do_ldrd_load(s, addr, a->rt, rt2);
/* LDRD w/ base writeback is undefined if the registers overlap. */ /* LDRD w/ base writeback is undefined if the registers overlap. */
op_addr_ri_post(s, a, addr, 0); op_addr_ri_post(s, a, addr);
return true; return true;
} }
@ -5245,7 +5245,7 @@ static bool op_strd_ri(DisasContext *s, arg_ldst_ri *a, int rt2)
do_strd_store(s, addr, a->rt, rt2); do_strd_store(s, addr, a->rt, rt2);
op_addr_ri_post(s, a, addr, 0); op_addr_ri_post(s, a, addr);
return true; return true;
} }