aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2004-01-25 22:20:15 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-01-25 22:20:15 +0000
commit7e43c821f0301ea2d61568390afe223a240a754e (patch)
tree2008cd228b55ca8d8569963af5e58ca7e65bc878
parent01b84e139bccdc098b20c2cef7049110ad49b51b (diff)
downloadgcc-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/ChangeLog19
-rw-r--r--gcc/config/stormy16/stormy16-protos.h8
-rw-r--r--gcc/config/stormy16/stormy16.c37
-rw-r--r--gcc/config/stormy16/stormy16.h20
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