aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-hppa.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elf32-hppa.c')
-rw-r--r--bfd/elf32-hppa.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index dfabbad..1fdd4ab 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -311,17 +311,17 @@ hppa_elf_relocate_insn (abfd, input_sect, insn, address, sym_value,
case BL:
case BE:
case BLE:
- /* XXX computing constant_value is not needed??? */
+ /* XXX r_addend ignored ???. */
constant_value = assemble_17 ((insn & 0x001f0000) >> 16,
(insn & 0x00001ffc) >> 2,
insn & 1);
- constant_value = (constant_value << 15) >> 15;
+ constant_value = (constant_value << (BFD_ARCH_SIZE-17))
+ >> (BFD_ARCH_SIZE-17);
if (pcrel)
{
- sym_value -=
- address + input_sect->output_offset
- + input_sect->output_section->vma;
+ sym_value -= (address + input_sect->output_offset
+ + input_sect->output_section->vma);
sym_value = hppa_field_adjust (sym_value, -8, r_field);
}
else