RFR: 8320697: RISC-V: Small refactoring for runtime calls

Feilong Jiang fjiang at openjdk.org
Mon Nov 27 02:48:17 UTC 2023


Hi, please review this refactoring for runtime calls.
Major changes:
1. Unified the runtime calls with the existing MacroAssembler::rt_call. This will remove the duplicate code like `relocate(target.rspec() [&] {...}` to emit uncompressed instructions.
2. Removed MacroAssembler::far_branches and made the call sites default to far branches. `branch_range` is 1MB for riscv, and `ReservedCodeCacheSize` will always bigger than `branch_range` in practice. We should remove this unnecessary check and simplify the code logic.
3. Renamed MacroAssembler::la_patchable with MacroAssembler::auipc making it explicit that this will emit pc-relative addressing code.
4. `far_call` in `rt_call` should use `tmp` instead of the default temporary register `t0`


Testing:
- [x] Tier1-3 tested on hifive unmatched board (release)
- [x] Run non-trivial benchmark workloads (fastdebug)

-------------

Commit messages:
 - RISC-V: Small refactoring for external and runtime calls

Changes: https://git.openjdk.org/jdk/pull/16816/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16816&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8320697
  Stats: 209 lines in 16 files changed: 3 ins; 108 del; 98 mod
  Patch: https://git.openjdk.org/jdk/pull/16816.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16816/head:pull/16816

PR: https://git.openjdk.org/jdk/pull/16816


More information about the hotspot-compiler-dev mailing list