Dump of assembler code for function LWLockRelease: 0x0000000000647d40 : push %r12 0x0000000000647d42 : mov %edi,%r12d 0x0000000000647d45 : shl $0x5,%r12 0x0000000000647d49 : add 5192344(%rip),%r12 # 0xb3b7e8 0x0000000000647d50 : push %rbp 0x0000000000647d51 : mov %edi,%ebp 0x0000000000647d53 : push %rbx 0x0000000000647d54 : mov 5192326(%rip),%ebx # 0xb3b7e0 0x0000000000647d5a : nopw 0x0(%rax,%rax,1) 0x0000000000647d60 : sub $0x1,%ebx 0x0000000000647d63 : js 0x647ea4 0x0000000000647d69 : movslq %ebx,%rax 0x0000000000647d6c : cmp %ebp,0xb3b800(,%rax,4) 0x0000000000647d73 : jne 0x647d60 0x0000000000647d75 : mov 5192293(%rip),%esi # 0xb3b7e0 0x0000000000647d7b : sub $0x1,%esi 0x0000000000647d7e : cmp %ebx,%esi 0x0000000000647d80 : mov %esi,5192282(%rip) # 0xb3b7e0 0x0000000000647d86 : jg 0x647d92 0x0000000000647d88 : jmp 0x647dad 0x0000000000647d8a : nopw 0x0(%rax,%rax,1) 0x0000000000647d90 : mov %ecx,%ebx 0x0000000000647d92 : lea 0x1(%rbx),%ecx 0x0000000000647d95 : movslq %ebx,%rax 0x0000000000647d98 : movslq %ecx,%rdx 0x0000000000647d9b : cmp %ecx,%esi 0x0000000000647d9d : mov 0xb3b800(,%rdx,4),%edx 0x0000000000647da4 : mov %edx,0xb3b800(,%rax,4) 0x0000000000647dab : jg 0x647d90 0x0000000000647dad : mov $0x1,%eax 0x0000000000647db2 : lock xchg %al,(%r12) 0x0000000000647db7 : test %al,%al 0x0000000000647db9 : jne 0x647ee4 0x0000000000647dbf : movzbl 0x2(%r12),%eax 0x0000000000647dc5 : test %al,%al 0x0000000000647dc7 : jle 0x647f04 0x0000000000647dcd : movzbl 0x2(%r12),%eax 0x0000000000647dd3 : sub $0x1,%eax 0x0000000000647dd6 : mov %al,0x2(%r12) 0x0000000000647ddb : mov 0x8(%r12),%rcx 0x0000000000647de0 : test %rcx,%rcx 0x0000000000647de3 : je 0x647def 0x0000000000647de5 : movzbl 0x2(%r12),%eax 0x0000000000647deb : test %al,%al 0x0000000000647ded : je 0x647e08 0x0000000000647def : movb $0x0,(%r12) 0x0000000000647df4 : pop %rbx 0x0000000000647df5 : pop %rbp 0x0000000000647df6 : mov 5493340(%rip),%eax # 0xb85058 0x0000000000647dfc : pop %r12 0x0000000000647dfe : sub $0x1,%eax 0x0000000000647e01 : mov %eax,5493329(%rip) # 0xb85058 0x0000000000647e07 : retq 0x0000000000647e08 : mov 0x4(%r12),%eax 0x0000000000647e0d : test %eax,%eax 0x0000000000647e0f : jne 0x647def 0x0000000000647e11 : movzbl 0x1(%r12),%eax 0x0000000000647e17 : test %al,%al 0x0000000000647e19 : je 0x647def 0x0000000000647e1b : cmpb $0x2,0x42(%rcx) 0x0000000000647e1f : jne 0x647f66 0x0000000000647e25 : mov 0x48(%rcx),%rax 0x0000000000647e29 : test %rax,%rax 0x0000000000647e2c : je 0x647f66 0x0000000000647e32 : mov %rax,%rdx 0x0000000000647e35 : jmp 0x647e44 0x0000000000647e37 : mov 0x48(%rdx),%rdx 0x0000000000647e3b : test %rdx,%rdx 0x0000000000647e3e : je 0x647f16 0x0000000000647e44 : movzbl 0x42(%rdx),%esi 0x0000000000647e48 : mov %rdx,%rax 0x0000000000647e4b : cmp $0x2,%sil 0x0000000000647e4f : je 0x647e37 0x0000000000647e51 : mov 0x48(%rdx),%rdx 0x0000000000647e55 : test %sil,%sil 0x0000000000647e58 : je 0x647f16 0x0000000000647e5e : test %rdx,%rdx 0x0000000000647e61 : je 0x647f16 0x0000000000647e67 : cmpb $0x0,0x42(%rdx) 0x0000000000647e6b : mov $0x1,%edi 0x0000000000647e70 : jne 0x647e8a 0x0000000000647e72 : jmpq 0x647f16 0x0000000000647e77 : cmpb $0x0,0x42(%rdx) 0x0000000000647e7b : nopl 0x0(%rax,%rax,1) 0x0000000000647e80 : je 0x647f1b 0x0000000000647e86 : movzbl 0x42(%rax),%esi 0x0000000000647e8a : cmp $0x2,%sil 0x0000000000647e8e : mov $0x0,%eax 0x0000000000647e93 : cmovne %eax,%edi 0x0000000000647e96 : mov %rdx,%rax 0x0000000000647e99 : mov 0x48(%rdx),%rdx 0x0000000000647e9d : test %rdx,%rdx 0x0000000000647ea0 : jne 0x647e77 0x0000000000647ea2 : jmp 0x647f1b 0x0000000000647ea4 : xor %r8d,%r8d 0x0000000000647ea7 : mov $0x86fdb0,%ecx 0x0000000000647eac : mov $0x2e5,%edx 0x0000000000647eb1 : mov $0x86fd35,%esi 0x0000000000647eb6 : mov $0x14,%edi 0x0000000000647ebb : callq 0x71d240 0x0000000000647ec0 : test %al,%al 0x0000000000647ec2 : je 0x647d75 0x0000000000647ec8 : mov %ebp,%esi 0x0000000000647eca : mov $0x86fd3e,%edi 0x0000000000647ecf : xor %eax,%eax 0x0000000000647ed1 : callq 0x71ee30 0x0000000000647ed6 : mov %eax,%edi 0x0000000000647ed8 : xor %eax,%eax 0x0000000000647eda : callq 0x71cf60 0x0000000000647edf : jmpq 0x647d75 0x0000000000647ee4 : mov $0x2eb,%edx 0x0000000000647ee9 : mov $0x86fd35,%esi 0x0000000000647eee : mov %r12,%rdi 0x0000000000647ef1 : callq 0x648670 0x0000000000647ef6 : movzbl 0x2(%r12),%eax 0x0000000000647efc : test %al,%al 0x0000000000647efe : jg 0x647dcd 0x0000000000647f04 : mov 0x4(%r12),%eax 0x0000000000647f09 : sub $0x1,%eax 0x0000000000647f0c : mov %eax,0x4(%r12) 0x0000000000647f11 : jmpq 0x647ddb 0x0000000000647f16 : mov $0x1,%edi 0x0000000000647f1b : mov %rdx,0x8(%r12) 0x0000000000647f20 : cmpb $0x2,0x42(%rax) 0x0000000000647f24 : movq $0x0,0x48(%rax) 0x0000000000647f2c : mov $0x0,%eax 0x0000000000647f31 : cmovne %eax,%edi 0x0000000000647f34 : mov %dil,0x1(%r12) 0x0000000000647f39 : movb $0x0,(%r12) 0x0000000000647f3e : jmp 0x647f43 0x0000000000647f40 : mov %rbx,%rcx 0x0000000000647f43 : mov 0x48(%rcx),%rbx 0x0000000000647f47 : lea 0x10(%rcx),%rdi 0x0000000000647f4b : movq $0x0,0x48(%rcx) 0x0000000000647f53 : movb $0x0,0x41(%rcx) 0x0000000000647f57 : callq 0x606210 0x0000000000647f5c : test %rbx,%rbx 0x0000000000647f5f : jne 0x647f40 0x0000000000647f61 : jmpq 0x647df4 0x0000000000647f66 : movzbl 0x42(%rcx),%esi 0x0000000000647f6a : mov 0x48(%rcx),%rdx 0x0000000000647f6e : mov %rcx,%rax 0x0000000000647f71 : jmpq 0x647e55 0x0000000000647f76 : nopw %cs:0x0(%rax,%rax,1) End of assembler dump. Dump of assembler code for function LWLockAcquire: 0x0000000000647fc0 : push %r15 0x0000000000647fc2 : push %r14 0x0000000000647fc4 : push %r13 0x0000000000647fc6 : mov %esi,%r13d 0x0000000000647fc9 : push %r12 0x0000000000647fcb : push %rbp 0x0000000000647fcc : push %rbx 0x0000000000647fcd : mov %edi,%ebx 0x0000000000647fcf : shl $0x5,%rbx 0x0000000000647fd3 : sub $0x8,%rsp 0x0000000000647fd7 : add 5191690(%rip),%rbx # 0xb3b7e8 0x0000000000647fde : cmpl $0x63,5191675(%rip) # 0xb3b7e0 0x0000000000647fe5 : mov %edi,0x4(%rsp) 0x0000000000647fe9 : mov 5191432(%rip),%rbp # 0xb3b6f8 0x0000000000647ff0 : jg 0x648166 0x0000000000647ff6 : mov 5492828(%rip),%eax # 0xb85058 0x0000000000647ffc : lea 0x10(%rbp),%r14 0x0000000000648000 : xor %r12d,%r12d 0x0000000000648003 : xor %r15d,%r15d 0x0000000000648006 : add $0x1,%eax 0x0000000000648009 : mov %eax,5492809(%rip) # 0xb85058 0x000000000064800f : jmp 0x648073 0x0000000000648011 : movzbl 0x2(%rbx),%eax 0x0000000000648015 : test %al,%al 0x0000000000648017 : jne 0x648024 0x0000000000648019 : mov 0x4(%rbx),%eax 0x000000000064801c : test %eax,%eax 0x000000000064801e : je 0x648157 0x0000000000648024 : test %rbp,%rbp 0x0000000000648027 : je 0x648119 0x000000000064802d : movb $0x1,0x41(%rbp) 0x0000000000648031 : mov %r13b,0x42(%rbp) 0x0000000000648035 : movq $0x0,0x48(%rbp) 0x000000000064803d : mov 0x8(%rbx),%rax 0x0000000000648041 : test %rax,%rax 0x0000000000648044 : je 0x648107 0x000000000064804a : mov 0x10(%rbx),%rax 0x000000000064804e : mov %rbp,0x48(%rax) 0x0000000000648052 : mov %rbp,0x10(%rbx) 0x0000000000648056 : movb $0x0,(%rbx) 0x0000000000648059 : xor %esi,%esi 0x000000000064805b : mov %r14,%rdi 0x000000000064805e : callq 0x6062a0 0x0000000000648063 : cmpb $0x0,0x41(%rbp) 0x0000000000648067 : jne 0x648110 0x000000000064806d : mov $0x1,%r12d 0x0000000000648073 : mov $0x1,%eax 0x0000000000648078 : lock xchg %al,(%rbx) 0x000000000064807b : test %al,%al 0x000000000064807d : jne 0x6480f0 0x000000000064807f : test %r12b,%r12b 0x0000000000648082 : je 0x648088 0x0000000000648084 : movb $0x1,0x1(%rbx) 0x0000000000648088 : test %r13d,%r13d 0x000000000064808b : je 0x648011 0x000000000064808d : movzbl 0x2(%rbx),%eax 0x0000000000648091 : test %al,%al 0x0000000000648093 : jne 0x648024 0x0000000000648095 : mov 0x4(%rbx),%eax 0x0000000000648098 : add $0x1,%eax 0x000000000064809b : mov %eax,0x4(%rbx) 0x000000000064809e : movb $0x0,(%rbx) 0x00000000006480a1 : mov 5191481(%rip),%eax # 0xb3b7e0 0x00000000006480a7 : xor %ebx,%ebx 0x00000000006480a9 : mov 0x4(%rsp),%ecx 0x00000000006480ad : add $0x10,%rbp 0x00000000006480b1 : movslq %eax,%rdx 0x00000000006480b4 : add $0x1,%eax 0x00000000006480b7 : test %r15d,%r15d 0x00000000006480ba : mov %ecx,0xb3b800(,%rdx,4) 0x00000000006480c1 : mov %eax,5191449(%rip) # 0xb3b7e0 0x00000000006480c7 : jle 0x6480e0 0x00000000006480c9 : nopl 0x0(%rax) 0x00000000006480d0 : mov %rbp,%rdi 0x00000000006480d3 : add $0x1,%ebx 0x00000000006480d6 : callq 0x606210 0x00000000006480db : cmp %r15d,%ebx 0x00000000006480de : jne 0x6480d0 0x00000000006480e0 : add $0x8,%rsp 0x00000000006480e4 : pop %rbx 0x00000000006480e5 : pop %rbp 0x00000000006480e6 : pop %r12 0x00000000006480e8 : pop %r13 0x00000000006480ea : pop %r14 0x00000000006480ec : pop %r15 0x00000000006480ee : retq 0x00000000006480ef : nop 0x00000000006480f0 : mov $0x18e,%edx 0x00000000006480f5 : mov $0x86fd35,%esi 0x00000000006480fa : mov %rbx,%rdi 0x00000000006480fd : callq 0x648670 0x0000000000648102 : jmpq 0x64807f 0x0000000000648107 : mov %rbp,0x8(%rbx) 0x000000000064810b : jmpq 0x648052 0x0000000000648110 : add $0x1,%r15d 0x0000000000648114 : jmpq 0x648059 0x0000000000648119 : xor %r8d,%r8d 0x000000000064811c : mov $0x86fdf9,%ecx 0x0000000000648121 : mov $0x1b5,%edx 0x0000000000648126 : mov $0x86fd35,%esi 0x000000000064812b : mov $0x16,%edi 0x0000000000648130 : callq 0x71d240 0x0000000000648135 : test %al,%al 0x0000000000648137 : je 0x64802d 0x000000000064813d : mov $0x86fd88,%edi 0x0000000000648142 : xor %eax,%eax 0x0000000000648144 : callq 0x71ee30 0x0000000000648149 : mov %eax,%edi 0x000000000064814b : xor %eax,%eax 0x000000000064814d : callq 0x71cf60 0x0000000000648152 : jmpq 0x64802d 0x0000000000648157 : movzbl 0x2(%rbx),%eax 0x000000000064815b : add $0x1,%eax 0x000000000064815e : mov %al,0x2(%rbx) 0x0000000000648161 : jmpq 0x64809e 0x0000000000648166 : xor %r8d,%r8d 0x0000000000648169 : mov $0x86fdf9,%ecx 0x000000000064816e : mov $0x170,%edx 0x0000000000648173 : mov $0x86fd35,%esi 0x0000000000648178 : mov $0x14,%edi 0x000000000064817d : callq 0x71d240 0x0000000000648182 : test %al,%al 0x0000000000648184 : je 0x647ff6 0x000000000064818a : mov $0x86fd52,%edi 0x000000000064818f : xor %eax,%eax 0x0000000000648191 : callq 0x71ee30 0x0000000000648196 : mov %eax,%edi 0x0000000000648198 : xor %eax,%eax 0x000000000064819a : callq 0x71cf60 0x000000000064819f : jmpq 0x647ff6 0x00000000006481a4 : nopw 0x0(%rax,%rax,1) 0x00000000006481aa : nopw 0x0(%rax,%rax,1) End of assembler dump.