.text .globl _p _p: LFB0: pushq %rbp LCFI0: movq %rsp, %rbp LCFI1: movq _wants_to_enter@GOTPCREL(%rip), %rax movb $1, (%rax) jmp L2 L4: movq _turn@GOTPCREL(%rip), %rax movzbl (%rax), %eax testb %al, %al je L2 movq _wants_to_enter@GOTPCREL(%rip), %rax movb $0, (%rax) nop L3: movq _turn@GOTPCREL(%rip), %rax movzbl (%rax), %eax testb %al, %al jne L3 movq _wants_to_enter@GOTPCREL(%rip), %rax movb $1, (%rax) L2: movq _wants_to_enter@GOTPCREL(%rip), %rax movzbl 1(%rax), %eax testb %al, %al jne L4 movq _counter@GOTPCREL(%rip), %rax movq (%rax), %rax leaq 1(%rax), %rdx movq _counter@GOTPCREL(%rip), %rax movq %rdx, (%rax) movq _turn@GOTPCREL(%rip), %rax movb $1, (%rax) movq _wants_to_enter@GOTPCREL(%rip), %rax movb $0, (%rax) nop popq %rbp LCFI2: ret LFE0: .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 LSCIE1: .long 0 .byte 0x1 .ascii "zR\0" .byte 0x1 .byte 0x78 .byte 0x10 .byte 0x1 .byte 0x10 .byte 0xc .byte 0x7 .byte 0x8 .byte 0x90 .byte 0x1 .align 3 LECIE1: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 .long L$set$1 LASFDE1: .long LASFDE1-EH_frame1 .quad LFB0-. .set L$set$2,LFE0-LFB0 .quad L$set$2 .byte 0 .byte 0x4 .set L$set$3,LCFI0-LFB0 .long L$set$3 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$4,LCFI1-LCFI0 .long L$set$4 .byte 0xd .byte 0x6 .byte 0x4 .set L$set$5,LCFI2-LCFI1 .long L$set$5 .byte 0xc .byte 0x7 .byte 0x8 .align 3 LEFDE1: .subsections_via_symbols