You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.7 KiB
49 lines
1.7 KiB
2016-05-04 Alan Modra <amodra@gmail.com> |
|
|
|
* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op): |
|
Align .toc. |
|
|
|
--- gcc/config/rs6000/rs6000.c |
|
+++ gcc/config/rs6000/rs6000.c |
|
@@ -31339,8 +31339,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],"); |
|
@@ -31348,20 +31348,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;
|
|
|