From: Kazu Hirata Date: Wed, 28 Jan 2004 05:27:12 +0000 (+0000) Subject: c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New. X-Git-Tag: releases/gcc-4.0.0~10617 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=28b241764ff7466a8eacff6ebd766676ae998e9b;p=thirdparty%2Fgcc.git c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New. * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New. (TARGET_STRUCT_VALUE_RTX): Likewise. (c4x_external_libcall): Likewise. (c4x_struct_value_rtx): Likewise. * config/c4x/c4x.h: Remove. (STRUCT_VALUE_REGNUM): Likewise. (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. From-SVN: r76779 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e44a7daf559a..ea2762034973 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2004-01-28 Kazu Hirata + + * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (c4x_external_libcall): Likewise. + (c4x_struct_value_rtx): Likewise. + * config/c4x/c4x.h: Remove. + (STRUCT_VALUE_REGNUM): Likewise. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. + 2004-01-28 Kazu Hirata * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New. diff --git a/gcc/config/c4x/c4x.c b/gcc/config/c4x/c4x.c index 9a6b88832e10..b389296f13b9 100644 --- a/gcc/config/c4x/c4x.c +++ b/gcc/config/c4x/c4x.c @@ -1,5 +1,5 @@ /* Subroutines for assembler code output on the TMS320C[34]x - Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003 + Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz) @@ -200,6 +200,8 @@ static void c4x_globalize_label (FILE *, const char *); static bool c4x_rtx_costs (rtx, int, int, int *); static int c4x_address_cost (rtx); static void c4x_init_libfuncs (void); +static void c4x_external_libcall (rtx); +static rtx c4x_struct_value_rtx (tree, int); /* Initialize the GCC target structure. */ #undef TARGET_ASM_BYTE_OP @@ -215,6 +217,9 @@ static void c4x_init_libfuncs (void); #undef TARGET_ASM_FILE_END #define TARGET_ASM_FILE_END c4x_file_end +#undef TARGET_ASM_EXTERNAL_LIBCALL +#define TARGET_ASM_EXTERNAL_LIBCALL c4x_external_libcall + #undef TARGET_ATTRIBUTE_TABLE #define TARGET_ATTRIBUTE_TABLE c4x_attribute_table @@ -244,6 +249,9 @@ static void c4x_init_libfuncs (void); #undef TARGET_INIT_LIBFUNCS #define TARGET_INIT_LIBFUNCS c4x_init_libfuncs +#undef TARGET_STRUCT_VALUE_RTX +#define TARGET_STRUCT_VALUE_RTX c4x_struct_value_rtx + struct gcc_target targetm = TARGET_INITIALIZER; /* Override command line options. @@ -5017,3 +5025,21 @@ c4x_rtx_costs (rtx x, int code, int outer_code, int *total) return false; } } + +/* Worker function for TARGET_ASM_EXTERNAL_LIBCALL. */ + +static void +c4x_external_libcall (rtx fun) +{ + /* This is only needed to keep asm30 happy for ___divqf3 etc. */ + c4x_external_ref (XSTR (fun, 0)); +} + +/* Worker function for TARGET_STRUCT_VALUE_RTX. */ + +static rtx +c4x_struct_value_rtx (tree fntype ATTRIBUTE_UNUSED, + int incoming ATTRIBUTE_UNUSED) +{ + return gen_rtx_REG (Pmode, AR0_REGNO); +} diff --git a/gcc/config/c4x/c4x.h b/gcc/config/c4x/c4x.h index aa80ffbd1707..66e5edf82a4b 100644 --- a/gcc/config/c4x/c4x.h +++ b/gcc/config/c4x/c4x.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. TMS320C[34]x Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - 2003 Free Software Foundation, Inc. + 2003, 2004 Free Software Foundation, Inc. Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz) and Herman Ten Brugge (Haj.Ten.Brugge@net.HCC.nl). @@ -1161,7 +1161,6 @@ CUMULATIVE_ARGS; /* How Large Values Are Returned. */ #define DEFAULT_PCC_STRUCT_RETURN 0 -#define STRUCT_VALUE_REGNUM AR0_REGNO /* AR0. */ /* Varargs handling. */ @@ -1491,13 +1490,6 @@ fini_section () \ #define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \ c4x_external_ref (NAME) -/* A C statement to output on FILE an assembler pseudo-op to - declare a library function named external. - (Only needed to keep asm30 happy for ___divqf3 etc.) */ - -#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \ -c4x_external_ref (XSTR (FUN, 0)) - /* The prefix to add to user-visible assembler symbols. */ #define USER_LABEL_PREFIX "_"