Skip to content

Instantly share code, notes, and snippets.

@jonathanlking
Last active September 16, 2022 20:12
Show Gist options
  • Save jonathanlking/69f0c225846ee0c8ac3f75547ebbf839 to your computer and use it in GitHub Desktop.
Save jonathanlking/69f0c225846ee0c8ac3f75547ebbf839 to your computer and use it in GitHub Desktop.
Output from running `objdump --disassemble x86_64cpuid.o` and `readelf -a x86_64cpuid.o`
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 3664 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 64 (bytes)
Number of section headers: 22
Section header string table index: 21
Section Headers:
[Nr] Name Type Address Offset
Size EntSize Flags Link Info Align
[ 0] NULL 0000000000000000 00000000
0000000000000000 0000000000000000 0 0 0
[ 1] .text PROGBITS 0000000000000000 00000040
00000000000004b8 0000000000000000 AX 0 0 16
[ 2] .data PROGBITS 0000000000000000 000004f8
0000000000000000 0000000000000000 WA 0 0 1
[ 3] .bss NOBITS 0000000000000000 000004f8
0000000000000000 0000000000000000 WA 0 0 1
[ 4] .init PROGBITS 0000000000000000 000004f8
0000000000000005 0000000000000000 AX 0 0 1
[ 5] .rela.init RELA 0000000000000000 00000b28
0000000000000018 0000000000000018 I 19 4 8
[ 6] .note.GNU-stack PROGBITS 0000000000000000 000004fd
0000000000000000 0000000000000000 0 0 1
[ 7] .debug_line PROGBITS 0000000000000000 000004fd
0000000000000120 0000000000000000 C 0 0 1
[ 8] .rela.debug_line RELA 0000000000000000 00000b40
0000000000000030 0000000000000018 I 19 7 8
[ 9] .debug_info PROGBITS 0000000000000000 0000061d
0000000000000022 0000000000000000 0 0 1
[10] .rela.debug_info RELA 0000000000000000 00000b70
0000000000000090 0000000000000018 I 19 9 8
[11] .debug_abbrev PROGBITS 0000000000000000 0000063f
0000000000000012 0000000000000000 0 0 1
[12] .debug_aranges PROGBITS 0000000000000000 00000660
0000000000000033 0000000000000000 C 0 0 16
[13] .rela.debug_arang RELA 0000000000000000 00000c00
0000000000000048 0000000000000018 I 19 12 8
[14] .debug_str PROGBITS 0000000000000000 00000693
0000000000000039 0000000000000001 MS 0 0 1
[15] .debug_ranges PROGBITS 0000000000000000 000006d0
0000000000000026 0000000000000000 C 0 0 16
[16] .rela.debug_range RELA 0000000000000000 00000c48
0000000000000060 0000000000000018 I 19 15 8
[17] .eh_frame PROGBITS 0000000000000000 000006f8
00000000000000e8 0000000000000000 A 0 0 8
[18] .rela.eh_frame RELA 0000000000000000 00000ca8
00000000000000f0 0000000000000018 I 19 17 8
[19] .symtab SYMTAB 0000000000000000 000007e0
0000000000000258 0000000000000018 20 13 8
[20] .strtab STRTAB 0000000000000000 00000a38
00000000000000ed 0000000000000000 0 0 1
[21] .shstrtab STRTAB 0000000000000000 00000d98
00000000000000b8 0000000000000000 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
l (large), p (processor specific)
There are no section groups in this file.
There are no program headers in this file.
There is no dynamic section in this file.
Relocation section '.rela.init' at offset 0xb28 contains 1 entry:
Offset Info Type Sym. Value Sym. Name + Addend
000000000001 000d00000004 R_X86_64_PLT32 0000000000000000 OPENSSL_cpuid_setup - 4
Relocation section '.rela.debug_line' at offset 0xb40 contains 2 entries:
Offset Info Type Sym. Value Sym. Name + Addend
000000000038 000400000001 R_X86_64_64 0000000000000000 .init + 0
000000000049 000100000001 R_X86_64_64 0000000000000000 .text + 0
Relocation section '.rela.debug_info' at offset 0xb70 contains 6 entries:
Offset Info Type Sym. Value Sym. Name + Addend
000000000006 00060000000a R_X86_64_32 0000000000000000 .debug_abbrev + 0
00000000000c 00070000000a R_X86_64_32 0000000000000000 .debug_line + 0
000000000010 00080000000a R_X86_64_32 0000000000000000 .debug_ranges + 0
000000000014 00090000000a R_X86_64_32 0000000000000000 .debug_str + 0
000000000018 00090000000a R_X86_64_32 0000000000000000 .debug_str + 15
00000000001c 00090000000a R_X86_64_32 0000000000000000 .debug_str + 2b
Relocation section '.rela.debug_aranges' at offset 0xc00 contains 3 entries:
Offset Info Type Sym. Value Sym. Name + Addend
000000000006 00050000000a R_X86_64_32 0000000000000000 .debug_info + 0
000000000010 000400000001 R_X86_64_64 0000000000000000 .init + 0
000000000020 000100000001 R_X86_64_64 0000000000000000 .text + 0
Relocation section '.rela.debug_ranges' at offset 0xc48 contains 4 entries:
Offset Info Type Sym. Value Sym. Name + Addend
000000000010 000400000001 R_X86_64_64 0000000000000000 .init + 0
000000000018 000400000001 R_X86_64_64 0000000000000000 .init + 5
000000000020 000100000001 R_X86_64_64 0000000000000000 .text + 0
000000000028 000100000001 R_X86_64_64 0000000000000000 .text + 4b8
Relocation section '.rela.eh_frame' at offset 0xca8 contains 10 entries:
Offset Info Type Sym. Value Sym. Name + Addend
000000000020 000100000002 R_X86_64_PC32 0000000000000000 .text + 0
000000000034 000100000002 R_X86_64_PC32 0000000000000000 .text + 20
000000000048 000100000002 R_X86_64_PC32 0000000000000000 .text + 30
000000000064 000100000002 R_X86_64_PC32 0000000000000000 .text + 220
000000000078 000100000002 R_X86_64_PC32 0000000000000000 .text + 280
00000000008c 000100000002 R_X86_64_PC32 0000000000000000 .text + 2d0
0000000000a0 000100000002 R_X86_64_PC32 0000000000000000 .text + 340
0000000000b4 000100000002 R_X86_64_PC32 0000000000000000 .text + 390
0000000000c8 000100000002 R_X86_64_PC32 0000000000000000 .text + 400
0000000000dc 000100000002 R_X86_64_PC32 0000000000000000 .text + 460
The decoding of unwind sections for machine type Advanced Micro Devices X86-64 is not currently supported.
Symbol table '.symtab' contains 25 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000000000 0 SECTION LOCAL DEFAULT 1
2: 0000000000000000 0 SECTION LOCAL DEFAULT 2
3: 0000000000000000 0 SECTION LOCAL DEFAULT 3
4: 0000000000000000 0 SECTION LOCAL DEFAULT 4
5: 0000000000000000 0 SECTION LOCAL DEFAULT 9
6: 0000000000000000 0 SECTION LOCAL DEFAULT 11
7: 0000000000000000 0 SECTION LOCAL DEFAULT 7
8: 0000000000000000 0 SECTION LOCAL DEFAULT 15
9: 0000000000000000 0 SECTION LOCAL DEFAULT 14
10: 0000000000000000 0 SECTION LOCAL DEFAULT 12
11: 0000000000000000 0 SECTION LOCAL DEFAULT 17
12: 0000000000000000 0 SECTION LOCAL DEFAULT 6
13: 0000000000000000 0 NOTYPE GLOBAL HIDDEN UND OPENSSL_cpuid_setup
14: 0000000000000004 16 OBJECT GLOBAL HIDDEN COM OPENSSL_ia32cap_P
15: 0000000000000000 20 FUNC GLOBAL DEFAULT 1 OPENSSL_atomic_add
16: 0000000000000020 11 FUNC GLOBAL DEFAULT 1 OPENSSL_rdtsc
17: 0000000000000030 487 FUNC GLOBAL DEFAULT 1 OPENSSL_ia32_cpuid
18: 0000000000000220 81 FUNC GLOBAL DEFAULT 1 OPENSSL_cleanse
19: 0000000000000280 79 FUNC GLOBAL DEFAULT 1 CRYPTO_memcmp
20: 00000000000002d0 103 FUNC GLOBAL DEFAULT 1 OPENSSL_wipe_cpu
21: 0000000000000340 68 FUNC GLOBAL DEFAULT 1 OPENSSL_instrument_bus
22: 0000000000000390 103 FUNC GLOBAL DEFAULT 1 OPENSSL_instrument_bus2
23: 0000000000000400 88 FUNC GLOBAL DEFAULT 1 OPENSSL_ia32_rdrand_bytes
24: 0000000000000460 88 FUNC GLOBAL DEFAULT 1 OPENSSL_ia32_rdseed_bytes
No version information found in this file.
x86_64cpuid.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <OPENSSL_atomic_add>:
0: 8b 07 mov (%rdi),%eax
2: 4c 8d 04 06 lea (%rsi,%rax,1),%r8
6: f0 44 0f b1 07 lock cmpxchg %r8d,(%rdi)
b: 75 f5 jne 2 <OPENSSL_atomic_add+0x2>
d: 44 89 c0 mov %r8d,%eax
10: 48 98 cltq
12: f3 c3 repz retq
14: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
1b: 00 00 00 00
1f: 90 nop
0000000000000020 <OPENSSL_rdtsc>:
20: 0f 31 rdtsc
22: 48 c1 e2 20 shl $0x20,%rdx
26: 48 09 d0 or %rdx,%rax
29: f3 c3 repz retq
2b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
0000000000000030 <OPENSSL_ia32_cpuid>:
30: 49 89 d8 mov %rbx,%r8
33: 31 c0 xor %eax,%eax
35: 48 89 47 08 mov %rax,0x8(%rdi)
39: 0f a2 cpuid
3b: 41 89 c3 mov %eax,%r11d
3e: 31 c0 xor %eax,%eax
40: 81 fb 47 65 6e 75 cmp $0x756e6547,%ebx
46: 0f 95 c0 setne %al
49: 41 89 c1 mov %eax,%r9d
4c: 81 fa 69 6e 65 49 cmp $0x49656e69,%edx
52: 0f 95 c0 setne %al
55: 41 09 c1 or %eax,%r9d
58: 81 f9 6e 74 65 6c cmp $0x6c65746e,%ecx
5e: 0f 95 c0 setne %al
61: 41 09 c1 or %eax,%r9d
64: 0f 84 87 00 00 00 je f1 <OPENSSL_ia32_cpuid+0xc1>
6a: 81 fb 41 75 74 68 cmp $0x68747541,%ebx
70: 0f 95 c0 setne %al
73: 41 89 c2 mov %eax,%r10d
76: 81 fa 65 6e 74 69 cmp $0x69746e65,%edx
7c: 0f 95 c0 setne %al
7f: 41 09 c2 or %eax,%r10d
82: 81 f9 63 41 4d 44 cmp $0x444d4163,%ecx
88: 0f 95 c0 setne %al
8b: 41 09 c2 or %eax,%r10d
8e: 75 61 jne f1 <OPENSSL_ia32_cpuid+0xc1>
90: b8 00 00 00 80 mov $0x80000000,%eax
95: 0f a2 cpuid
97: 3d 01 00 00 80 cmp $0x80000001,%eax
9c: 72 53 jb f1 <OPENSSL_ia32_cpuid+0xc1>
9e: 41 89 c2 mov %eax,%r10d
a1: b8 01 00 00 80 mov $0x80000001,%eax
a6: 0f a2 cpuid
a8: 41 09 c9 or %ecx,%r9d
ab: 41 81 e1 01 08 00 00 and $0x801,%r9d
b2: 41 81 fa 08 00 00 80 cmp $0x80000008,%r10d
b9: 72 36 jb f1 <OPENSSL_ia32_cpuid+0xc1>
bb: b8 08 00 00 80 mov $0x80000008,%eax
c0: 0f a2 cpuid
c2: 4c 0f b6 d1 movzbq %cl,%r10
c6: 49 ff c2 inc %r10
c9: b8 01 00 00 00 mov $0x1,%eax
ce: 0f a2 cpuid
d0: 0f ba e2 1c bt $0x1c,%edx
d4: 0f 83 ac 00 00 00 jae 186 <OPENSSL_ia32_cpuid+0x156>
da: c1 eb 10 shr $0x10,%ebx
dd: 44 38 d3 cmp %r10b,%bl
e0: 0f 87 a0 00 00 00 ja 186 <OPENSSL_ia32_cpuid+0x156>
e6: 81 e2 ff ff ff ef and $0xefffffff,%edx
ec: e9 95 00 00 00 jmpq 186 <OPENSSL_ia32_cpuid+0x156>
f1: 41 83 fb 04 cmp $0x4,%r11d
f5: 41 ba ff ff ff ff mov $0xffffffff,%r10d
fb: 72 1a jb 117 <OPENSSL_ia32_cpuid+0xe7>
fd: b8 04 00 00 00 mov $0x4,%eax
102: b9 00 00 00 00 mov $0x0,%ecx
107: 0f a2 cpuid
109: 41 89 c2 mov %eax,%r10d
10c: 41 c1 ea 0e shr $0xe,%r10d
110: 41 81 e2 ff 0f 00 00 and $0xfff,%r10d
117: b8 01 00 00 00 mov $0x1,%eax
11c: 0f a2 cpuid
11e: 66 0f 6e c0 movd %eax,%xmm0
122: 81 e2 ff ff ef bf and $0xbfefffff,%edx
128: 41 83 f9 00 cmp $0x0,%r9d
12c: 75 32 jne 160 <OPENSSL_ia32_cpuid+0x130>
12e: 81 ca 00 00 00 40 or $0x40000000,%edx
134: 80 e4 0f and $0xf,%ah
137: 80 fc 0f cmp $0xf,%ah
13a: 75 06 jne 142 <OPENSSL_ia32_cpuid+0x112>
13c: 81 ca 00 00 10 00 or $0x100000,%edx
142: 80 fc 06 cmp $0x6,%ah
145: 75 19 jne 160 <OPENSSL_ia32_cpuid+0x130>
147: 25 f0 0f ff 0f and $0xfff0ff0,%eax
14c: 3d 70 06 05 00 cmp $0x50670,%eax
151: 74 07 je 15a <OPENSSL_ia32_cpuid+0x12a>
153: 3d 50 06 08 00 cmp $0x80650,%eax
158: 75 06 jne 160 <OPENSSL_ia32_cpuid+0x130>
15a: 81 e1 ff ff ff fb and $0xfbffffff,%ecx
160: 0f ba e2 1c bt $0x1c,%edx
164: 73 20 jae 186 <OPENSSL_ia32_cpuid+0x156>
166: 81 e2 ff ff ff ef and $0xefffffff,%edx
16c: 41 83 fa 00 cmp $0x0,%r10d
170: 74 14 je 186 <OPENSSL_ia32_cpuid+0x156>
172: 81 ca 00 00 00 10 or $0x10000000,%edx
178: c1 eb 10 shr $0x10,%ebx
17b: 80 fb 01 cmp $0x1,%bl
17e: 77 06 ja 186 <OPENSSL_ia32_cpuid+0x156>
180: 81 e2 ff ff ff ef and $0xefffffff,%edx
186: 41 81 e1 00 08 00 00 and $0x800,%r9d
18d: 81 e1 ff f7 ff ff and $0xfffff7ff,%ecx
193: 41 09 c9 or %ecx,%r9d
196: 41 89 d2 mov %edx,%r10d
199: 41 83 fb 07 cmp $0x7,%r11d
19d: 72 32 jb 1d1 <OPENSSL_ia32_cpuid+0x1a1>
19f: b8 07 00 00 00 mov $0x7,%eax
1a4: 31 c9 xor %ecx,%ecx
1a6: 0f a2 cpuid
1a8: 41 0f ba e1 1a bt $0x1a,%r9d
1ad: 72 06 jb 1b5 <OPENSSL_ia32_cpuid+0x185>
1af: 81 e3 ff ff f7 ff and $0xfff7ffff,%ebx
1b5: 66 0f 7e c0 movd %xmm0,%eax
1b9: 25 f0 0f ff 0f and $0xfff0ff0,%eax
1be: 3d 50 06 05 00 cmp $0x50650,%eax
1c3: 75 06 jne 1cb <OPENSSL_ia32_cpuid+0x19b>
1c5: 81 e3 ff ff fe ff and $0xfffeffff,%ebx
1cb: 89 5f 08 mov %ebx,0x8(%rdi)
1ce: 89 4f 0c mov %ecx,0xc(%rdi)
1d1: 41 0f ba e1 1b bt $0x1b,%r9d
1d6: 73 20 jae 1f8 <OPENSSL_ia32_cpuid+0x1c8>
1d8: 31 c9 xor %ecx,%ecx
1da: 0f 01 d0 xgetbv
1dd: 25 e6 00 00 00 and $0xe6,%eax
1e2: 3d e6 00 00 00 cmp $0xe6,%eax
1e7: 74 1f je 208 <OPENSSL_ia32_cpuid+0x1d8>
1e9: 81 67 08 ff ff de 3f andl $0x3fdeffff,0x8(%rdi)
1f0: 83 e0 06 and $0x6,%eax
1f3: 83 f8 06 cmp $0x6,%eax
1f6: 74 10 je 208 <OPENSSL_ia32_cpuid+0x1d8>
1f8: b8 ff e7 ff ef mov $0xefffe7ff,%eax
1fd: 41 21 c1 and %eax,%r9d
200: b8 df ff de 3f mov $0x3fdeffdf,%eax
205: 21 47 08 and %eax,0x8(%rdi)
208: 49 c1 e1 20 shl $0x20,%r9
20c: 44 89 d0 mov %r10d,%eax
20f: 4c 89 c3 mov %r8,%rbx
212: 4c 09 c8 or %r9,%rax
215: f3 c3 repz retq
217: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
21e: 00 00
0000000000000220 <OPENSSL_cleanse>:
220: 48 31 c0 xor %rax,%rax
223: 48 83 fe 0f cmp $0xf,%rsi
227: 73 17 jae 240 <OPENSSL_cleanse+0x20>
229: 48 83 fe 00 cmp $0x0,%rsi
22d: 74 0c je 23b <OPENSSL_cleanse+0x1b>
22f: 88 07 mov %al,(%rdi)
231: 48 83 ee 01 sub $0x1,%rsi
235: 48 8d 7f 01 lea 0x1(%rdi),%rdi
239: 75 f4 jne 22f <OPENSSL_cleanse+0xf>
23b: f3 c3 repz retq
23d: 0f 1f 00 nopl (%rax)
240: 48 f7 c7 07 00 00 00 test $0x7,%rdi
247: 74 0c je 255 <OPENSSL_cleanse+0x35>
249: 88 07 mov %al,(%rdi)
24b: 48 8d 76 ff lea -0x1(%rsi),%rsi
24f: 48 8d 7f 01 lea 0x1(%rdi),%rdi
253: eb eb jmp 240 <OPENSSL_cleanse+0x20>
255: 48 89 07 mov %rax,(%rdi)
258: 48 8d 76 f8 lea -0x8(%rsi),%rsi
25c: 48 f7 c6 f8 ff ff ff test $0xfffffffffffffff8,%rsi
263: 48 8d 7f 08 lea 0x8(%rdi),%rdi
267: 75 ec jne 255 <OPENSSL_cleanse+0x35>
269: 48 83 fe 00 cmp $0x0,%rsi
26d: 75 c0 jne 22f <OPENSSL_cleanse+0xf>
26f: f3 c3 repz retq
271: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
278: 00 00 00 00
27c: 0f 1f 40 00 nopl 0x0(%rax)
0000000000000280 <CRYPTO_memcmp>:
280: 48 31 c0 xor %rax,%rax
283: 4d 31 d2 xor %r10,%r10
286: 48 83 fa 00 cmp $0x0,%rdx
28a: 74 41 je 2cd <CRYPTO_memcmp+0x4d>
28c: 48 83 fa 10 cmp $0x10,%rdx
290: 75 1e jne 2b0 <CRYPTO_memcmp+0x30>
292: 4c 8b 17 mov (%rdi),%r10
295: 4c 8b 5f 08 mov 0x8(%rdi),%r11
299: 48 c7 c2 01 00 00 00 mov $0x1,%rdx
2a0: 4c 33 16 xor (%rsi),%r10
2a3: 4c 33 5e 08 xor 0x8(%rsi),%r11
2a7: 4d 09 da or %r11,%r10
2aa: 48 0f 45 c2 cmovne %rdx,%rax
2ae: f3 c3 repz retq
2b0: 44 8a 17 mov (%rdi),%r10b
2b3: 48 8d 7f 01 lea 0x1(%rdi),%rdi
2b7: 44 32 16 xor (%rsi),%r10b
2ba: 48 8d 76 01 lea 0x1(%rsi),%rsi
2be: 44 08 d0 or %r10b,%al
2c1: 48 ff ca dec %rdx
2c4: 75 ea jne 2b0 <CRYPTO_memcmp+0x30>
2c6: 48 f7 d8 neg %rax
2c9: 48 c1 e8 3f shr $0x3f,%rax
2cd: f3 c3 repz retq
2cf: 90 nop
00000000000002d0 <OPENSSL_wipe_cpu>:
2d0: 66 0f ef c0 pxor %xmm0,%xmm0
2d4: 66 0f ef c9 pxor %xmm1,%xmm1
2d8: 66 0f ef d2 pxor %xmm2,%xmm2
2dc: 66 0f ef db pxor %xmm3,%xmm3
2e0: 66 0f ef e4 pxor %xmm4,%xmm4
2e4: 66 0f ef ed pxor %xmm5,%xmm5
2e8: 66 0f ef f6 pxor %xmm6,%xmm6
2ec: 66 0f ef ff pxor %xmm7,%xmm7
2f0: 66 45 0f ef c0 pxor %xmm8,%xmm8
2f5: 66 45 0f ef c9 pxor %xmm9,%xmm9
2fa: 66 45 0f ef d2 pxor %xmm10,%xmm10
2ff: 66 45 0f ef db pxor %xmm11,%xmm11
304: 66 45 0f ef e4 pxor %xmm12,%xmm12
309: 66 45 0f ef ed pxor %xmm13,%xmm13
30e: 66 45 0f ef f6 pxor %xmm14,%xmm14
313: 66 45 0f ef ff pxor %xmm15,%xmm15
318: 48 31 c9 xor %rcx,%rcx
31b: 48 31 d2 xor %rdx,%rdx
31e: 48 31 f6 xor %rsi,%rsi
321: 48 31 ff xor %rdi,%rdi
324: 4d 31 c0 xor %r8,%r8
327: 4d 31 c9 xor %r9,%r9
32a: 4d 31 d2 xor %r10,%r10
32d: 4d 31 db xor %r11,%r11
330: 48 8d 44 24 08 lea 0x8(%rsp),%rax
335: f3 c3 repz retq
337: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
33e: 00 00
0000000000000340 <OPENSSL_instrument_bus>:
340: 49 89 fa mov %rdi,%r10
343: 48 89 f1 mov %rsi,%rcx
346: 49 89 f3 mov %rsi,%r11
349: 0f 31 rdtsc
34b: 41 89 c0 mov %eax,%r8d
34e: 41 b9 00 00 00 00 mov $0x0,%r9d
354: 41 0f ae 3a clflush (%r10)
358: f0 45 01 0a lock add %r9d,(%r10)
35c: eb 02 jmp 360 <OPENSSL_instrument_bus+0x20>
35e: 66 90 xchg %ax,%ax
360: 0f 31 rdtsc
362: 89 c2 mov %eax,%edx
364: 44 29 c0 sub %r8d,%eax
367: 41 89 d0 mov %edx,%r8d
36a: 41 89 c1 mov %eax,%r9d
36d: 41 0f ae 3a clflush (%r10)
371: f0 41 01 02 lock add %eax,(%r10)
375: 4d 8d 52 04 lea 0x4(%r10),%r10
379: 48 83 e9 01 sub $0x1,%rcx
37d: 75 e1 jne 360 <OPENSSL_instrument_bus+0x20>
37f: 4c 89 d8 mov %r11,%rax
382: f3 c3 repz retq
384: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
38b: 00 00 00 00
38f: 90 nop
0000000000000390 <OPENSSL_instrument_bus2>:
390: 49 89 fa mov %rdi,%r10
393: 48 89 f1 mov %rsi,%rcx
396: 49 89 d3 mov %rdx,%r11
399: 48 89 4c 24 08 mov %rcx,0x8(%rsp)
39e: 0f 31 rdtsc
3a0: 41 89 c0 mov %eax,%r8d
3a3: 41 b9 00 00 00 00 mov $0x0,%r9d
3a9: 41 0f ae 3a clflush (%r10)
3ad: f0 45 01 0a lock add %r9d,(%r10)
3b1: 0f 31 rdtsc
3b3: 89 c2 mov %eax,%edx
3b5: 44 29 c0 sub %r8d,%eax
3b8: 41 89 d0 mov %edx,%r8d
3bb: 41 89 c1 mov %eax,%r9d
3be: 41 0f ae 3a clflush (%r10)
3c2: f0 41 01 02 lock add %eax,(%r10)
3c6: 49 83 eb 01 sub $0x1,%r11
3ca: 74 21 je 3ed <OPENSSL_instrument_bus2+0x5d>
3cc: 0f 31 rdtsc
3ce: 89 c2 mov %eax,%edx
3d0: 44 29 c0 sub %r8d,%eax
3d3: 41 89 d0 mov %edx,%r8d
3d6: 44 39 c8 cmp %r9d,%eax
3d9: 41 89 c1 mov %eax,%r9d
3dc: ba 00 00 00 00 mov $0x0,%edx
3e1: 0f 95 c2 setne %dl
3e4: 48 29 d1 sub %rdx,%rcx
3e7: 4d 8d 14 92 lea (%r10,%rdx,4),%r10
3eb: 75 d1 jne 3be <OPENSSL_instrument_bus2+0x2e>
3ed: 48 8b 44 24 08 mov 0x8(%rsp),%rax
3f2: 48 29 c8 sub %rcx,%rax
3f5: f3 c3 repz retq
3f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
3fe: 00 00
0000000000000400 <OPENSSL_ia32_rdrand_bytes>:
400: 48 31 c0 xor %rax,%rax
403: 48 83 fe 00 cmp $0x0,%rsi
407: 74 4a je 453 <OPENSSL_ia32_rdrand_bytes+0x53>
409: 49 c7 c3 08 00 00 00 mov $0x8,%r11
410: 49 0f c7 f2 rdrand %r10
414: 72 0a jb 420 <OPENSSL_ia32_rdrand_bytes+0x20>
416: 49 ff cb dec %r11
419: 75 f5 jne 410 <OPENSSL_ia32_rdrand_bytes+0x10>
41b: eb 36 jmp 453 <OPENSSL_ia32_rdrand_bytes+0x53>
41d: 0f 1f 00 nopl (%rax)
420: 48 83 fe 08 cmp $0x8,%rsi
424: 72 1a jb 440 <OPENSSL_ia32_rdrand_bytes+0x40>
426: 4c 89 17 mov %r10,(%rdi)
429: 48 8d 7f 08 lea 0x8(%rdi),%rdi
42d: 48 83 c0 08 add $0x8,%rax
431: 48 83 ee 08 sub $0x8,%rsi
435: 74 1c je 453 <OPENSSL_ia32_rdrand_bytes+0x53>
437: 49 c7 c3 08 00 00 00 mov $0x8,%r11
43e: eb d0 jmp 410 <OPENSSL_ia32_rdrand_bytes+0x10>
440: 44 88 17 mov %r10b,(%rdi)
443: 48 8d 7f 01 lea 0x1(%rdi),%rdi
447: 48 ff c0 inc %rax
44a: 49 c1 ea 08 shr $0x8,%r10
44e: 48 ff ce dec %rsi
451: 75 ed jne 440 <OPENSSL_ia32_rdrand_bytes+0x40>
453: 4d 31 d2 xor %r10,%r10
456: f3 c3 repz retq
458: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
45f: 00
0000000000000460 <OPENSSL_ia32_rdseed_bytes>:
460: 48 31 c0 xor %rax,%rax
463: 48 83 fe 00 cmp $0x0,%rsi
467: 74 4a je 4b3 <OPENSSL_ia32_rdseed_bytes+0x53>
469: 49 c7 c3 08 00 00 00 mov $0x8,%r11
470: 49 0f c7 fa rdseed %r10
474: 72 0a jb 480 <OPENSSL_ia32_rdseed_bytes+0x20>
476: 49 ff cb dec %r11
479: 75 f5 jne 470 <OPENSSL_ia32_rdseed_bytes+0x10>
47b: eb 36 jmp 4b3 <OPENSSL_ia32_rdseed_bytes+0x53>
47d: 0f 1f 00 nopl (%rax)
480: 48 83 fe 08 cmp $0x8,%rsi
484: 72 1a jb 4a0 <OPENSSL_ia32_rdseed_bytes+0x40>
486: 4c 89 17 mov %r10,(%rdi)
489: 48 8d 7f 08 lea 0x8(%rdi),%rdi
48d: 48 83 c0 08 add $0x8,%rax
491: 48 83 ee 08 sub $0x8,%rsi
495: 74 1c je 4b3 <OPENSSL_ia32_rdseed_bytes+0x53>
497: 49 c7 c3 08 00 00 00 mov $0x8,%r11
49e: eb d0 jmp 470 <OPENSSL_ia32_rdseed_bytes+0x10>
4a0: 44 88 17 mov %r10b,(%rdi)
4a3: 48 8d 7f 01 lea 0x1(%rdi),%rdi
4a7: 48 ff c0 inc %rax
4aa: 49 c1 ea 08 shr $0x8,%r10
4ae: 48 ff ce dec %rsi
4b1: 75 ed jne 4a0 <OPENSSL_ia32_rdseed_bytes+0x40>
4b3: 4d 31 d2 xor %r10,%r10
4b6: f3 c3 repz retq
Disassembly of section .init:
0000000000000000 <.init>:
0: e8 00 00 00 00 callq 5 <OPENSSL_atomic_add+0x5>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment