aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorChristian Groessler <chris@groessler.org>2003-10-04 21:09:29 +0000
committerChristian Groessler <chris@groessler.org>2003-10-04 21:09:29 +0000
commit8b7cf393a5c43060fda7bb646a70ece4a5a24063 (patch)
treeb4ffb66a84e5a224ff03f7a10f7571790f0d6d4f /bfd
parent0a6a3ebe971383afdfca26b4f9a2669bd09770b5 (diff)
downloadfsf-binutils-gdb-8b7cf393a5c43060fda7bb646a70ece4a5a24063.zip
fsf-binutils-gdb-8b7cf393a5c43060fda7bb646a70ece4a5a24063.tar.gz
fsf-binutils-gdb-8b7cf393a5c43060fda7bb646a70ece4a5a24063.tar.bz2
2003-10-04 Christian Groessler <chris@groessler.org>
* coff-z8k.c (extra_case): Fix displacement length check for R_JR and R_CALLR.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/coff-z8k.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f1bb64e..fe9f395 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-04 Christian Groessler <chris@groessler.org>
+
+ * coff-z8k.c (extra_case): Fix displacement length check for R_JR
+ and R_CALLR.
+
2003-10-04 Stephane Carrez <stcarrez@nerim.fr>
* elf32-m68hc1x.c: Update to ISO C90; replace PTR with void*.
diff --git a/bfd/coff-z8k.c b/bfd/coff-z8k.c
index 3337376..bc4bd24 100644
--- a/bfd/coff-z8k.c
+++ b/bfd/coff-z8k.c
@@ -268,7 +268,7 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
abort ();
gap /= 2;
- if (gap > 0 || gap < -128)
+ if (gap > 0 || gap < -127)
{
if (! ((*link_info->callbacks->reloc_overflow)
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
@@ -295,8 +295,7 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
if (gap & 1)
abort ();
- gap /= 2;
- if (gap > 8191 || gap < -8192)
+ if (gap > 4096 || gap < -4095)
{
if (! ((*link_info->callbacks->reloc_overflow)
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
@@ -304,6 +303,7 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
input_section, reloc->address)))
abort ();
}
+ gap /= 2;
bfd_put_16 (in_abfd,
(bfd_get_16 ( in_abfd, data + *dst_ptr) & 0xf000) | (-gap & 0x0fff),
data + *dst_ptr);