Dump of assembler code for function LWLockRelease: 0x0000000000647d40 <+0>: push %r12 0x0000000000647d42 <+2>: mov %edi,%r12d 0x0000000000647d45 <+5>: shl $0x5,%r12 0x0000000000647d49 <+9>: add 0x4f3a98(%rip),%r12 # 0xb3b7e8 0x0000000000647d50 <+16>: push %rbp 0x0000000000647d51 <+17>: mov %edi,%ebp 0x0000000000647d53 <+19>: push %rbx 0x0000000000647d54 <+20>: mov 0x4f3a86(%rip),%ebx # 0xb3b7e0 0x0000000000647d5a <+26>: nopw 0x0(%rax,%rax,1) 0x0000000000647d60 <+32>: sub $0x1,%ebx 0x0000000000647d63 <+35>: js 0x647ea4 0x0000000000647d69 <+41>: movslq %ebx,%rax 0x0000000000647d6c <+44>: cmp %ebp,0xb3b800(,%rax,4) 0x0000000000647d73 <+51>: jne 0x647d60 0x0000000000647d75 <+53>: mov 0x4f3a65(%rip),%esi # 0xb3b7e0 0x0000000000647d7b <+59>: sub $0x1,%esi 0x0000000000647d7e <+62>: cmp %ebx,%esi 0x0000000000647d80 <+64>: mov %esi,0x4f3a5a(%rip) # 0xb3b7e0 0x0000000000647d86 <+70>: jg 0x647d92 0x0000000000647d88 <+72>: jmp 0x647dad 0x0000000000647d8a <+74>: nopw 0x0(%rax,%rax,1) 0x0000000000647d90 <+80>: mov %ecx,%ebx 0x0000000000647d92 <+82>: lea 0x1(%rbx),%ecx 0x0000000000647d95 <+85>: movslq %ebx,%rax 0x0000000000647d98 <+88>: movslq %ecx,%rdx 0x0000000000647d9b <+91>: cmp %ecx,%esi 0x0000000000647d9d <+93>: mov 0xb3b800(,%rdx,4),%edx 0x0000000000647da4 <+100>: mov %edx,0xb3b800(,%rax,4) 0x0000000000647dab <+107>: jg 0x647d90 0x0000000000647dad <+109>: mov $0x1,%eax 0x0000000000647db2 <+114>: lock xchg %al,(%r12) 0x0000000000647db7 <+119>: test %al,%al 0x0000000000647db9 <+121>: jne 0x647ee4 0x0000000000647dbf <+127>: movzbl 0x2(%r12),%eax 0x0000000000647dc5 <+133>: test %al,%al 0x0000000000647dc7 <+135>: jle 0x647f04 0x0000000000647dcd <+141>: movzbl 0x2(%r12),%eax 0x0000000000647dd3 <+147>: sub $0x1,%eax 0x0000000000647dd6 <+150>: mov %al,0x2(%r12) 0x0000000000647ddb <+155>: mov 0x8(%r12),%rcx 0x0000000000647de0 <+160>: test %rcx,%rcx 0x0000000000647de3 <+163>: je 0x647def 0x0000000000647de5 <+165>: movzbl 0x2(%r12),%eax 0x0000000000647deb <+171>: test %al,%al 0x0000000000647ded <+173>: je 0x647e08 0x0000000000647def <+175>: movb $0x0,(%r12) 0x0000000000647df4 <+180>: pop %rbx 0x0000000000647df5 <+181>: pop %rbp 0x0000000000647df6 <+182>: mov 0x53d25c(%rip),%eax # 0xb85058 0x0000000000647dfc <+188>: pop %r12 0x0000000000647dfe <+190>: sub $0x1,%eax 0x0000000000647e01 <+193>: mov %eax,0x53d251(%rip) # 0xb85058 0x0000000000647e07 <+199>: retq 0x0000000000647e08 <+200>: mov 0x4(%r12),%eax 0x0000000000647e0d <+205>: test %eax,%eax 0x0000000000647e0f <+207>: jne 0x647def 0x0000000000647e11 <+209>: movzbl 0x1(%r12),%eax 0x0000000000647e17 <+215>: test %al,%al 0x0000000000647e19 <+217>: je 0x647def 0x0000000000647e1b <+219>: cmpb $0x2,0x42(%rcx) 0x0000000000647e1f <+223>: jne 0x647f66 0x0000000000647e25 <+229>: mov 0x48(%rcx),%rax 0x0000000000647e29 <+233>: test %rax,%rax 0x0000000000647e2c <+236>: je 0x647f66 0x0000000000647e32 <+242>: mov %rax,%rdx 0x0000000000647e35 <+245>: jmp 0x647e44 0x0000000000647e37 <+247>: mov 0x48(%rdx),%rdx 0x0000000000647e3b <+251>: test %rdx,%rdx 0x0000000000647e3e <+254>: je 0x647f16 0x0000000000647e44 <+260>: movzbl 0x42(%rdx),%esi 0x0000000000647e48 <+264>: mov %rdx,%rax 0x0000000000647e4b <+267>: cmp $0x2,%sil 0x0000000000647e4f <+271>: je 0x647e37 0x0000000000647e51 <+273>: mov 0x48(%rdx),%rdx 0x0000000000647e55 <+277>: test %sil,%sil 0x0000000000647e58 <+280>: je 0x647f16 0x0000000000647e5e <+286>: test %rdx,%rdx 0x0000000000647e61 <+289>: je 0x647f16 0x0000000000647e67 <+295>: cmpb $0x0,0x42(%rdx) 0x0000000000647e6b <+299>: mov $0x1,%edi 0x0000000000647e70 <+304>: jne 0x647e8a 0x0000000000647e72 <+306>: jmpq 0x647f16 0x0000000000647e77 <+311>: cmpb $0x0,0x42(%rdx) 0x0000000000647e7b <+315>: nopl 0x0(%rax,%rax,1) 0x0000000000647e80 <+320>: je 0x647f1b 0x0000000000647e86 <+326>: movzbl 0x42(%rax),%esi 0x0000000000647e8a <+330>: cmp $0x2,%sil 0x0000000000647e8e <+334>: mov $0x0,%eax 0x0000000000647e93 <+339>: cmovne %eax,%edi 0x0000000000647e96 <+342>: mov %rdx,%rax 0x0000000000647e99 <+345>: mov 0x48(%rdx),%rdx 0x0000000000647e9d <+349>: test %rdx,%rdx 0x0000000000647ea0 <+352>: jne 0x647e77 0x0000000000647ea2 <+354>: jmp 0x647f1b 0x0000000000647ea4 <+356>: xor %r8d,%r8d 0x0000000000647ea7 <+359>: mov $0x86fdb0,%ecx 0x0000000000647eac <+364>: mov $0x2e5,%edx 0x0000000000647eb1 <+369>: mov $0x86fd35,%esi 0x0000000000647eb6 <+374>: mov $0x14,%edi 0x0000000000647ebb <+379>: callq 0x71d240 0x0000000000647ec0 <+384>: test %al,%al 0x0000000000647ec2 <+386>: je 0x647d75 0x0000000000647ec8 <+392>: mov %ebp,%esi 0x0000000000647eca <+394>: mov $0x86fd3e,%edi 0x0000000000647ecf <+399>: xor %eax,%eax 0x0000000000647ed1 <+401>: callq 0x71ee30 0x0000000000647ed6 <+406>: mov %eax,%edi 0x0000000000647ed8 <+408>: xor %eax,%eax 0x0000000000647eda <+410>: callq 0x71cf60 0x0000000000647edf <+415>: jmpq 0x647d75 0x0000000000647ee4 <+420>: mov $0x2eb,%edx 0x0000000000647ee9 <+425>: mov $0x86fd35,%esi 0x0000000000647eee <+430>: mov %r12,%rdi 0x0000000000647ef1 <+433>: callq 0x648670 0x0000000000647ef6 <+438>: movzbl 0x2(%r12),%eax 0x0000000000647efc <+444>: test %al,%al 0x0000000000647efe <+446>: jg 0x647dcd 0x0000000000647f04 <+452>: mov 0x4(%r12),%eax 0x0000000000647f09 <+457>: sub $0x1,%eax 0x0000000000647f0c <+460>: mov %eax,0x4(%r12) 0x0000000000647f11 <+465>: jmpq 0x647ddb 0x0000000000647f16 <+470>: mov $0x1,%edi 0x0000000000647f1b <+475>: mov %rdx,0x8(%r12) 0x0000000000647f20 <+480>: cmpb $0x2,0x42(%rax) 0x0000000000647f24 <+484>: movq $0x0,0x48(%rax) 0x0000000000647f2c <+492>: mov $0x0,%eax 0x0000000000647f31 <+497>: cmovne %eax,%edi 0x0000000000647f34 <+500>: mov %dil,0x1(%r12) 0x0000000000647f39 <+505>: movb $0x0,(%r12) 0x0000000000647f3e <+510>: jmp 0x647f43 0x0000000000647f40 <+512>: mov %rbx,%rcx 0x0000000000647f43 <+515>: mov 0x48(%rcx),%rbx 0x0000000000647f47 <+519>: lea 0x10(%rcx),%rdi 0x0000000000647f4b <+523>: movq $0x0,0x48(%rcx) 0x0000000000647f53 <+531>: movb $0x0,0x41(%rcx) 0x0000000000647f57 <+535>: callq 0x606210 0x0000000000647f5c <+540>: test %rbx,%rbx 0x0000000000647f5f <+543>: jne 0x647f40 0x0000000000647f61 <+545>: jmpq 0x647df4 0x0000000000647f66 <+550>: movzbl 0x42(%rcx),%esi 0x0000000000647f6a <+554>: mov 0x48(%rcx),%rdx 0x0000000000647f6e <+558>: mov %rcx,%rax 0x0000000000647f71 <+561>: jmpq 0x647e55 End of assembler dump. Dump of assembler code for function LWLockAcquire: 0x0000000000647fc0 <+0>: push %r15 0x0000000000647fc2 <+2>: push %r14 0x0000000000647fc4 <+4>: push %r13 0x0000000000647fc6 <+6>: mov %esi,%r13d 0x0000000000647fc9 <+9>: push %r12 0x0000000000647fcb <+11>: push %rbp 0x0000000000647fcc <+12>: push %rbx 0x0000000000647fcd <+13>: mov %edi,%ebx 0x0000000000647fcf <+15>: shl $0x5,%rbx 0x0000000000647fd3 <+19>: sub $0x8,%rsp 0x0000000000647fd7 <+23>: add 0x4f380a(%rip),%rbx # 0xb3b7e8 0x0000000000647fde <+30>: cmpl $0x63,0x4f37fb(%rip) # 0xb3b7e0 0x0000000000647fe5 <+37>: mov %edi,0x4(%rsp) 0x0000000000647fe9 <+41>: mov 0x4f3708(%rip),%rbp # 0xb3b6f8 0x0000000000647ff0 <+48>: jg 0x648166 0x0000000000647ff6 <+54>: mov 0x53d05c(%rip),%eax # 0xb85058 0x0000000000647ffc <+60>: lea 0x10(%rbp),%r14 0x0000000000648000 <+64>: xor %r12d,%r12d 0x0000000000648003 <+67>: xor %r15d,%r15d 0x0000000000648006 <+70>: add $0x1,%eax 0x0000000000648009 <+73>: mov %eax,0x53d049(%rip) # 0xb85058 0x000000000064800f <+79>: jmp 0x648073 0x0000000000648011 <+81>: movzbl 0x2(%rbx),%eax 0x0000000000648015 <+85>: test %al,%al 0x0000000000648017 <+87>: jne 0x648024 0x0000000000648019 <+89>: mov 0x4(%rbx),%eax 0x000000000064801c <+92>: test %eax,%eax 0x000000000064801e <+94>: je 0x648157 0x0000000000648024 <+100>: test %rbp,%rbp 0x0000000000648027 <+103>: je 0x648119 0x000000000064802d <+109>: movb $0x1,0x41(%rbp) 0x0000000000648031 <+113>: mov %r13b,0x42(%rbp) 0x0000000000648035 <+117>: movq $0x0,0x48(%rbp) 0x000000000064803d <+125>: mov 0x8(%rbx),%rax 0x0000000000648041 <+129>: test %rax,%rax 0x0000000000648044 <+132>: je 0x648107 0x000000000064804a <+138>: mov 0x10(%rbx),%rax 0x000000000064804e <+142>: mov %rbp,0x48(%rax) 0x0000000000648052 <+146>: mov %rbp,0x10(%rbx) 0x0000000000648056 <+150>: movb $0x0,(%rbx) 0x0000000000648059 <+153>: xor %esi,%esi 0x000000000064805b <+155>: mov %r14,%rdi 0x000000000064805e <+158>: callq 0x6062a0 0x0000000000648063 <+163>: cmpb $0x0,0x41(%rbp) 0x0000000000648067 <+167>: jne 0x648110 0x000000000064806d <+173>: mov $0x1,%r12d 0x0000000000648073 <+179>: mov $0x1,%eax 0x0000000000648078 <+184>: lock xchg %al,(%rbx) 0x000000000064807b <+187>: test %al,%al 0x000000000064807d <+189>: jne 0x6480f0 0x000000000064807f <+191>: test %r12b,%r12b 0x0000000000648082 <+194>: je 0x648088 0x0000000000648084 <+196>: movb $0x1,0x1(%rbx) 0x0000000000648088 <+200>: test %r13d,%r13d 0x000000000064808b <+203>: je 0x648011 0x000000000064808d <+205>: movzbl 0x2(%rbx),%eax 0x0000000000648091 <+209>: test %al,%al 0x0000000000648093 <+211>: jne 0x648024 0x0000000000648095 <+213>: mov 0x4(%rbx),%eax 0x0000000000648098 <+216>: add $0x1,%eax 0x000000000064809b <+219>: mov %eax,0x4(%rbx) 0x000000000064809e <+222>: movb $0x0,(%rbx) 0x00000000006480a1 <+225>: mov 0x4f3739(%rip),%eax # 0xb3b7e0 0x00000000006480a7 <+231>: xor %ebx,%ebx 0x00000000006480a9 <+233>: mov 0x4(%rsp),%ecx 0x00000000006480ad <+237>: add $0x10,%rbp 0x00000000006480b1 <+241>: movslq %eax,%rdx 0x00000000006480b4 <+244>: add $0x1,%eax 0x00000000006480b7 <+247>: test %r15d,%r15d 0x00000000006480ba <+250>: mov %ecx,0xb3b800(,%rdx,4) 0x00000000006480c1 <+257>: mov %eax,0x4f3719(%rip) # 0xb3b7e0 0x00000000006480c7 <+263>: jle 0x6480e0 0x00000000006480c9 <+265>: nopl 0x0(%rax) 0x00000000006480d0 <+272>: mov %rbp,%rdi 0x00000000006480d3 <+275>: add $0x1,%ebx 0x00000000006480d6 <+278>: callq 0x606210 0x00000000006480db <+283>: cmp %r15d,%ebx 0x00000000006480de <+286>: jne 0x6480d0 0x00000000006480e0 <+288>: add $0x8,%rsp 0x00000000006480e4 <+292>: pop %rbx 0x00000000006480e5 <+293>: pop %rbp 0x00000000006480e6 <+294>: pop %r12 0x00000000006480e8 <+296>: pop %r13 0x00000000006480ea <+298>: pop %r14 0x00000000006480ec <+300>: pop %r15 0x00000000006480ee <+302>: retq 0x00000000006480ef <+303>: nop 0x00000000006480f0 <+304>: mov $0x18e,%edx 0x00000000006480f5 <+309>: mov $0x86fd35,%esi 0x00000000006480fa <+314>: mov %rbx,%rdi 0x00000000006480fd <+317>: callq 0x648670 0x0000000000648102 <+322>: jmpq 0x64807f 0x0000000000648107 <+327>: mov %rbp,0x8(%rbx) 0x000000000064810b <+331>: jmpq 0x648052 0x0000000000648110 <+336>: add $0x1,%r15d 0x0000000000648114 <+340>: jmpq 0x648059 0x0000000000648119 <+345>: xor %r8d,%r8d 0x000000000064811c <+348>: mov $0x86fdf9,%ecx 0x0000000000648121 <+353>: mov $0x1b5,%edx 0x0000000000648126 <+358>: mov $0x86fd35,%esi 0x000000000064812b <+363>: mov $0x16,%edi 0x0000000000648130 <+368>: callq 0x71d240 0x0000000000648135 <+373>: test %al,%al 0x0000000000648137 <+375>: je 0x64802d 0x000000000064813d <+381>: mov $0x86fd88,%edi 0x0000000000648142 <+386>: xor %eax,%eax 0x0000000000648144 <+388>: callq 0x71ee30 0x0000000000648149 <+393>: mov %eax,%edi 0x000000000064814b <+395>: xor %eax,%eax 0x000000000064814d <+397>: callq 0x71cf60 0x0000000000648152 <+402>: jmpq 0x64802d 0x0000000000648157 <+407>: movzbl 0x2(%rbx),%eax 0x000000000064815b <+411>: add $0x1,%eax 0x000000000064815e <+414>: mov %al,0x2(%rbx) 0x0000000000648161 <+417>: jmpq 0x64809e 0x0000000000648166 <+422>: xor %r8d,%r8d 0x0000000000648169 <+425>: mov $0x86fdf9,%ecx 0x000000000064816e <+430>: mov $0x170,%edx 0x0000000000648173 <+435>: mov $0x86fd35,%esi 0x0000000000648178 <+440>: mov $0x14,%edi 0x000000000064817d <+445>: callq 0x71d240 0x0000000000648182 <+450>: test %al,%al 0x0000000000648184 <+452>: je 0x647ff6 0x000000000064818a <+458>: mov $0x86fd52,%edi 0x000000000064818f <+463>: xor %eax,%eax 0x0000000000648191 <+465>: callq 0x71ee30 0x0000000000648196 <+470>: mov %eax,%edi 0x0000000000648198 <+472>: xor %eax,%eax 0x000000000064819a <+474>: callq 0x71cf60 0x000000000064819f <+479>: jmpq 0x647ff6 End of assembler dump.