
PPC WRC+addr-bigdetour-addr+addr
(*
T1: Wx1
T2: Wy1;lwsync; Wz1;
T3: Rx1;<dep>;Ry0;Rz1;<dep>;Ww1
*)
{
%x0=x;
%y1=y; %z1=z;
%x2=x; %y2=y; %z2=z; %w2=w;
%w3=w; %x3=x;
}
P0 | P1 | P2 | P3 ;
li r1,1 | li r1, 1 | lwz r1,0(%x2) | lwz r1,0(%w3) ;
stw r1,0(%x0) | stw r1,0(%y1) | xor r2,r1,r1 | xor r2,r1,r1 ;
| lwsync | lwzx r3,r2,%y2 | lwzx r3,r2,%x3 ;
| li r2,1 | lwz r4,0(%z2) | ;
| stw r2,0(%z1) | xor r5,r4,r4 | ;
| | addi r5,r5,1 | ;
| | stw r5,0(%w2) | ;
Observed
2:r1=1; 2:r3=0; 2:r4=0; 3:r1=1; 3:r3=0;
and 2:r1=1; 2:r3=1; 2:r4=0; 3:r1=1; 3:r3=0;
and 2:r1=1; 2:r3=0; 2:r4=1; 3:r1=1; 3:r3=0;
and 2:r1=1; 2:r3=1; 2:r4=1; 3:r1=1; 3:r3=0;