X86 X000+X001-L "Fre Rfi PodRR Fre Rfi PodRR+Fre Rfi PodRR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock12: | Lock24: ; MOV %atom,$1 | MOV %atom,$1 | MOV %atom,$1 ; XCHG [L_y],%atom | XCHG [L_x],%atom | XCHG [L_b],%atom ; CMP %atom,$0 | CMP %atom,$0 | CMP %atom,$0 ; JE Lock02 | JE Lock14 | JE Lock26 ; Lock01: | Lock13: | Lock25: ; MOV %atom,[L_y] | MOV %atom,[L_x] | MOV %atom,[L_b] ; CMP %atom,$0 | CMP %atom,$0 | CMP %atom,$0 ; JE Lock00 | JE Lock12 | JE Lock24 ; JMP Lock01 | JMP Lock13 | JMP Lock25 ; Lock02: | Lock14: | Lock26: ; MOV [y],$1 | MOV [x],$1 | MOV [b],$1 ; MOV [L_y],$0 | MOV [L_x],$0 | MOV [L_b],$0 ; Lock03: | Lock15: | MOV EAX,[b] ; MOV %atom,$1 | MOV %atom,$1 | Lock27: ; XCHG [L_a],%atom | XCHG [L_c],%atom | MOV %atom,$1 ; CMP %atom,$0 | CMP %atom,$0 | XCHG [L_c],%atom ; JE Lock05 | JE Lock17 | CMP %atom,$0 ; Lock04: | Lock16: | JE Lock29 ; MOV %atom,[L_a] | MOV %atom,[L_c] | Lock28: ; CMP %atom,$0 | CMP %atom,$0 | MOV %atom,[L_c] ; JE Lock03 | JE Lock15 | CMP %atom,$0 ; JMP Lock04 | JMP Lock16 | JE Lock27 ; Lock05: | Lock17: | JMP Lock28 ; MOV [a],$1 | MOV [c],$1 | Lock29: ; MOV [L_a],$0 | MOV [L_c],$0 | MOV EBX,[c] ; MOV EAX,[y] | MOV EAX,[x] | MOV [L_c],$0 ; MOV ECX,[a] | Lock18: | ; Lock06: | MOV %atom,$1 | ; MOV %atom,$1 | XCHG [L_y],%atom | ; XCHG [L_x],%atom | CMP %atom,$0 | ; CMP %atom,$0 | JE Lock20 | ; JE Lock08 | Lock19: | ; Lock07: | MOV %atom,[L_y] | ; MOV %atom,[L_x] | CMP %atom,$0 | ; CMP %atom,$0 | JE Lock18 | ; JE Lock06 | JMP Lock19 | ; JMP Lock07 | Lock20: | ; Lock08: | MOV EBX,[y] | ; MOV EBX,[x] | MOV [L_y],$0 | ; MOV [L_x],$0 | MOV ECX,[c] | ; Lock09: | Lock21: | ; MOV %atom,$1 | MOV %atom,$1 | ; XCHG [L_b],%atom | XCHG [L_a],%atom | ; CMP %atom,$0 | CMP %atom,$0 | ; JE Lock11 | JE Lock23 | ; Lock10: | Lock22: | ; MOV %atom,[L_b] | MOV %atom,[L_a] | ; CMP %atom,$0 | CMP %atom,$0 | ; JE Lock09 | JE Lock21 | ; JMP Lock10 | JMP Lock22 | ; Lock11: | Lock23: | ; MOV EDX,[b] | MOV EDX,[a] | ; MOV [L_b],$0 | MOV [L_a],$0 | ; forall (0:EAX=1 /\ 0:ECX=1 /\ 1:EAX=1 /\ 1:ECX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (0:EDX=1 /\ (1:EBX=1 /\ (1:EDX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EDX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 1:EBX=0 /\ (1:EDX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EDX=0 /\ (2:EBX=1 \/ 2:EBX=0))) \/ 0:EDX=0 /\ (1:EBX=1 /\ (1:EDX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EDX=0 /\ 2:EBX=1) \/ 1:EBX=0 /\ 2:EBX=1 /\ (1:EDX=1 \/ 1:EDX=0))) \/ 0:EBX=0 /\ 1:EBX=1 /\ 1:EDX=1 /\ (0:EDX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 0:EDX=0 /\ (2:EBX=1 \/ 2:EBX=0))))