rs6000: Disparage CTR and LR in movcc_internal1
authorSegher Boessenkool <segher@kernel.crashing.org>
Tue, 27 Sep 2016 00:37:07 +0000 (02:37 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Tue, 27 Sep 2016 00:37:07 +0000 (02:37 +0200)
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
gcc/config/rs6000/rs6000.md

index 5bca0c2e45bc93cbcc5c6f84a5b51dedb32f58bc..55824e5565711d9e4a387dd33ca02bee3ca30658 100644 (file)
@@ -1,3 +1,7 @@
+2016-09-27  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
+
 2016-09-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * config/i386/i386.c (ix86_print_operand)
index 7b995ac0f259c57c091ac7b3f1a718c1fecbc6b9..a9fabc181125061f392e240b924317087f49469f 100644 (file)
   "")
 
 (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)"
   "@