stormy16.h (FUNCTION_VALUE, [...]): Remove.
authorAnatoly Sokolov <aesok@post.ru>
Mon, 28 Feb 2011 20:48:06 +0000 (23:48 +0300)
committerAnatoly Sokolov <aesok@gcc.gnu.org>
Mon, 28 Feb 2011 20:48:06 +0000 (23:48 +0300)
* 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

gcc/ChangeLog
gcc/config/stormy16/stormy16-protos.h
gcc/config/stormy16/stormy16.c
gcc/config/stormy16/stormy16.h

index b50ed6f2ab301ac87754fd2f990bad15bcd0534c..4bf60577979ac834c33497f2e72ad226edab3daf 100644 (file)
@@ -1,3 +1,16 @@
+2011-02-28  Anatoly Sokolov  <aesok@post.ru>
+
+       * 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.
+
 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
 
        PR debug/28047
index e9842ea09ca1f01bde2c7b37b50a41b1c395a3bb..bd0b5818e085ab5952bab5f7fa607ef9e0687bc6 100644 (file)
@@ -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
index 03253ddc22ea5059e3a6c3ac5ecd70ab1be3d77c..66cd1455692eef39c02a7bc8ba0e73f88bc09f41 100644 (file)
@@ -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
index 7b8f50767bba83d132ee584f44249d7e87cbd01f..daec8a2b3c6a9deab0db4b6f0a771f9ec942ccad 100644 (file)
@@ -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)
 
 \f
 /* Function Entry and Exit.  */