Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Welcome to the RISC-V Port Project!

RISC-V is a free and open-source RISC instruction set architecture (ISA) designed originally at the University of California, Berkeley, and now

developed collaboratively under the sponsorship of RISC-V International. It is already supported by a wide range of language toolchains.

With the increasing availability of RISC-V hardware, a port of the JDK would be valuable. RISC-V ISA is actually a family of related ISAs of which

there are currently four base ISAs [1]Those base ISAs can be combined with a set ofof standard extensions. RV64G and RV32G are defined as

general-purpose ISAs. 

We have ported JDK to a new platform: Linux/RISC-V. This port supports the following subsystems:

  • The template interpreter
  • The C1 (client) JIT compiler
  • The C2 (server) JIT compiler
  • All current mainline GCs, including Z and Shenandoah

Currently, this port only support supports the RV64GV RV64G configuration of RISC-V, which is a the general-purpose 64-bit ISA that includes vector instructions.RISC-V ISA.

In addition, we have experimental support for RVV, RVC, Zba and Zbb RISC-V ISA-extentions. These features need to be explicitly enabled respectively

through: -XX:+UseRVV, -XX:+UseRVC, -XX:+UseZba and -XX:+UseZbb JVM optionsIn the future we may consider supporting other RISC-V configurations such as,

for example, a general-purpose 32-bit configuration (RV32G).

RISC-V port is in JDK mainline, use the regular builds if you need RISC-V JDK.

We are building nightlies have provided cross-build instructions for reference [2] . Hotspot if you want to build RISC-V JDK yourself. Hotspot disassember is also available [3].  And we've provided build instructions for reference [4].

You can try the RISC-V JDK JDK with QEMU User/System mode or hardwares like HiFive Unleashed/Unmatched board.

Have fun and happy hacking (wink)

[1] https://github.com/riscv/riscv-isa-manual

[2] httpshttp://buildscr.openjdk.shipilevjava.net/~fyang/openjdk-jdk-riscvriscv-port/BuildRISCVJDK.md

[3] http://cr.openjdk.java.net/~fyang/hsdis/hsdis-riscv64.so[4] http://cr.openjdk.java.net/~fyang/openjdk-riscv-port/BuildRISCVJDK.md

Project structure

  • master branch - synced automatically with the master branch of openjdk/jdk
  • riscv-port branch - for normal riscv-port project development purpose

Resources

Recent space activity

Recently Updated
typespage, comment, blogpost
max5
hideHeadingtrue
themesocial

Space contributors

Contributors
modelist
scopedescendants
limit5
showLastTimetrue
orderupdate