Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#source: tlsgdesc.s
#as: --64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -drj.text -Mintel64
#target: x86_64-*-*

.*: +file format elf64-x86-64.*

Disassembly of section .text:

0+[0-9a-f]+ <fc1>:
 +[0-9a-f]+:	55[ 	]+push   %rbp
 +[0-9a-f]+:	48 89 e5[ 	]+mov    %rsp,%rbp
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# IE
 +[0-9a-f]+:	64 48 8b 0c 25 00 00[ 	]+mov    %fs:0x0,%rcx
 +[0-9a-f]+:	00 00 *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	48 03 0d ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG3
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# IE
 +[0-9a-f]+:	64 48 8b 0c 25 00 00[ 	]+mov    %fs:0x0,%rcx
 +[0-9a-f]+:	00 00 *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	48 03 0d ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG4
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# GD, gd first
 +[0-9a-f]+:	66 48 8d 3d ([0-9a-f]{2} ){3}[ 	]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
 +[0-9a-f]+:	[0-9a-f]{2} *
#				-> R_X86_64_DTPMOD64	sG1
 +[0-9a-f]+:	66 66 48 e8 ([0-9a-f]{2} ){3}[ 	]+data16 data16 rex\.W call [0-9a-f]+ <__tls_get_addr@plt>
 +[0-9a-f]+:	[0-9a-f]{2} *
#				-> R_X86_64_JUMP_SLOT	__tls_get_addr
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	48 8d 05 ([0-9a-f]{2} ){4}[ 	]+lea    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TLSDESC	sG1
 +[0-9a-f]+:	ff 10[ 	]+call   \*\(%rax\)
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# GD, desc first
 +[0-9a-f]+:	48 8d 05 ([0-9a-f]{2} ){4}[ 	]+lea    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TLSDESC	sG2
 +[0-9a-f]+:	ff 10[ 	]+call   \*\(%rax\)
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	66 48 8d 3d ([0-9a-f]{2} ){3}[ 	]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
 +[0-9a-f]+:	[0-9a-f]{2} *
#				-> R_X86_64_DTPMOD64	sG2
 +[0-9a-f]+:	66 66 48 e8 ([0-9a-f]{2} ){3}[ 	]+data16 data16 rex\.W call [0-9a-f]+ <__tls_get_addr@plt>
 +[0-9a-f]+:	[0-9a-f]{2} *
#				-> R_X86_64_JUMP_SLOT	__tls_get_addr
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# GD -> IE, gd first, after IE use
 +[0-9a-f]+:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
 +[0-9a-f]+:	00 00 *
 +[0-9a-f]+:	48 03 05 ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG3
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	48 8b 05 ([0-9a-f]{2} ){4}[ 	]+mov    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG3
 +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# GD -> IE, desc first, after IE use
 +[0-9a-f]+:	48 8b 05 ([0-9a-f]{2} ){4}[ 	]+mov    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG4
 +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
 +[0-9a-f]+:	00 00 *
 +[0-9a-f]+:	48 03 05 ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG4
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# GD -> IE, gd first, before IE use
 +[0-9a-f]+:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
 +[0-9a-f]+:	00 00 *
 +[0-9a-f]+:	48 03 05 ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG5
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	48 8b 05 ([0-9a-f]{2} ){4}[ 	]+mov    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG5
 +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# GD -> IE, desc first, before IE use
 +[0-9a-f]+:	48 8b 05 ([0-9a-f]{2} ){4}[ 	]+mov    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG6
 +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
 +[0-9a-f]+:	00 00 *
 +[0-9a-f]+:	48 03 05 ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG6
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# IE
 +[0-9a-f]+:	64 48 8b 0c 25 00 00[ 	]+mov    %fs:0x0,%rcx
 +[0-9a-f]+:	00 00 *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	48 03 0d ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG5
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
# IE
 +[0-9a-f]+:	64 48 8b 0c 25 00 00[ 	]+mov    %fs:0x0,%rcx
 +[0-9a-f]+:	00 00 *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	48 03 0d ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
#				-> R_X86_64_TPOFF64	sG6
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	c9[ 	]+leave *
 +[0-9a-f]+:	c3[ 	]+ret *