aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorAnatoly Sokolov <aesok@post.ru>2011-02-28 23:48:06 +0300
committerAnatoly Sokolov <aesok@gcc.gnu.org>2011-02-28 23:48:06 +0300
commit998871e99f606ee7c70f86e3e4edaeb0fecf88a8 (patch)
tree29e37d75b01c486f2df22a90045897281dd0d531 /gcc/config
parent9926de2cd8da73d5d949211455df6b0aea65dee5 (diff)
downloadgcc-998871e99f606ee7c70f86e3e4edaeb0fecf88a8.zip
gcc-998871e99f606ee7c70f86e3e4edaeb0fecf88a8.tar.gz
gcc-998871e99f606ee7c70f86e3e4edaeb0fecf88a8.tar.bz2
stormy16.h (FUNCTION_VALUE, [...]): Remove.
* 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. From-SVN: r170573
Diffstat (limited to 'gcc/config')
-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 e9842ea..bd0b581 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 03253dd..66cd145 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 7b8f507..daec8a2 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. */