…
AArch64 MP+poxx+popx+SYS2
"PodWWXX RfeXP PodRRPX FreXX"
Cycle=PodRRPX FreXX PodWWXX RfeXP
Relax=RfeXP FreXX
Safe=PodWW PodRR
Prefetch=0:x=F,0:y=W,1:y=F,1:x=T
Com=Rf Fr
Orig=PodWWXX RfeXP PodRRPX FreXX
{
0:X0=x; 0:X4=y;
1:X1=y; 1:X2=x;
}
P0 | P1 ;
MOV W1,#1 | LDR W0,[X1] ;
LDXR W2,[X0] | LDXR W3,[X2] ;
STXR W3,W1,[X0] | STXR W4,W3,[X2] ;
MOV W5,#1 | ;
LDXR W6,[X4] | ;
STXR W7,W5,[X4] | ;
Observed
y=0; x=0; 1:X4=0; 1:X3=0; 1:X0=0; 0:X7=1; 0:X6=0; 0:X3=1; 0:X2=0;
and y=1; x=0; 1:X4=1; 1:X3=0; 1:X0=1; 0:X7=0; 0:X6=0; 0:X3=1; 0:X2=0;
and y=1; x=0; 1:X4=0; 1:X3=0; 1:X0=1; 0:X7=0; 0:X6=0; 0:X3=1; 0:X2=0;
and y=1; x=0; 1:X4=1; 1:X3=0; 1:X0=0; 0:X7=0; 0:X6=0; 0:X3=1; 0:X2=0;
and y=1; x=0; 1:X4=0; 1:X3=0; 1:X0=0; 0:X7=0; 0:X6=0; 0:X3=1; 0:X2=0;
and y=0; x=1; 1:X4=1; 1:X3=1; 1:X0=0; 0:X7=1; 0:X6=0; 0:X3=0; 0:X2=0;
and y=0; x=1; 1:X4=0; 1:X3=1; 1:X0=0; 0:X7=1; 0:X6=0; 0:X3=0; 0:X2=0;
and y=0; x=1; 1:X4=1; 1:X3=0; 1:X0=0; 0:X7=1; 0:X6=0; 0:X3=0; 0:X2=0;
and y=0; x=1; 1:X4=0; 1:X3=0; 1:X0=0; 0:X7=1; 0:X6=0; 0:X3=0; 0:X2=0;
and y=1; x=1; 1:X4=1; 1:X3=1; 1:X0=1; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;
and y=1; x=1; 1:X4=0; 1:X3=1; 1:X0=1; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;
and y=1; x=1; 1:X4=1; 1:X3=0; 1:X0=1; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;
and y=1; x=1; 1:X4=0; 1:X3=0; 1:X0=1; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;
and y=1; x=1; 1:X4=1; 1:X3=1; 1:X0=0; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;
and y=1; x=1; 1:X4=0; 1:X3=1; 1:X0=0; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;
and y=1; x=1; 1:X4=1; 1:X3=0; 1:X0=0; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;
and y=1; x=1; 1:X4=0; 1:X3=0; 1:X0=0; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;