This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
AIX ASM_OUTPUT_* patch
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 12 May 2003 17:08:07 -0400
- Subject: AIX ASM_OUTPUT_* patch
This patch fixes the ASM_OUTPUT_* macros in xcoff.h to accept and
print HOST_WIDE_INT values.
David
* config/rs6000/xcoff.h (ASM_OUTPUT_SKIP): Accept HOST_WIDE_INT.
(ASM_OUTPUT_ALIGNED_COMMON): Same.
(ASM_OUTPUT_LOCAL): Same.
Index: xcoff.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/xcoff.h,v
retrieving revision 1.45
diff -c -p -r1.45 xcoff.h
*** xcoff.h 12 May 2003 09:51:34 -0000 1.45
--- xcoff.h 12 May 2003 18:07:19 -0000
*************** toc_section () \
*** 343,349 ****
#define SKIP_ASM_OP "\t.space "
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (int)(SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
--- 343,349 ----
#define SKIP_ASM_OP "\t.space "
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
! fprintf (FILE, "%s"HOST_WIDE_INT_PRINT_UNSIGNED"\n", SKIP_ASM_OP, (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
*************** toc_section () \
*** 354,365 ****
do { fputs (COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
if ((ALIGN) > 32) \
! fprintf ((FILE), ",%u,%u\n", (int)(SIZE), \
exact_log2 ((ALIGN) / BITS_PER_UNIT)); \
else if ((SIZE) > 4) \
! fprintf ((FILE), ",%u,3\n", (int)(SIZE)); \
else \
! fprintf ((FILE), ",%u\n", (int)(SIZE)); \
} while (0)
/* This says how to output an assembler line
--- 354,365 ----
do { fputs (COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
if ((ALIGN) > 32) \
! fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", (SIZE), \
exact_log2 ((ALIGN) / BITS_PER_UNIT)); \
else if ((SIZE) > 4) \
! fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",3\n", (SIZE)); \
else \
! fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED"\n", (SIZE)); \
} while (0)
/* This says how to output an assembler line
*************** toc_section () \
*** 373,379 ****
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
! fprintf ((FILE), ",%u,%s\n", (TARGET_32BIT ? (int)(SIZE) : (int)(ROUNDED)), \
xcoff_bss_section_name); \
} while (0)
--- 373,380 ----
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
! fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%s\n", \
! (TARGET_32BIT ? (SIZE) : (ROUNDED)), \
xcoff_bss_section_name); \
} while (0)