diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-07 05:49:18 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-07 05:49:18 +0000 |
commit | 7014838cdd847f5d22f8b4bff0285ad622b707b5 (patch) | |
tree | f1a67b6ea75a7f0da3f06e0a1c60b213f4403168 /gcc/regmove.c | |
parent | 713829e97b2cabe9369424002f6efb23a7c86aba (diff) | |
download | gcc-7014838cdd847f5d22f8b4bff0285ad622b707b5.tar.gz |
Merge in gcc2-ss-010999
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29150 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regmove.c')
-rw-r--r-- | gcc/regmove.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/gcc/regmove.c b/gcc/regmove.c index 11a5c704dd4..424e3b11dfc 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -2128,58 +2128,3 @@ stable_but_for_p (x, src, dst) return ! rtx_unstable_p (x); } } - -/* Test if regmove seems profitable for this target. Regmove is useful only - if some common patterns are two address, i.e. require matching constraints, - so we check that condition here. */ - -int -regmove_profitable_p () -{ -#ifdef REGISTER_CONSTRAINTS - struct match match; - enum machine_mode mode; - optab tstoptab = add_optab; - do /* check add_optab and ashl_optab */ - for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT); mode != VOIDmode; - mode = GET_MODE_WIDER_MODE (mode)) - { - int icode = (int) tstoptab->handlers[(int) mode].insn_code; - rtx reg0, reg1, reg2, pat; - int i; - - if (GET_MODE_BITSIZE (mode) < 32 || icode == CODE_FOR_nothing) - continue; - for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) - if (TEST_HARD_REG_BIT (reg_class_contents[GENERAL_REGS], i)) - break; - if (i + 2 >= FIRST_PSEUDO_REGISTER) - break; - reg0 = gen_rtx_REG (insn_operand_mode[icode][0], i); - reg1 = gen_rtx_REG (insn_operand_mode[icode][1], i + 1); - reg2 = gen_rtx_REG (insn_operand_mode[icode][2], i + 2); - if (! (*insn_operand_predicate[icode][0]) (reg0, VOIDmode) - || ! (*insn_operand_predicate[icode][1]) (reg1, VOIDmode) - || ! (*insn_operand_predicate[icode][2]) (reg2, VOIDmode)) - break; - pat = GEN_FCN (icode) (reg0, reg1, reg2); - if (! pat) - continue; - if (GET_CODE (pat) == SEQUENCE) - pat = XVECEXP (pat, 0, XVECLEN (pat, 0) - 1); - else - pat = make_insn_raw (pat); - if (! single_set (pat) - || GET_CODE (SET_SRC (single_set (pat))) != tstoptab->code) - /* Unexpected complexity; don't need to handle this unless - we find a machine where this occurs and regmove should - be enabled. */ - break; - if (find_matches (pat, &match)) - return 1; - break; - } - while (tstoptab != ashl_optab && (tstoptab = ashl_optab, 1)); -#endif /* REGISTER_CONSTRAINTS */ - return 0; -} |