…
AArch64 2+2W+poxxs+SYS2
"PodWWXX WseXX PodWWXX WseXX"
Cycle=WseXX PodWWXX WseXX PodWWXX
Relax=WseXX
Safe=PodWW
Prefetch=0:x=F,0:y=W,1:y=F,1:x=W
Com=Ws Ws
Orig=PodWWXX WseXX PodWWXX WseXX
{
0:X0=x; 0:X4=y;
1:X0=y; 1:X4=x;
}
P0 | P1 ;
MOV W1,#2 | MOV W1,#2 ;
LDXR W2,[X0] | LDXR W2,[X0] ;
STXR W3,W1,[X0] | STXR W3,W1,[X0] ;
MOV W5,#1 | MOV W5,#1 ;
LDXR W6,[X4] | LDXR W6,[X4] ;
STXR W7,W5,[X4] | STXR W7,W5,[X4] ;
Observed
y=2; x=1; 1:X7=0; 1:X6=0; 1:X3=0; 1:X2=0; 0:X7=1; 0:X6=0; 0:X3=1; 0:X2=1;
and y=1; x=1; 1:X7=0; 1:X6=0; 1:X3=1; 1:X2=1; 0:X7=0; 0:X6=0; 0:X3=1; 0:X2=1;
and y=2; x=1; 1:X7=0; 1:X6=0; 1:X3=0; 1:X2=1; 0:X7=0; 0:X6=0; 0:X3=1; 0:X2=1;
and y=2; x=2; 1:X7=0; 1:X6=0; 1:X3=0; 1:X2=0; 0:X7=1; 0:X6=0; 0:X3=0; 0:X2=1;
and y=1; x=2; 1:X7=0; 1:X6=0; 1:X3=1; 1:X2=1; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=1;
and y=2; x=2; 1:X7=0; 1:X6=0; 1:X3=0; 1:X2=1; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=1;
and y=2; x=2; 1:X7=1; 1:X6=0; 1:X3=0; 1:X2=0; 0:X7=1; 0:X6=0; 0:X3=0; 0:X2=0;
and y=1; x=2; 1:X7=1; 1:X6=0; 1:X3=1; 1:X2=1; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;
and y=2; x=2; 1:X7=1; 1:X6=0; 1:X3=0; 1:X2=1; 0:X7=0; 0:X6=0; 0:X3=0; 0:X2=0;