diff options
author | Anatoly Sokolov <aesok@post.ru> | 2010-09-19 18:53:05 +0400 |
---|---|---|
committer | Anatoly Sokolov <aesok@gcc.gnu.org> | 2010-09-19 18:53:05 +0400 |
commit | 0b1821788cbe452cfa0cd50452e50754542aee3f (patch) | |
tree | 6242087d02a28d36dea5e0b8950d2ba9b05cab8d /gcc/config | |
parent | 039d9ea1843014ca798de2117edb70e65d0e554e (diff) | |
download | gcc-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.c | 26 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.h | 9 |
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)) |