This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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)
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]