2003-05-11 Jason Eckhardt <jle@rice.edu>
* bfd/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.
This commit is contained in:
parent
d68c07bb74
commit
a48c6a54fc
2 changed files with 12 additions and 3 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
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>
|
2003-05-11 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
* elf32-m68k.c (elf_m68k_relocate_section): Replace ugly
|
* elf32-m68k.c (elf_m68k_relocate_section): Replace ugly
|
||||||
|
|
|
@ -718,7 +718,7 @@ elf32_i860_relocate_splitn (input_bfd, rello, contents, value)
|
||||||
value += rello->r_addend;
|
value += rello->r_addend;
|
||||||
|
|
||||||
/* Separate the fields and insert. */
|
/* 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;
|
insn = (insn & ~howto->dst_mask) | value;
|
||||||
|
|
||||||
bfd_put_32 (input_bfd, insn, contents + rello->r_offset);
|
bfd_put_32 (input_bfd, insn, contents + rello->r_offset);
|
||||||
|
@ -750,7 +750,7 @@ elf32_i860_relocate_pc16 (input_bfd, input_section, rello, contents, value)
|
||||||
value += rello->r_addend;
|
value += rello->r_addend;
|
||||||
|
|
||||||
/* Separate the fields and insert. */
|
/* 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;
|
insn = (insn & ~howto->dst_mask) | value;
|
||||||
|
|
||||||
bfd_put_32 (input_bfd, insn, contents + rello->r_offset);
|
bfd_put_32 (input_bfd, insn, contents + rello->r_offset);
|
||||||
|
@ -802,8 +802,8 @@ elf32_i860_relocate_highadj (input_bfd, rel, contents, value)
|
||||||
|
|
||||||
insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
|
insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
|
||||||
|
|
||||||
value += ((rel->r_addend & 0x8000) << 1);
|
|
||||||
value += rel->r_addend;
|
value += rel->r_addend;
|
||||||
|
value += (value & 0x8000) << 1;
|
||||||
value = ((value >> 16) & 0xffff);
|
value = ((value >> 16) & 0xffff);
|
||||||
|
|
||||||
insn = (insn & 0xffff0000) | value;
|
insn = (insn & 0xffff0000) | value;
|
||||||
|
|
Loading…
Reference in a new issue