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