aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/v850/v850.c
diff options
context:
space:
mode:
authorAnatoly Sokolov <aesok@post.ru>2015-07-31 00:36:18 +0300
committerAnatoly Sokolov <aesok@gcc.gnu.org>2015-07-31 00:36:18 +0300
commit1a31dcd0148ad75a78d0963bdeae05ce7df3b308 (patch)
treee8ee364041b895d4fa7508c97b2daca02f4b835f /gcc/config/v850/v850.c
parent3403a1a9597dd6f853c25aff2290a16d3a9c9d00 (diff)
downloadgcc-1a31dcd0148ad75a78d0963bdeae05ce7df3b308.zip
gcc-1a31dcd0148ad75a78d0963bdeae05ce7df3b308.tar.gz
gcc-1a31dcd0148ad75a78d0963bdeae05ce7df3b308.tar.bz2
[V850] Hookize LIBCALL_VALUE
From-SVN: r226418
Diffstat (limited to 'gcc/config/v850/v850.c')
-rw-r--r--gcc/config/v850/v850.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 2474e75..a03f5e2 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -2979,7 +2979,7 @@ v850_select_section (tree exp,
static bool
v850_function_value_regno_p (const unsigned int regno)
{
- return (regno == 10);
+ return (regno == RV_REGNUM);
}
/* Worker function for TARGET_RETURN_IN_MEMORY. */
@@ -3002,7 +3002,16 @@ v850_function_value (const_tree valtype,
const_tree fn_decl_or_type ATTRIBUTE_UNUSED,
bool outgoing ATTRIBUTE_UNUSED)
{
- return gen_rtx_REG (TYPE_MODE (valtype), 10);
+ return gen_rtx_REG (TYPE_MODE (valtype), RV_REGNUM);
+}
+
+/* Implement TARGET_LIBCALL_VALUE. */
+
+static rtx
+v850_libcall_value (machine_mode mode,
+ const_rtx func ATTRIBUTE_UNUSED)
+{
+ return gen_rtx_REG (mode, RV_REGNUM);
}
@@ -3304,6 +3313,8 @@ v850_gen_movdi (rtx * operands)
#define TARGET_FUNCTION_VALUE_REGNO_P v850_function_value_regno_p
#undef TARGET_FUNCTION_VALUE
#define TARGET_FUNCTION_VALUE v850_function_value
+#undef TARGET_LIBCALL_VALUE
+#define TARGET_LIBCALL_VALUE v850_libcall_value
#undef TARGET_PROMOTE_PROTOTYPES
#define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_true