From bb03700c9b89f42b9e6bccccef8a74ce9b4fb91b Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Mon, 16 Dec 2019 17:06:17 +0100 Subject: [PATCH] rs6000: Use symbolic names for the CR fields in more cases 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. * config/rs6000/rs6000.md (movsi_to_cr_one): Use CR0_REGNO instead of hardcoding the (old, expired) register number. (*mtcrfsi): Ditto. From-SVN: r279443 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.md | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 08d769a76af..8fa7cc49c30 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-12-16 Segher Boessenkool + + * config/rs6000/rs6000.md (movsi_to_cr_one): Use CR0_REGNO instead of + hardcoding the (old, expired) register number. + (*mtcrfsi): Ditto. + 2019-12-16 Jozef Lawrynowicz * config.gcc: s/msp430*-*-*/msp430-*-*. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 4c44c1f9cf3..4a6416ef5c2 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -13132,7 +13132,7 @@ (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 @@ "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")]) -- 2.30.2