No. 23 / project of 147 on the ladder

RV32I JALR official test

introduces — JALR added to the official RV32I pass subset

harden statelast run2026-04-30
signoff
  • DRCNOT RUN
  • LVSNOT RUN
  • antennaNOT RUN

P23 adds the official I-jalr-00.S test to the P22 strict subset.

Status: RTL pass for a 25-test official subset. These are upstream riscv-arch-test sources built in RVTEST_SELFCHECK mode, UART-loaded into the P17 external-memory model, and accepted only when the core reaches the local pass convention.

The Result

Run it:

make -C projects/23_rv32i_jalr_tests/test
groupresult
P22 baseline: no-op/fence, LUI, AUIPC, JAL, immediate ALU, R-type ALUPASS
I-jalr-00.SPASS

Summary: PASS=25 FAIL=0 NOT RUN=0

This is not a full RV32I compliance claim. It is a larger, strict, official subset.

Signature Model

JALR uses the same reference-emulated signature path added for JAL:

  1. Build the official test in normal signature-writing mode.
  2. Run that image through the local RV32I interpreter.
  3. Read the signature words.
  4. Rebuild the test in RVTEST_SELFCHECK mode with those words.

For P23, that path is enabled for I-jal-00.S and I-jalr-00.S.

What This Proves

The official pass set now covers the no-op/fence baseline, LUI, AUIPC, JAL, JALR, all modeled immediate ALU tests, and all modeled R-type ALU tests.

The remaining unclaimed RV32I/I tests are branches, loads, and stores.