AArch64 ISA2+poxp+addr+addr "PodWWXP Rfe DpAddrdW Rfe DpAddrdR FrePX" Prefetch=0:x=F,0:y=W,1:y=F,1:z=W,2:z=F,2:x=T Com=Rf Rf Fr Orig=PodWWXP Rfe DpAddrdW Rfe DpAddrdR FrePX { ok=1; 0:X0=x; 0:X5=y; 0:X7=ok; 1:X1=y; 1:X4=z; 2:X1=z; 2:X4=x; } P0 | P1 | P2 ; MOV W1,#1 | LDR W0,[X1] | LDR W0,[X1] ; LDXR W2,[X0] | EOR W2,W0,W0 | EOR W2,W0,W0 ; STXR W3,W1,[X0] | MOV W3,#1 | LDR W3,[X4,W2,SXTW] ; CBNZ W3,Fail0 | STR W3,[X4,W2,SXTW] | ; MOV W4,#1 | | ; STR W4,[X5] | | ; B Exit0 | | ; Fail0: | | ; MOV W6,#0 | | ; STR W6,[X7] | | ; Exit0: | | ; exists (ok=1 /\ x=1 /\ 0:X2=0 /\ 1:X0=1 /\ 2:X0=1 /\ 2:X3=0)