[riscv-port] RFR: 8276989: riscv: C1 should not allocate x3, which is the gp register
fyang at openjdk.java.net
Sun Nov 14 14:09:14 UTC 2021
On Thu, 11 Nov 2021 09:28:13 GMT, zhengxiaolinX <duke at openjdk.java.net> wrote:
> Hi team,
> x3 is a special register on RISCV and we should not use it as a register allocation candidate - if users write JNI programs referencing global variables, where ld could link global reference loading logic to an instruction like 'ld $Rtmp, $offset(x3)', and try to call vm functions, C1 will zap x3's value and causes a crash. It seems C2 doesn't use x3 so we are just aligning the logic with C2 properly.
Changes looks good to me. Thanks for fixing this.
Did you performed any tests for this?
More information about the riscv-port-dev