OSDN Git Service

2003-08-24 Jason Eckhardt <jle@rice.edu>
authorjle <jle>
Sun, 24 Aug 2003 18:16:45 +0000 (18:16 +0000)
committerjle <jle>
Sun, 24 Aug 2003 18:16:45 +0000 (18:16 +0000)
* elf32-i860.c (elf32_i860_relocate_pc16): Subtract 4 and
shift by 2 before storing the relocated value.

bfd/ChangeLog
bfd/elf32-i860.c

index dc7750a..6fe12d5 100644 (file)
@@ -1,3 +1,8 @@
+2003-08-24  Jason Eckhardt  <jle@rice.edu>
+
+       * elf32-i860.c (elf32_i860_relocate_pc16): Subtract 4 and
+       shift by 2 before storing the relocated value.
+
 2003-08-23  Jason Eckhardt  <jle@rice.edu>
 
         * coff-i860.c (coff_i860_reloc_nyi): New function.
index fd68dc6..0e013ef 100644 (file)
@@ -712,7 +712,8 @@ elf32_i860_relocate_pc16 (bfd *input_bfd,
   /* Relocate.  */
   value += rello->r_addend;
 
-  /* Separate the fields and insert.  */
+  /* Adjust the value by 4, then separate the fields and insert.  */
+  value = (value - 4) >> howto->rightshift;
   value = (((value & 0xf800) << 5) | (value & 0x7ff)) & howto->dst_mask;
   insn = (insn & ~howto->dst_mask) | value;