]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
fr30.h (FUNCTION_VALUE_REGNO_P, [...]): Remove macros.
authorAnatoly Sokolov <aesok@post.ru>
Sat, 6 Nov 2010 19:47:21 +0000 (22:47 +0300)
committerAnatoly Sokolov <aesok@gcc.gnu.org>
Sat, 6 Nov 2010 19:47:21 +0000 (22:47 +0300)
* config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
LIBCALL_VALUE): Remove macros.
* config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
TARGET_FUNCTION_VALUE_REGNO_P): Define.
(fr30_function_value_regno_p, fr30_function_value,
fr30_libcall_value): New functions.

From-SVN: r166407

gcc/ChangeLog
gcc/config/fr30/fr30.c
gcc/config/fr30/fr30.h

index 9809534250e537121fde2f7b9c2ba4d28a775e3c..c214862ce1cd24fd8286e6b7341d3342a28b2371 100644 (file)
@@ -1,3 +1,12 @@
+2010-11-06  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
+       LIBCALL_VALUE): Remove macros.
+       * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
+       TARGET_FUNCTION_VALUE_REGNO_P): Define.
+       (fr30_function_value_regno_p, fr30_function_value,
+       fr30_libcall_value): New functions.
+
 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
 
        PR middle-end/46314
index 95bbd61d2607e2e95350e383d16efb9888778d1c..6aad8504c7126f2a1963234b8db3aaae26c63e39 100644 (file)
@@ -124,6 +124,9 @@ static rtx fr30_function_arg (CUMULATIVE_ARGS *, enum machine_mode,
 static void fr30_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode,
                                       const_tree, bool);
 static bool fr30_frame_pointer_required (void);
+static rtx fr30_function_value (const_tree, const_tree, bool);
+static rtx fr30_libcall_value (enum machine_mode, const_rtx);
+static bool fr30_function_value_regno_p (const unsigned int);
 static bool fr30_can_eliminate (const int, const int);
 static void fr30_asm_trampoline_template (FILE *);
 static void fr30_trampoline_init (rtx, tree, rtx);
@@ -172,6 +175,13 @@ static const struct default_options fr30_option_optimization_table[] =
 #undef  TARGET_FUNCTION_ARG_ADVANCE
 #define TARGET_FUNCTION_ARG_ADVANCE fr30_function_arg_advance
 
+#undef TARGET_FUNCTION_VALUE
+#define TARGET_FUNCTION_VALUE fr30_function_value
+#undef TARGET_LIBCALL_VALUE
+#define TARGET_LIBCALL_VALUE fr30_libcall_value
+#undef TARGET_FUNCTION_VALUE_REGNO_P
+#define TARGET_FUNCTION_VALUE_REGNO_P fr30_function_value_regno_p
+
 #undef  TARGET_SETUP_INCOMING_VARARGS
 #define TARGET_SETUP_INCOMING_VARARGS fr30_setup_incoming_varargs
 #undef  TARGET_MUST_PASS_IN_STACK
@@ -703,6 +713,34 @@ fr30_print_operand (FILE *file, rtx x, int code)
 }
 
 /*}}}*/
+
+/* Implements TARGET_FUNCTION_VALUE.  */
+
+static rtx
+fr30_function_value (const_tree valtype,
+                    const_tree fntype_or_decli ATTRIBUTE_UNUSED,
+                    bool outgoing ATTRIBUTE_UNUSED)
+{
+  return gen_rtx_REG (TYPE_MODE (valtype), RETURN_VALUE_REGNUM);
+}
+
+/* Implements TARGET_LIBCALL_VALUE.  */
+
+static rtx
+fr30_libcall_value (enum machine_mode mode,
+                   const_rtx fun ATTRIBUTE_UNUSED)
+{
+  return gen_rtx_REG (mode, RETURN_VALUE_REGNUM);
+}
+
+/* Implements TARGET_FUNCTION_VALUE_REGNO_P.  */
+
+static bool
+fr30_function_value_regno_p (const unsigned int regno)
+{
+  return (regno == RETURN_VALUE_REGNUM);
+}
+
 /*{{{  Function arguments */ 
 
 /* Return true if we should pass an argument on the stack rather than
index ac42145f314472abfe5dd3fc5f86329df0e22108..779887722fa424e40d2d260b2ae27880c465f18b 100644 (file)
@@ -587,31 +587,6 @@ enum reg_class
 #define FUNCTION_ARG_REGNO_P(REGNO) \
   ((REGNO) >= FIRST_ARG_REGNUM && ((REGNO) < FIRST_ARG_REGNUM + FR30_NUM_ARG_REGS))
 
-/*}}}*/ \f
-/*{{{  How Scalar Function Values are Returned.  */ 
-
-#define FUNCTION_VALUE(VALTYPE, FUNC) \
-     gen_rtx_REG (TYPE_MODE (VALTYPE), RETURN_VALUE_REGNUM)
-
-/* A C expression to create an RTX representing the place where a library
-   function returns a value of mode MODE.  If the precise function being called
-   is known, FUNC is a tree node (`FUNCTION_DECL') for it; otherwise, FUNC is a
-   null pointer.  This makes it possible to use a different value-returning
-   convention for specific functions when all their calls are known.
-
-   Note that "library function" in this context means a compiler support
-   routine, used to perform arithmetic, whose name is known specially by the
-   compiler and was not mentioned in the C code being compiled.
-
-   The definition of `LIBRARY_VALUE' need not be concerned aggregate data
-   types, because none of the library functions returns such types.  */
-#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, RETURN_VALUE_REGNUM)
-
-/* A C expression that is nonzero if REGNO is the number of a hard register in
-   which the values of called function may come back.  */
-
-#define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == RETURN_VALUE_REGNUM)
-
 /*}}}*/ \f
 /*{{{  How Large Values are Returned.  */