+2003-05-02 Nick Clifton <nickc@redhat.com>
+
+ * config/tc-xstormy16.c (xstormy16_md_apply_fix3): Do not bias the
+ addend with the symbol's value for pc-relative relocations against
+ a defined symbol - this will be done automatically.
+
2003-05-01 H.J. Lu <hjl@gnu.org>
* config/obj-elf.c (obj_elf_type): Accept "notype" and
/* Tuck `value' away for use by tc_gen_reloc.
See the comment describing fx_addnumber in write.h.
- This field is misnamed (or misused :-). */
- fixP->fx_addnumber += value;
+ This field is misnamed (or misused :-).
+ We do not do this for pc-relative relocs against a
+ defined symbol, since it will be done for us. */
+ if ((! fixP->fx_pcrel)
+ || (fixP->fx_addsy && ! S_IS_DEFINED (fixP->fx_addsy)))
+ fixP->fx_addnumber += value;
}
\f
+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.
--- /dev/null
+ .text
+ .global external
+external:
+ nop
+
\ No newline at end of file
--- /dev/null
+
+.*: 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
--- /dev/null
+ .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
--- /dev/null
+# 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