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: tlsnopic1.s
#source: tlsnopic2.s
#as: --32
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: i?86-*-*

.*: +file format elf32-i386.*

Disassembly of section .text:

[0-9a-f]+ <fn3>:
 +[0-9a-f]+:	55[ 	]+push   %ebp
 +[0-9a-f]+:	89 e5[ 	]+mov    %esp,%ebp
#  @indntpoff IE against global var
 +[0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	03 05 ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+(c|8),%eax
#				->R_386_TLS_TPOFF	sg1
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  @indntpoff direct %gs access IE against global var
 +[0-9a-f]+:	8b 15 ([0-9a-f]{2} ){4}[ 	]+mov    0x[0-9a-f]+(0|c),%edx
#				->R_386_TLS_TPOFF	sg2
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	65 8b 02[ 	]+mov    %gs:\(%edx\),%eax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  @indntpoff IE against hidden var
 +[0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	03 05 ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+(4|0),%eax
#				->R_386_TLS_TPOFF	[0x14000000]
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  @indntpoff direct %gs access IE against hidden var
 +[0-9a-f]+:	8b 15 ([0-9a-f]{2} ){4}[ 	]+mov    0x[0-9a-f]+(8|4),%edx
#				->R_386_TLS_TPOFF	[0x18000000]
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	65 8b 02[ 	]+mov    %gs:\(%edx\),%eax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  @indntpoff IE against local var
 +[0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	03 05 ([0-9a-f]{2} ){4}[ 	]+add    0x[0-9a-f]+(4|0),%eax
#				->R_386_TLS_TPOFF	[0x00000000]
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  @indntpoff direct %gs access IE against local var
 +[0-9a-f]+:	8b 15 ([0-9a-f]{2} ){4}[ 	]+mov    0x[0-9a-f]+(8|4),%edx
#				->R_386_TLS_TPOFF	[0x04000000]
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	65 8b 02[ 	]+mov    %gs:\(%edx\),%eax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  LE @tpoff, global var
 +[0-9a-f]+:	ba fd ff ff ff[ 	]+mov    \$0xfffffffd,%edx
#				R_386_TLS_TPOFF32	sg3
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	29 d0[ 	]+sub    %edx,%eax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  LE @tpoff, local var
 +[0-9a-f]+:	b8 f7 ff ff ff[ 	]+mov    \$0xfffffff7,%eax
#				R_386_TLS_TPOFF32
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	29 c2[ 	]+sub    %eax,%edx
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  LE @ntpoff, global var
 +[0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	8d 90 02 00 00 00[ 	]+lea    0x2\(%eax\),%edx
#				R_386_TLS_TPOFF		sg4
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  LE @ntpoff, hidden var, non-canonical sequence
 +[0-9a-f]+:	b8 1c 00 00 00[ 	]+mov    \$0x1c,%eax
#				R_386_TLS_TPOFF
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	01 c2[ 	]+add    %eax,%edx
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  LE @ntpoff, local var, non-canonical sequence
 +[0-9a-f]+:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	81 c2 0d 00 00 00[ 	]+add    \$0xd,%edx
#				R_386_TLS_TPOFF
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  Direct %gs access
#  LE @ntpoff, global var
 +[0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
#				R_386_TLS_TPOFF		sg5
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  LE @ntpoff, local var
 +[0-9a-f]+:	65 8b 15 13 00 00 00 	mov    %gs:0x13,%edx
#				R_386_TLS_TPOFF
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
#  LE @ntpoff, hidden var
 +[0-9a-f]+:	65 8b 15 21 00 00 00 	mov    %gs:0x21,%edx
#				R_386_TLS_TPOFF
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	90[ 	]+nop *
 +[0-9a-f]+:	8b 5d fc[ 	]+mov    -0x4\(%ebp\),%ebx
 +[0-9a-f]+:	c9[ 	]+leave *
 +[0-9a-f]+:	c3[ 	]+ret *