From 597667c59de2ef2fcaa44663e444b1f6350db4d0 Mon Sep 17 00:00:00 2001 From: dje Date: Sat, 3 Aug 2002 23:23:49 +0000 Subject: * 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 --- gcc/config/rs6000/xcoff.h | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'gcc/config/rs6000/xcoff.h') 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) -- cgit v1.2.1