aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-05-02 12:42:13 +0000
committerNick Clifton <nickc@redhat.com>2003-05-02 12:42:13 +0000
commit2968149b03375032d4f48d8dfbb82007ff0aca1f (patch)
treeba866f931f9f3bc68bc2ab8ba1542c2b08b1a53c /ld
parentd40d037cac40b66f4055f2aa42acaef86e9281f6 (diff)
downloadgdb-2968149b03375032d4f48d8dfbb82007ff0aca1f.zip
gdb-2968149b03375032d4f48d8dfbb82007ff0aca1f.tar.gz
gdb-2968149b03375032d4f48d8dfbb82007ff0aca1f.tar.bz2
Fix xstormy16's handling of pc-relative relocs against defined symbols.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog8
-rw-r--r--ld/testsuite/ld-xstormy16/external.s5
-rw-r--r--ld/testsuite/ld-xstormy16/pcrel.d34
-rw-r--r--ld/testsuite/ld-xstormy16/pcrel.s31
-rw-r--r--ld/testsuite/ld-xstormy16/xstormy16.exp38
5 files changed, 116 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 307ffae..4f0b901 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2003-05-02 Nick Clifton <nickc@redhat.com>
+
+ * ld-xstormy16: New directory.
+ * ld-xstormy16/xstormy16.exp: New test script.
+ * ld-xstormy16/pcrel.s: Test assembler source file.
+ * ld-xstormy16/external.s: Test assembler source file.
+ * ld-xstormy16/pcrel.d: Test expected disassembly.
+
2003-05-02 Andreas Jaeger <aj@suse.de>
* ld-elfvers/vers.exp (build_exec): Disable vers26b3 on x86-64-linux.
diff --git a/ld/testsuite/ld-xstormy16/external.s b/ld/testsuite/ld-xstormy16/external.s
new file mode 100644
index 0000000..2907e9e
--- /dev/null
+++ b/ld/testsuite/ld-xstormy16/external.s
@@ -0,0 +1,5 @@
+ .text
+ .global external
+external:
+ nop
+ \ No newline at end of file
diff --git a/ld/testsuite/ld-xstormy16/pcrel.d b/ld/testsuite/ld-xstormy16/pcrel.d
new file mode 100644
index 0000000..b19fa5e
--- /dev/null
+++ b/ld/testsuite/ld-xstormy16/pcrel.d
@@ -0,0 +1,34 @@
+
+.*: file format elf32-xstormy16
+
+Disassembly of section .data:
+Disassembly of section .text:
+
+00008000 <_start>:
+ 8000: 00 79 46 80 mov.w 0x0,#0x8046
+ 8004: 00 79 42 80 mov.w 0x0,#0x8042
+ 8008: 00 79 44 80 mov.w 0x0,#0x8044
+ 800c: 00 79 2c 00 mov.w 0x0,#0x2c
+ 8010: 00 79 32 00 mov.w 0x0,#0x32
+ 8014: 00 79 30 00 mov.w 0x0,#0x30
+ 8018: 2c d3 bc 0x8046
+ 801a: 26 d3 bc 0x8042
+ 801c: 26 d3 bc 0x8044
+ 801e: 24 c3 00 00 bc Rx,#0x0,0x8046
+ 8022: 1c c3 00 00 bc Rx,#0x0,0x8042
+ 8026: 1a c3 00 00 bc Rx,#0x0,0x8044
+ 802a: 00 20 18 30 bc r0,#0x0,0x8046
+ 802e: 00 20 10 30 bc r0,#0x0,0x8042
+ 8032: 00 20 0e 30 bc r0,#0x0,0x8044
+ 8036: 10 0d 0c 30 bc r0,r1,0x8046
+ 803a: 10 0d 04 30 bc r0,r1,0x8042
+ 803e: 10 0d 02 30 bc r0,r1,0x8044
+
+00008042 <global>:
+ 8042: 00 00 nop
+
+00008044 <local>:
+ 8044: 00 00 nop
+
+00008046 <external>:
+ 8046: 00 00 nop
diff --git a/ld/testsuite/ld-xstormy16/pcrel.s b/ld/testsuite/ld-xstormy16/pcrel.s
new file mode 100644
index 0000000..6128e51
--- /dev/null
+++ b/ld/testsuite/ld-xstormy16/pcrel.s
@@ -0,0 +1,31 @@
+ .text
+ .global _start
+_start:
+ mov 0, # external
+ mov 0, # global
+ mov 0, # local
+
+ mov 0, # external - .
+ mov 0, # global - .
+ mov 0, # local - .
+
+ bc external
+ bc global
+ bc local
+
+ bc rx, #0, external
+ bc rx, #0, global
+ bc rx, #0, local
+
+ bc r0, #0, external
+ bc r0, #0, global
+ bc r0, #0, local
+
+ bc r0, r1, external
+ bc r0, r1, global
+ bc r0, r1, local
+ .global global
+global:
+ nop
+local:
+ nop
diff --git a/ld/testsuite/ld-xstormy16/xstormy16.exp b/ld/testsuite/ld-xstormy16/xstormy16.exp
new file mode 100644
index 0000000..c16db91
--- /dev/null
+++ b/ld/testsuite/ld-xstormy16/xstormy16.exp
@@ -0,0 +1,38 @@
+# Expect script for ld-xstormy16 tests
+# Copyright (C) 2003 Free Software Foundation
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+# Test xstormy16 linking of pc-relative relocs. This tests the assembler and
+# tools like objdump as well as the linker.
+
+if {!([istarget "xstormy16*-*-*"]) } {
+ return
+}
+
+# Set up a list as described in ld-lib.exp
+
+set xstormy16_tests {
+ { "xstormy16 pc-relative relocs linker test"
+ ""
+ ""
+ { "pcrel.s" "external.s" }
+ { {objdump -Dz pcrel.d} }
+ "pcrel"
+ }
+}
+
+run_ld_link_tests $xstormy16_tests