diff options
author | Jason Eckhardt <jle@rice.edu> | 2003-08-24 18:16:46 +0000 |
---|---|---|
committer | Jason Eckhardt <jle@rice.edu> | 2003-08-24 18:16:46 +0000 |
commit | 443c4a82cb3b6c61511b7fe1bdd251a44d9cbf7c (patch) | |
tree | 2de37694b944e021531457abc05c3bb3c0e2509a /bfd/elf32-i860.c | |
parent | 1f9df958e6a1938bf270fe8ee9663f5e4585fe5b (diff) | |
download | gdb-443c4a82cb3b6c61511b7fe1bdd251a44d9cbf7c.tar.gz |
2003-08-24 Jason Eckhardt <jle@rice.edu>
* elf32-i860.c (elf32_i860_relocate_pc16): Subtract 4 and
shift by 2 before storing the relocated value.
Diffstat (limited to 'bfd/elf32-i860.c')
-rw-r--r-- | bfd/elf32-i860.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bfd/elf32-i860.c b/bfd/elf32-i860.c index fd68dc63362..0e013ef3a74 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; |