diff options
Diffstat (limited to 'gcc/postreload.c')
-rw-r--r-- | gcc/postreload.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/postreload.c b/gcc/postreload.c index f460bf3..dcdfedf 100644 --- a/gcc/postreload.c +++ b/gcc/postreload.c @@ -497,6 +497,7 @@ reload_cse_simplify_operands (rtx_insn *insn, rtx testreg) SET_HARD_REG_BIT (equiv_regs[i], REGNO (l->loc)); } + alternative_mask preferred = get_preferred_alternatives (insn); for (i = 0; i < recog_data.n_operands; i++) { enum machine_mode mode; @@ -570,7 +571,7 @@ reload_cse_simplify_operands (rtx_insn *insn, rtx testreg) alternative yet and the operand being replaced is not a cheap CONST_INT. */ if (op_alt_regno[i][j] == -1 - && TEST_BIT (recog_data.enabled_alternatives, j) + && TEST_BIT (preferred, j) && reg_fits_class_p (testreg, rclass, 0, mode) && (!CONST_INT_P (recog_data.operand[i]) || (set_src_cost (recog_data.operand[i], |