ppc476 workaround sizing
authorAlan Modra <amodra@gmail.com>
Thu, 20 Nov 2014 10:37:58 +0000 (21:07 +1030)
committerAlan Modra <amodra@gmail.com>
Thu, 20 Nov 2014 11:07:02 +0000 (21:37 +1030)
* elf32-ppc.c (ppc_elf_relax_section): Correct ppc476 workaround
alignment calculation.

bfd/ChangeLog
bfd/elf32-ppc.c

index eaf7a99b4fa97e4938f86b60a511ab244079754a..fb9de4ad0bc6b563e7505585897049d91ae142fa 100644 (file)
@@ -1,3 +1,8 @@
+2014-11-20  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (ppc_elf_relax_section): Correct ppc476 workaround
+       alignment calculation.
+
 2014-11-20  Terry Guo  <terry.guo@arm.com>
 
        * elf32-arm.c (elf32_arm_merge_eabi_attributes): Skip if input bfd
index 04c2d6ad60b4122eb1727e932cfcda035feeac68..b4d20753cf7b7efffd17015010a164e41b735031 100644 (file)
@@ -7174,7 +7174,7 @@ ppc_elf_relax_section (bfd *abfd,
          /* Keep space aligned, to ensure the patch code itself does
             not cross a page.  Don't decrease size calculated on a
             previous pass as otherwise we might never settle on a layout.  */
-         newsize = 15 - (end_addr & 15);
+         newsize = 15 - ((end_addr - 1) & 15);
          newsize += crossings * 16;
          if (relax_info->workaround_size < newsize)
            {