Last active
July 1, 2019 17:31
-
-
Save nickdesaulniers/395129e75d9f7afe028db832145594d8 to your computer and use it in GitHub Desktop.
Disassembly of arch/x86/kernel/cpu/mtrr/generic.o get_fixed_ranges()
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
; $ objdump -d -r -j __jump_table arch/x86/kernel/cpu/mtrr/generic.o | |
arch/x86/kernel/cpu/mtrr/generic.o: file format elf64-x86-64 | |
Disassembly of section __jump_table: | |
0000000000000000 <__jump_table>: | |
... | |
0: R_X86_64_PC32 .text+0x3be | |
4: R_X86_64_PC32 .text+0x3c5 | |
8: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
10: R_X86_64_PC32 .text+0x3f9 | |
14: R_X86_64_PC32 .text+0x400 | |
18: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
20: R_X86_64_PC32 .text+0x434 | |
24: R_X86_64_PC32 .text+0x400 | |
28: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
30: R_X86_64_PC32 .text+0x494 | |
34: R_X86_64_PC32 .text+0x49b | |
38: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
40: R_X86_64_PC32 .text+0x534 | |
44: R_X86_64_PC32 .text+0x53b | |
48: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
50: R_X86_64_PC32 .text+0x577 | |
54: R_X86_64_PC32 .text+0x57e | |
58: R_X86_64_PC64 __tracepoint_write_msr+0x8 | |
60: R_X86_64_PC32 .text+0x622 | |
64: R_X86_64_PC32 .text+0x629 | |
68: R_X86_64_PC64 __tracepoint_write_msr+0x8 | |
70: R_X86_64_PC32 .init.text+0x5d | |
74: R_X86_64_PC32 .init.text+0x64 | |
78: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
80: R_X86_64_PC32 .init.text+0xcd | |
84: R_X86_64_PC32 .init.text+0xd4 | |
88: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
90: R_X86_64_PC32 .init.text+0x116 | |
94: R_X86_64_PC32 .init.text+0x11d | |
98: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
a0: R_X86_64_PC32 .text+0x6c5 | |
a4: R_X86_64_PC32 .text+0x6cc | |
a8: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
b0: R_X86_64_PC32 .text+0x6fa | |
b4: R_X86_64_PC32 .text+0x701 | |
b8: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
c0: R_X86_64_PC32 .text+0x738 | |
c4: R_X86_64_PC32 .text+0x73f | |
c8: R_X86_64_PC64 __tracepoint_write_msr+0x8 | |
d0: R_X86_64_PC32 .text+0x9f4 | |
d4: R_X86_64_PC32 .text+0x9fb | |
d8: R_X86_64_PC64 __tracepoint_write_msr+0x8 | |
e0: R_X86_64_PC32 .text+0xa48 | |
e4: R_X86_64_PC32 .text+0xa4f | |
e8: R_X86_64_PC64 __tracepoint_write_msr+0x8 | |
f0: R_X86_64_PC32 .text+0xa9d | |
f4: R_X86_64_PC32 .text+0xaa4 | |
f8: R_X86_64_PC64 __tracepoint_write_msr+0x8 | |
100: R_X86_64_PC32 .text+0xdba | |
104: R_X86_64_PC32 .text+0xdc1 | |
108: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
110: R_X86_64_PC32 .text+0xe16 | |
114: R_X86_64_PC32 .text+0xe1d | |
118: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
120: R_X86_64_PC32 .text+0xecb | |
124: R_X86_64_PC32 .text+0xed2 | |
128: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
130: R_X86_64_PC32 .text+0xf2c | |
134: R_X86_64_PC32 .text+0xf33 | |
138: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
140: R_X86_64_PC32 .text+0xf86 | |
144: R_X86_64_PC32 .text+0xf8d | |
148: R_X86_64_PC64 __tracepoint_write_msr+0x8 | |
150: R_X86_64_PC32 .text+0x100a | |
154: R_X86_64_PC32 .text+0x1011 | |
158: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
160: R_X86_64_PC32 .text+0x106e | |
164: R_X86_64_PC32 .text+0x1075 | |
168: R_X86_64_PC64 __tracepoint_write_msr+0x8 | |
170: R_X86_64_PC32 .text+0x10b3 | |
174: R_X86_64_PC32 .text+0x10ba | |
178: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
180: R_X86_64_PC32 .text+0x1119 | |
184: R_X86_64_PC32 .text+0x1120 | |
188: R_X86_64_PC64 __tracepoint_write_msr+0x8 | |
190: R_X86_64_PC32 .text+0x11c4 | |
194: R_X86_64_PC32 .text+0x11cb | |
198: R_X86_64_PC64 __tracepoint_read_msr+0x8 | |
1a0: R_X86_64_PC32 .text+0x1201 | |
1a4: R_X86_64_PC32 .text+0x1208 | |
1a8: R_X86_64_PC64 __tracepoint_write_msr+0x8 |
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
; $ gdb -batch -ex "file arch/x86/kernel/cpu/mtrr/generic.o" -ex "disassemble get_fixed_ranges" | |
Dump of assembler code for function get_fixed_ranges: | |
0x00000000000003a0 <+0>: push %r15 | |
0x00000000000003a2 <+2>: push %r14 | |
0x00000000000003a4 <+4>: push %rbx | |
0x00000000000003a5 <+5>: callq 0xf00 <k8_check_syscfg_dram_mod_en> | |
0x00000000000003aa <+10>: mov $0x250,%ecx | |
0x00000000000003af <+15>: rdmsr | |
0x00000000000003b1 <+17>: mov %rax,%r14 | |
0x00000000000003b4 <+20>: mov %rdx,%rbx | |
0x00000000000003b7 <+23>: shl $0x20,%rbx | |
0x00000000000003bb <+27>: or %rax,%rbx | |
0x00000000000003be <+30>: nopl 0x0(%rax,%rax,1) | |
0x00000000000003c3 <+35>: jmp 0x3d4 <get_fixed_ranges+52> | |
0x00000000000003c5 <+37>: mov $0x250,%edi | |
0x00000000000003ca <+42>: mov %rbx,%rsi | |
0x00000000000003cd <+45>: xor %edx,%edx | |
0x00000000000003cf <+47>: callq 0x3d4 <get_fixed_ranges+52> | |
0x00000000000003d4 <+52>: mov %r14d,0x0(%rip) # 0x3db <get_fixed_ranges+59> | |
0x00000000000003db <+59>: shr $0x20,%rbx | |
0x00000000000003df <+63>: mov %ebx,0x0(%rip) # 0x3e5 <get_fixed_ranges+69> | |
0x00000000000003e5 <+69>: mov $0x258,%ecx | |
0x00000000000003ea <+74>: rdmsr | |
0x00000000000003ec <+76>: mov %rax,%r14 | |
0x00000000000003ef <+79>: mov %rdx,%rbx | |
0x00000000000003f2 <+82>: shl $0x20,%rbx | |
0x00000000000003f6 <+86>: or %rax,%rbx | |
0x00000000000003f9 <+89>: nopl 0x0(%rax,%rax,1) | |
0x00000000000003fe <+94>: jmp 0x40f <get_fixed_ranges+111> | |
0x0000000000000400 <+96>: mov $0x258,%edi | |
0x0000000000000405 <+101>: mov %rbx,%rsi | |
0x0000000000000408 <+104>: xor %edx,%edx | |
0x000000000000040a <+106>: callq 0x40f <get_fixed_ranges+111> | |
0x000000000000040f <+111>: mov %r14d,0x0(%rip) # 0x416 <get_fixed_ranges+118> | |
0x0000000000000416 <+118>: shr $0x20,%rbx | |
0x000000000000041a <+122>: mov %ebx,0x0(%rip) # 0x420 <get_fixed_ranges+128> | |
0x0000000000000420 <+128>: mov $0x259,%ecx | |
0x0000000000000425 <+133>: rdmsr | |
0x0000000000000427 <+135>: mov %rax,%r14 | |
0x000000000000042a <+138>: mov %rdx,%rbx | |
0x000000000000042d <+141>: shl $0x20,%rbx | |
0x0000000000000431 <+145>: or %rax,%rbx | |
0x0000000000000434 <+148>: nopl 0x0(%rax,%rax,1) | |
0x0000000000000439 <+153>: jmp 0x44a <get_fixed_ranges+170> | |
0x000000000000043b <+155>: mov $0x259,%edi | |
0x0000000000000440 <+160>: mov %rbx,%rsi | |
0x0000000000000443 <+163>: xor %edx,%edx | |
0x0000000000000445 <+165>: callq 0x44a <get_fixed_ranges+170> | |
0x000000000000044a <+170>: mov %r14d,0x0(%rip) # 0x451 <get_fixed_ranges+177> | |
0x0000000000000451 <+177>: shr $0x20,%rbx | |
0x0000000000000455 <+181>: mov %ebx,0x0(%rip) # 0x45b <get_fixed_ranges+187> | |
0x000000000000045b <+187>: xor %r15d,%r15d | |
0x000000000000045e <+190>: jmp 0x47e <get_fixed_ranges+222> | |
0x0000000000000460 <+192>: mov %r14d,0x0(,%r15,8) | |
0x0000000000000468 <+200>: shr $0x20,%rbx | |
0x000000000000046c <+204>: mov %ebx,0x0(,%r15,8) | |
0x0000000000000474 <+212>: add $0x1,%r15 | |
0x0000000000000478 <+216>: cmp $0x8,%r15 | |
0x000000000000047c <+220>: je 0x4a9 <get_fixed_ranges+265> | |
0x000000000000047e <+222>: lea 0x268(%r15),%rcx | |
0x0000000000000485 <+229>: rdmsr | |
0x0000000000000487 <+231>: mov %rax,%r14 | |
0x000000000000048a <+234>: mov %rdx,%rbx | |
0x000000000000048d <+237>: shl $0x20,%rbx | |
0x0000000000000491 <+241>: or %rax,%rbx | |
0x0000000000000494 <+244>: nopl 0x0(%rax,%rax,1) | |
0x0000000000000499 <+249>: jmp 0x460 <get_fixed_ranges+192> | |
0x000000000000049b <+251>: mov %ecx,%edi | |
0x000000000000049d <+253>: mov %rbx,%rsi | |
0x00000000000004a0 <+256>: xor %edx,%edx | |
0x00000000000004a2 <+258>: callq 0x4a7 <get_fixed_ranges+263> | |
0x00000000000004a7 <+263>: jmp 0x460 <get_fixed_ranges+192> | |
0x00000000000004a9 <+265>: pop %rbx | |
0x00000000000004aa <+266>: pop %r14 | |
0x00000000000004ac <+268>: pop %r15 | |
0x00000000000004ae <+270>: retq | |
End of assembler dump. |
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
$ make CC=clang | |
... | |
arch/x86/kernel/cpu/mtrr/generic.o: warning: objtool: get_fixed_ranges()+0x9b: unreachable instruction | |
$ python -c 'print(hex(0x3a0 + 0x9b))' | |
0x43b |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment