Patchwork [M32C] Hookize OVERRIDE_OPTIONS and FUNCTION_VALUE_REGNO_P

login
register
mail settings
Submitter Anatoly Sokolov
Date Aug. 22, 2010, 11:32 a.m.
Message ID <163126824.20100822153226@post.ru>
Download mbox | patch
Permalink /patch/62372/
State New
Headers show

Comments

Anatoly Sokolov - Aug. 22, 2010, 11:32 a.m.
Hi.

  This patch removes obsolete OVERRIDE_OPTIONS and FUNCTION_VALUE_REGNO_P
macros from the M32C back end in the GCC and introduces equivalent
TARGET_OPTION_OVERRIDE and TARGET_FUNCTION_VALUE_REGNO_P target hooks.

  Regression tested on m32c-unknown-elf.

        * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
        (m32c_override_options): Rename to...
        (m32c_option_override): ...this. Make static.
        (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
        * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
        Remove.
        * config/m32c/m32c-protos.h (m32c_override_options,
        m32c_function_value_regno_p): Remove.



Anatily.
DJ Delorie - Aug. 23, 2010, 3:30 p.m.
>         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
>         (m32c_override_options): Rename to...
>         (m32c_option_override): ...this. Make static.
>         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
>         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
>         Remove.
>         * config/m32c/m32c-protos.h (m32c_override_options,
>         m32c_function_value_regno_p): Remove.

Approved.  Thanks!

Patch

Index: gcc/config/m32c/m32c.c
===================================================================
--- gcc/config/m32c/m32c.c      (revision 163440)
+++ gcc/config/m32c/m32c.c      (working copy)
@@ -416,11 +416,15 @@ 
   return TRUE;
 }
 
-/* Implements OVERRIDE_OPTIONS.  We limit memregs to 0..16, and
-   provide a default.  */
-void
-m32c_override_options (void)
+/* Implements TARGET_OPTION_OVERRIDE.  */
+
+#undef TARGET_OPTION_OVERRIDE
+#define TARGET_OPTION_OVERRIDE m32c_option_override
+
+static void
+m32c_option_override (void)
 {
+  /* We limit memregs to 0..16, and provide a default.  */
   if (target_memregs_set)
     {
       if (target_memregs < 0 || target_memregs > 16)
@@ -1675,9 +1679,12 @@ 
   return m32c_libcall_value (mode, NULL_RTX);
 }
 
-/* Implements FUNCTION_VALUE_REGNO_P.  */
+/* Implements TARGET_FUNCTION_VALUE_REGNO_P.  */
 
-bool
+#undef TARGET_FUNCTION_VALUE_REGNO_P
+#define TARGET_FUNCTION_VALUE_REGNO_P m32c_function_value_regno_p
+
+static bool
 m32c_function_value_regno_p (const unsigned int regno)
 {
   return (regno == R0_REGNO || regno == MEM0_REGNO);
Index: gcc/config/m32c/m32c.h
===================================================================
--- gcc/config/m32c/m32c.h      (revision 163440)
+++ gcc/config/m32c/m32c.h      (working copy)
@@ -96,8 +96,6 @@ 
 
 #define TARGET_VERSION fprintf (stderr, " (m32c)");
 
-#define OVERRIDE_OPTIONS m32c_override_options ()
-
 /* Defining data structures for per-function information */
 
 typedef struct GTY (()) machine_function
@@ -530,10 +528,6 @@ 
 #define FUNCTION_ARG_BOUNDARY(MODE,TYPE) (TARGET_A16 ? 8 : 16)
 #define FUNCTION_ARG_REGNO_P(r) m32c_function_arg_regno_p (r)
 
-/* How Scalar Function Values Are Returned */
-
-#define FUNCTION_VALUE_REGNO_P(r) m32c_function_value_regno_p (r)
-
 /* How Large Values Are Returned */
 
 #define DEFAULT_PCC_STRUCT_RETURN 1
Index: gcc/config/m32c/m32c-protos.h
===================================================================
--- gcc/config/m32c/m32c-protos.h       (revision 163440)
+++ gcc/config/m32c/m32c-protos.h       (working copy)
@@ -37,7 +37,6 @@ 
 int  m32c_initial_elimination_offset (int, int);
 void m32c_output_reg_pop (FILE *, int);
 void m32c_output_reg_push (FILE *, int);
-void m32c_override_options (void);
 int  m32c_print_operand_punct_valid_p (int);
 int  m32c_push_rounding (int);
 int  m32c_reg_class_from_constraint (char, const char *);
@@ -75,7 +74,6 @@ 
 rtx  m32c_incoming_return_addr_rtx (void);
 int  m32c_legitimate_constant_p (rtx);
 int  m32c_legitimize_reload_address (rtx *, MM, int, int, int);
-bool m32c_function_value_regno_p (const unsigned int);
 int  m32c_limit_reload_class (MM, int);
 int  m32c_memory_move_cost (MM, int, int);
 int  m32c_modes_tieable_p (MM, MM);