#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}[ 	]+data32 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 	]+data32 data32 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}[ 	]+data32 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 	]+data32 data32 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}[ 	]+data32 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 	]+data32 data32 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}[ 	]+data32 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 	]+data32 data32 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:	c9[ 	]+leaveq *
 +11a9:	c3[ 	]+retq *
