Skip to content

Instantly share code, notes, and snippets.

@dvyukov
Created August 30, 2023 10:51
Show Gist options
  • Save dvyukov/686a094c5aa357025689764f155e5a29 to your computer and use it in GitHub Desktop.
Save dvyukov/686a094c5aa357025689764f155e5a29 to your computer and use it in GitHub Desktop.
00000000001ef620 <absl::Mutex::TryLock()>:
1ef620: 48 8b 07 mov (%rdi),%rax
1ef623: a8 19 test $0x19,%al
1ef625: 75 10 jne 1ef637 <absl::Mutex::TryLock()+0x17>
1ef627: 48 89 c1 mov %rax,%rcx
1ef62a: 48 83 c9 08 or $0x8,%rcx
1ef62e: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1ef633: 0f 94 c0 sete %al
1ef636: c3 ret
1ef637: a8 10 test $0x10,%al
1ef639: 0f 85 21 00 00 00 jne 1ef660 <absl::Mutex::TryLockSlow()>
1ef63f: 31 c0 xor %eax,%eax
1ef641: c3 ret
00000000001efa20 <absl::Mutex::ReaderTryLock()>:
1efa20: 48 8b 07 mov (%rdi),%rax
1efa23: a8 1c test $0x1c,%al
1efa25: 74 0d je 1efa34 <absl::Mutex::ReaderTryLock()+0x14>
1efa27: a8 10 test $0x10,%al
1efa29: 0f 85 51 00 00 00 jne 1efa80 <absl::Mutex::ReaderTryLockSlow()>
1efa2f: 31 c9 xor %ecx,%ecx
1efa31: 89 c8 mov %ecx,%eax
1efa33: c3 ret
1efa34: ba fc ff ff ff mov $0xfffffffc,%edx
1efa39: 48 89 c1 mov %rax,%rcx
1efa3c: 48 83 c9 01 or $0x1,%rcx
1efa40: 48 81 c1 00 01 00 00 add $0x100,%rcx
1efa47: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1efa4c: b1 01 mov $0x1,%cl
1efa4e: 74 e1 je 1efa31 <absl::Mutex::ReaderTryLock()+0x11>
1efa50: 85 d2 test %edx,%edx
1efa52: 74 d3 je 1efa27 <absl::Mutex::ReaderTryLock()+0x7>
1efa54: 89 c1 mov %eax,%ecx
1efa56: 83 e1 1c and $0x1c,%ecx
1efa59: ff c2 inc %edx
1efa5b: 48 85 c9 test %rcx,%rcx
1efa5e: 74 d9 je 1efa39 <absl::Mutex::ReaderTryLock()+0x19>
1efa60: eb c5 jmp 1efa27 <absl::Mutex::ReaderTryLock()+0x7>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment