Expand description
RISC-V ELF to JAM PVM transpiler.
Converts RISC-V rv64em ELF binaries into PVM program blobs suitable for execution by the JAR PVM (Appendix A).
Also provides utilities to hand-assemble PVM programs directly.
Modules§
- assembler
- PVM program assembler — hand-craft PVM bytecode programs.
- emitter
- PVM bitmask packer.
- layout
- Shared program data-region layout for transpiler-emitted Images.
- linker
- Linker-based RISC-V ELF to PVM transpilation.
- program
- JAR program blob format — capability manifest.
- riscv
- RISC-V instruction decoder and PVM instruction translator.
Enums§
Functions§
- ensure_
branch_ targets_ are_ block_ starts - Post-pass: ensure all PVM branch targets are basic block starts (ϖ).
- link_
elf - Link a RISC-V rv64em ELF binary into a v3 chain
[
javm_cap::image::Image]. The Image carries the PVM CODE sub-blob in itscodefield, populated endpoints (from any.subsoil.endpointsELF section, or a single PC-0 fallback forsubsoil::entry!-based guests), and standard kernel-ABI slot conventions. - peephole_
eliminate_ dead_ load_ imm - Peephole pass: eliminate dead
load_imminstructions. - peephole_
fuse_ load_ imm_ alu - Peephole pass: fuse
load_imm(51) + ThreeReg ALUintoTwoRegOneImmimmediate form. - peephole_
fuse_ load_ imm_ memory - Peephole pass: fuse
load_imm+ indirect memory op into direct memory op.