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]

[SCORE] Hookize PREFERRED_RELOAD_CLASS


Hi.

This patch removes obsolete PREFERRED_RELOAD_CLASS macro from the SCORE back end in the GCC and introduces equivalent TARGET_PREFERRED_RELOAD_CLASS target hook.

Untested.

OK to install?

	* config/score/score.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/score/score-protos.h (score_preferred_reload_class): Remove.
	* config/score/score.c (TARGET_PREFERRED_RELOAD_CLASS: Define.
	(score_preferred_reload_class): Make static. Change return and
	'rclass' argument type to reg_class_t.

Index: gcc/config/score/score.h
===================================================================
--- gcc/config/score/score.h	(revision 182917)
+++ gcc/config/score/score.h	(working copy)
@@ -405,9 +405,6 @@ extern enum reg_class score_char_to_clas

#define REGNO_OK_FOR_INDEX_P(NUM) 0

-#define PREFERRED_RELOAD_CLASS(X, CLASS) \
-  score_preferred_reload_class (X, CLASS)
-
 /* If we need to load shorts byte-at-a-time, then we need a scratch.  */
 #define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \
   score_secondary_reload_class (CLASS, MODE, X)
Index: gcc/config/score/score-protos.h
===================================================================
--- gcc/config/score/score-protos.h	(revision 182917)
+++ gcc/config/score/score-protos.h	(working copy)
@@ -57,8 +57,6 @@ extern enum reg_class score_secondary_re
                                                     rtx x);
 extern rtx score_function_value (const_tree valtype, const_tree func,
                                  enum machine_mode mode);
-extern enum reg_class score_preferred_reload_class (rtx x,
-                                                    enum reg_class rclass);
 extern HOST_WIDE_INT score_initial_elimination_offset (int from, int to);
 extern void score_print_operand (FILE *file, rtx op, int letter);
 extern void score_print_operand_address (FILE *file, rtx addr);
Index: gcc/config/score/score.c
===================================================================
--- gcc/config/score/score.c	(revision 182917)
+++ gcc/config/score/score.c	(working copy)
@@ -125,6 +125,9 @@ struct extern_list *extern_head = 0;
 #undef TARGET_LEGITIMIZE_ADDRESS
 #define TARGET_LEGITIMIZE_ADDRESS	score_legitimize_address

+#undef TARGET_PREFERRED_RELOAD_CLASS
+#define TARGET_PREFERRED_RELOAD_CLASS	score_preferred_reload_class
+
 #undef  TARGET_SCHED_ISSUE_RATE
 #define TARGET_SCHED_ISSUE_RATE         score_issue_rate

@@ -793,9 +796,9 @@ score_reg_class (int regno)
   return NO_REGS;
 }

-/* Implement PREFERRED_RELOAD_CLASS macro.  */
-enum reg_class
-score_preferred_reload_class (rtx x ATTRIBUTE_UNUSED, enum reg_class rclass)
+/* Implement TARGET_PREFERRED_RELOAD_CLASS hook.  */
+static reg_class_t
+score_preferred_reload_class (rtx x ATTRIBUTE_UNUSED, reg_class_t rclass)
 {
   if (reg_class_subset_p (G16_REGS, rclass))
     return G16_REGS;


-- Anatoly.


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