aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorAnatoly Sokolov <aesok@post.ru>2010-09-19 18:53:05 +0400
committerAnatoly Sokolov <aesok@gcc.gnu.org>2010-09-19 18:53:05 +0400
commit0b1821788cbe452cfa0cd50452e50754542aee3f (patch)
tree6242087d02a28d36dea5e0b8950d2ba9b05cab8d /gcc/config
parent039d9ea1843014ca798de2117edb70e65d0e554e (diff)
downloadgcc-0b1821788cbe452cfa0cd50452e50754542aee3f.zip
gcc-0b1821788cbe452cfa0cd50452e50754542aee3f.tar.gz
gcc-0b1821788cbe452cfa0cd50452e50754542aee3f.tar.bz2
bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
* 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 From-SVN: r164421
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/bfin/bfin.c26
-rw-r--r--gcc/config/bfin/bfin.h9
2 files changed, 26 insertions, 9 deletions
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index 8ff9e2f..da5a8ee 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -2543,6 +2543,29 @@ bfin_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i,
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. */
@@ -6635,6 +6658,9 @@ bfin_expand_builtin (tree exp, rtx target ATTRIBUTE_UNUSED,
#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
diff --git a/gcc/config/bfin/bfin.h b/gcc/config/bfin/bfin.h
index 037e5be..30b298d 100644
--- a/gcc/config/bfin/bfin.h
+++ b/gcc/config/bfin/bfin.h
@@ -750,15 +750,6 @@ enum reg_class
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))