journal 2026-04-30

P18 gets LUI and ADDI past the official self-check

p18riscvcompliancedebug

The first P17 failure looked like an architecture bug. It was not.

Tracing I-lui-00.S around the first failing check showed this:

PCinstructionobserved
0x21clui x1,0x9094fcore wrote 0x9094f000
0x220lw x4,0(x2)signature memory returned 0x00000000
0x224beq x4,x1,...fail branch taken

So the core had the right LUI value. The harness was wrong: our RVTEST_SELFCHECK signature file was all zeros after the canary.

P18 changes the P17 batch runner to emit per-test signatures. I-lui-00.S and I-addi-00.S now have generated signatures. The fallback for the rest remains zero-filled, which is intentionally not a full-batch compliance claim.

Command:

make -C projects/18_rv32i_lui_signature_debug/test

Result: PASS

testresult
I-nop-00.SPASS
I-fence-00.SPASS
I-lui-00.SPASS
I-addi-00.SPASS

That gives P18 four official RV32I tests through the P17 UART/external-memory path, including two real instruction classes.