summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-i386/tlsnopic.dd
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-i386/tlsnopic.dd')
-rw-r--r--ld/testsuite/ld-i386/tlsnopic.dd158
1 files changed, 158 insertions, 0 deletions
diff --git a/ld/testsuite/ld-i386/tlsnopic.dd b/ld/testsuite/ld-i386/tlsnopic.dd
new file mode 100644
index 0000000..10d24a4
--- /dev/null
+++ b/ld/testsuite/ld-i386/tlsnopic.dd
@@ -0,0 +1,158 @@
+#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,%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,%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,%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,%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,%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,%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 *