It turns out we still used hardcoded register numbers for the CR fields in some cases, and they now use the wrong numbers since we renumbered most of the registers. So let's use the symbolic names, instead.
Committing to trunk. Segher 2019-12-16 Segher Boessenkool <seg...@kernel.crashing.org> * config/rs6000/rs6000.md (movsi_to_cr_one): Use CR0_REGNO instead of hardcoding the (old, expired) register number. (*mtcrfsi): Ditto. --- gcc/config/rs6000/rs6000.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 4c44c1f..4a6416e 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -13132,7 +13132,7 @@ (define_expand "movsi_to_cr_one" (unspec:CC [(match_operand:SI 1 "gpc_reg_operand") (match_dup 2)] UNSPEC_MOVESI_TO_CR))] "" - "operands[2] = GEN_INT (1 << (75 - REGNO (operands[0])));") + "operands[2] = GEN_INT (1 << (7 - (REGNO (operands[0]) - CR0_REGNO)));") (define_insn "*movsi_to_cr" [(match_parallel 0 "mtcrf_operation" @@ -13159,7 +13159,7 @@ (define_insn "*mtcrfsi" "REG_P (operands[0]) && CR_REGNO_P (REGNO (operands[0])) && CONST_INT_P (operands[2]) - && INTVAL (operands[2]) == 1 << (75 - REGNO (operands[0]))" + && INTVAL (operands[2]) == 1 << (7 - (REGNO (operands[0]) - CR0_REGNO))" "mtcrf %R0,%1" [(set_attr "type" "mtcr")]) -- 1.8.3.1