…
AArch64 NT-00-ctrl
TTHM=P1:HA
Variant=precise
{
int x=1; int y;
pte_x=(af:0,valid:0);
0:X2=y;
0:X6=pte_x;
0:X9=(oa:phy_x,af:0,valid:1);
1:X2=y; 1:X4=x;
}
P0 | P1 ;
SWP X9,X7,[X6] | LDR W0,[X2] ;
LDR X5,[X6] | DMB LD ;
CMP X5,X7 |L0: ;
B.EQ Lout | LDR W1,[X4] ;
MOV W0,#1 | ;
STR W0,[X2] | ;
Lout: | ;
exists (0:X5=(oa:PA(x)) /\ 1:X0=1 /\ 1:X1=0 /\ [PTE(x)]=(oa:PA(x)) /\ fault(P1:L0,x,MMU:Translation)) \/ (0:X5=(oa:PA(x), af:0) /\ 1:X0=1 /\ 1:X1=0 /\ [PTE(x)]=(oa:PA(x)) /\ fault(P1:L0,x,MMU:Translation))