mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
df18fdba5d
X86 disassembler checks data and address size prefixes when displaying instruction mnemonic and operands. For the extra data and address size prefixes, their names depend only on the address mode, not the data and address size prefixes. This patch changes x86 disassembler not to check the data and address size prefix when printing extra data and address size prefixes. gas/testsuite/ * gas/i386/nops-1-core2.d: Replace data32 with data16. * gas/i386/nops-4a-i686.d: Likewise. * gas/i386/nops-5-i686.d: Likewise. * gas/i386/nops-5.d: Likewise. * gas/i386/x86-64-cbw-intel.d: Likewise. * gas/i386/x86-64-cbw.d: Likewise. * gas/i386/x86-64-io-intel.d: Likewise. * gas/i386/x86-64-io-suffix.d: Likewise. * gas/i386/x86-64-io.d: Likewise. * gas/i386/x86-64-nops-1-core2.d: Likewise. * gas/i386/x86-64-nops-1-g64.d: Likewise. * gas/i386/x86-64-nops-1-nocona.d: Likewise. * gas/i386/x86-64-nops-1.d: Likewise. * gas/i386/x86-64-nops-2.d: Likewise. * gas/i386/x86-64-nops-3.d: Likewise. * gas/i386/x86-64-nops-4-core2.d: Likewise. * gas/i386/x86-64-nops-4.d: Likewise. * gas/i386/x86-64-nops-5-k8.d: Likewise. * gas/i386/x86-64-nops-5.d: Likewise. * gas/i386/x86-64-stack-intel.d: Likewise. * gas/i386/x86-64-stack-suffix.d: Likewise. * gas/i386/x86-64-stack.d: Likewise. * gas/i386/ilp32/x86-64-cbw-intel.d: Likewise. * gas/i386/ilp32/x86-64-cbw.d: Likewise. * gas/i386/ilp32/x86-64-io-intel.d: Likewise. * gas/i386/ilp32/x86-64-io-suffix.d: Likewise. * gas/i386/ilp32/x86-64-io.d: Likewise. * gas/i386/ilp32/x86-64-nops-1-core2.d: * gas/i386/ilp32/x86-64-nops-1-nocona.d: Likewise. * gas/i386/ilp32/x86-64-nops-1.d: Likewise. * gas/i386/ilp32/x86-64-nops-2.d: Likewise. * gas/i386/ilp32/x86-64-nops-3.d: Likewise. * gas/i386/ilp32/x86-64-nops-4-core2.d: Likewise. * gas/i386/ilp32/x86-64-nops-4.d: Likewise. * gas/i386/ilp32/x86-64-nops-5-k8.d: Likewise. * gas/i386/ilp32/x86-64-nops-5.: Likewise. * gas/i386/ilp32/x86-64-stack-intel.d: Likewise. * gas/i386/ilp32/x86-64-stack-suffix.: Likewise. * gas/i386/ilp32/x86-64-stack.d: Likewise. ld/testsuite/ * ld-x86-64/tlsbin.dd: Replace data32 with data16. * ld-x86-64/tlsdesc-nacl.pd: Likewise. * ld-x86-64/tlsgdesc.dd: Likewise. * ld-x86-64/tlsld1.dd: Likewise. * ld-x86-64/tlsld3.dd: Likewise. * ld-x86-64/tlspic.dd: Likewise. opcodes/ 2014-05-09 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (ADDR16_PREFIX): Removed. (ADDR32_PREFIX): Likewise. (DATA16_PREFIX): Likewise. (DATA32_PREFIX): Likewise. (prefix_name): Updated. (print_insn): Simplify data and address size prefixes processing.
386 lines
14 KiB
Plaintext
386 lines
14 KiB
Plaintext
#source: tlspic1.s
|
|
#source: tlspic2.s
|
|
#as: --64
|
|
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
|
|
#objdump: -drj.text
|
|
#target: x86_64-*-*
|
|
|
|
.*: +file format elf64-x86-64.*
|
|
|
|
Disassembly of section .text:
|
|
|
|
0+1000 <fn1>:
|
|
+1000: 55[ ]+push %rbp
|
|
+1001: 48 89 e5[ ]+mov %rsp,%rbp
|
|
+1004: 90[ ]+nop *
|
|
+1005: 90[ ]+nop *
|
|
+1006: 90[ ]+nop *
|
|
+1007: 90[ ]+nop *
|
|
# GD
|
|
+1008: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x180>
|
|
+100f: [0-9a-f ]+
|
|
# -> R_X86_64_DTPMOD64 sg1
|
|
+1010: 66 66 48 e8 [0-9a-f ]+data16 data16 callq [0-9a-f]+ <.*>
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+1017: [0-9a-f ]+
|
|
+1018: 90[ ]+nop *
|
|
+1019: 90[ ]+nop *
|
|
+101a: 90[ ]+nop *
|
|
+101b: 90[ ]+nop *
|
|
# GD -> IE because variable is referenced through IE too
|
|
+101c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+1023: 00 00 *
|
|
+1025: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x1a0>
|
|
# -> R_X86_64_TPOFF64 sg2
|
|
+102c: 90[ ]+nop *
|
|
+102d: 90[ ]+nop *
|
|
+102e: 90[ ]+nop *
|
|
+102f: 90[ ]+nop *
|
|
# GD against local variable
|
|
+1030: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x130>
|
|
+1037: [0-9a-f ]+
|
|
# -> R_X86_64_DTPMOD64 [0 0x2000000000000000]
|
|
+1038: 66 66 48 e8 [0-9a-f ]+data16 data16 callq [0-9a-f]+ <.*>
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+103f: [0-9a-f ]+
|
|
+1040: 90[ ]+nop *
|
|
+1041: 90[ ]+nop *
|
|
+1042: 90[ ]+nop *
|
|
+1043: 90[ ]+nop *
|
|
# GD -> IE against local variable referenced through IE too
|
|
+1044: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+104b: 00 00 *
|
|
+104d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x140>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x24
|
|
+1054: 90[ ]+nop *
|
|
+1055: 90[ ]+nop *
|
|
+1056: 90[ ]+nop *
|
|
+1057: 90[ ]+nop *
|
|
# GD against hidden and local variable
|
|
+1058: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x1a8>
|
|
+105f: [0-9a-f ]+
|
|
# -> R_X86_64_DTPMOD64 [0 0x4000000000000000]
|
|
+1060: 66 66 48 e8 [0-9a-f ]+data16 data16 callq [0-9a-f]+ <.*>
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+1067: [0-9a-f ]+
|
|
+1068: 90[ ]+nop *
|
|
+1069: 90[ ]+nop *
|
|
+106a: 90[ ]+nop *
|
|
+106b: 90[ ]+nop *
|
|
# GD -> IE against hidden and local variable referenced through IE too
|
|
+106c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+1073: 00 00 *
|
|
+1075: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x1b8>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x44
|
|
+107c: 90[ ]+nop *
|
|
+107d: 90[ ]+nop *
|
|
+107e: 90[ ]+nop *
|
|
+107f: 90[ ]+nop *
|
|
# GD against hidden but not local variable
|
|
+1080: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x160>
|
|
+1087: [0-9a-f ]+
|
|
# -> R_X86_64_DTPMOD64 [0 0x6000000000000000]
|
|
+1088: 66 66 48 e8 [0-9a-f ]+data16 data16 callq [0-9a-f]+ <.*>
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+108f: [0-9a-f ]+
|
|
+1090: 90[ ]+nop *
|
|
+1091: 90[ ]+nop *
|
|
+1092: 90[ ]+nop *
|
|
+1093: 90[ ]+nop *
|
|
# GD -> IE against hidden but not local variable referenced through IE too
|
|
+1094: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+109b: 00 00 *
|
|
+109d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x170>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x64
|
|
+10a4: 90[ ]+nop *
|
|
+10a5: 90[ ]+nop *
|
|
+10a6: 90[ ]+nop *
|
|
+10a7: 90[ ]+nop *
|
|
# LD
|
|
+10a8: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+10af: e8 [0-9a-f ]+callq [0-9a-f]+ <.*>
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+10b4: 90[ ]+nop *
|
|
+10b5: 90[ ]+nop *
|
|
+10b6: 48 8d 90 20 00 00 00[ ]+lea 0x20\(%rax\),%rdx
|
|
+10bd: 90[ ]+nop *
|
|
+10be: 90[ ]+nop *
|
|
+10bf: 4c 8d 88 26 00 00 00[ ]+lea 0x26\(%rax\),%r9
|
|
+10c6: 90[ ]+nop *
|
|
+10c7: 90[ ]+nop *
|
|
+10c8: 90[ ]+nop *
|
|
+10c9: 90[ ]+nop *
|
|
# LD against hidden and local variables
|
|
+10ca: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+10d1: e8 [0-9a-f ]+callq [0-9a-f]+ <.*>
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+10d6: 90[ ]+nop *
|
|
+10d7: 90[ ]+nop *
|
|
+10d8: 48 8d 90 40 00 00 00[ ]+lea 0x40\(%rax\),%rdx
|
|
+10df: 90[ ]+nop *
|
|
+10e0: 90[ ]+nop *
|
|
+10e1: 48 8d 88 47 00 00 00[ ]+lea 0x47\(%rax\),%rcx
|
|
+10e8: 90[ ]+nop *
|
|
+10e9: 90[ ]+nop *
|
|
+10ea: 90[ ]+nop *
|
|
+10eb: 90[ ]+nop *
|
|
# LD against hidden but not local variables
|
|
+10ec: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+10f3: e8 [0-9a-f ]+callq [0-9a-f]+ <.*>
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+10f8: 90[ ]+nop *
|
|
+10f9: 90[ ]+nop *
|
|
+10fa: 4c 8d a0 60 00 00 00[ ]+lea 0x60\(%rax\),%r12
|
|
+1101: 90[ ]+nop *
|
|
+1102: 90[ ]+nop *
|
|
+1103: 48 8d 88 65 00 00 00[ ]+lea 0x65\(%rax\),%rcx
|
|
+110a: 90[ ]+nop *
|
|
+110b: 90[ ]+nop *
|
|
# IE against global var
|
|
+110c: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx
|
|
+1113: 00 00 *
|
|
+1115: 90[ ]+nop *
|
|
+1116: 90[ ]+nop *
|
|
+1117: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x1a0>
|
|
# -> R_X86_64_TPOFF64 sg2
|
|
+111e: 90[ ]+nop *
|
|
+111f: 90[ ]+nop *
|
|
+1120: 90[ ]+nop *
|
|
+1121: 90[ ]+nop *
|
|
# IE against local var
|
|
+1122: 64 4c 8b 34 25 00 00[ ]+mov %fs:0x0,%r14
|
|
+1129: 00 00 *
|
|
+112b: 90[ ]+nop *
|
|
+112c: 90[ ]+nop *
|
|
+112d: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <_DYNAMIC\+0x140>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x24
|
|
+1134: 90[ ]+nop *
|
|
+1135: 90[ ]+nop *
|
|
+1136: 90[ ]+nop *
|
|
+1137: 90[ ]+nop *
|
|
# IE against hidden and local var
|
|
+1138: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx
|
|
+113f: 00 00 *
|
|
+1141: 90[ ]+nop *
|
|
+1142: 90[ ]+nop *
|
|
+1143: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x1b8>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x44
|
|
+114a: 90[ ]+nop *
|
|
+114b: 90[ ]+nop *
|
|
+114c: 90[ ]+nop *
|
|
+114d: 90[ ]+nop *
|
|
# IE against hidden but not local var
|
|
+114e: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx
|
|
+1155: 00 00 *
|
|
+1157: 90[ ]+nop *
|
|
+1158: 90[ ]+nop *
|
|
+1159: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x170>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x64
|
|
+1160: 90[ ]+nop *
|
|
+1161: 90[ ]+nop *
|
|
+1162: 90[ ]+nop *
|
|
+1163: 90[ ]+nop *
|
|
# Direct access through %fs
|
|
# IE against global var
|
|
+1164: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x178>
|
|
# -> R_X86_64_TPOFF64 sg5
|
|
+116b: 90[ ]+nop *
|
|
+116c: 90[ ]+nop *
|
|
+116d: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx
|
|
+1171: 90[ ]+nop *
|
|
+1172: 90[ ]+nop *
|
|
+1173: 90[ ]+nop *
|
|
+1174: 90[ ]+nop *
|
|
# IE against local var
|
|
+1175: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <_DYNAMIC\+0x148>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x30
|
|
+117c: 90[ ]+nop *
|
|
+117d: 90[ ]+nop *
|
|
+117e: 64 4d 8b 22[ ]+mov %fs:\(%r10\),%r12
|
|
+1182: 90[ ]+nop *
|
|
+1183: 90[ ]+nop *
|
|
+1184: 90[ ]+nop *
|
|
+1185: 90[ ]+nop *
|
|
# IE against hidden and local var
|
|
+1186: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <_DYNAMIC\+0x190>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x50
|
|
+118d: 90[ ]+nop *
|
|
+118e: 90[ ]+nop *
|
|
+118f: 64 48 8b 12[ ]+mov %fs:\(%rdx\),%rdx
|
|
+1193: 90[ ]+nop *
|
|
+1194: 90[ ]+nop *
|
|
+1195: 90[ ]+nop *
|
|
+1196: 90[ ]+nop *
|
|
# IE against hidden but not local var
|
|
+1197: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x198>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x70
|
|
+119e: 90[ ]+nop *
|
|
+119f: 90[ ]+nop *
|
|
+11a0: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx
|
|
+11a4: 90[ ]+nop *
|
|
+11a5: 90[ ]+nop *
|
|
+11a6: 90[ ]+nop *
|
|
+11a7: 90[ ]+nop *
|
|
+11a8: 49 bb ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%r11
|
|
+11af: ([0-9a-f]{2} ){3}
|
|
+11b2: 53[ ]+push %rbx
|
|
+11b3: 53[ ]+push %rbx
|
|
+11b4: 48 8d 1d ed ff ff ff[ ]+lea -0x13\(%rip\),%rbx +# [0-9a-f]+ <fn1\+0x[0-9a-f]+>
|
|
+11bb: 4c 01 db[ ]+add %r11,%rbx
|
|
+11be: 90[ ]+nop *
|
|
+11bf: 90[ ]+nop *
|
|
+11c0: 90[ ]+nop *
|
|
+11c1: 90[ ]+nop *
|
|
# -mcmodel=large sequences
|
|
#
|
|
# -mcmodel=large GD
|
|
+11c2: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x180>
|
|
# -> R_X86_64_DTPMOD64 sg1
|
|
+11c9: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+11d0: ([0-9a-f]{2} ){3}
|
|
+11d3: 48 01 d8[ ]+add %rbx,%rax
|
|
+11d6: ff d0[ ]+callq \*%rax
|
|
+11d8: 90[ ]+nop *
|
|
+11d9: 90[ ]+nop *
|
|
+11da: 90[ ]+nop *
|
|
+11db: 90[ ]+nop *
|
|
# -mcmodel=large GD -> IE because variable is referenced through IE too
|
|
# -> R_X86_64_TPOFF64 sg2
|
|
+11dc: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+11e3: 00 00
|
|
+11e5: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x1a0>
|
|
# -> R_X86_64_TPOFF64 sg2
|
|
+11ec: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
|
|
+11f2: 90[ ]+nop *
|
|
+11f3: 90[ ]+nop *
|
|
+11f4: 90[ ]+nop *
|
|
+11f5: 90[ ]+nop *
|
|
# -mcmodel=large GD against local variable
|
|
+11f6: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x130>
|
|
# -> R_X86_64_DTPMOD64 [0 0x2000000000000000]
|
|
+11fd: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+1204: ([0-9a-f]{2} ){3}
|
|
+1207: 48 01 d8[ ]+add %rbx,%rax
|
|
+120a: ff d0[ ]+callq \*%rax
|
|
+120c: 90[ ]+nop *
|
|
+120d: 90[ ]+nop *
|
|
+120e: 90[ ]+nop *
|
|
+120f: 90[ ]+nop *
|
|
# -mcmodel=large GD -> IE against local variable referenced through IE too
|
|
+1210: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+1217: 00 00
|
|
+1219: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x140>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x24
|
|
+1220: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
|
|
+1226: 90[ ]+nop *
|
|
+1227: 90[ ]+nop *
|
|
+1228: 90[ ]+nop *
|
|
+1229: 90[ ]+nop *
|
|
# -mcmodel=large GD against hidden and local variable
|
|
+122a: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x1a8>
|
|
# -> R_X86_64_DTPMOD64 [0 0x4000000000000000]
|
|
+1231: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+1238: ([0-9a-f]{2} ){3}
|
|
+123b: 48 01 d8[ ]+add %rbx,%rax
|
|
+123e: ff d0[ ]+callq \*%rax
|
|
+1240: 90[ ]+nop *
|
|
+1241: 90[ ]+nop *
|
|
+1242: 90[ ]+nop *
|
|
+1243: 90[ ]+nop *
|
|
# -mcmodel=large GD -> IE against hidden and local variable referenced through IE too
|
|
+1244: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+124b: 00 00
|
|
+124d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x1b8>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x44
|
|
+1254: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
|
|
+125a: 90[ ]+nop *
|
|
+125b: 90[ ]+nop *
|
|
+125c: 90[ ]+nop *
|
|
+125d: 90[ ]+nop *
|
|
# -mcmodel=large GD against hidden but not local variable
|
|
+125e: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x160>
|
|
# -> R_X86_64_DTPMOD64 [0 0x6000000000000000]
|
|
+1265: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+126c: ([0-9a-f]{2} ){3}
|
|
+126f: 48 01 d8[ ]+add %rbx,%rax
|
|
+1272: ff d0[ ]+callq \*%rax
|
|
+1274: 90[ ]+nop *
|
|
+1275: 90[ ]+nop *
|
|
+1276: 90[ ]+nop *
|
|
+1277: 90[ ]+nop *
|
|
# -mcmodel=large GD -> IE against hidden but not local variable referenced through IE too
|
|
+1278: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
|
|
+127f: 00 00
|
|
+1281: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x170>
|
|
# -> R_X86_64_TPOFF64 *ABS*+0x64
|
|
+1288: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
|
|
+128e: 90[ ]+nop *
|
|
+128f: 90[ ]+nop *
|
|
+1290: 90[ ]+nop *
|
|
+1291: 90[ ]+nop *
|
|
# -mcmodel=large LD
|
|
+1292: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+1299: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+12a0: ([0-9a-f]{2} ){3}
|
|
+12a3: 48 01 d8[ ]+add %rbx,%rax
|
|
+12a6: ff d0[ ]+callq \*%rax
|
|
+12a8: 90[ ]+nop *
|
|
+12a9: 90[ ]+nop *
|
|
+12aa: 48 8d 90 20 00 00 00[ ]+lea 0x20\(%rax\),%rdx
|
|
+12b1: 90[ ]+nop *
|
|
+12b2: 90[ ]+nop *
|
|
+12b3: 4c 8d 88 26 00 00 00[ ]+lea 0x26\(%rax\),%r9
|
|
+12ba: 90[ ]+nop *
|
|
+12bb: 90[ ]+nop *
|
|
+12bc: 90[ ]+nop *
|
|
+12bd: 90[ ]+nop *
|
|
# -mcmodel=large LD against hidden and local variables
|
|
+12be: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+12c5: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+12cc: ([0-9a-f]{2} ){3}
|
|
+12cf: 48 01 d8[ ]+add %rbx,%rax
|
|
+12d2: ff d0[ ]+callq \*%rax
|
|
+12d4: 90[ ]+nop *
|
|
+12d5: 90[ ]+nop *
|
|
+12d6: 48 8d 90 40 00 00 00[ ]+lea 0x40\(%rax\),%rdx
|
|
+12dd: 90[ ]+nop *
|
|
+12de: 90[ ]+nop *
|
|
+12df: 48 8d 88 47 00 00 00[ ]+lea 0x47\(%rax\),%rcx
|
|
+12e6: 90[ ]+nop *
|
|
+12e7: 90[ ]+nop *
|
|
+12e8: 90[ ]+nop *
|
|
+12e9: 90[ ]+nop *
|
|
# -mcmodel=large LD against hidden but not local variables
|
|
+12ea: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150>
|
|
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
|
|
+12f1: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
|
|
# -> R_X86_64_JUMP_SLOT __tls_get_addr
|
|
+12f8: ([0-9a-f]{2} ){3}
|
|
+12fb: 48 01 d8[ ]+add %rbx,%rax
|
|
+12fe: ff d0[ ]+callq \*%rax
|
|
+1300: 90[ ]+nop *
|
|
+1301: 90[ ]+nop *
|
|
+1302: 4c 8d a0 60 00 00 00[ ]+lea 0x60\(%rax\),%r12
|
|
+1309: 90[ ]+nop *
|
|
+130a: 90[ ]+nop *
|
|
+130b: 48 8d 88 65 00 00 00[ ]+lea 0x65\(%rax\),%rcx
|
|
+1312: 90[ ]+nop *
|
|
+1313: 90[ ]+nop *
|
|
+1314: 90[ ]+nop *
|
|
+1315: 90[ ]+nop *
|
|
+1316: 5b[ ]+pop %rbx
|
|
+1317: 5b[ ]+pop %rbx
|
|
+1318: c9[ ]+leaveq
|
|
+1319: c3[ ]+retq
|