aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2025-04-12 21:40:03 +0200
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2025-04-25 17:00:42 +0200
commitd4a785ba30ce6d8acf0206f049fb4a7494e0898a (patch)
treede324978829f70e953941d6966240303de879e91
parent6fa103069d13edb0875242e10dbcc47df19ba412 (diff)
downloadqemu-d4a785ba30ce6d8acf0206f049fb4a7494e0898a.zip
qemu-d4a785ba30ce6d8acf0206f049fb4a7494e0898a.tar.gz
qemu-d4a785ba30ce6d8acf0206f049fb4a7494e0898a.tar.bz2
target/mips: Fix MIPS16e translation
Fix a wrong conversion to gen_op_addr_addi(). The framesize should be added like it was done before. This bug broke booting OpenWrt MIPS32 BE malta Linux system images generated by OpenWrt. Cc: qemu-stable@nongnu.org Fixes: d0b24b7f50e1 ("target/mips: Use gen_op_addr_addi() when possible") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20250412194003.181411-1-hauke@hauke-m.de> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
-rw-r--r--target/mips/tcg/mips16e_translate.c.inc4
1 files changed, 2 insertions, 2 deletions
diff --git a/target/mips/tcg/mips16e_translate.c.inc b/target/mips/tcg/mips16e_translate.c.inc
index a9af8f1..97da345 100644
--- a/target/mips/tcg/mips16e_translate.c.inc
+++ b/target/mips/tcg/mips16e_translate.c.inc
@@ -306,7 +306,7 @@ static void gen_mips16_restore(DisasContext *ctx,
int astatic;
TCGv t0 = tcg_temp_new();
- gen_op_addr_addi(ctx, t0, cpu_gpr[29], -framesize);
+ gen_op_addr_addi(ctx, t0, cpu_gpr[29], framesize);
if (do_ra) {
decr_and_load(ctx, 31, t0);
@@ -386,7 +386,7 @@ static void gen_mips16_restore(DisasContext *ctx,
}
}
- gen_op_addr_addi(ctx, cpu_gpr[29], cpu_gpr[29], -framesize);
+ gen_op_addr_addi(ctx, cpu_gpr[29], cpu_gpr[29], framesize);
}
#if defined(TARGET_MIPS64)