Page table setup | Code |
---|---|
physical pa1;
u |-> pa1;
v |-> pa1;
w |-> pa1;
x |-> pa1;
y |-> pa1;
z |-> pa1;
*pa1 = 0;
|
|
Thread 0 | |
{R0=extz(0b01, 64), R1=u}
|
|
STR X0,[X1]
|
|
Thread 1 | |
{R0=extz(0b10, 64), R1=v}
|
|
STR X0,[X1]
|
|
Thread 2 | |
{R1=w, R3=x, PSTATE.SP=0b0, PSTATE.EL=0b00}
|
|
LDR X0,[X1]
LDR X2,[X3]
|
|
Thread 3 | |
{R1=y, R3=z, PSTATE.SP=0b0, PSTATE.EL=0b00}
|
|
LDR X0,[X1]
LDR X2,[X3]
|
|
Final State | |
2:X0=1 & 2:X2=2 & 3:X0=2 & 3:X2=1 |
ETS | CoRR2.alias+po forbidden (0 of 1) 2260ms |
strong | CoRR2.alias+po forbidden (0 of 1) 1934ms |
isla-axiomatic
--arch=/path/to/rems-project/isla-snapshots/aarch64.ir
--config=/path/to/rems-project/isla/configs/aarch64_mmu_on.toml
--footprint-config=/path/to/rems-project/isla/configs/aarch64.toml
--model=/path/to/rems-project/systems-isla-tests/models/aarch64_mmu_strong_ETS.cat
--armv8-page-tables
--check-sat-using "(then dt2bv qe simplify solve-eqs bv)"
--remove-uninteresting safe
--dot .
-t /path/to/litmus-tests/litmus-tests-armv8a-system-vmsa/tests/pgtable/HAND/CoRR2.alias+po.litmus.toml
To generate diagrams we use model aarch64_mmu_no_axioms.cat
to get diagrams of forbidden executions.
To generate LaTeX sources of each test, pass --latex=.