[riscv-port] RFR: 8276989: riscv: C1 should not allocate x3, which is the gp register
zhengxiaolinX
duke at openjdk.java.net
Fri Nov 12 18:15:27 UTC 2021
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.
Thanks,
Xiaolin
-------------
Commit messages:
- Bug fix: C1 should not allocate x3, which is the gp register
Changes: https://git.openjdk.java.net/riscv-port/pull/3/files
Webrev: https://webrevs.openjdk.java.net/?repo=riscv-port&pr=3&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8276989
Stats: 8 lines in 3 files changed: 2 ins; 3 del; 3 mod
Patch: https://git.openjdk.java.net/riscv-port/pull/3.diff
Fetch: git fetch https://git.openjdk.java.net/riscv-port pull/3/head:pull/3
PR: https://git.openjdk.java.net/riscv-port/pull/3
More information about the riscv-port-dev
mailing list