Skip to content

Instantly share code, notes, and snippets.

@dvyukov
Created August 30, 2023 10:51
Show Gist options
  • Save dvyukov/a4d353fd71ac873af9332c1340675b60 to your computer and use it in GitHub Desktop.
Save dvyukov/a4d353fd71ac873af9332c1340675b60 to your computer and use it in GitHub Desktop.
00000000001ee7c0 <absl::Mutex::TryLock()>:
1ee7c0: 55 push %rbp
1ee7c1: 48 89 e5 mov %rsp,%rbp
1ee7c4: 53 push %rbx
1ee7c5: 50 push %rax
1ee7c6: 48 8b 07 mov (%rdi),%rax
1ee7c9: a8 19 test $0x19,%al
1ee7cb: 75 10 jne 1ee7dd <absl::Mutex::TryLock()+0x1d>
1ee7cd: 48 89 c1 mov %rax,%rcx
1ee7d0: 48 83 c9 08 or $0x8,%rcx
1ee7d4: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1ee7d9: b3 01 mov $0x1,%bl
1ee7db: 74 2c je 1ee809 <absl::Mutex::TryLock()+0x49>
1ee7dd: a8 10 test $0x10,%al
1ee7df: 75 04 jne 1ee7e5 <absl::Mutex::TryLock()+0x25>
1ee7e1: 31 db xor %ebx,%ebx
1ee7e3: eb 24 jmp 1ee809 <absl::Mutex::TryLock()+0x49>
1ee7e5: a8 09 test $0x9,%al
1ee7e7: 75 14 jne 1ee7fd <absl::Mutex::TryLock()+0x3d>
1ee7e9: 48 89 c1 mov %rax,%rcx
1ee7ec: 48 83 c9 08 or $0x8,%rcx
1ee7f0: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1ee7f5: 75 06 jne 1ee7fd <absl::Mutex::TryLock()+0x3d>
1ee7f7: 31 f6 xor %esi,%esi
1ee7f9: b3 01 mov $0x1,%bl
1ee7fb: eb 07 jmp 1ee804 <absl::Mutex::TryLock()+0x44>
1ee7fd: be 01 00 00 00 mov $0x1,%esi
1ee802: 31 db xor %ebx,%ebx
1ee804: e8 17 00 00 00 call 1ee820 <absl::PostSynchEvent(void*, int)>
1ee809: 89 d8 mov %ebx,%eax
1ee80b: 48 83 c4 08 add $0x8,%rsp
1ee80f: 5b pop %rbx
1ee810: 5d pop %rbp
1ee811: c3 ret
00000000001eeba0 <absl::Mutex::ReaderTryLock()>:
1eeba0: 55 push %rbp
1eeba1: 48 89 e5 mov %rsp,%rbp
1eeba4: 53 push %rbx
1eeba5: 50 push %rax
1eeba6: 48 8b 07 mov (%rdi),%rax
1eeba9: a8 1c test $0x1c,%al
1eebab: 74 1f je 1eebcc <absl::Mutex::ReaderTryLock()+0x2c>
1eebad: a8 10 test $0x10,%al
1eebaf: 75 07 jne 1eebb8 <absl::Mutex::ReaderTryLock()+0x18>
1eebb1: 31 db xor %ebx,%ebx
1eebb3: e9 01 01 00 00 jmp 1eecb9 <absl::Mutex::ReaderTryLock()+0x119>
1eebb8: be 03 00 00 00 mov $0x3,%esi
1eebbd: a8 0c test $0xc,%al
1eebbf: 0f 84 aa 00 00 00 je 1eec6f <absl::Mutex::ReaderTryLock()+0xcf>
1eebc5: 31 db xor %ebx,%ebx
1eebc7: e9 e8 00 00 00 jmp 1eecb4 <absl::Mutex::ReaderTryLock()+0x114>
1eebcc: 48 89 c1 mov %rax,%rcx
1eebcf: 48 83 c9 01 or $0x1,%rcx
1eebd3: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eebda: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eebdf: b3 01 mov $0x1,%bl
1eebe1: 0f 84 d2 00 00 00 je 1eecb9 <absl::Mutex::ReaderTryLock()+0x119>
1eebe7: 48 8b 07 mov (%rdi),%rax
1eebea: a8 1c test $0x1c,%al
1eebec: 75 bf jne 1eebad <absl::Mutex::ReaderTryLock()+0xd>
1eebee: 48 89 c1 mov %rax,%rcx
1eebf1: 48 83 c9 01 or $0x1,%rcx
1eebf5: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eebfc: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eec01: 0f 84 b2 00 00 00 je 1eecb9 <absl::Mutex::ReaderTryLock()+0x119>
1eec07: 48 8b 07 mov (%rdi),%rax
1eec0a: a8 1c test $0x1c,%al
1eec0c: 75 9f jne 1eebad <absl::Mutex::ReaderTryLock()+0xd>
1eec0e: 48 89 c1 mov %rax,%rcx
1eec11: 48 83 c9 01 or $0x1,%rcx
1eec15: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eec1c: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eec21: 0f 84 92 00 00 00 je 1eecb9 <absl::Mutex::ReaderTryLock()+0x119>
1eec27: 48 8b 07 mov (%rdi),%rax
1eec2a: a8 1c test $0x1c,%al
1eec2c: 0f 85 7b ff ff ff jne 1eebad <absl::Mutex::ReaderTryLock()+0xd>
1eec32: 48 89 c1 mov %rax,%rcx
1eec35: 48 83 c9 01 or $0x1,%rcx
1eec39: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eec40: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eec45: 74 72 je 1eecb9 <absl::Mutex::ReaderTryLock()+0x119>
1eec47: 48 8b 07 mov (%rdi),%rax
1eec4a: a8 1c test $0x1c,%al
1eec4c: 0f 85 5b ff ff ff jne 1eebad <absl::Mutex::ReaderTryLock()+0xd>
1eec52: 48 89 c1 mov %rax,%rcx
1eec55: 48 83 c9 01 or $0x1,%rcx
1eec59: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eec60: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eec65: 74 52 je 1eecb9 <absl::Mutex::ReaderTryLock()+0x119>
1eec67: 48 8b 07 mov (%rdi),%rax
1eec6a: e9 3e ff ff ff jmp 1eebad <absl::Mutex::ReaderTryLock()+0xd>
1eec6f: 48 89 c1 mov %rax,%rcx
1eec72: 48 83 c9 01 or $0x1,%rcx
1eec76: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eec7d: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eec82: b3 01 mov $0x1,%bl
1eec84: be 02 00 00 00 mov $0x2,%esi
1eec89: 74 29 je 1eecb4 <absl::Mutex::ReaderTryLock()+0x114>
1eec8b: 48 8b 07 mov (%rdi),%rax
1eec8e: a8 0c test $0xc,%al
1eec90: 74 0d je 1eec9f <absl::Mutex::ReaderTryLock()+0xff>
1eec92: 31 db xor %ebx,%ebx
1eec94: be 03 00 00 00 mov $0x3,%esi
1eec99: a8 10 test $0x10,%al
1eec9b: 75 17 jne 1eecb4 <absl::Mutex::ReaderTryLock()+0x114>
1eec9d: eb 1a jmp 1eecb9 <absl::Mutex::ReaderTryLock()+0x119>
1eec9f: 48 89 c1 mov %rax,%rcx
1eeca2: 48 83 c9 01 or $0x1,%rcx
1eeca6: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eecad: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eecb2: 75 0e jne 1eecc2 <absl::Mutex::ReaderTryLock()+0x122>
1eecb4: e8 67 fb ff ff call 1ee820 <absl::PostSynchEvent(void*, int)>
1eecb9: 89 d8 mov %ebx,%eax
1eecbb: 48 83 c4 08 add $0x8,%rsp
1eecbf: 5b pop %rbx
1eecc0: 5d pop %rbp
1eecc1: c3 ret
1eecc2: 48 8b 07 mov (%rdi),%rax
1eecc5: a8 0c test $0xc,%al
1eecc7: 75 c9 jne 1eec92 <absl::Mutex::ReaderTryLock()+0xf2>
1eecc9: 48 89 c1 mov %rax,%rcx
1eeccc: 48 83 c9 01 or $0x1,%rcx
1eecd0: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eecd7: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eecdc: 74 d6 je 1eecb4 <absl::Mutex::ReaderTryLock()+0x114>
1eecde: 48 8b 07 mov (%rdi),%rax
1eece1: a8 0c test $0xc,%al
1eece3: 75 ad jne 1eec92 <absl::Mutex::ReaderTryLock()+0xf2>
1eece5: 48 89 c1 mov %rax,%rcx
1eece8: 48 83 c9 01 or $0x1,%rcx
1eecec: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eecf3: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eecf8: 74 ba je 1eecb4 <absl::Mutex::ReaderTryLock()+0x114>
1eecfa: 48 8b 07 mov (%rdi),%rax
1eecfd: a8 0c test $0xc,%al
1eecff: 75 91 jne 1eec92 <absl::Mutex::ReaderTryLock()+0xf2>
1eed01: 48 89 c1 mov %rax,%rcx
1eed04: 48 83 c9 01 or $0x1,%rcx
1eed08: 48 81 c1 00 01 00 00 add $0x100,%rcx
1eed0f: f0 48 0f b1 0f lock cmpxchg %rcx,(%rdi)
1eed14: 74 9e je 1eecb4 <absl::Mutex::ReaderTryLock()+0x114>
1eed16: 48 8b 07 mov (%rdi),%rax
1eed19: e9 74 ff ff ff jmp 1eec92 <absl::Mutex::ReaderTryLock()+0xf2>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment