diff options
author | hainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-31 07:08:40 +0000 |
---|---|---|
committer | hainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-31 07:08:40 +0000 |
commit | 4e1ef82142f4492b694c314a065c3ee0d7658b8d (patch) | |
tree | 63d2909d74d7981d03eda9bb8903b66eb8d847fc /gcc/config/rs6000 | |
parent | 4ceb34b95ca6d58c4b231798b2ba707d88e7a97c (diff) | |
download | gcc-4e1ef82142f4492b694c314a065c3ee0d7658b8d.tar.gz |
2007-08-31 Olivier Hainque <hainque@adacore.com>
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127956 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 10 | ||||
-rw-r--r-- | gcc/config/rs6000/xcoff.h | 11 |
2 files changed, 14 insertions, 7 deletions
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 |