aboutsummaryrefslogtreecommitdiff
path: root/tcg
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2022-02-05 08:12:30 +0300
committerRichard Henderson <richard.henderson@linaro.org>2022-02-09 08:59:06 +1100
commit6a6bfa3c60ba70e870f8355b9d3508915c90c13a (patch)
tree19e28e410c8a0d486438494d22f24720749bf437 /tcg
parent684db2a0b04ff024d0a275de85982fe5892185d3 (diff)
tcg/sparc: Convert patch_reloc to return bool
Since 7ecd02a06f8, if patch_reloc fails we restart translation with a smaller TB. SPARC had its function signature changed, but not the logic. Replace assert with return false. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tcg')
-rw-r--r--tcg/sparc/tcg-target.c.inc8
1 files changed, 6 insertions, 2 deletions
diff --git a/tcg/sparc/tcg-target.c.inc b/tcg/sparc/tcg-target.c.inc
index ed2f4ecc40..213aba4be6 100644
--- a/tcg/sparc/tcg-target.c.inc
+++ b/tcg/sparc/tcg-target.c.inc
@@ -323,12 +323,16 @@ static bool patch_reloc(tcg_insn_unit *src_rw, int type,
switch (type) {
case R_SPARC_WDISP16:
- assert(check_fit_ptr(pcrel >> 2, 16));
+ if (!check_fit_ptr(pcrel >> 2, 16)) {
+ return false;
+ }
insn &= ~INSN_OFF16(-1);
insn |= INSN_OFF16(pcrel);
break;
case R_SPARC_WDISP19:
- assert(check_fit_ptr(pcrel >> 2, 19));
+ if (!check_fit_ptr(pcrel >> 2, 19)) {
+ return false;
+ }
insn &= ~INSN_OFF19(-1);
insn |= INSN_OFF19(pcrel);
break;