This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[M32C] Hookize OVERRIDE_OPTIONS and FUNCTION_VALUE_REGNO_P


  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.

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);


Anatily.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]