Skip to content

Instantly share code, notes, and snippets.

@schani
Created November 20, 2012 20:59
Show Gist options
  • Select an option

  • Save schani/4121065 to your computer and use it in GitHub Desktop.

Select an option

Save schani/4121065 to your computer and use it in GitHub Desktop.
0x0000000100217830 <mono_lock_free_queue_dequeue+0>: push %rbp
0x0000000100217831 <mono_lock_free_queue_dequeue+1>: mov %rsp,%rbp
0x0000000100217834 <mono_lock_free_queue_dequeue+4>: push %r15
0x0000000100217836 <mono_lock_free_queue_dequeue+6>: push %r14
0x0000000100217838 <mono_lock_free_queue_dequeue+8>: push %r13
0x000000010021783a <mono_lock_free_queue_dequeue+10>: push %r12
0x000000010021783c <mono_lock_free_queue_dequeue+12>: push %rbx
0x000000010021783d <mono_lock_free_queue_dequeue+13>: sub $0x8,%rsp
0x0000000100217841 <mono_lock_free_queue_dequeue+17>: mov %rdi,%rbx
0x0000000100217844 <mono_lock_free_queue_dequeue+20>: lea 0x30(%rdi),%r14
0x0000000100217848 <mono_lock_free_queue_dequeue+24>: lea 0x10(%rdi),%r15
0x000000010021784c <mono_lock_free_queue_dequeue+28>: callq 0x100217410 <mono_hazard_pointer_get>
0x0000000100217851 <mono_lock_free_queue_dequeue+33>: mov %rax,%r12
0x0000000100217854 <mono_lock_free_queue_dequeue+36>: lea -0x9b(%rip),%r13 # 0x1002177c0 <free_dummy>
0x000000010021785b <mono_lock_free_queue_dequeue+43>: jmpq 0x1002178e2 <mono_lock_free_queue_dequeue+178>
0x0000000100217860 <InterlockedCompareExchangePointer+0>: lock cmpxchg %rcx,0x8(%rbx)
0x0000000100217866 <InterlockedCompareExchangePointer+6>: jmp 0x10021787f <mono_memory_write_barrier>
0x0000000100217868 <InterlockedCompareExchangePointer+8>: cmp $0xfffffffffffffffe,%rcx
0x000000010021786c <InterlockedCompareExchangePointer+12>: je 0x100217990 <mono_lock_free_queue_dequeue+352>
0x0000000100217872 <InterlockedCompareExchangePointer+18>: mov %rdi,%rax
0x0000000100217875 <InterlockedCompareExchangePointer+0>: lock cmpxchg %rcx,(%rbx)
0x000000010021787a <InterlockedCompareExchangePointer+5>: cmp %rdi,%rax
0x000000010021787d <mono_lock_free_queue_dequeue+77>: je 0x10021788c <mono_memory_write_barrier>
0x000000010021787f <mono_memory_write_barrier+0>: sfence
0x0000000100217882 <mono_lock_free_queue_dequeue+82>: movq $0x0,(%r12)
0x000000010021788a <mono_lock_free_queue_dequeue+90>: jmp 0x1002178e2 <mono_lock_free_queue_dequeue+178>
0x000000010021788c <mono_memory_write_barrier+0>: sfence
0x000000010021788f <mono_lock_free_queue_dequeue+95>: movq $0x0,(%r12)
0x0000000100217897 <mono_lock_free_queue_dequeue+103>: cmpq $0x0,(%rdi)
0x000000010021789b <mono_lock_free_queue_dequeue+107>: je 0x1002179b1 <mono_lock_free_queue_dequeue+385>
0x00000001002178a1 <mono_lock_free_queue_dequeue+113>: movq $0xffffffffffffffff,(%rdi)
0x00000001002178a8 <is_dummy+0>: cmp %rdi,%r15
0x00000001002178ab <is_dummy+3>: ja 0x10021793c <is_dummy+12>
0x00000001002178b1 <is_dummy+9>: cmp %rdi,%r14
0x00000001002178b4 <is_dummy+12>: jbe 0x10021793c <is_dummy+12>
0x00000001002178ba <mono_lock_free_queue_dequeue+138>: cmpl $0x0,0x30(%rbx)
0x00000001002178be <mono_lock_free_queue_dequeue+142>: je 0x1002179d2 <mono_lock_free_queue_dequeue+418>
0x00000001002178c4 <mono_lock_free_queue_dequeue+148>: movl $0x0,0x30(%rbx)
0x00000001002178cb <mono_memory_write_barrier+0>: sfence
0x00000001002178ce <mono_memory_write_barrier+3>: mov %r13,%rsi
0x00000001002178d1 <mono_lock_free_queue_dequeue+161>: callq 0x100217290 <mono_thread_hazardous_free_or_queue>
0x00000001002178d6 <mono_lock_free_queue_dequeue+166>: mov %rbx,%rdi
0x00000001002178d9 <mono_lock_free_queue_dequeue+169>: callq 0x100217710 <try_reenqueue_dummy>
0x00000001002178de <mono_lock_free_queue_dequeue+174>: test %eax,%eax
0x00000001002178e0 <mono_lock_free_queue_dequeue+176>: je 0x10021793a <is_dummy+10>
0x00000001002178e2 <mono_lock_free_queue_dequeue+178>: xor %edx,%edx
0x00000001002178e4 <mono_lock_free_queue_dequeue+180>: mov %rbx,%rdi
0x00000001002178e7 <mono_lock_free_queue_dequeue+183>: mov %r12,%rsi
0x00000001002178ea <mono_lock_free_queue_dequeue+186>: callq 0x1002173a0 <get_hazardous_pointer>
0x00000001002178ef <mono_memory_read_barrier+0>: lfence
0x00000001002178f2 <mono_memory_read_barrier+0>: lfence
0x00000001002178f5 <mono_lock_free_queue_dequeue+197>: cmp %rax,(%rbx)
0x00000001002178f8 <mono_lock_free_queue_dequeue+200>: jne 0x10021787f <mono_memory_write_barrier>
0x00000001002178fa <mono_lock_free_queue_dequeue+202>: mov (%rax),%rcx
0x00000001002178fd <mono_lock_free_queue_dequeue+205>: cmp $0xfffffffffffffffd,%rcx
0x0000000100217901 <mono_lock_free_queue_dequeue+209>: je 0x10021794e <mono_lock_free_queue_dequeue+286>
0x0000000100217903 <mono_lock_free_queue_dequeue+211>: cmp $0xffffffffffffffff,%rcx
0x0000000100217907 <mono_lock_free_queue_dequeue+215>: je 0x10021794e <mono_lock_free_queue_dequeue+286>
0x0000000100217909 <mono_lock_free_queue_dequeue+217>: mov %rax,%rdi
0x000000010021790c <mono_lock_free_queue_dequeue+220>: cmp %rdi,%rcx
0x000000010021790f <mono_lock_free_queue_dequeue+223>: je 0x10021796f <mono_lock_free_queue_dequeue+319>
0x0000000100217911 <mono_lock_free_queue_dequeue+225>: mov 0x8(%rbx),%rax
0x0000000100217915 <mono_lock_free_queue_dequeue+229>: cmp %rax,%rdi
0x0000000100217918 <mono_lock_free_queue_dequeue+232>: jne 0x100217868 <InterlockedCompareExchangePointer+8>
0x000000010021791e <mono_lock_free_queue_dequeue+238>: cmp $0xfffffffffffffffe,%rcx
0x0000000100217922 <mono_lock_free_queue_dequeue+242>: jne 0x100217860 <InterlockedCompareExchangePointer>
0x0000000100217928 <mono_lock_free_queue_dequeue+248>: movq $0x0,(%r12)
0x0000000100217930 <is_dummy+0>: cmp %rdi,%r15
0x0000000100217933 <is_dummy+3>: ja 0x1002178d6 <mono_lock_free_queue_dequeue+166>
0x0000000100217935 <is_dummy+5>: cmp %rdi,%r14
0x0000000100217938 <is_dummy+8>: jbe 0x1002178d6 <mono_lock_free_queue_dequeue+166>
0x000000010021793a <is_dummy+10>: xor %edi,%edi
0x000000010021793c <is_dummy+12>: mov %rdi,%rax
0x000000010021793f <mono_lock_free_queue_dequeue+271>: add $0x8,%rsp
0x0000000100217943 <mono_lock_free_queue_dequeue+275>: pop %rbx
0x0000000100217944 <mono_lock_free_queue_dequeue+276>: pop %r12
0x0000000100217946 <mono_lock_free_queue_dequeue+278>: pop %r13
0x0000000100217948 <mono_lock_free_queue_dequeue+280>: pop %r14
0x000000010021794a <mono_lock_free_queue_dequeue+282>: pop %r15
0x000000010021794c <mono_lock_free_queue_dequeue+284>: pop %rbp
0x000000010021794d <mono_lock_free_queue_dequeue+285>: retq
0x000000010021794e <mono_lock_free_queue_dequeue+286>: lea 0x110d3(%rip),%rdi # 0x100228a28
0x0000000100217955 <mono_lock_free_queue_dequeue+293>: lea 0x46d2a(%rip),%rsi # 0x10025e686 <__func__.4460+2062>
0x000000010021795c <mono_lock_free_queue_dequeue+300>: mov $0xe5,%edx
0x0000000100217961 <mono_lock_free_queue_dequeue+305>: lea 0x46d48(%rip),%rcx # 0x10025e6b0 <__func__.4460+2104>
0x0000000100217968 <mono_lock_free_queue_dequeue+312>: xor %al,%al
0x000000010021796a <mono_lock_free_queue_dequeue+314>: callq 0x10021d710 <monoeg_assertion_message>
0x000000010021796f <mono_lock_free_queue_dequeue+319>: lea 0x110b2(%rip),%rdi # 0x100228a28
0x0000000100217976 <mono_lock_free_queue_dequeue+326>: lea 0x46d09(%rip),%rsi # 0x10025e686 <__func__.4460+2062>
0x000000010021797d <mono_lock_free_queue_dequeue+333>: mov $0xe6,%edx
0x0000000100217982 <mono_lock_free_queue_dequeue+338>: lea 0x46d87(%rip),%rcx # 0x10025e710 <__func__.4460+2200>
0x0000000100217989 <mono_lock_free_queue_dequeue+345>: xor %al,%al
0x000000010021798b <mono_lock_free_queue_dequeue+347>: callq 0x10021d710 <monoeg_assertion_message>
0x0000000100217990 <mono_lock_free_queue_dequeue+352>: lea 0x11091(%rip),%rdi # 0x100228a28
0x0000000100217997 <mono_lock_free_queue_dequeue+359>: lea 0x46ce8(%rip),%rsi # 0x10025e686 <__func__.4460+2062>
0x000000010021799e <mono_lock_free_queue_dequeue+366>: mov $0xfe,%edx
0x00000001002179a3 <mono_lock_free_queue_dequeue+371>: lea 0x46d73(%rip),%rcx # 0x10025e71d <__func__.4460+2213>
0x00000001002179aa <mono_lock_free_queue_dequeue+378>: xor %al,%al
0x00000001002179ac <mono_lock_free_queue_dequeue+380>: callq 0x10021d710 <monoeg_assertion_message>
0x00000001002179b1 <mono_lock_free_queue_dequeue+385>: lea 0x11070(%rip),%rdi # 0x100228a28
0x00000001002179b8 <mono_lock_free_queue_dequeue+392>: lea 0x46cc7(%rip),%rsi # 0x10025e686 <__func__.4460+2062>
0x00000001002179bf <mono_lock_free_queue_dequeue+399>: mov $0x110,%edx
0x00000001002179c4 <mono_lock_free_queue_dequeue+404>: lea 0x46d65(%rip),%rcx # 0x10025e730 <__func__.4460+2232>
0x00000001002179cb <mono_lock_free_queue_dequeue+411>: xor %al,%al
0x00000001002179cd <mono_lock_free_queue_dequeue+413>: callq 0x10021d710 <monoeg_assertion_message>
0x00000001002179d2 <mono_lock_free_queue_dequeue+418>: lea 0x1104f(%rip),%rdi # 0x100228a28
0x00000001002179d9 <mono_lock_free_queue_dequeue+425>: lea 0x46ca6(%rip),%rsi # 0x10025e686 <__func__.4460+2062>
0x00000001002179e0 <mono_lock_free_queue_dequeue+432>: mov $0x11e,%edx
0x00000001002179e5 <mono_lock_free_queue_dequeue+437>: lea 0x46d4f(%rip),%rcx # 0x10025e73b <__func__.4460+2243>
0x00000001002179ec <mono_lock_free_queue_dequeue+444>: xor %al,%al
0x00000001002179ee <mono_lock_free_queue_dequeue+446>: callq 0x10021d710 <monoeg_assertion_message>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment