From 890f9edfff1fb106af3395b14e6f17caeb58ae3d Mon Sep 17 00:00:00 2001 From: Olivier Hainque Date: Fri, 31 Aug 2007 07:08:40 +0000 Subject: [PATCH] xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New internal macro. 2007-08-31 Olivier Hainque * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New internal macro. Default alignment factor for csect directives, chosen to match what BIGGEST_ALIGNMENT allows. (DATA_SECTION_ASM_OP): Use it. * config/rs6000/rs6000.c (rs6000_xcoff_output_readonly_section_asm_op): Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR. (rs6000_xcoff_output_readwrite_section_asm_op): Likewise. From-SVN: r127956 --- gcc/ChangeLog | 11 +++++++++++ gcc/config/rs6000/rs6000.c | 10 ++++++---- gcc/config/rs6000/xcoff.h | 11 ++++++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb950e92329..524b9f105ae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2007-08-31 Olivier Hainque + + * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New + internal macro. Default alignment factor for csect directives, chosen + to match what BIGGEST_ALIGNMENT allows. + (DATA_SECTION_ASM_OP): Use it. + * config/rs6000/rs6000.c + (rs6000_xcoff_output_readonly_section_asm_op): + Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR. + (rs6000_xcoff_output_readwrite_section_asm_op): Likewise. + 2007-08-31 Olivier Hainque * dbxout.c (dbxout_block): Move declaration within the first diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 03660b7ff07..83b4ed2d83a 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -20205,8 +20205,9 @@ rs6000_xcoff_asm_globalize_label (FILE *stream, const char *name) static void rs6000_xcoff_output_readonly_section_asm_op (const void *directive) { - fprintf (asm_out_file, "\t.csect %s[RO],3\n", - *(const char *const *) directive); + fprintf (asm_out_file, "\t.csect %s[RO],%s\n", + *(const char *const *) directive, + XCOFF_CSECT_DEFAULT_ALIGNMENT_STR); } /* Likewise for read-write sections. */ @@ -20214,8 +20215,9 @@ rs6000_xcoff_output_readonly_section_asm_op (const void *directive) static void rs6000_xcoff_output_readwrite_section_asm_op (const void *directive) { - fprintf (asm_out_file, "\t.csect %s[RW],3\n", - *(const char *const *) directive); + fprintf (asm_out_file, "\t.csect %s[RW],%s\n", + *(const char *const *) directive, + XCOFF_CSECT_DEFAULT_ALIGNMENT_STR); } /* A get_unnamed_section callback, used for switching to toc_section. */ diff --git a/gcc/config/rs6000/xcoff.h b/gcc/config/rs6000/xcoff.h index d2c167b850d..c4bceca833c 100644 --- a/gcc/config/rs6000/xcoff.h +++ b/gcc/config/rs6000/xcoff.h @@ -60,6 +60,10 @@ #define MAX_OFILE_ALIGNMENT 32768 +/* Default alignment factor for csect directives, chosen to honor + BIGGEST_ALIGNMENT. */ +#define XCOFF_CSECT_DEFAULT_ALIGNMENT_STR "4" + /* Return nonzero if this entry is to be written into the constant pool in a special way. We do so if this is a SYMBOL_REF, LABEL_REF or a CONST containing one of them. If -mfp-in-toc (the default), @@ -277,9 +281,10 @@ /* Output before instructions. */ #define TEXT_SECTION_ASM_OP "\t.csect .text[PR]" -/* Output before writable data. - Align entire section to BIGGEST_ALIGNMENT. */ -#define DATA_SECTION_ASM_OP "\t.csect .data[RW],3" +/* Output before writable data. */ +#define DATA_SECTION_ASM_OP \ + "\t.csect .data[RW]," XCOFF_CSECT_DEFAULT_ALIGNMENT_STR + /* Define to prevent DWARF2 unwind info in the data section rather than in the .eh_frame section. We do this because the AIX linker -- 2.30.2