aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAnatoly Sokolov <aesok@post.ru>2009-09-25 21:19:11 +0400
committerAnatoly Sokolov <aesok@gcc.gnu.org>2009-09-25 21:19:11 +0400
commit14a878f35e0177a0ae892ce0b9f39e1dcc375af5 (patch)
treebaab05f2f7be691046ee3fe12ccb563f08336cca /gcc
parent7411b8f04471afc49770f5c85e3c3790c2e02f1f (diff)
downloadgcc-14a878f35e0177a0ae892ce0b9f39e1dcc375af5.zip
gcc-14a878f35e0177a0ae892ce0b9f39e1dcc375af5.tar.gz
gcc-14a878f35e0177a0ae892ce0b9f39e1dcc375af5.tar.bz2
v850.h (FUNCTION_VALUE): Remove.
* config/v850/v850.h (FUNCTION_VALUE): Remove. * config/v850/v850.c (v850_function_value): New function. (TARGET_FUNCTION_VALUE): Define. From-SVN: r152180
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/v850/v850.c15
-rw-r--r--gcc/config/v850/v850.h8
3 files changed, 21 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2864131..53a8332 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2009-09-25 Anatoly Sokolov <aesok@post.ru>
+
+ * config/v850/v850.h (FUNCTION_VALUE): Remove.
+ * config/v850/v850.c (v850_function_value): New function.
+ (TARGET_FUNCTION_VALUE): Define.
+
2009-09-25 Jakub Jelinek <jakub@redhat.com>
* tree-vect-stmts.c (vectorizable_call): Call
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 8e1f27b..6242ba6 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -66,6 +66,7 @@ static section *v850_select_section (tree, int, unsigned HOST_WIDE_INT);
static void v850_encode_data_area (tree, rtx);
static void v850_encode_section_info (tree, rtx, int);
static bool v850_return_in_memory (const_tree, const_tree);
+static rtx v850_function_value (const_tree, const_tree, bool);
static void v850_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode,
tree, int *, int);
static bool v850_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode,
@@ -164,6 +165,9 @@ static const struct attribute_spec v850_attribute_table[] =
#undef TARGET_RETURN_IN_MEMORY
#define TARGET_RETURN_IN_MEMORY v850_return_in_memory
+#undef TARGET_FUNCTION_VALUE
+#define TARGET_FUNCTION_VALUE v850_function_value
+
#undef TARGET_PASS_BY_REFERENCE
#define TARGET_PASS_BY_REFERENCE v850_pass_by_reference
@@ -2955,6 +2959,17 @@ v850_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
/* Return values > 8 bytes in length in memory. */
return int_size_in_bytes (type) > 8 || TYPE_MODE (type) == BLKmode;
}
+
+/* Worker function for TARGET_FUNCTION_VALUE. */
+
+rtx
+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);
+}
+
/* Worker function for TARGET_SETUP_INCOMING_VARARGS. */
diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h
index 1a4ca74..4a28817 100644
--- a/gcc/config/v850/v850.h
+++ b/gcc/config/v850/v850.h
@@ -620,14 +620,6 @@ struct cum_arg { int nbytes; int anonymous_args; };
#define FUNCTION_ARG_REGNO_P(N) (N >= 6 && N <= 9)
-/* Define how to find the value returned by a function.
- VALTYPE is the data type of the value (as a tree).
- If the precise function being called is known, FUNC is its FUNCTION_DECL;
- otherwise, FUNC is 0. */
-
-#define FUNCTION_VALUE(VALTYPE, FUNC) \
- gen_rtx_REG (TYPE_MODE (VALTYPE), 10)
-
/* Define how to find the value returned by a library function
assuming the value has mode MODE. */