Commit 34bf1fe3 by Kazu Hirata Committed by Kazu Hirata

h8300.c (h8300_return_in_memory): New.

	* config/h8300/h8300.c (h8300_return_in_memory): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	* config/h8300/h8300.h (STRUCT_VALUE): Remove.
	(RETURN_IN_MEMORY): Likewise.

From-SVN: r75933
parent e5396f90
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_return_in_memory): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
* config/h8300/h8300.h (STRUCT_VALUE): Remove.
(RETURN_IN_MEMORY): Likewise.
2004-01-15 Richard Earnshaw <rearnsha@arm.com> 2004-01-15 Richard Earnshaw <rearnsha@arm.com>
PR optimization/13375 PR optimization/13375
......
...@@ -4564,6 +4564,13 @@ h8300_init_libfuncs (void) ...@@ -4564,6 +4564,13 @@ h8300_init_libfuncs (void)
set_optab_libfunc (umod_optab, HImode, "__umodhi3"); set_optab_libfunc (umod_optab, HImode, "__umodhi3");
} }
static bool
h8300_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{
return (TYPE_MODE (type) == BLKmode
|| GET_MODE_SIZE (TYPE_MODE (type)) > (TARGET_H8300 ? 4 : 8));
}
/* Initialize the GCC target structure. */ /* Initialize the GCC target structure. */
#undef TARGET_ATTRIBUTE_TABLE #undef TARGET_ATTRIBUTE_TABLE
#define TARGET_ATTRIBUTE_TABLE h8300_attribute_table #define TARGET_ATTRIBUTE_TABLE h8300_attribute_table
...@@ -4591,4 +4598,9 @@ h8300_init_libfuncs (void) ...@@ -4591,4 +4598,9 @@ h8300_init_libfuncs (void)
#undef TARGET_INIT_LIBFUNCS #undef TARGET_INIT_LIBFUNCS
#define TARGET_INIT_LIBFUNCS h8300_init_libfuncs #define TARGET_INIT_LIBFUNCS h8300_init_libfuncs
#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 h8300_return_in_memory
struct gcc_target targetm = TARGET_INITIALIZER; struct gcc_target targetm = TARGET_INITIALIZER;
...@@ -632,16 +632,6 @@ enum reg_class { ...@@ -632,16 +632,6 @@ enum reg_class {
#define FUNCTION_ARG_REGNO_P(N) (TARGET_QUICKCALL ? N < 3 : 0) #define FUNCTION_ARG_REGNO_P(N) (TARGET_QUICKCALL ? N < 3 : 0)
/* Register in which address to store a structure value
is passed to a function. */
#define STRUCT_VALUE 0
/* Return true if X should be returned in memory. */
#define RETURN_IN_MEMORY(X) \
(TYPE_MODE (X) == BLKmode \
|| GET_MODE_SIZE (TYPE_MODE (X)) > (TARGET_H8300 ? 4 : 8))
/* When defined, the compiler allows registers explicitly used in the /* When defined, the compiler allows registers explicitly used in the
rtl to be used as spill registers but prevents the compiler from rtl to be used as spill registers but prevents the compiler from
extending the lifetime of these registers. */ extending the lifetime of these registers. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment