diff options
author | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-08-03 23:23:49 +0000 |
---|---|---|
committer | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-08-03 23:23:49 +0000 |
commit | 597667c59de2ef2fcaa44663e444b1f6350db4d0 (patch) | |
tree | 90f41a913b41e43406c207508284a0c3f907d3a8 /gcc/config/rs6000/xcoff.h | |
parent | 42721db07c36e472f5eb5f9f356e55be2fb61f38 (diff) | |
download | gcc-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.h | 25 |
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) |