RFR: 8299844: RISC-V: Implement _onSpinWait intrinsic

Yadong Wang yadongwang at openjdk.org
Wed Jan 11 08:20:18 UTC 2023


Implement _onSpinWait() intrinsic for RISC-V, and it can be implemented by using PAUSE instruction from Zihintpause Extension, which is ratified and a mandatory extension of RVA22U64 (https://github.com/riscv/riscv-profiles/blob/main/profiles.adoc#rva22u64-mandatory-extensions).
Software can use the PAUSE instruction to reduce energy consumption while executing spinwait
code sequences (https://github.com/riscv/riscv-isa-manual/blob/master/src/zihintpause.tex).

Add a test case of test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitRISCV64.java, passed on QEMU.

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

Commit messages:
 - fix whitespace
 - 8299844: RISC-V: Implement _onSpinWait intrinsic

Changes: https://git.openjdk.org/jdk/pull/11921/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11921&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8299844
  Stats: 126 lines in 7 files changed: 119 ins; 0 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/11921.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11921/head:pull/11921

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


More information about the hotspot-dev mailing list