AArch64 MP+dmb.st+eret { [PTE(z)]=(oa:PA(z), valid:0); 0:X1=x; 0:X3=y; 1:X1=y; 1:X3=x; 1:X4=z; } P0 | P1 | P1.F ; MOV W0,#1 |L0: | LDR W0,[X1] ; STR W0,[X1] | LDR W5,[X4] | ADR X9,L1 ; DMB ST |L1: | MSR ELR_EL1,X9 ; MOV W2,#1 | LDR W2,[X3] | ERET ; STR W2,[X3] | | ; exists (1:X0=1 /\ 1:X2=0)