summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000
diff options
context:
space:
mode:
authorhainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-31 07:08:40 +0000
committerhainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-31 07:08:40 +0000
commit4e1ef82142f4492b694c314a065c3ee0d7658b8d (patch)
tree63d2909d74d7981d03eda9bb8903b66eb8d847fc /gcc/config/rs6000
parent4ceb34b95ca6d58c4b231798b2ba707d88e7a97c (diff)
downloadgcc-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.c10
-rw-r--r--gcc/config/rs6000/xcoff.h11
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