aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@rr.iij4u.or.jp>2003-02-10 22:19:26 +0000
committerKaz Kojima <kkojima@rr.iij4u.or.jp>2003-02-10 22:19:26 +0000
commit0f85b45c31150741744c3cbe57865a9aae91c75c (patch)
tree1427c29b00d914ea6c0823bf7a6b4bc742a59a1e /ld
parentc95b8a7acedca8d6f3dcc368d116ca8b7339f13a (diff)
downloadfsf-binutils-gdb-0f85b45c31150741744c3cbe57865a9aae91c75c.zip
fsf-binutils-gdb-0f85b45c31150741744c3cbe57865a9aae91c75c.tar.gz
fsf-binutils-gdb-0f85b45c31150741744c3cbe57865a9aae91c75c.tar.bz2
* ld-sh/tlstpoff-1.d: New.
* ld-sh/tlstpoff-2.d: New. * ld-sh/tlstpoff1.s: New. * ld-sh/tlstpoff2.s: New.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog7
-rw-r--r--ld/testsuite/ld-sh/tlstpoff-1.d31
-rw-r--r--ld/testsuite/ld-sh/tlstpoff-2.d12
-rw-r--r--ld/testsuite/ld-sh/tlstpoff1.s23
-rw-r--r--ld/testsuite/ld-sh/tlstpoff2.s26
5 files changed, 99 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 3b3e19a..b49ce0c 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2003-02-10 Kaz kojima <kkojima@rr.iij4u.or.jp>
+
+ * ld-sh/tlstpoff-1.d: New.
+ * ld-sh/tlstpoff-2.d: New.
+ * ld-sh/tlstpoff1.s: New.
+ * ld-sh/tlstpoff2.s: New.
+
2003-02-09 Alan Modra <amodra@bigpond.net.au>
* ld-powerpc/tlslib.s: Give .__tls_get_addr function type.
diff --git a/ld/testsuite/ld-sh/tlstpoff-1.d b/ld/testsuite/ld-sh/tlstpoff-1.d
new file mode 100644
index 0000000..2364b1e
--- /dev/null
+++ b/ld/testsuite/ld-sh/tlstpoff-1.d
@@ -0,0 +1,31 @@
+#source: tlstpoff1.s
+#source: tlstpoff2.s
+#as: -little
+#ld: -EL -e foo
+#objdump: -drj.text
+#target: sh*-*-linux* sh*-*-netbsd*
+
+.*: +file format elf32-sh.*
+
+Disassembly of section \.text:
+
+[0-9a-f]+ <foo>:
+ [0-9a-f]+: c6 2f mov.l r12,@-r15
+ [0-9a-f]+: 07 c7 mova [0-9a-f]+ <foo\+0x20>,r0
+ [0-9a-f]+: 06 dc mov.l [0-9a-f]+ <foo\+0x20>,r12 ! 0x[0-9a-f]+
+ [0-9a-f]+: 0c 3c add r0,r12
+ [0-9a-f]+: 02 d0 mov.l [0-9a-f]+ <foo\+0x14>,r0 ! 0xc
+ [0-9a-f]+: 12 01 stc gbr,r1
+ [0-9a-f]+: ce 00 mov.l @\(r0,r12\),r0
+ [0-9a-f]+: 03 a0 bra [0-9a-f]+ <foo\+0x18>
+ [0-9a-f]+: 0c 31 add r0,r1
+ [0-9a-f]+: 09 00 nop
+ [0-9a-f]+: 0c 00 .*[ ]*.*
+ [0-9a-f]+: 00 00 .*[ ]*.*
+ [0-9a-f]+: 12 60 mov.l @r1,r0
+ [0-9a-f]+: 0b 00 rts
+ [0-9a-f]+: f6 6c mov.l @r15\+,r12
+ [0-9a-f]+: 09 00 nop
+ [0-9a-f]+: [0-9a-f]+ [0-9a-f]+ .*[ ]*.*
+ [0-9a-f]+: [0-9a-f]+ [0-9a-f]+ .*[ ]*.*
+#pass
diff --git a/ld/testsuite/ld-sh/tlstpoff-2.d b/ld/testsuite/ld-sh/tlstpoff-2.d
new file mode 100644
index 0000000..ee928fd
--- /dev/null
+++ b/ld/testsuite/ld-sh/tlstpoff-2.d
@@ -0,0 +1,12 @@
+#source: tlstpoff1.s
+#source: tlstpoff2.s
+#as: -little
+#ld: -EL -e foo
+#readelf: -r
+#target: sh*-*-linux* sh*-*-netbsd*
+
+Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 2 entries:
+ Offset +Info +Type +Sym\.Value +Sym\. Name \+ Addend
+0+[0-9a-f]+ 00000097 R_SH_TLS_TPOFF32 +0+04
+0+[0-9a-f]+ 00000097 R_SH_TLS_TPOFF32 +0+04
+
diff --git a/ld/testsuite/ld-sh/tlstpoff1.s b/ld/testsuite/ld-sh/tlstpoff1.s
new file mode 100644
index 0000000..754f3c1
--- /dev/null
+++ b/ld/testsuite/ld-sh/tlstpoff1.s
@@ -0,0 +1,23 @@
+ .text
+ .align 5
+ .global foo
+ .type foo, @function
+foo:
+ mov.l r12,@-r15
+ mova .L1,r0
+ mov.l .L1,r12
+ add r0,r12
+ mov.l 1f,r0
+ stc gbr,r1
+ mov.l @(r0,r12),r0
+ bra 2f
+ add r0,r1
+ .align 2
+1: .long x@GOTTPOFF
+2:
+ mov.l @r1,r0
+ rts
+ mov.l @r15+,r12
+
+ .align 2
+.L1: .long _GLOBAL_OFFSET_TABLE_
diff --git a/ld/testsuite/ld-sh/tlstpoff2.s b/ld/testsuite/ld-sh/tlstpoff2.s
new file mode 100644
index 0000000..6ae9e92
--- /dev/null
+++ b/ld/testsuite/ld-sh/tlstpoff2.s
@@ -0,0 +1,26 @@
+ .section .tbss,"awT",@nobits
+ .global x
+y: .space 4
+x: .space 4
+
+ .section barfn,"ax",@progbits
+ .align 1
+ .type bar, @function
+bar:
+ mova .L1,r0
+ mov.l .L1,r12
+ add r0,r12
+ mov.l 1f,r0
+ stc gbr,r1
+ mov.l @(r0,r12),r0
+ bra 2f
+ add r0,r1
+ .align 2
+1: .long x@GOTTPOFF
+2:
+ mov.l @r1,r0
+ rts
+ mov.l @r15+,r12
+
+ .align 2
+.L1: .long _GLOBAL_OFFSET_TABLE_