aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-sparc.c
diff options
context:
space:
mode:
authorAlyssa Milburn <amilburn@zall.org>2016-12-04 22:59:18 -0800
committerJose E. Marchesi <jose.marchesi@oracle.com>2016-12-04 22:59:18 -0800
commit597e138ca0cf96889a1965d06d28552c1d1174d2 (patch)
tree7260625ac8e8cc05479232f4b7cd08e54374a4c9 /bfd/elfxx-sparc.c
parenta55c9876bb111fd301b4762cf501de0040b8f9db (diff)
downloadfsf-binutils-gdb-597e138ca0cf96889a1965d06d28552c1d1174d2.zip
fsf-binutils-gdb-597e138ca0cf96889a1965d06d28552c1d1174d2.tar.gz
fsf-binutils-gdb-597e138ca0cf96889a1965d06d28552c1d1174d2.tar.bz2
bfd,ld: Continue after partially-successful relaxed call relocations in sparc.
bfd/ChangeLog: 2016-12-05 Alyssa Milburn <amilburn@zall.org> * elfxx-sparc.c: Do not stop processing relocations after partially relaxing a call with WDISP30. ld/ChangeLog: 2016-12-05 Alyssa Milburn <amilburn@zall.org> * testsuite/ld-sparc/wdispcall.s: New file. * testsuite/ld-sparc/wdispcall.dd: Likewise. * testsuite/ld-sparc/sparc.exp: Run new test.
Diffstat (limited to 'bfd/elfxx-sparc.c')
-rw-r--r--bfd/elfxx-sparc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index 056a4b7..f191d57 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -4122,7 +4122,7 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
contents + rel->r_offset - 4);
if ((z & (0xffffffff ^ RD(~0)))
!= (INSN_OR | RS1(O7) | RS2(G0)))
- break;
+ continue;
/* The sequence was
or %o7, %g0, %rN
@@ -4135,7 +4135,7 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
reg = (y & RS1(~0)) >> 14;
if (reg != ((z & RD(~0)) >> 25)
|| reg == G0 || reg == O7)
- break;
+ continue;
bfd_put_32 (input_bfd, (bfd_vma) INSN_NOP,
contents + rel->r_offset + 4);