From e1d98a0a6547e6c518640756263dfdd0df8ae1cd Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 16 Oct 1996 17:26:50 +0000 Subject: [PATCH] * elf32-v850.c (bfd_elf32_v850_reloc): Mask out bits we no longer want in pc-relative relocs. Fixing some g++ testsuite failures. --- bfd/ChangeLog | 5 +++++ bfd/elf32-v850.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bee588fe47..f361911214 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,4 +1,9 @@ start-sanitize-v850 +Wed Oct 16 11:24:35 1996 Jeffrey A Law (law@cygnus.com) + + * elf32-v850.c (bfd_elf32_v850_reloc): Mask out bits we + no longer want in pc-relative relocs. + Tue Oct 15 22:17:37 1996 Jeffrey A Law (law@cygnus.com) * elf32-v850.c (bfd_elf32_v850_reloc): Don't silently diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index b2dfbc3f0d..1640375903 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -314,6 +314,7 @@ bfd_elf32_v850_reloc (abfd, reloc, symbol, data, isection, obfd, err) return bfd_reloc_dangerous; insn = bfd_get_32 (abfd, (bfd_byte *) data + reloc->address); + insn &= ~0xfffe003f; insn |= (((relocation & 0xfffe) << 16) | ((relocation & 0x3f0000) >> 16)); bfd_put_32 (abfd, insn, (bfd_byte *)data + reloc->address); @@ -328,6 +329,7 @@ bfd_elf32_v850_reloc (abfd, reloc, symbol, data, isection, obfd, err) return bfd_reloc_dangerous; insn = bfd_get_16 (abfd, (bfd_byte *) data + reloc->address); + insn &= 0xf870; insn |= ((relocation & 0x1f0) << 7) | ((relocation & 0x0e) << 3); bfd_put_16 (abfd, insn, (bfd_byte *)data + reloc->address); return bfd_reloc_ok;