Commit 8043f027f9 for qemu.org
commit 8043f027f9b74f68961f926de716bd577076aa9c
Author: Richard Henderson <richard.henderson@linaro.org>
Date: Fri Aug 28 05:34:38 2026 -0700
target/s390x: Use tcg_gen_lea_i64 in get_address
While there's no actual shift, use the compound function
to add two registers and an immediate in one step.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index 474d604ed1..ce55edb93a 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -460,8 +460,8 @@ static TCGv_i64 get_address(DisasContext *s, int x2, int b2, int d2)
* displacements early we create larger immediate addends.
*/
if (b2 && x2) {
- tcg_gen_add_i64(tmp, regs[b2], regs[x2]);
- gen_addi_and_wrap_i64(s, tmp, tmp, d2);
+ tcg_gen_lea_i64(tmp, regs[b2], regs[x2], 0, d2);
+ gen_addi_and_wrap_i64(s, tmp, tmp, 0);
} else if (b2) {
gen_addi_and_wrap_i64(s, tmp, regs[b2], d2);
} else if (x2) {