This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[M32C] Hookize CLASS_LIKELY_SPILLED_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: Thu, 2 Sep 2010 20:31:40 +0400
- Subject: [M32C] Hookize CLASS_LIKELY_SPILLED_P
Hi.
This patch removes obsolete CLASS_LIKELY_SPILLED_P macro from the M32C back
end in the GCC and introduces equivalent TARGET_CLASS_LIKELY_SPILLED_P target
hook.
Regression tested on m32c-unknown-elf.
OK to install?
* config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
* config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
(m32c_class_likely_spilled_p): Make static. Change arguments type to
reg_class_t.
Index: gcc/config/m32c/m32c.c
===================================================================
--- gcc/config/m32c/m32c.c (revision 163779)
+++ gcc/config/m32c/m32c.c (working copy)
@@ -823,14 +823,19 @@
return NO_REGS;
}
-/* Implements CLASS_LIKELY_SPILLED_P. A_REGS is needed for address
+/* Implements TARGET_CLASS_LIKELY_SPILLED_P. A_REGS is needed for address
reloads. */
-int
-m32c_class_likely_spilled_p (int regclass)
+
+#undef TARGET_CLASS_LIKELY_SPILLED_P
+#define TARGET_CLASS_LIKELY_SPILLED_P m32c_class_likely_spilled_p
+
+static bool
+m32c_class_likely_spilled_p (reg_class_t regclass)
{
if (regclass == A_REGS)
- return 1;
- return reg_class_size[regclass] == 1;
+ return true;
+
+ return (reg_class_size[(int) regclass] == 1);
}
/* Implements CLASS_MAX_NREGS. We calculate this according to its
Index: gcc/config/m32c/m32c.h
===================================================================
--- gcc/config/m32c/m32c.h (revision 163779)
+++ gcc/config/m32c/m32c.h (working copy)
@@ -421,8 +421,6 @@
#define TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P hook_bool_mode_true
-#define CLASS_LIKELY_SPILLED_P(C) m32c_class_likely_spilled_p (C)
-
#define CLASS_MAX_NREGS(C,M) m32c_class_max_nregs (C, M)
#define CANNOT_CHANGE_MODE_CLASS(F,T,C) m32c_cannot_change_mode_class(F,T,C)
Index: gcc/config/m32c/m32c-protos.h
===================================================================
--- gcc/config/m32c/m32c-protos.h (revision 163779)
+++ gcc/config/m32c/m32c-protos.h (working copy)
@@ -22,7 +22,6 @@
#define MM enum machine_mode
#define UINT unsigned int
-int m32c_class_likely_spilled_p (int);
void m32c_conditional_register_usage (void);
int m32c_const_ok_for_constraint_p (HOST_WIDE_INT, char, const char *);
UINT m32c_dwarf_frame_regnum (int);
Anatoly.