diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2004-01-25 22:20:15 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2004-01-25 22:20:15 +0000 |
commit | 7e43c821f0301ea2d61568390afe223a240a754e (patch) | |
tree | 2008cd228b55ca8d8569963af5e58ca7e65bc878 | |
parent | 01b84e139bccdc098b20c2cef7049110ad49b51b (diff) | |
download | gcc-7e43c821f0301ea2d61568390afe223a240a754e.zip gcc-7e43c821f0301ea2d61568390afe223a240a754e.tar.gz gcc-7e43c821f0301ea2d61568390afe223a240a754e.tar.bz2 |
stormy16-protos.h: Remove the prototype for xstormy16_setup_incoming_varargs.
* config/stormy16/stormy16-protos.h: Remove the prototype for
xstormy16_setup_incoming_varargs.
* config/stormy16/stormy16.c
(xstormy16_setup_incoming_varargs): Remove.
(xstormy16_return_in_memory): New.
(TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
* config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
(PROMOTE_FUNCTION_RETURN): Likewise
(PROMOTE_PROTOTYPES): Likewise
(RETURN_IN_MEMORY): Likewise
(STRUCT_VALUE): Likewise
(SETUP_INCOMING_VARARGS): Likewise
From-SVN: r76590
-rw-r--r-- | gcc/ChangeLog | 19 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16-protos.h | 8 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.c | 37 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.h | 20 |
4 files changed, 45 insertions, 39 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ccad5da..64cc388 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,22 @@ +2004-01-25 Kazu Hirata <kazu@cs.umass.edu> + + * config/stormy16/stormy16-protos.h: Remove the prototype for + xstormy16_setup_incoming_varargs. + * config/stormy16/stormy16.c + (xstormy16_setup_incoming_varargs): Remove. + (xstormy16_return_in_memory): New. + (TARGET_PROMOTE_FUNCTION_ARGS): Likewise. + (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove. + (PROMOTE_FUNCTION_RETURN): Likewise + (PROMOTE_PROTOTYPES): Likewise + (RETURN_IN_MEMORY): Likewise + (STRUCT_VALUE): Likewise + (SETUP_INCOMING_VARARGS): Likewise + 2004-01-25 Richard Sandiford <rsandifo@redhat.com> * config/mips/mips.c (mips_offset_within_object_p): New function. diff --git a/gcc/config/stormy16/stormy16-protos.h b/gcc/config/stormy16/stormy16-protos.h index ac47238..9fc544d 100644 --- a/gcc/config/stormy16/stormy16-protos.h +++ b/gcc/config/stormy16/stormy16-protos.h @@ -1,5 +1,5 @@ /* Prototypes for exported functions defined in xstormy16.c - Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. @@ -30,15 +30,11 @@ extern int xstormy16_interrupt_function_p (void); extern int xstormy16_epilogue_uses (int); extern void xstormy16_function_profiler (void); -#if defined (TREE_CODE) -# if defined (HAVE_MACHINE_MODES) +#if defined (TREE_CODE) && defined (HAVE_MACHINE_MODES) extern CUMULATIVE_ARGS xstormy16_function_arg_advance (CUMULATIVE_ARGS, enum machine_mode, tree, int); extern rtx xstormy16_function_arg (CUMULATIVE_ARGS, enum machine_mode, tree, int); -# endif -extern void xstormy16_setup_incoming_varargs - (CUMULATIVE_ARGS, int, tree, int *); #endif #if defined (TREE_CODE) && defined (RTX_CODE) diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c index de60b00..88b885e 100644 --- a/gcc/config/stormy16/stormy16.c +++ b/gcc/config/stormy16/stormy16.c @@ -1,5 +1,5 @@ /* Xstormy16 target functions. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Contributed by Red Hat, Inc. @@ -57,6 +57,7 @@ static void xstormy16_init_builtins (void); static rtx xstormy16_expand_builtin (tree, rtx, rtx, enum machine_mode, int); static bool xstormy16_rtx_costs (rtx, int, int, int *); static int xstormy16_address_cost (rtx); +static bool xstormy16_return_in_memory (tree, tree); /* Define the information needed to generate branch and scc insns. This is stored from the compare operation. */ @@ -1233,16 +1234,6 @@ xstormy16_function_arg (CUMULATIVE_ARGS cum, enum machine_mode mode, return gen_rtx_REG (mode, cum + 2); } -/* Do any needed setup for a variadic function. CUM has not been updated - for the last named argument which has type TYPE and mode MODE. */ -void -xstormy16_setup_incoming_varargs (CUMULATIVE_ARGS cum ATTRIBUTE_UNUSED, - int int_mode ATTRIBUTE_UNUSED, - tree type ATTRIBUTE_UNUSED, - int *pretend_size ATTRIBUTE_UNUSED) -{ -} - /* Build the va_list type. For this chip, va_list is a record containing a counter and a pointer. @@ -1436,8 +1427,9 @@ xstormy16_initialize_trampoline (rtx addr, rtx fnaddr, rtx static_chain) relevant. (Actually, on most machines, scalar values are returned in the same place regardless of mode). - If `PROMOTE_FUNCTION_RETURN' is defined, you must apply the same promotion - rules specified in `PROMOTE_MODE' if VALTYPE is a scalar type. + If `TARGET_PROMOTE_FUNCTION_RETURN' is defined to return true, you + must apply the same promotion rules specified in `PROMOTE_MODE' if + VALTYPE is a scalar type. If the precise function being called is known, FUNC is a tree node (`FUNCTION_DECL') for it; otherwise, FUNC is a null pointer. This makes it @@ -2194,7 +2186,12 @@ xstormy16_expand_builtin(tree exp, rtx target, return retval; } - + +static bool +xstormy16_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED) +{ + return int_size_in_bytes (type) > UNITS_PER_WORD * NUM_ARGUMENT_REGISTERS; +} #undef TARGET_ASM_ALIGNED_HI_OP #define TARGET_ASM_ALIGNED_HI_OP "\t.hword\t" @@ -2214,4 +2211,16 @@ xstormy16_expand_builtin(tree exp, rtx target, #undef TARGET_BUILD_BUILTIN_VA_LIST_TYPE #define TARGET_BUILD_BUILTIN_VA_LIST_TYPE xstormy16_build_builtin_va_list +#undef TARGET_PROMOTE_FUNCTION_ARGS +#define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_tree_true +#undef TARGET_PROMOTE_FUNCTION_RETURN +#define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_true +#undef TARGET_PROMOTE_PROTOTYPES +#define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true + +#undef TARGET_STRUCT_VALUE_RTX +#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null +#undef TARGET_RETURN_IN_MEMORY +#define TARGET_RETURN_IN_MEMORY xstormy16_return_in_memory + struct gcc_target targetm = TARGET_INITIALIZER; diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h index fb47644..64d6cc9 100644 --- a/gcc/config/stormy16/stormy16.h +++ b/gcc/config/stormy16/stormy16.h @@ -1,5 +1,5 @@ /* Xstormy16 cpu description. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Contributed by Red Hat, Inc. @@ -89,10 +89,6 @@ do { \ (MODE) = HImode; \ } while (0) -#define PROMOTE_FUNCTION_ARGS 1 - -#define PROMOTE_FUNCTION_RETURN 1 - #define PARM_BOUNDARY 16 #define STACK_BOUNDARY 16 @@ -402,8 +398,6 @@ enum reg_class /* Passing Function Arguments on the Stack */ -#define PROMOTE_PROTOTYPES 1 - #define PUSH_ROUNDING(BYTES) (((BYTES) + 1) & ~1) #define RETURN_POPS_ARGS(FUNDECL, FUNTYPE, STACK_SIZE) 0 @@ -459,14 +453,6 @@ enum reg_class #define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == RETURN_VALUE_REGNUM) -/* How Large Values are Returned */ - -#define RETURN_IN_MEMORY(TYPE) \ - (int_size_in_bytes (TYPE) > UNITS_PER_WORD * NUM_ARGUMENT_REGISTERS) - -#define STRUCT_VALUE 0 - - /* Function Entry and Exit */ #define EPILOGUE_USES(REGNO) \ @@ -492,10 +478,6 @@ enum reg_class /* Implementing the Varargs Macros. */ -#define SETUP_INCOMING_VARARGS(ARGS_SO_FAR, MODE, TYPE, PRETEND_ARGS_SIZE, SECOND_TIME) \ - if (! SECOND_TIME) \ - xstormy16_setup_incoming_varargs (ARGS_SO_FAR, MODE, TYPE, & PRETEND_ARGS_SIZE) - /* Implement the stdarg/varargs va_start macro. STDARG_P is nonzero if this is stdarg.h instead of varargs.h. VALIST is the tree of the va_list variable to initialize. NEXTARG is the machine independent notion of the |