From f680ea79cc76d52d4b89d319f5e1a1e2f360b435 Mon Sep 17 00:00:00 2001 From: Jason Eckhardt Date: Sun, 24 Aug 2003 18:16:46 +0000 Subject: 2003-08-24 Jason Eckhardt * elf32-i860.c (elf32_i860_relocate_pc16): Subtract 4 and shift by 2 before storing the relocated value. --- bfd/elf32-i860.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'bfd/elf32-i860.c') diff --git a/bfd/elf32-i860.c b/bfd/elf32-i860.c index fd68dc6..0e013ef 100644 --- a/bfd/elf32-i860.c +++ b/bfd/elf32-i860.c @@ -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; -- cgit v1.1