summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/xcoff.h
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-03 23:23:49 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-03 23:23:49 +0000
commit597667c59de2ef2fcaa44663e444b1f6350db4d0 (patch)
tree90f41a913b41e43406c207508284a0c3f907d3a8 /gcc/config/rs6000/xcoff.h
parent42721db07c36e472f5eb5f9f356e55be2fb61f38 (diff)
downloadgcc-597667c59de2ef2fcaa44663e444b1f6350db4d0.tar.gz
* config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic.
(movhi_internal): Same. (movqi_internal): Same. (movdi_internal64): Same. * config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405. * config/rs6000/xcoff.h (SKIP_ASM_OP): Define. (ASM_OUTPUT_SKIP): Use it. SIZE unsigned. (COMMON_ASM_OP): Define. (ASM_OUTPUT_ALIGNED_COMMON): Use it. SIZE unsigned. Use ALIGN parameter. (LOCAL_COMMON_ASM_OP): Define. (ASM_OUTPUT_LOCAL): Use it. SIZE unsigned. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56011 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/xcoff.h')
-rw-r--r--gcc/config/rs6000/xcoff.h25
1 files changed, 17 insertions, 8 deletions
diff --git a/gcc/config/rs6000/xcoff.h b/gcc/config/rs6000/xcoff.h
index 0f70e8c25b5..6f968805083 100644
--- a/gcc/config/rs6000/xcoff.h
+++ b/gcc/config/rs6000/xcoff.h
@@ -353,19 +353,26 @@ toc_section () \
/* This is how to advance the location counter by SIZE bytes. */
+#define SKIP_ASM_OP "\t.space "
+
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
- fprintf (FILE, "\t.space %d\n", (SIZE))
+ fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
-#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGNMENT) \
- do { fputs ("\t.comm ", (FILE)); \
+#define COMMON_ASM_OP "\t.comm "
+
+#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
+ do { fputs (COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
- if ( (SIZE) > 4) \
- fprintf ((FILE), ",%d,3\n", (SIZE)); \
+ if ((ALIGN) > 32) \
+ fprintf ((FILE), ",%u,%u\n", (SIZE), \
+ exact_log2 ((ALIGN) / BITS_PER_UNIT)); \
+ else if ((SIZE) > 4) \
+ fprintf ((FILE), ",%u,3\n", (SIZE)); \
else \
- fprintf ((FILE), ",%d\n", (SIZE)); \
+ fprintf ((FILE), ",%u\n", (SIZE)); \
} while (0)
/* This says how to output an assembler line
@@ -374,10 +381,12 @@ toc_section () \
alignment after preceding TOC section if it was aligned
for 64-bit mode. */
+#define LOCAL_COMMON_ASM_OP "\t.lcomm "
+
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
- do { fputs ("\t.lcomm ", (FILE)); \
+ do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
- fprintf ((FILE), ",%d,%s\n", (TARGET_32BIT ? (SIZE) : (ROUNDED)), \
+ fprintf ((FILE), ",%u,%s\n", (TARGET_32BIT ? (SIZE) : (ROUNDED)), \
xcoff_bss_section_name); \
} while (0)