aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2008-03-08 01:20:39 +0000
committerPaul Brook <paul@codesourcery.com>2008-03-08 01:20:39 +0000
commit39623e120c11861d80f4859ccf3e7b77b7c15fa3 (patch)
treec3b3b4d318c5eee2423edcdef40bf8b4b984769e /gas
parent460b2855087fab29ecd3b0546ec28ecb259e45ab (diff)
downloadgdb-39623e120c11861d80f4859ccf3e7b77b7c15fa3.zip
gdb-39623e120c11861d80f4859ccf3e7b77b7c15fa3.tar.gz
gdb-39623e120c11861d80f4859ccf3e7b77b7c15fa3.tar.bz2
2008-03-07 Paul Brook <paul@codesourcery.com>
bfd/ * elf32-arm.c (elf32_arm_howto_table_1): Fix bitmasks for MOVW and MOVT relocations. (elf32_arm_final_link_relocate): Fix off by one MOVW/MOVT sign extension. (elf32_arm_relocate_section): Handle MOVW and MOVT relocations. Improve safety check for other weird relocations. (elf32_arm_check_relocs): Only set h->needs_plt for branch/call relocations. gas/ * config/tc-arm.c (md_apply_fix): Use correct offset range. ld/testsuite/ * ld-arm/arm-elf.exp (armelftests): Add movw-merge and arm-app-movw. * ld-arm/arm-app-movw.s: New test. * ld-arm/arm-app.r: Update expected output. * ld-arm/movw-merge.d: New test. * ld-arm/movw-merge.s: New test.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-arm.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index bb8a91e..b360a4b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2008-03-07 Paul Brook <paul@codesourcery.com>
+
+ * config/tc-arm.c (md_apply_fix): Use correct offset range.
+
2008-03-07 Alan Modra <amodra@bigpond.net.au>
* config/tc-ppc.c (ppc_setup_opcodes): Tidy. Add code to test
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 48fb152..161b644 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -18804,7 +18804,7 @@ md_apply_fix (fixS * fixP,
/* REL format relocations are limited to a 16-bit addend. */
if (!fixP->fx_done)
{
- if (value < -0x1000 || value > 0xffff)
+ if (value < -0x8000 || value > 0x7fff)
as_bad_where (fixP->fx_file, fixP->fx_line,
_("offset out of range"));
}