Created
April 4, 2013 22:07
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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