From 2968149b03375032d4f48d8dfbb82007ff0aca1f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 2 May 2003 12:42:13 +0000 Subject: Fix xstormy16's handling of pc-relative relocs against defined symbols. --- ld/testsuite/ChangeLog | 8 +++++++ ld/testsuite/ld-xstormy16/external.s | 5 +++++ ld/testsuite/ld-xstormy16/pcrel.d | 34 +++++++++++++++++++++++++++++ ld/testsuite/ld-xstormy16/pcrel.s | 31 +++++++++++++++++++++++++++ ld/testsuite/ld-xstormy16/xstormy16.exp | 38 +++++++++++++++++++++++++++++++++ 5 files changed, 116 insertions(+) create mode 100644 ld/testsuite/ld-xstormy16/external.s create mode 100644 ld/testsuite/ld-xstormy16/pcrel.d create mode 100644 ld/testsuite/ld-xstormy16/pcrel.s create mode 100644 ld/testsuite/ld-xstormy16/xstormy16.exp (limited to 'ld') 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 + + * 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 * 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 : + 8042: 00 00 nop + +00008044 : + 8044: 00 00 nop + +00008046 : + 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 -- cgit v1.1