]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: rs6000.c (rs6000_elf_output_toc_section_asm_op): Align .toc.
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Wed, 26 Jul 2017 15:55:41 +0000 (15:55 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Wed, 26 Jul 2017 15:55:41 +0000 (15:55 +0000)
2017-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

Backport from mainline r235874
2016-05-04  Alan Modra  <amodra@gmail.com>

* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Align .toc.

From-SVN: r250580

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 3179d342b31c9989f9718a8ff5d233019a57666b..65459ac278c58390ebd7af4e21506d2d1919f19f 100644 (file)
@@ -1,3 +1,11 @@
+2017-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       Backport from mainline r235874
+       2016-05-04  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
+       Align .toc.
+
 2016-07-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        Backport from mainline
index a2d4dd6b930764279cd46533f290d47be31c68d7..142f02327fe065fa1e4d195bbe39ce481d5643ed 100644 (file)
@@ -29205,8 +29205,8 @@ rs6000_elf_output_toc_section_asm_op (const void *data ATTRIBUTE_UNUSED)
     {
       if (!toc_initialized)
        {
-         toc_initialized = 1;
          fprintf (asm_out_file, "%s\n", TOC_SECTION_ASM_OP);
+         ASM_OUTPUT_ALIGN (asm_out_file, TARGET_64BIT ? 3 : 2);
          (*targetm.asm_out.internal_label) (asm_out_file, "LCTOC", 0);
          fprintf (asm_out_file, "\t.tc ");
          ASM_OUTPUT_INTERNAL_LABEL_PREFIX (asm_out_file, "LCTOC1[TC],");
@@ -29214,20 +29214,30 @@ rs6000_elf_output_toc_section_asm_op (const void *data ATTRIBUTE_UNUSED)
          fprintf (asm_out_file, "\n");
 
          fprintf (asm_out_file, "%s\n", MINIMAL_TOC_SECTION_ASM_OP);
+         ASM_OUTPUT_ALIGN (asm_out_file, TARGET_64BIT ? 3 : 2);
          ASM_OUTPUT_INTERNAL_LABEL_PREFIX (asm_out_file, "LCTOC1");
          fprintf (asm_out_file, " = .+32768\n");
+         toc_initialized = 1;
        }
       else
        fprintf (asm_out_file, "%s\n", MINIMAL_TOC_SECTION_ASM_OP);
     }
   else if ((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_ELFv2)
           && !TARGET_RELOCATABLE)
-    fprintf (asm_out_file, "%s\n", TOC_SECTION_ASM_OP);
+    {
+      fprintf (asm_out_file, "%s\n", TOC_SECTION_ASM_OP);
+      if (!toc_initialized)
+       {
+         ASM_OUTPUT_ALIGN (asm_out_file, TARGET_64BIT ? 3 : 2);
+         toc_initialized = 1;
+       }
+    }
   else
     {
       fprintf (asm_out_file, "%s\n", MINIMAL_TOC_SECTION_ASM_OP);
       if (!toc_initialized)
        {
+         ASM_OUTPUT_ALIGN (asm_out_file, TARGET_64BIT ? 3 : 2);
          ASM_OUTPUT_INTERNAL_LABEL_PREFIX (asm_out_file, "LCTOC1");
          fprintf (asm_out_file, " = .+32768\n");
          toc_initialized = 1;