* elf32-hppa.c (elf32_hppa_bfd_final_link_relocate): Don't mess
with the operands of an R_PARISC_DPREL21L relocation if the insn is not "addil <symbol>,%r27".
This commit is contained in:
parent
018dafca8a
commit
9a6880571c
|
@ -1,3 +1,9 @@
|
|||
Sat Jun 17 09:40:44 1995 Jeff Law (law@snake.cs.utah.edu)
|
||||
|
||||
* elf32-hppa.c (elf32_hppa_bfd_final_link_relocate): Don't mess
|
||||
with the operands of an R_PARISC_DPREL21L relocation if the insn
|
||||
is not "addil <symbol>,%r27".
|
||||
|
||||
Fri Jun 16 15:04:47 1995 Stan Shebs <shebs@andros.cygnus.com>
|
||||
|
||||
* bfd-in.h (NT_subsystem, NT_stack_heap): Declare but don't
|
||||
|
|
|
@ -1300,11 +1300,15 @@ elf32_hppa_bfd_final_link_relocate (howto, input_bfd, output_bfd,
|
|||
section. If it's a code section, then "data pointer relative" makes
|
||||
no sense. In that case we don't adjust the "value", and for 21 bit
|
||||
addil instructions, we change the source addend register from %dp to
|
||||
%r0. */
|
||||
%r0.
|
||||
case R_PARISC_DPREL21L:
|
||||
r_field = e_lrsel;
|
||||
if (sym_sec->flags & SEC_CODE)
|
||||
{
|
||||
if ((insn & 0xfc) >> 26 == 0xa
|
||||
&& (insn & 0x03e00000) >> 21 == 0x1b)
|
||||
insn &= ~0x03e00000;
|
||||
}
|
||||
else
|
||||
value -= elf32_hppa_hash_table (info)->global_value;
|
||||
goto do_basic_type_1;
|
||||
|
|
Loading…
Reference in New Issue