This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[M32C] Hookize OVERRIDE_OPTIONS and FUNCTION_VALUE_REGNO_P
- From: Anatoly Sokolov <aesok at post dot ru>
- To: gcc-patches at gcc dot gnu dot org
- Cc: dj at redhat dot com
- Date: Sun, 22 Aug 2010 15:32:26 +0400
- Subject: [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.