Hi Max, In v2, the change from int32_t to uint32_t is pretty much the opposite of what should have been done, since all of these are logically signed values. I've adjusted all of the encoders to take signed inputs and assert in range.
In the process, I noticed tha the branch range tests were off by one. Now all performed in exactly one place. Finally, tcg_out_ldst needed updates for AUIPC as well. I've tested this lightly so far; full testing on a rather slow riscv machine is still on-going. r~ Max Chou (2): tcg/riscv64: Validate AUIPC relocation range tcg/riscv64: Fall back when AUIPC pairs are out of range Richard Henderson (9): tcg/riscv64: Return tcg_insn_unit from insn encoders tcg/riscv64: Rename sb-type to b-type format tcg/riscv64: Rename uj-type to j-type format tcg/riscv64: Use signed type for encoding immediates tcg/riscv64: Adjust sign of lui immediate in tcg_out_movi tcg/riscv64: Assert immediate in range for [isu]-type insns tcg/riscv64: Return success from encode_jimm tcg/riscv64: Return success from encode_bimm tcg/riscv64: Fix off-by-one in branch range tests tcg/riscv64/tcg-target.c.inc | 230 ++++++++++++++++++----------------- 1 file changed, 121 insertions(+), 109 deletions(-) -- 2.53.0
