[BFIN] Hookize CLASS_LIKELY_SPILLED_P macro
Anatoly Sokolov
aesok@post.ru
Sat Sep 18 16:05:00 GMT 2010
Hi.
This patch removes obsolete CLASS_LIKELY_SPILLED_P macro from the
Blackfin back end in the GCC and introduces equivalent
TARGET_CLASS_LIKELY_SPILLED_P target hook.
Untested.
OK to install?
* config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
(bfin_class_likely_spilled_p): New function.
Index: gcc/config/bfin/bfin.c
===================================================================
--- gcc/config/bfin/bfin.c (revision 164010)
+++ gcc/config/bfin/bfin.c (working copy)
@@ -2543,6 +2543,29 @@
return NO_REGS;
}
+
+/* Implement TARGET_CLASS_LIKELY_SPILLED_P. */
+
+static bool
+bfin_class_likely_spilled_p (reg_class_t rclass)
+{
+ switch (rclass)
+ {
+ case PREGS_CLOBBERED:
+ case PROLOGUE_REGS:
+ case P0REGS:
+ case D0REGS:
+ case D1REGS:
+ case D2REGS:
+ case CCREGS:
+ return true;
+
+ default:
+ break;
+ }
+
+ return false;
+}
/* Implement TARGET_HANDLE_OPTION. */
@@ -6632,6 +6655,9 @@
#undef TARGET_SECONDARY_RELOAD
#define TARGET_SECONDARY_RELOAD bfin_secondary_reload
+#undef TARGET_CLASS_LIKELY_SPILLED_P
+#define TARGET_CLASS_LIKELY_SPILLED_P bfin_class_likely_spilled_p
+
#undef TARGET_DELEGITIMIZE_ADDRESS
#define TARGET_DELEGITIMIZE_ADDRESS bfin_delegitimize_address
Index: gcc/config/bfin/bfin.h
===================================================================
--- gcc/config/bfin/bfin.h (revision 164010)
+++ gcc/config/bfin/bfin.h (working copy)
@@ -761,15 +761,6 @@
registers. */
#define TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P hook_bool_mode_true
-#define CLASS_LIKELY_SPILLED_P(CLASS) \
- ((CLASS) == PREGS_CLOBBERED \
- || (CLASS) == PROLOGUE_REGS \
- || (CLASS) == P0REGS \
- || (CLASS) == D0REGS \
- || (CLASS) == D1REGS \
- || (CLASS) == D2REGS \
- || (CLASS) == CCREGS)
-
/* Do not allow to store a value in REG_CC for any mode */
/* Do not allow to store value in pregs if mode is not SI*/
#define HARD_REGNO_MODE_OK(REGNO, MODE) hard_regno_mode_ok((REGNO), (MODE))
Anatoly.
More information about the Gcc-patches
mailing list