Message ID | 20220206103138.36105-4-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | tcg/sparc: Unaligned access for user-only | expand |
On Sun, 6 Feb 2022 at 10:31, Richard Henderson <richard.henderson@linaro.org> wrote: > > 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. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > tcg/sparc/tcg-target.c.inc | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/tcg/sparc/tcg-target.c.inc b/tcg/sparc/tcg-target.c.inc > index f9afb1bffc..f3043e6833 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; > -- > 2.25.1 Reviewed-by: Peter Maydell <peter.maydell@linaro.org> thanks -- PMM
diff --git a/tcg/sparc/tcg-target.c.inc b/tcg/sparc/tcg-target.c.inc index f9afb1bffc..f3043e6833 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;
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. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- tcg/sparc/tcg-target.c.inc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)