+2003-05-11 Jason Eckhardt <jle@rice.edu>
+
+ * elf32-i860.c (elf32_i860_relocate_highadj): Properly
+ adjust upper bits.
+ (elf32_i860_relocate_splitn): Obtain upper 5 bits from the
+ proper place.
+ (elf32_i860_relocate_pc16): Obtain upper 5 bits from the
+ proper place.
+
2003-05-11 Andreas Schwab <schwab@suse.de>
* elf32-m68k.c (elf_m68k_relocate_section): Replace ugly
value += rello->r_addend;
/* Separate the fields and insert. */
- value = (((value & 0xf8) << 5) | (value & 0x7ff)) & howto->dst_mask;
+ value = (((value & 0xf800) << 5) | (value & 0x7ff)) & howto->dst_mask;
insn = (insn & ~howto->dst_mask) | value;
bfd_put_32 (input_bfd, insn, contents + rello->r_offset);
value += rello->r_addend;
/* Separate the fields and insert. */
- value = (((value & 0xf8) << 5) | (value & 0x7ff)) & howto->dst_mask;
+ value = (((value & 0xf800) << 5) | (value & 0x7ff)) & howto->dst_mask;
insn = (insn & ~howto->dst_mask) | value;
bfd_put_32 (input_bfd, insn, contents + rello->r_offset);
insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
- value += ((rel->r_addend & 0x8000) << 1);
value += rel->r_addend;
+ value += (value & 0x8000) << 1;
value = ((value >> 16) & 0xffff);
insn = (insn & 0xffff0000) | value;