From e23f1610289a9ba59e77cc214680d38aa7db9e13 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 28 Nov 2007 13:04:18 +0000 Subject: * elf-m10300.c (mn10300_elf_relax_section): Extend previous fix to cover forward jumps. * ld-mn10300/i135409-5.s: New test case. Check for relaxation to a 16-bit backward jump instruction. * ld-mn10300/i135409-5.t: Linker script for the new test. * ld-mn10300/i135409-5.d: Expected disassembly of new test. * ld-mn10300/mn10300.exp: Run the new test. --- bfd/ChangeLog | 5 +++++ bfd/elf-m10300.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8dc7003..e78868e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-28 Nick Clifton + + * elf-m10300.c (mn10300_elf_relax_section): Extend previous fix to + cover forward jumps. + 2007-11-21 Nick Clifton * elf-m10300.c (mn10300_elf_relax_section): Allow for alignment diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c index 2695217..af2fff3 100644 --- a/bfd/elf-m10300.c +++ b/bfd/elf-m10300.c @@ -2736,7 +2736,7 @@ mn10300_elf_relax_section (bfd *abfd, bfd_vma aend = irel->r_offset; aend = BFD_ALIGN (aend, 1 << irel->r_addend); - adj = 2*adj - adj - 1; + adj = 2 * adj - adj - 1; /* Record the biggest adjustmnet. Skip any alignment at the end of our section. */ @@ -2963,7 +2963,7 @@ mn10300_elf_relax_section (bfd *abfd, able to relax. */ /* Account for jumps across alignment boundaries using align_gap_adjustment. */ - if (value < 0x8001 - align_gap_adjustment + if ((bfd_signed_vma) value < 0x8001 - (bfd_signed_vma) align_gap_adjustment && ((bfd_signed_vma) value > -0x8000 + (bfd_signed_vma) align_gap_adjustment)) { unsigned char code; -- cgit v1.1