From 963da599303d6abae1507c2b4fea29c941b10289 Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Tue, 27 Sep 2016 02:37:07 +0200 Subject: [PATCH] rs6000: Disparage CTR and LR in movcc_internal1 LRA likes to use CTR and LR to store CCmode values. Not such a good idea. All other similar patterns disparage using CTR and LR; do so here, too. * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR. From-SVN: r240515 --- gcc/ChangeLog | 4 ++++ gcc/config/rs6000/rs6000.md | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5bca0c2e45b..55824e55657 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2016-09-27 Segher Boessenkool + + * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR. + 2016-09-26 Rainer Orth * config/i386/i386.c (ix86_print_operand) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 7b995ac0f25..a9fabc18112 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -6653,8 +6653,10 @@ "") (define_insn "*movcc_internal1" - [(set (match_operand:CC 0 "nonimmediate_operand" "=y,x,?y,y,r,r,r,r,r,cl,r,m") - (match_operand:CC 1 "general_operand" "y,r,r,O,x,y,r,I,h,r,m,r"))] + [(set (match_operand:CC 0 "nonimmediate_operand" + "=y,x,?y,y,r,r,r,r,r,*c*l,r,m") + (match_operand:CC 1 "general_operand" + " y,r, r,O,x,y,r,I,h, r,m,r"))] "register_operand (operands[0], CCmode) || register_operand (operands[1], CCmode)" "@ -- 2.30.2