[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