summaryrefslogtreecommitdiff
path: root/gcc/config/stormy16
diff options
context:
space:
mode:
authoraesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>2011-02-28 20:48:06 +0000
committeraesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>2011-02-28 20:48:06 +0000
commit65bf7507b361bf27b1f31d16a399a09057456600 (patch)
tree29e37d75b01c486f2df22a90045897281dd0d531 /gcc/config/stormy16
parent8847f6dc6ec8424e3877406f77669301665cb55f (diff)
downloadgcc-65bf7507b361bf27b1f31d16a399a09057456600.tar.gz
* config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
FUNCTION_VALUE_REGNO_P): Remove. * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove. * config/stormy16/stormy16.c (xstormy16_function_value): Make static. Add 'outgoing' argument. (xstormy16_libcall_value, xstormy16_function_value_regno_p): New function. (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170573 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/stormy16')
-rw-r--r--gcc/config/stormy16/stormy16-protos.h1
-rw-r--r--gcc/config/stormy16/stormy16.c31
-rw-r--r--gcc/config/stormy16/stormy16.h7
3 files changed, 28 insertions, 11 deletions
diff --git a/gcc/config/stormy16/stormy16-protos.h b/gcc/config/stormy16/stormy16-protos.h
index e9842ea09ca..bd0b5818e08 100644
--- a/gcc/config/stormy16/stormy16-protos.h
+++ b/gcc/config/stormy16/stormy16-protos.h
@@ -37,7 +37,6 @@ extern void xstormy16_asm_output_aligned_common (FILE *, tree, const char *,
#if defined (TREE_CODE) && defined (RTX_CODE)
extern void xstormy16_initialize_trampoline (rtx, rtx, rtx);
-extern rtx xstormy16_function_value (const_tree, const_tree);
#endif
#ifdef RTX_CODE
diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c
index 03253ddc22e..66cd1455692 100644
--- a/gcc/config/stormy16/stormy16.c
+++ b/gcc/config/stormy16/stormy16.c
@@ -1419,10 +1419,12 @@ xstormy16_trampoline_init (rtx m_tramp, tree fndecl, rtx static_chain)
emit_move_insn (reg_addr_mem, reg_fnaddr);
}
-/* Worker function for FUNCTION_VALUE. */
+/* Worker function for TARGET_FUNCTION_VALUE. */
-rtx
-xstormy16_function_value (const_tree valtype, const_tree func ATTRIBUTE_UNUSED)
+static rtx
+xstormy16_function_value (const_tree valtype,
+ const_tree func ATTRIBUTE_UNUSED,
+ bool outgoing ATTRIBUTE_UNUSED)
{
enum machine_mode mode;
mode = TYPE_MODE (valtype);
@@ -1430,6 +1432,23 @@ xstormy16_function_value (const_tree valtype, const_tree func ATTRIBUTE_UNUSED)
return gen_rtx_REG (mode, RETURN_VALUE_REGNUM);
}
+/* Worker function for TARGET_LIBCALL_VALUE. */
+
+static rtx
+xstormy16_libcall_value (enum machine_mode mode,
+ const_rtx fun ATTRIBUTE_UNUSED)
+{
+ return gen_rtx_REG (mode, RETURN_VALUE_REGNUM);
+}
+
+/* Worker function for TARGET_FUNCTION_VALUE_REGNO_P. */
+
+static bool
+xstormy16_function_value_regno_p (const unsigned int regno)
+{
+ return (regno == RETURN_VALUE_REGNUM);
+}
+
/* A C compound statement that outputs the assembler code for a thunk function,
used to implement C++ virtual function calls with multiple inheritance. The
thunk acts as a wrapper around a virtual function, adjusting the implicit
@@ -2603,6 +2622,12 @@ static const struct default_options xstorym16_option_optimization_table[] =
#undef TARGET_RETURN_IN_MEMORY
#define TARGET_RETURN_IN_MEMORY xstormy16_return_in_memory
+#undef TARGET_FUNCTION_VALUE
+#define TARGET_FUNCTION_VALUE xstormy16_function_value
+#undef TARGET_LIBCALL_VALUE
+#define TARGET_LIBCALL_VALUE xstormy16_libcall_value
+#undef TARGET_FUNCTION_VALUE_REGNO_P
+#define TARGET_FUNCTION_VALUE_REGNO_P xstormy16_function_value_regno_p
#undef TARGET_MACHINE_DEPENDENT_REORG
#define TARGET_MACHINE_DEPENDENT_REORG xstormy16_reorg
diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h
index 7b8f50767bb..daec8a2b3c6 100644
--- a/gcc/config/stormy16/stormy16.h
+++ b/gcc/config/stormy16/stormy16.h
@@ -319,13 +319,6 @@ enum reg_class
/* The number of the hard register that is used to return a scalar value from a
function call. */
#define RETURN_VALUE_REGNUM FIRST_ARGUMENT_REGISTER
-
-#define FUNCTION_VALUE(VALTYPE, FUNC) \
- xstormy16_function_value (VALTYPE, FUNC)
-
-#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, RETURN_VALUE_REGNUM)
-
-#define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == RETURN_VALUE_REGNUM)
/* Function Entry and Exit. */