Skip to content

Instantly share code, notes, and snippets.

@RichardBarrell
Created April 4, 2013 22:07
Show Gist options
  • Save RichardBarrell/5314813 to your computer and use it in GitHub Desktop.
Save RichardBarrell/5314813 to your computer and use it in GitHub Desktop.
Interesting output from "perf annotate" - it seems that whenever I use a synchronising instruction, "perf record" accidentally attributes the sync instruction's ticks to the instruction immediately *after* the lock or mfence.
Percent | Source code & Disassembly of rev26_2
------------------------------------------------
:
:
:
: Disassembly of section .text:
:
: 0000000000400760 <paws>:
: void paws() {
: #ifdef USE_A_POSIX_BARRIER
: pthread_barrier_wait(&barr);
: #else
: int *vi = &pretend_i_am_a_barrier;
: if (__sync_bool_compare_and_swap(vi, 0, 1)) {
0.15 : 400760: xor %eax,%eax
0.14 : 400762: mov $0x1,%edx
0.01 : 400767: lock cmpxchg %edx,0x2008f9(%rip) # 601068 <pretend_i_am_a_barrier>
36.97 : 40076f: jne 400790 <paws+0x30>
: while (!__sync_bool_compare_and_swap(vi, 2, 0)) {
0.19 : 400771: mov $0x2,%dl
0.21 : 400773: xor %ecx,%ecx
0.01 : 400775: nopl (%rax)
0.20 : 400778: mov %edx,%eax
0.32 : 40077a: lock cmpxchg %ecx,0x2008e6(%rip) # 601068 <pretend_i_am_a_barrier>
42.94 : 400782: jne 400778 <paws+0x18>
0.07 : 400784: repz retq
0.00 : 400786: nopw %cs:0x0(%rax,%rax,1)
: ;
: }
: return;
: } else {
: while (!__sync_bool_compare_and_swap(vi, 1, 2)) {
0.26 : 400790: mov $0x1,%edx
0.23 : 400795: mov $0x2,%ecx
0.04 : 40079a: nopw 0x0(%rax,%rax,1)
0.00 : 4007a0: mov %edx,%eax
0.06 : 4007a2: lock cmpxchg %ecx,0x2008be(%rip) # 601068 <pretend_i_am_a_barrier>
18.16 : 4007aa: jne 4007a0 <paws+0x40>
: ;
: }
: }
: __sync_synchronize();
0.01 : 4007ac: mfence
Percent | Source code & Disassembly of rev26_2
------------------------------------------------
:
:
:
: Disassembly of section .text:
:
: 0000000000400800 <links>:
: #endif
: }
:
: #define NO_OF_ITERATIONS (100*1000*1000)
:
: static void *links(void *context) {
0.00 : 400800: push %r15
0.00 : 400802: push %r14
0.00 : 400804: push %r13
: int i;
: int a, b;
: int nots = 0;
0.00 : 400806: xor %r13d,%r13d
: #endif
: }
:
: #define NO_OF_ITERATIONS (100*1000*1000)
:
: static void *links(void *context) {
0.00 : 400809: push %r12
0.00 : 40080b: push %rbp
0.00 : 40080c: mov $0x1,%ebp
0.00 : 400811: push %rbx
0.00 : 400812: xor %ebx,%ebx
0.00 : 400814: sub $0x8,%rsp
0.00 : 400818: jmp 400833 <links+0x33>
0.00 : 40081a: nopw 0x0(%rax,%rax,1)
: int i;
: int a, b;
: int nots = 0;
: for (i=0; i<NO_OF_ITERATIONS; i++) {
0.21 : 400820: cmp $0x5f5e100,%ebp
0.00 : 400826: je 400907 <links+0x107>
: }
: if ((i>0) && (i%(1000000)==0)) {
: double pc = (double)nots * 1.0e-4;
: printf("Saw %d violations per million. (%.4f%%)\n", nots, pc);
: fflush(stdout);
: nots = 0;
0.00 : 40082c: add $0x1,%rbx
0.00 : 400830: add $0x1,%ebp
: static void *links(void *context) {
: int i;
: int a, b;
: int nots = 0;
: for (i=0; i<NO_OF_ITERATIONS; i++) {
: paws();
0.00 : 400833: xor %eax,%eax
: }
: if ((i>0) && (i%(1000000)==0)) {
: double pc = (double)nots * 1.0e-4;
: printf("Saw %d violations per million. (%.4f%%)\n", nots, pc);
: fflush(stdout);
: nots = 0;
0.29 : 400835: mov %ebx,%r12d
: static void *links(void *context) {
: int i;
: int a, b;
: int nots = 0;
: for (i=0; i<NO_OF_ITERATIONS; i++) {
: paws();
0.00 : 400838: callq 400760 <paws>
: *x = 0;
3.41 : 40083d: mov 0x200804(%rip),%rax # 601048 <x>
26.66 : 400844: movl $0x0,(%rax)
: *y = 0;
1.82 : 40084a: mov 0x2007ef(%rip),%rax # 601040 <y>
0.06 : 400851: movl $0x0,(%rax)
: paws();
1.04 : 400857: xor %eax,%eax
0.00 : 400859: callq 400760 <paws>
: *x = 1;
3.45 : 40085e: mov 0x2007e3(%rip),%rax # 601048 <x>
25.23 : 400865: movl $0x1,(%rax)
: a = *x;
1.64 : 40086b: mov (%rax),%r15d
: b = *y;
1.41 : 40086e: mov 0x2007cb(%rip),%rax # 601040 <y>
0.21 : 400875: mov (%rax),%r14d
: paws();
0.21 : 400878: xor %eax,%eax
0.00 : 40087a: callq 400760 <paws>
: if ((a == 1) && (b == 0) && (*x == 1)) {
2.22 : 40087f: test %r14d,%r14d
0.00 : 400882: jne 40089f <links+0x9f>
0.01 : 400884: cmp $0x1,%r15d
0.00 : 400888: jne 40089f <links+0x9f>
0.01 : 40088a: mov 0x2007b7(%rip),%rax # 601048 <x>
28.42 : 400891: mov (%rax),%eax
: nots++;
1.64 : 400893: cmp $0x1,%eax
0.32 : 400896: sete %al
0.31 : 400899: movzbl %al,%eax
0.28 : 40089c: add %eax,%r13d
: }
: if ((i>0) && (i%(1000000)==0)) {
0.31 : 40089f: test %r12d,%r12d
0.00 : 4008a2: je 40082c <links+0x2c>
0.03 : 4008a4: mov %r12d,%eax
0.00 : 4008a7: mov $0x431bde83,%edx
0.01 : 4008ac: imul %edx
0.40 : 4008ae: mov %r12d,%eax
0.00 : 4008b1: sar $0x1f,%eax
0.34 : 4008b4: sar $0x12,%edx
0.02 : 4008b7: sub %eax,%edx
0.01 : 4008b9: imul $0xf4240,%edx,%edx
0.06 : 4008bf: cmp %edx,%r12d
0.00 : 4008c2: jne 400820 <links+0x20>
: double pc = (double)nots * 1.0e-4;
0.00 : 4008c8: cvtsi2sd %r13d,%xmm0
: }
:
: __extern_always_inline int
: printf (__const char *__restrict __fmt, ...)
: {
: return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
0.00 : 4008cd: mov %r13d,%edx
0.00 : 4008d0: mov $0x400a10,%esi
0.00 : 4008d5: mov $0x1,%edi
0.00 : 4008da: mov $0x1,%eax
: printf("Saw %d violations per million. (%.4f%%)\n", nots, pc);
: fflush(stdout);
: nots = 0;
0.00 : 4008df: xor %r13d,%r13d
: paws();
: if ((a == 1) && (b == 0) && (*x == 1)) {
: nots++;
: }
: if ((i>0) && (i%(1000000)==0)) {
: double pc = (double)nots * 1.0e-4;
0.00 : 4008e2: mulsd 0x156(%rip),%xmm0 # 400a40 <_IO_stdin_used+0x38>
0.00 : 4008ea: callq 4005f0 <__printf_chk@plt>
: printf("Saw %d violations per million. (%.4f%%)\n", nots, pc);
: fflush(stdout);
0.00 : 4008ef: mov 0x20075a(%rip),%rdi # 601050 <__bss_start>
0.00 : 4008f6: callq 4005e0 <fflush@plt>
:
: static void *links(void *context) {
: int i;
: int a, b;
: int nots = 0;
: for (i=0; i<NO_OF_ITERATIONS; i++) {
0.00 : 4008fb: cmp $0x5f5e100,%ebp
0.00 : 400901: jne 40082c <links+0x2c>
: fflush(stdout);
: nots = 0;
: }
: }
: return NULL;
: }
0.00 : 400907: add $0x8,%rsp
0.00 : 40090b: xor %eax,%eax
0.00 : 40090d: pop %rbx
0.00 : 40090e: pop %rbp
0.00 : 40090f: pop %r12
0.00 : 400911: pop %r13
0.00 : 400913: pop %r14
0.00 : 400915: pop %r15
Percent | Source code & Disassembly of rev26_2
------------------------------------------------
:
:
:
: Disassembly of section .text:
:
: 00000000004007b0 <recht>:
: }
: }
: return NULL;
: }
:
: static void *recht(void *context) {
0.00 : 4007b0: push %rbx
0.00 : 4007b1: mov $0x5f5e100,%ebx
0.00 : 4007b6: nopw %cs:0x0(%rax,%rax,1)
: int i;
: for (i=0; i<NO_OF_ITERATIONS; i++) {
: paws();
1.48 : 4007c0: xor %eax,%eax
0.00 : 4007c2: callq 400760 <paws>
: paws();
4.28 : 4007c7: xor %eax,%eax
0.00 : 4007c9: callq 400760 <paws>
: *y = 2;
2.75 : 4007ce: mov 0x20086b(%rip),%rax # 601040 <y>
68.84 : 4007d5: movl $0x2,(%rax)
: *x = 2;
9.22 : 4007db: mov 0x200866(%rip),%rax # 601048 <x>
0.00 : 4007e2: movl $0x2,(%rax)
: paws();
1.43 : 4007e8: xor %eax,%eax
0.00 : 4007ea: callq 400760 <paws>
: return NULL;
: }
:
: static void *recht(void *context) {
: int i;
: for (i=0; i<NO_OF_ITERATIONS; i++) {
12.02 : 4007ef: sub $0x1,%ebx
0.00 : 4007f2: jne 4007c0 <recht+0x10>
: *y = 2;
: *x = 2;
: paws();
: }
: return NULL;
: }
0.00 : 4007f4: xor %eax,%eax
0.00 : 4007f6: pop %rbx
Percent | Source code & Disassembly of libpthread-2.15.so
------------------------------------------------
:
:
:
: Disassembly of section .text:
:
: 000000000000e7f0 <__pthread_disable_asynccancel>:
100.00 : e7f0: test $0x2,%edi
0.00 : e7f6: jne e81f <__pthread_disable_asynccancel+0x2f>
0.00 : e7f8: mov %fs:0x308,%eax
0.00 : e800: mov %eax,%r11d
0.00 : e803: and $0xfffffffd,%r11d
0.00 : e807: lock cmpxchg %r11d,%fs:0x308
0.00 : e812: jne e800 <__pthread_disable_asynccancel+0x10>
0.00 : e814: mov %r11d,%eax
0.00 : e817: and $0xc,%eax
0.00 : e81a: cmp $0x4,%eax
0.00 : e81d: je e820 <__pthread_disable_asynccancel+0x30>
0.00 : e81f: retq
0.00 : e820: mov %fs:0x0,%rdi
0.00 : e829: mov $0xca,%eax
0.00 : e82e: xor %r10,%r10
0.00 : e831: add $0x308,%rdi
0.00 : e838: mov $0x80,%esi
0.00 : e83d: syscall
0.00 : e83f: mov %fs:0x308,%eax
0.00 : e847: jmp e817 <__pthread_disable_asynccancel+0x27>
Percent | Source code & Disassembly of libc-2.15.so
------------------------------------------------
:
:
:
: Disassembly of section .text:
:
: 0000000000079700 <fwide+0x670>:
0.00 : 79700: mov %rbx,-0x20(%rsp)
0.00 : 79705: mov %r12,-0x10(%rsp)
0.00 : 7970a: mov %rdi,%rbx
0.00 : 7970d: mov %r13,-0x8(%rsp)
0.00 : 79712: mov %rbp,-0x18(%rsp)
0.00 : 79717: sub $0x28,%rsp
0.00 : 7971b: mov (%rdi),%eax
0.00 : 7971d: mov %rsi,%r12
0.00 : 79720: mov %rdx,%r13
0.00 : 79723: test $0x10,%ah
0.00 : 79726: je 797b0 <fwide+0x720>
0.00 : 7972c: movq $0xffffffffffffffff,0x90(%rdi)
0.00 : 79737: mov 0xd8(%rbx),%rax
0.00 : 7973e: mov %rbx,%rdi
0.00 : 79741: mov %r13,%rdx
0.00 : 79744: mov %r12,%rsi
0.00 : 79747: callq *0x78(%rax)
0.00 : 7974a: test %rax,%rax
0.00 : 7974d: mov %rax,%rbp
0.00 : 79750: movzwl 0x80(%rbx),%edi
0.00 : 79757: jne 797f0 <fwide+0x760>
0.00 : 7975d: mov 0xc0(%rbx),%edi
0.00 : 79763: mov 0x38(%rbx),%rax
0.00 : 79767: test %edi,%edi
0.00 : 79769: mov %rax,0x18(%rbx)
0.00 : 7976d: mov %rax,0x8(%rbx)
0.00 : 79771: mov %rax,0x10(%rbx)
0.00 : 79775: mov %rax,0x28(%rbx)
0.00 : 79779: mov %rax,0x20(%rbx)
0.00 : 7977d: jle 79820 <fwide+0x790>
0.00 : 79783: mov 0x40(%rbx),%rax
0.00 : 79787: mov %rax,0x30(%rbx)
0.00 : 7978b: mov %rbp,%rax
0.00 : 7978e: mov 0x8(%rsp),%rbx
0.00 : 79793: mov 0x10(%rsp),%rbp
0.00 : 79798: mov 0x18(%rsp),%r12
0.00 : 7979d: mov 0x20(%rsp),%r13
0.00 : 797a2: add $0x28,%rsp
0.00 : 797a6: retq
0.00 : 797a7: nopw 0x0(%rax,%rax,1)
0.00 : 797b0: mov 0x10(%rdi),%rdx
0.00 : 797b4: mov 0x20(%rdi),%rsi
0.00 : 797b8: cmp %rsi,%rdx
0.00 : 797bb: je 79737 <fwide+0x6a7>
0.00 : 797c1: mov 0xd8(%rdi),%rax
0.00 : 797c8: sub %rdx,%rsi
0.00 : 797cb: xor %ebp,%ebp
0.00 : 797cd: mov $0x1,%edx
0.00 : 797d2: callq *0x80(%rax)
0.00 : 797d8: cmp $0xffffffffffffffff,%rax
0.00 : 797dc: je 7978b <fwide+0x6fb>
0.00 : 797de: mov %rax,0x90(%rbx)
0.00 : 797e5: jmpq 79737 <fwide+0x6a7>
0.00 : 797ea: nopw 0x0(%rax,%rax,1)
0.00 : 797f0: test %di,%di
0.00 : 797f3: je 7975d <fwide+0x6cd>
0.00 : 797f9: movzwl %di,%edi
0.00 : 797fc: mov %eax,%edx
0.00 : 797fe: mov %r12,%rsi
0.00 : 79801: sub $0x1,%edi
0.00 : 79804: callq 7c6b0 <_IO_adjust_column>
0.00 : 79809: add $0x1,%eax
0.00 : 7980c: mov %ax,0x80(%rbx)
0.00 : 79813: jmpq 7975d <fwide+0x6cd>
0.00 : 79818: nopl 0x0(%rax,%rax,1)
100.00 : 79820: testl $0x202,(%rbx)
0.00 : 79826: jne 79787 <fwide+0x6f7>
0.00 : 7982c: jmpq 79783 <fwide+0x6f3>
Percent | Source code & Disassembly of ld-2.15.so
------------------------------------------------
:
:
:
: Disassembly of section .text:
:
: 0000000000009ae0 <_dl_rtld_di_serinfo+0xbc0>:
0.00 : 9ae0: push %r15
0.00 : 9ae2: mov %rdx,%r11
0.00 : 9ae5: push %r14
0.00 : 9ae7: push %r13
0.00 : 9ae9: mov %rsi,%r13
0.00 : 9aec: push %r12
0.00 : 9aee: push %rbp
0.00 : 9aef: push %rbx
0.00 : 9af0: sub $0x98,%rsp
0.00 : 9af7: mov 0x8(%r9),%ebp
0.00 : 9afb: mov 0xd8(%rsp),%rax
0.00 : 9b03: mov %r8,0x30(%rsp)
0.00 : 9b08: mov 0xd0(%rsp),%rbx
0.00 : 9b10: mov 0xe8(%rsp),%r14
0.00 : 9b18: mov %rdi,0x68(%rsp)
0.00 : 9b1d: mov %rcx,0x78(%rsp)
0.00 : 9b22: mov %rax,0x58(%rsp)
0.00 : 9b27: mov 0xe0(%rsp),%eax
0.00 : 9b2e: mov %eax,0x84(%rsp)
0.00 : 9b35: mov 0xf0(%rsp),%eax
0.00 : 9b3c: mov %eax,0x8c(%rsp)
0.00 : 9b43: mov %rsi,%r15
0.00 : 9b46: mov %esi,%r8d
0.00 : 9b49: mov (%r9),%r12
0.00 : 9b4c: shr $0x6,%r15
0.00 : 9b50: mov $0xffffffff,%r9d
0.00 : 9b56: and $0x3f,%r8d
0.00 : 9b5a: mov (%r12,%rbx,8),%rax
0.00 : 9b5e: movl $0x0,0x80(%rsp)
0.00 : 9b69: movq $0x0,0x50(%rsp)
0.00 : 9b72: mov 0x28(%rax),%rsi
0.00 : 9b76: cmp %r14,%rsi
0.00 : 9b79: mov %rsi,0x60(%rsp)
0.00 : 9b7e: je 9c80 <_dl_rtld_di_serinfo+0xd60>
0.00 : 9b84: testb $0x2,0x8c(%rsp)
0.00 : 9b8c: je 9b9b <_dl_rtld_di_serinfo+0xc7b>
0.00 : 9b8e: testb $0x3,0x314(%rsi)
0.00 : 9b95: je 9c80 <_dl_rtld_di_serinfo+0xd60>
0.00 : 9b9b: testb $0x20,0x315(%rsi)
0.00 : 9ba2: jne 9c80 <_dl_rtld_di_serinfo+0xd60>
0.00 : 9ba8: testb $0x8,0x218ff1(%rip) # 222ba0 <_rtld_global_ro>
0.00 : 9baf: jne a103 <_dl_rtld_di_serinfo+0x11e3>
0.00 : 9bb5: mov 0x2ec(%rsi),%eax
0.00 : 9bbb: test %eax,%eax
0.00 : 9bbd: je 9c80 <_dl_rtld_di_serinfo+0xd60>
0.00 : 9bc3: mov 0x70(%rsi),%rdx
0.00 : 9bc7: mov 0x8(%rdx),%rdx
0.00 : 9bcb: mov %rdx,0x28(%rsp)
0.00 : 9bd0: mov 0x68(%rsi),%rdx
0.00 : 9bd4: mov 0x8(%rdx),%rdx
0.00 : 9bd8: mov %rdx,0x70(%rsp)
0.00 : 9bdd: mov 0x2f8(%rsi),%rdx
0.00 : 9be4: test %rdx,%rdx
0.00 : 9be7: je a2bf <_dl_rtld_di_serinfo+0x139f>
0.00 : 9bed: mov 0x2f0(%rsi),%ecx
0.00 : 9bf3: and %r15d,%ecx
0.00 : 9bf6: mov (%rdx,%rcx,8),%rdi
100.00 : 9bfa: mov 0x2f4(%rsi),%ecx
0.00 : 9c00: mov %r13,%rdx
0.00 : 9c03: shr %cl,%rdx
0.00 : 9c06: mov %rdx,%rcx
0.00 : 9c09: mov %rdi,%rdx
0.00 : 9c0c: shr %cl,%rdx
0.00 : 9c0f: mov %r8d,%ecx
0.00 : 9c12: shr %cl,%rdi
0.00 : 9c15: and %rdi,%rdx
0.00 : 9c18: and $0x1,%edx
0.00 : 9c1b: jne a212 <_dl_rtld_di_serinfo+0x12f2>
0.00 : 9c21: movl $0x0,0x88(%rsp)
0.00 : 9c2c: cmpl $0x1,0x80(%rsp)
0.00 : 9c34: je 9ca8 <_dl_rtld_di_serinfo+0xd88>
0.00 : 9c36: mov 0x58(%rsp),%rax
0.00 : 9c3b: test %rax,%rax
0.00 : 9c3e: je 9c80 <_dl_rtld_di_serinfo+0xd60>
0.00 : 9c40: mov 0x10(%rax),%rdi
0.00 : 9c44: test %rdi,%rdi
0.00 : 9c47: je 9c80 <_dl_rtld_di_serinfo+0xd60>
0.00 : 9c49: mov 0x60(%rsp),%rsi
0.00 : 9c4e: mov %r8d,0x8(%rsp)
0.00 : 9c53: mov %r9,0x18(%rsp)
0.00 : 9c58: mov %r11,0x10(%rsp)
0.00 : 9c5d: callq 10440 <_dl_debug_state+0x910>
0.00 : 9c62: test %eax,%eax
0.00 : 9c64: mov 0x8(%rsp),%r8d
0.00 : 9c69: mov 0x18(%rsp),%r9
0.00 : 9c6e: mov 0x10(%rsp),%r11
0.00 : 9c73: jne a155 <_dl_rtld_di_serinfo+0x1235>
0.00 : 9c79: nopl 0x0(%rax)
0.00 : 9c80: add $0x1,%rbx
0.00 : 9c84: cmp %rbx,%rbp
0.00 : 9c87: ja 9b5a <_dl_rtld_di_serinfo+0xc3a>
0.00 : 9c8d: xor %eax,%eax
0.00 : 9c8f: add $0x98,%rsp
0.00 : 9c96: pop %rbx
0.00 : 9c97: pop %rbp
0.00 : 9c98: pop %r12
0.00 : 9c9a: pop %r13
0.00 : 9c9c: pop %r14
0.00 : 9c9e: pop %r15
0.00 : 9ca0: retq
0.00 : 9ca1: nopl 0x0(%rax)
0.00 : 9ca8: mov 0x50(%rsp),%rax
0.00 : 9cad: test %rax,%rax
0.00 : 9cb0: je 9c36 <_dl_rtld_di_serinfo+0xd16>
0.00 : 9cb2: movzbl 0x4(%rax),%edx
0.00 : 9cb6: shr $0x4,%dl
0.00 : 9cb9: cmp $0x2,%dl
0.00 : 9cbc: je 9cf0 <_dl_rtld_di_serinfo+0xdd0>
0.00 : 9cbe: cmp $0xa,%dl
0.00 : 9cc1: je 9d20 <_dl_rtld_di_serinfo+0xe00>
0.00 : 9cc3: cmp $0x1,%dl
0.00 : 9cc6: je 9cfe <_dl_rtld_di_serinfo+0xdde>
0.00 : 9cc8: mov 0x88(%rsp),%eax
0.00 : 9ccf: test %eax,%eax
0.00 : 9cd1: je 9c36 <_dl_rtld_di_serinfo+0xd16>
0.00 : 9cd7: add $0x1,%rbx
0.00 : 9cdb: cmp %rbx,%rbp
0.00 : 9cde: ja 9b5a <_dl_rtld_di_serinfo+0xc3a>
0.00 : 9ce4: jmp 9c8d <_dl_rtld_di_serinfo+0xd6d>
0.00 : 9ce6: nopw %cs:0x0(%rax,%rax,1)
0.00 : 9cf0: mov 0x218eee(%rip),%ecx # 222be4 <_rtld_global_ro+0x44>
0.00 : 9cf6: test %ecx,%ecx
0.00 : 9cf8: jne a15d <_dl_rtld_di_serinfo+0x123d>
0.00 : 9cfe: mov %rax,0x40(%rsp)
0.00 : 9d03: mov 0x30(%rsp),%rcx
0.00 : 9d08: mov %rax,(%rcx)
0.00 : 9d0b: mov 0x60(%rsp),%rax
0.00 : 9d10: mov %rax,0x8(%rcx)
0.00 : 9d14: mov $0x1,%eax
0.00 : 9d19: jmpq 9c8f <_dl_rtld_di_serinfo+0xd6f>
0.00 : 9d1e: xchg %ax,%ax
0.00 : 9d20: mov %rax,0x40(%rsp)
0.00 : 9d25: mov 0x60(%rsp),%rax
0.00 : 9d2a: lea 0x21930f(%rip),%rdx # 223040 <_rtld_global>
0.00 : 9d31: mov 0x30(%rax),%rax
0.00 : 9d35: lea (%rax,%rax,8),%rax
0.00 : 9d39: shl $0x4,%rax
0.00 : 9d3d: lea 0x20(%rdx,%rax,1),%r12
0.00 : 9d42: mov %r12,%rdi
0.00 : 9d45: callq *0x21a1f5(%rip) # 223f40 <_rtld_global+0xf00>
0.00 : 9d4b: mov 0x28(%r12),%rdx
0.00 : 9d50: mov 0x30(%r12),%rbp
0.00 : 9d55: test %rdx,%rdx
0.00 : 9d58: mov %rdx,0x38(%rsp)
0.00 : 9d5d: je a0a0 <_dl_rtld_di_serinfo+0x1180>
0.00 : 9d63: mov %r13,%rax
0.00 : 9d66: xor %edx,%edx
0.00 : 9d68: lea -0x2(%rbp),%rcx
0.00 : 9d6c: div %rbp
0.00 : 9d6f: mov %r13,%rax
0.00 : 9d72: mov %rcx,0x28(%rsp)
0.00 : 9d77: mov %r12,0x48(%rsp)
0.00 : 9d7c: mov %r13,%r12
0.00 : 9d7f: mov %rbp,%r13
0.00 : 9d82: mov %rdx,%rbx
0.00 : 9d85: xor %edx,%edx
0.00 : 9d87: div %rcx
0.00 : 9d8a: lea 0x1(%rdx),%rcx
0.00 : 9d8e: mov %rcx,%r8
0.00 : 9d91: mov %rcx,%rbp
0.00 : 9d94: shl $0x5,%r8
0.00 : 9d98: lea 0x0(%rbp,%rbx,1),%r14
0.00 : 9d9d: shl $0x5,%rbx
0.00 : 9da1: add 0x38(%rsp),%rbx
0.00 : 9da6: jmp 9dc8 <_dl_rtld_di_serinfo+0xea8>
0.00 : 9da8: nopl 0x0(%rax,%rax,1)
0.00 : 9db0: test %r15,%r15
0.00 : 9db3: je 9e48 <_dl_rtld_di_serinfo+0xf28>
0.00 : 9db9: add %r8,%rbx
0.00 : 9dbc: cmp %r14,%r13
0.00 : 9dbf: lea (%r14,%rbp,1),%rax
0.00 : 9dc3: jbe 9e38 <_dl_rtld_di_serinfo+0xf18>
0.00 : 9dc5: mov %rax,%r14
0.00 : 9dc8: mov (%rbx),%eax
0.00 : 9dca: mov 0x8(%rbx),%r15
0.00 : 9dce: cmp %r12,%rax
0.00 : 9dd1: jne 9db0 <_dl_rtld_di_serinfo+0xe90>
0.00 : 9dd3: mov 0x68(%rsp),%rsi
0.00 : 9dd8: mov %r15,%rdi
0.00 : 9ddb: mov %r8,0x8(%rsp)
0.00 : 9de0: callq 188d0 <realloc+0x1de0>
0.00 : 9de5: test %eax,%eax
0.00 : 9de7: mov 0x8(%rsp),%r8
0.00 : 9dec: jne 9db0 <_dl_rtld_di_serinfo+0xe90>
0.00 : 9dee: testb $0x2,0x8c(%rsp)
0.00 : 9df6: mov 0x48(%rsp),%r12
0.00 : 9dfb: mov 0x60(%rsp),%rax
0.00 : 9e00: jne 9e0f <_dl_rtld_di_serinfo+0xeef>
0.00 : 9e02: mov 0x10(%rbx),%rax
0.00 : 9e06: mov %rax,0x40(%rsp)
0.00 : 9e0b: mov 0x18(%rbx),%rax
0.00 : 9e0f: mov 0x30(%rsp),%rdx
0.00 : 9e14: mov %r12,%rdi
0.00 : 9e17: mov %rax,0x8(%rdx)
0.00 : 9e1b: mov 0x40(%rsp),%rax
0.00 : 9e20: mov %rax,(%rdx)
0.00 : 9e23: callq *0x21a11f(%rip) # 223f48 <_rtld_global+0xf08>
0.00 : 9e29: mov $0x1,%eax
0.00 : 9e2e: jmpq 9c8f <_dl_rtld_di_serinfo+0xd6f>
0.00 : 9e33: nopl 0x0(%rax,%rax,1)
0.00 : 9e38: mov %r14,%rbx
0.00 : 9e3b: sub %r13,%rbx
0.00 : 9e3e: jmpq 9d98 <_dl_rtld_di_serinfo+0xe78>
0.00 : 9e43: nopl 0x0(%rax,%rax,1)
0.00 : 9e48: mov %r13,%rbp
0.00 : 9e4b: mov %r12,%r13
0.00 : 9e4e: mov 0x48(%rsp),%r12
0.00 : 9e53: lea 0x0(%rbp,%rbp,2),%rdx
0.00 : 9e58: mov 0x38(%r12),%rax
0.00 : 9e5d: shl $0x2,%rax
0.00 : 9e61: cmp %rax,%rdx
0.00 : 9e64: ja 9f65 <_dl_rtld_di_serinfo+0x1045>
0.00 : 9e6a: mov %fs:0x4c,%eax
0.00 : 9e72: test %eax,%eax
0.00 : 9e74: jne a1f3 <_dl_rtld_di_serinfo+0x12d3>
0.00 : 9e7a: lea 0x1(%rbp),%rdi
0.00 : 9e7e: callq 104b0 <_dl_debug_state+0x980>
0.00 : 9e83: mov $0x20,%edi
0.00 : 9e88: mov %rax,%rsi
0.00 : 9e8b: mov %rax,%rbx
0.00 : 9e8e: callq ac0 <calloc@plt>
0.00 : 9e93: test %rax,%rax
0.00 : 9e96: mov %rax,%r15
0.00 : 9e99: je a1cd <_dl_rtld_di_serinfo+0x12ad>
0.00 : 9e9f: lea -0x2(%rbx),%rcx
0.00 : 9ea3: test %rbp,%rbp
0.00 : 9ea6: mov %rcx,0x28(%rsp)
0.00 : 9eab: je 9f3d <_dl_rtld_di_serinfo+0x101d>
0.00 : 9eb1: mov 0x38(%rsp),%rsi
0.00 : 9eb6: xor %r8d,%r8d
0.00 : 9eb9: mov %r12,%r14
0.00 : 9ebc: nopl 0x0(%rax)
0.00 : 9ec0: mov 0x8(%rsi),%r9
0.00 : 9ec4: test %r9,%r9
0.00 : 9ec7: je 9f2d <_dl_rtld_di_serinfo+0x100d>
0.00 : 9ec9: mov (%rsi),%r10d
0.00 : 9ecc: xor %edx,%edx
0.00 : 9ece: mov 0x18(%rsi),%r11
0.00 : 9ed2: mov 0x10(%rsi),%r12
0.00 : 9ed6: mov %r10d,%edi
0.00 : 9ed9: mov %rdi,%rax
0.00 : 9edc: div %rbx
0.00 : 9edf: mov %rdi,%rax
0.00 : 9ee2: mov %rdx,%rcx
0.00 : 9ee5: xor %edx,%edx
0.00 : 9ee7: divq 0x28(%rsp)
0.00 : 9eec: add $0x1,%rdx
0.00 : 9ef0: mov %rdx,%rdi
0.00 : 9ef3: shl $0x5,%rdi
0.00 : 9ef7: mov %rcx,%rax
0.00 : 9efa: shl $0x5,%rax
0.00 : 9efe: add %r15,%rax
0.00 : 9f01: jmp 9f17 <_dl_rtld_di_serinfo+0xff7>
0.00 : 9f03: nopl 0x0(%rax,%rax,1)
0.00 : 9f08: add %rdx,%rcx
0.00 : 9f0b: add %rdi,%rax
0.00 : 9f0e: cmp %rcx,%rbx
0.00 : 9f11: jbe a098 <_dl_rtld_di_serinfo+0x1178>
0.00 : 9f17: cmpq $0x0,0x8(%rax)
0.00 : 9f1c: jne 9f08 <_dl_rtld_di_serinfo+0xfe8>
0.00 : 9f1e: mov %r10d,(%rax)
0.00 : 9f21: mov %r9,0x8(%rax)
0.00 : 9f25: mov %r12,0x10(%rax)
0.00 : 9f29: mov %r11,0x18(%rax)
0.00 : 9f2d: add $0x1,%r8
0.00 : 9f31: add $0x20,%rsi
0.00 : 9f35: cmp %rbp,%r8
0.00 : 9f38: jne 9ec0 <_dl_rtld_di_serinfo+0xfa0>
0.00 : 9f3a: mov %r14,%r12
0.00 : 9f3d: mov 0x38(%rsp),%rdi
0.00 : 9f42: mov %rbx,%rbp
0.00 : 9f45: callq *0x40(%r12)
0.00 : 9f4a: mov 0x21907f(%rip),%rax # 222fd0 <__libc_enable_secure+0x1c0>
0.00 : 9f51: mov %rbx,0x30(%r12)
0.00 : 9f56: mov %r15,0x28(%r12)
0.00 : 9f5b: mov %r15,0x38(%rsp)
0.00 : 9f60: mov %rax,0x40(%r12)
0.00 : 9f65: mov 0x40(%rsp),%rax
0.00 : 9f6a: mov (%rax),%edi
0.00 : 9f6c: add 0x70(%rsp),%rdi
0.00 : 9f71: testb $0x2,0x8c(%rsp)
0.00 : 9f79: je a006 <_dl_rtld_di_serinfo+0x10e6>
0.00 : 9f7f: mov %r13d,%esi
0.00 : 9f82: xor %edx,%edx
0.00 : 9f84: mov 0x78(%rsp),%r8
0.00 : 9f89: mov %rsi,%rax
0.00 : 9f8c: mov 0x38(%rsp),%r9
0.00 : 9f91: div %rbp
0.00 : 9f94: mov %rsi,%rax
0.00 : 9f97: mov %rdx,%rcx
0.00 : 9f9a: xor %edx,%edx
0.00 : 9f9c: divq 0x28(%rsp)
0.00 : 9fa1: add $0x1,%rdx
0.00 : 9fa5: mov %rdx,%rsi
0.00 : 9fa8: shl $0x5,%rsi
0.00 : 9fac: mov %rcx,%rax
0.00 : 9faf: shl $0x5,%rax
0.00 : 9fb3: add %r9,%rax
0.00 : 9fb6: jmp 9fcf <_dl_rtld_di_serinfo+0x10af>
0.00 : 9fb8: nopl 0x0(%rax,%rax,1)
0.00 : 9fc0: add %rdx,%rcx
0.00 : 9fc3: add %rsi,%rax
0.00 : 9fc6: cmp %rcx,%rbp
0.00 : 9fc9: jbe a08b <_dl_rtld_di_serinfo+0x116b>
0.00 : 9fcf: cmpq $0x0,0x8(%rax)
0.00 : 9fd4: jne 9fc0 <_dl_rtld_di_serinfo+0x10a0>
0.00 : 9fd6: mov 0xf8(%rsp),%rdx
0.00 : 9fde: mov %r13d,(%rax)
0.00 : 9fe1: mov %rdi,0x8(%rax)
0.00 : 9fe5: mov %r8,0x10(%rax)
0.00 : 9fe9: mov %rdx,0x18(%rax)
0.00 : 9fed: addq $0x1,0x38(%r12)
0.00 : 9ff3: mov %r12,%rdi
0.00 : 9ff6: callq *0x219f4c(%rip) # 223f48 <_rtld_global+0xf08>
0.00 : 9ffc: mov 0x40(%rsp),%rax
0.00 : a001: jmpq 9d03 <_dl_rtld_di_serinfo+0xde3>
0.00 : a006: mov %r13d,%esi
0.00 : a009: xor %edx,%edx
0.00 : a00b: mov 0x60(%rsp),%r8
0.00 : a010: mov %rsi,%rax
0.00 : a013: mov 0x38(%rsp),%r9
0.00 : a018: div %rbp
0.00 : a01b: mov %rsi,%rax
0.00 : a01e: mov %rdx,%rcx
0.00 : a021: xor %edx,%edx
0.00 : a023: divq 0x28(%rsp)
0.00 : a028: add $0x1,%rdx
0.00 : a02c: mov %rdx,%rsi
0.00 : a02f: shl $0x5,%rsi
0.00 : a033: mov %rcx,%rax
0.00 : a036: shl $0x5,%rax
0.00 : a03a: add %r9,%rax
0.00 : a03d: jmp a04b <_dl_rtld_di_serinfo+0x112b>
0.00 : a03f: nop
0.00 : a040: add %rdx,%rcx
0.00 : a043: add %rsi,%rax
0.00 : a046: cmp %rcx,%rbp
0.00 : a049: jbe a086 <_dl_rtld_di_serinfo+0x1166>
0.00 : a04b: cmpq $0x0,0x8(%rax)
0.00 : a050: jne a040 <_dl_rtld_di_serinfo+0x1120>
0.00 : a052: mov 0x40(%rsp),%rcx
0.00 : a057: mov %r13d,(%rax)
0.00 : a05a: mov %rdi,0x8(%rax)
0.00 : a05e: mov %r8,0x18(%rax)
0.00 : a062: mov %rcx,0x10(%rax)
0.00 : a066: movzbl 0x314(%r8),%eax
0.00 : a06e: and $0x3,%eax
0.00 : a071: cmp $0x2,%al
0.00 : a073: jne 9fed <_dl_rtld_di_serinfo+0x10cd>
0.00 : a079: orl $0x8,0x3d4(%r8)
0.00 : a081: jmpq 9fed <_dl_rtld_di_serinfo+0x10cd>
0.00 : a086: sub %rbp,%rcx
0.00 : a089: jmp a033 <_dl_rtld_di_serinfo+0x1113>
0.00 : a08b: sub %rbp,%rcx
0.00 : a08e: jmpq 9fac <_dl_rtld_di_serinfo+0x108c>
0.00 : a093: nopl 0x0(%rax,%rax,1)
0.00 : a098: sub %rbx,%rcx
0.00 : a09b: jmpq 9ef7 <_dl_rtld_di_serinfo+0xfd7>
0.00 : a0a0: mov %fs:0x4c,%eax
0.00 : a0a8: test %eax,%eax
0.00 : a0aa: jne a1ae <_dl_rtld_di_serinfo+0x128e>
0.00 : a0b0: test %rbp,%rbp
0.00 : a0b3: jne a182 <_dl_rtld_di_serinfo+0x1262>
0.00 : a0b9: mov $0x1f,%esi
0.00 : a0be: mov $0x20,%edi
0.00 : a0c3: callq ac0 <calloc@plt>
0.00 : a0c8: test %rax,%rax
0.00 : a0cb: mov %rax,0x38(%rsp)
0.00 : a0d0: je a1cd <_dl_rtld_di_serinfo+0x12ad>
0.00 : a0d6: mov %rax,0x28(%r12)
0.00 : a0db: mov 0x218eee(%rip),%rax # 222fd0 <__libc_enable_secure+0x1c0>
0.00 : a0e2: mov $0x1f,%ebp
0.00 : a0e7: movq $0x1f,0x30(%r12)
0.00 : a0f0: movq $0x1d,0x28(%rsp)
0.00 : a0f9: mov %rax,0x40(%r12)
0.00 : a0fe: jmpq 9f65 <_dl_rtld_di_serinfo+0x1045>
0.00 : a103: mov 0x8(%rsi),%rdx
0.00 : a107: mov 0x30(%rsi),%rcx
0.00 : a10b: cmpb $0x0,(%rdx)
0.00 : a10e: jne a11a <_dl_rtld_di_serinfo+0x11fa>
0.00 : a110: mov 0x218bb1(%rip),%rax # 222cc8 <_dl_argv>
0.00 : a117: mov (%rax),%rdx
0.00 : a11a: mov 0x68(%rsp),%rsi
0.00 : a11f: lea 0x14032(%rip),%rdi # 1e158 <realloc+0x7668>
0.00 : a126: xor %eax,%eax
0.00 : a128: mov %r8d,0x8(%rsp)
0.00 : a12d: mov %r9,0x18(%rsp)
0.00 : a132: mov %r11,0x10(%rsp)
0.00 : a137: callq 10240 <_dl_debug_state+0x710>
0.00 : a13c: mov 0x60(%rsp),%rsi
0.00 : a141: mov 0x10(%rsp),%r11
0.00 : a146: mov 0x18(%rsp),%r9
0.00 : a14b: mov 0x8(%rsp),%r8d
0.00 : a150: jmpq 9bb5 <_dl_rtld_di_serinfo+0xc95>
0.00 : a155: or $0xffffffff,%eax
0.00 : a158: jmpq 9c8f <_dl_rtld_di_serinfo+0xd6f>
0.00 : a15d: mov 0x30(%rsp),%rcx
0.00 : a162: cmpq $0x0,(%rcx)
0.00 : a166: jne 9cc8 <_dl_rtld_di_serinfo+0xda8>
0.00 : a16c: mov 0x30(%rsp),%rdx
0.00 : a171: mov %rax,(%rdx)
0.00 : a174: mov 0x60(%rsp),%rax
0.00 : a179: mov %rax,0x8(%rdx)
0.00 : a17d: jmpq 9cc8 <_dl_rtld_di_serinfo+0xda8>
0.00 : a182: testb $0x8,0x218a18(%rip) # 222ba1 <_rtld_global_ro+0x1>
0.00 : a189: jne 9ff3 <_dl_rtld_di_serinfo+0x10d3>
0.00 : a18f: lea 0x12569(%rip),%rcx # 1c6ff <realloc+0x5c0f>
0.00 : a196: lea 0x1247e(%rip),%rsi # 1c61b <realloc+0x5b2b>
0.00 : a19d: lea 0x14294(%rip),%rdi # 1e438 <realloc+0x7948>
0.00 : a1a4: mov $0x1a2,%edx
0.00 : a1a9: callq 16aa0 <free+0x120>
0.00 : a1ae: lea 0x1254a(%rip),%rcx # 1c6ff <realloc+0x5c0f>
0.00 : a1b5: lea 0x1245f(%rip),%rsi # 1c61b <realloc+0x5b2b>
0.00 : a1bc: lea 0x13fbd(%rip),%rdi # 1e180 <realloc+0x7690>
0.00 : a1c3: mov $0x197,%edx
0.00 : a1c8: callq 16aa0 <free+0x120>
0.00 : a1cd: mov %r12,%rdi
0.00 : a1d0: callq *0x219d72(%rip) # 223f48 <_rtld_global+0xf08>
0.00 : a1d6: lea 0x11f40(%rip),%rsi # 1c11d <realloc+0x562d>
0.00 : a1dd: mov $0x2,%edi
0.00 : a1e2: xor %eax,%eax
0.00 : a1e4: callq 103a0 <_dl_debug_state+0x870>
0.00 : a1e9: mov $0x7f,%edi
0.00 : a1ee: callq 18510 <realloc+0x1a20>
0.00 : a1f3: lea 0x12505(%rip),%rcx # 1c6ff <realloc+0x5c0f>
0.00 : a1fa: lea 0x1241a(%rip),%rsi # 1c61b <realloc+0x5b2b>
0.00 : a201: lea 0x13f78(%rip),%rdi # 1e180 <realloc+0x7690>
0.00 : a208: mov $0x17a,%edx
0.00 : a20d: callq 16aa0 <free+0x120>
0.00 : a212: mov %eax,%ecx
0.00 : a214: xor %edx,%edx
0.00 : a216: mov %r13,%rax
0.00 : a219: div %rcx
0.00 : a21c: mov 0x300(%rsi),%rax
0.00 : a223: mov (%rax,%rdx,4),%eax
0.00 : a226: test %eax,%eax
0.00 : a228: je 9c21 <_dl_rtld_di_serinfo+0xd01>
0.00 : a22e: lea 0x0(,%rax,4),%rdx
0.00 : a236: add 0x308(%rsi),%rdx
0.00 : a23d: jmp a24c <_dl_rtld_di_serinfo+0x132c>
0.00 : a23f: nop
0.00 : a240: add $0x4,%rdx
0.00 : a244: test $0x1,%al
0.00 : a246: jne 9c21 <_dl_rtld_di_serinfo+0xd01>
0.00 : a24c: mov (%rdx),%eax
0.00 : a24e: mov %eax,%ecx
0.00 : a250: xor %r13,%rcx
0.00 : a253: shr %rcx
0.00 : a256: jne a240 <_dl_rtld_di_serinfo+0x1320>
0.00 : a258: mov 0x60(%rsp),%rax
0.00 : a25d: mov %rdx,%rcx
0.00 : a260: lea 0x50(%rsp),%r10
0.00 : a265: sub 0x308(%rax),%rcx
0.00 : a26c: mov %rdx,0x20(%rsp)
0.00 : a271: mov %r8d,0x8(%rsp)
0.00 : a276: mov %r9,0x18(%rsp)
0.00 : a27b: mov %r11,0x10(%rsp)
0.00 : a280: mov %rcx,%rax
0.00 : a283: sar $0x2,%rax
0.00 : a287: mov %eax,0x88(%rsp)
0.00 : a28e: mov %eax,%eax
0.00 : a290: imul $0x18,%rax,%rdi
0.00 : a294: add 0x28(%rsp),%rdi
0.00 : a299: callq 9930 <_dl_rtld_di_serinfo+0xa10>
0.00 : a29e: test %rax,%rax
0.00 : a2a1: mov 0x20(%rsp),%rdx
0.00 : a2a6: mov 0x8(%rsp),%r8d
0.00 : a2ab: mov 0x18(%rsp),%r9
0.00 : a2b0: mov 0x10(%rsp),%r11
0.00 : a2b5: jne 9cb2 <_dl_rtld_di_serinfo+0xd92>
0.00 : a2bb: mov (%rdx),%eax
0.00 : a2bd: jmp a240 <_dl_rtld_di_serinfo+0x1320>
0.00 : a2bf: cmp %r9,(%r11)
0.00 : a2c2: je a354 <_dl_rtld_di_serinfo+0x1434>
0.00 : a2c8: mov %eax,%ecx
0.00 : a2ca: mov (%r11),%rax
0.00 : a2cd: xor %edx,%edx
0.00 : a2cf: div %rcx
0.00 : a2d2: mov 0x308(%rsi),%rax
0.00 : a2d9: mov (%rax,%rdx,4),%eax
0.00 : a2dc: test %eax,%eax
0.00 : a2de: mov %eax,0x88(%rsp)
0.00 : a2e5: jne a315 <_dl_rtld_di_serinfo+0x13f5>
0.00 : a2e7: jmpq 9c2c <_dl_rtld_di_serinfo+0xd0c>
0.00 : a2ec: nopl 0x0(%rax)
0.00 : a2f0: mov 0x60(%rsp),%rax
0.00 : a2f5: mov 0x88(%rsp),%edx
0.00 : a2fc: mov 0x300(%rax),%rax
0.00 : a303: mov (%rax,%rdx,4),%eax
0.00 : a306: test %eax,%eax
0.00 : a308: mov %eax,0x88(%rsp)
0.00 : a30f: je 9c2c <_dl_rtld_di_serinfo+0xd0c>
0.00 : a315: mov 0x28(%rsp),%rdx
0.00 : a31a: lea (%rax,%rax,2),%rax
0.00 : a31e: lea 0x50(%rsp),%r10
0.00 : a323: mov %r8d,0x8(%rsp)
0.00 : a328: mov %r9,0x18(%rsp)
0.00 : a32d: mov %r11,0x10(%rsp)
0.00 : a332: lea (%rdx,%rax,8),%rdi
0.00 : a336: callq 9930 <_dl_rtld_di_serinfo+0xa10>
0.00 : a33b: test %rax,%rax
0.00 : a33e: mov 0x8(%rsp),%r8d
0.00 : a343: mov 0x18(%rsp),%r9
0.00 : a348: mov 0x10(%rsp),%r11
0.00 : a34d: je a2f0 <_dl_rtld_di_serinfo+0x13d0>
0.00 : a34f: jmpq 9cb2 <_dl_rtld_di_serinfo+0xd92>
0.00 : a354: mov 0x68(%rsp),%rcx
0.00 : a359: movzbl (%rcx),%edx
0.00 : a35c: test %rdx,%rdx
0.00 : a35f: je a3e5 <_dl_rtld_di_serinfo+0x14c5>
0.00 : a365: movzbl 0x1(%rcx),%edi
0.00 : a369: test %dil,%dil
0.00 : a36c: je a3e5 <_dl_rtld_di_serinfo+0x14c5>
0.00 : a36e: shl $0x4,%rdx
0.00 : a372: movzbl %dil,%edi
0.00 : a376: add %rdi,%rdx
0.00 : a379: movzbl 0x2(%rcx),%edi
0.00 : a37d: test %dil,%dil
0.00 : a380: je a3e5 <_dl_rtld_di_serinfo+0x14c5>
0.00 : a382: shl $0x4,%rdx
0.00 : a386: movzbl %dil,%edi
0.00 : a38a: add %rdi,%rdx
0.00 : a38d: movzbl 0x3(%rcx),%edi
0.00 : a391: test %dil,%dil
0.00 : a394: je a3e5 <_dl_rtld_di_serinfo+0x14c5>
0.00 : a396: shl $0x4,%rdx
0.00 : a39a: movzbl %dil,%edi
0.00 : a39e: add %rdi,%rdx
0.00 : a3a1: movzbl 0x4(%rcx),%edi
0.00 : a3a5: test %dil,%dil
0.00 : a3a8: je a3e5 <_dl_rtld_di_serinfo+0x14c5>
0.00 : a3aa: shl $0x4,%rdx
0.00 : a3ae: movzbl %dil,%edi
0.00 : a3b2: add %rdi,%rdx
0.00 : a3b5: add $0x1,%rcx
0.00 : a3b9: movzbl 0x4(%rcx),%edi
0.00 : a3bd: test %dil,%dil
0.00 : a3c0: je a3df <_dl_rtld_di_serinfo+0x14bf>
0.00 : a3c2: shl $0x4,%rdx
0.00 : a3c6: movzbl %dil,%edi
0.00 : a3ca: add %rdx,%rdi
0.00 : a3cd: mov %rdi,%rdx
0.00 : a3d0: and $0xf0000000,%edx
0.00 : a3d6: shr $0x18,%rdx
0.00 : a3da: xor %rdi,%rdx
0.00 : a3dd: jmp a3b5 <_dl_rtld_di_serinfo+0x1495>
0.00 : a3df: and $0xfffffff,%edx
0.00 : a3e5: mov %edx,%edx
0.00 : a3e7: mov %rdx,(%r11)
0.00 : a3ea: jmpq a2c8 <_dl_rtld_di_serinfo+0x13a8>
@RichardBarrell
Copy link
Author

rev26_2 was compiled from https://github.com/RichardBarrell/snippets/blob/f33077436b9960bbc15b67c813198388a52e1ee3/rev26.c on Ubuntu 12.04 (gcc 4.6.3-1ubuntu5, Linux 3.2.0-39-generic) with: gcc -g rev26.c -O3 -lpthread -Wall -o rev26_2 -DUSE_A_SPIN_BARRIER

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment