RISCV: herd vs. operational models |
The herd model consists in two cat files: riscv-defs.cat and riscv.cat. We also provide an, equivalent, total order version of model total.cat, which follows the ISA document better. The cat.tar archive gathers the above mentioned cat models.
Our test base consists in 7251 tests.
We have 7251 results out of those 7251 tests in the log Herd.
We have 7251 results out of 7251 tests in the log Op.
This table lists “reference” test inspired from the documentation. Column “Kind” is the intended result, “Herd” and “Op” are the current results of the herd and operational models. Beware: work in progress.
Kind | Herd | Op | |
ISA01 | Require | Require | Require |
ISA02 | Allow | Allow | Allow |
ISA03+SB01 | Forbid | Forbid | Forbid |
ISA03+SB02 | Allow | Allow | Allow |
ISA03+SIMPLE | Require | Require | Require |
ISA03+SIMPLE+BIS | Allow | Allow | Allow |
ISA-Rel-Acq | Allow | Forbid | Forbid |
ISA-DEP-ADDR | Forbid | Forbid | Forbid |
ISA-DEP-CTRL | Forbid | Forbid | Forbid |
ISA-DEP-SUCCESS | Forbid | Allow | Allow |
ISA-DEP-SUCCESS-SUCCESS | Forbid | Allow | Allow |
ISA-MP-DEP-SUCCESS | Forbid | Allow | Allow |
ISA-MP-DEP-SUCCESS-SWAP | Forbid | Allow | Allow |
ISA-MP-DEP-SUCCESS-SWAP-SIMPLE | Forbid | Allow | Allow |
ISA-MP-DEP-SUCCESS-SUCCESS | Forbid | Allow | Allow |
ISA-MP-DEP-ADDR-LR-SUCCESS | Forbid | Forbid | Forbid |
ISA-MP-DEP-ADDR-LR-FAIL | Allow | Allow | Allow |
ISA-LB-DEP-ADDR-SUCCESS | Forbid | Forbid | Forbid |
ISA-LB-DEP-ADDR2-SUCCESS | Allow | Allow | Allow |
ISA-LB-DEP-ADDR3-SUCCESS | Forbid | Forbid | Forbid |
ISA-S-DEP-ADDR-SUCCESS | Forbid | Forbid | Forbid |
ISA-LB-DEP-DATA-SUCCESS | Forbid | Allow | Allow |
ISA-S-DEP-DATA-SUCCESS | Forbid | Allow | Allow |
ISA-2+2W-SUCCESS | Allow | Forbid | Forbid |
ISA-MP-DEP-WW-SUCCESS | Allow | Forbid | Forbid |
ISA09 | Allow | Allow | Allow |
ISA09+BIS | Allow | Allow | Allow |
ISA10 | Allow | Allow | Allow |
ISA10+BIS | Forbid | Forbid | Forbid |
ISA10+TER | Allow | Allow | Allow |
ISA11 | Allow | Forbid | Forbid |
ISA11+BIS | Allow | Allow | Allow |
ISA12 | Allow | Allow | Allow |
ISA13 | Forbid | Forbid | Forbid |
ISA13+BIS | Forbid | Forbid | Forbid |
ISA14 | Forbid | Forbid | Forbid |
ISA14+BIS | Forbid | Forbid | Forbid |
ISA14+NEW | Forbid | Forbid | Forbid |
ISA14+TER | Forbid | Forbid | Forbid |
ISA15 | Allow | Allow | Allow |
ISA16 | Forbid | Forbid | Forbid |
ISA17 | Forbid | Allow | Allow |
ISA18 | Forbid | Allow | Allow |
ISA-OLD+BIS | Allow | Forbid | Forbid |
ISA-OLD+TER | Allow | Forbid | Forbid |
ISA-DEP-WW-DATA | Forbid | Forbid | Forbid |
ISA-DEP-WW-ADDR | Forbid | Forbid | Forbid |
ISA-DEP-WW-CTRL | Forbid | Forbid | Forbid |
ISA-DEP-WR-ADDR | Forbid | Forbid | Forbid |
A second table lists a few tests that involve store conditional instructions:
Kind | Herd | Variant | Op | |
Andy22 | — | Forbid | Forbid | Forbid |
Andy25 | — | Forbid | Forbid | Forbid |
Andy26 | — | Forbid | Forbid | Forbid |
Andy27+FILTER | — | Forbid | Forbid | Forbid |
ISA-MP-DEP-ADDR-LR-FAIL | — | Allow | Allow | Allow |
ISA-MP-DEP-ADDR-LR-SUCCESS | — | Forbid | Forbid | Forbid |
LB+addr+addrpx-poxp+VAR | — | Allow | Allow | Allow |
LB+addr+addrpx-poxp+VAR2 | — | Allow | Allow | Allow |
LR-SC-NOT-FENCE | — | Forbid | Forbid | Forbid |
LR-SC-diff-loc1 | — | Forbid | Allow | Allow |
LR-SC-diff-loc2 | — | Forbid | Allow | Allow |
LR-SC-diff-loc3 | — | Forbid | Allow | Forbid |
LR-SC-diff-loc4 | — | Forbid | Allow | Forbid |
MP+Data-XX-Addr | — | Allow | Allow | Allow |
SWAP-LR-SC | — | Require | Require | Require |
SWAP-LR-SC+FULL | — | Require | Require | Require |
Testing .aq.rl on AMO’s (SC) and on LR-SC pairs (RCsc).
Also testing ppo rule 12:
a and b are loads, and there exists some store m between a and b in program order such that m has an address or data dependency on a, and b reads a value written by m
We test: (1) normal usage: a is load; (2) extension: a is store conditonal.
Kind | Herd | Variant | Op | |
AMO-FENCE | — | Forbid | Forbid | Forbid |
LR-SC-NOT-FENCE | — | Forbid | Forbid | Forbid |
PPOLDSTLD01 | — | Forbid | Forbid | Forbid |
PPOLDSTLD02 | — | Forbid | Forbid | Forbid |
R+fence.w.w+fence.tso | — | Allow | Allow | Allow |
R+fence.w.w+posxp-addr | — | Forbid | Forbid | Forbid |
SWAP-LR-SC+FULL | — | Require | Require | Require |
Comparing models |
Comparing with previous versions |
This document was translated from LATEX by HEVEA.