
PPC PPOCXXA
"SyncdWW Rfe DpCtrldW PosWR Rmw PosWR DpAddrdR Fre"
Com=Rf Fr
{ ok=1;
0:r2=x; 0:r4=y;
1:r2=y; 1:r4=z; 1:r10=x; 1:r12=ok;
}
P0 | P1 ;
li r1,1 | lwz r1,0(r2) ;
stw r1,0(r2) | cmpw r1,r1 ;
sync | beq LC00 ;
li r3,1 | LC00: ;
stw r3,0(r4) | li r3,1 ;
| stw r3,0(r4) ;
| lwarx r5,r0,r4 ;
| li r6,2 ;
| stwcx. r6,r0,r4 ;
| bne Fail1 ;
| lwz r7,0(r4) ;
| xor r8,r7,r7 ;
| lwzx r9,r8,r10 ;
| b Exit1 ;
| Fail1: ;
| li r11,0 ;
| stw r11,0(r12) ;
| Exit1: ;
exists
(ok=1 /\ z=2 /\ 1:r1=1 /\ 1:r9=0)