On 2026-09-13 14:08, Richard Henderson wrote: > From: Max Chou <[email protected]> > > tcg_out_movi, tcg_out_call_int, and tcg_out_ldst only check whether a > PC-relative displacement is signed 32-bit before emitting an AUIPC pair. > This does not account for rounding the signed 12-bit immediate, which > can require an unencodable positive 0x80000000 AUIPC contribution. > > Validate the split and emit the pair only when it fits. > > Fixes: dfa8e74f9463 ("tcg/riscv: Add the relocation functions") > Signed-off-by: Max Chou <[email protected]> > [rth: Drop 'ret' local variables; update tcg_out_ldst too.] > Signed-off-by: Richard Henderson <[email protected]> > --- > tcg/riscv64/tcg-target.c.inc | 54 +++++++++++++++++------------------- > 1 file changed, 25 insertions(+), 29 deletions(-) >
Reviewed-by: Max Chou <[email protected]> Thanks, rnax
