aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2016-09-27 02:37:07 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2016-09-27 02:37:07 +0200
commit963da599303d6abae1507c2b4fea29c941b10289 (patch)
tree320d32ed2ac4f4399b2b648d3d91bb8daf1179f4 /gcc
parent0c7d89ee1e244c8430f11f355a14f3109cd7b6b7 (diff)
downloadgcc-963da599303d6abae1507c2b4fea29c941b10289.zip
gcc-963da599303d6abae1507c2b4fea29c941b10289.tar.gz
gcc-963da599303d6abae1507c2b4fea29c941b10289.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/rs6000/rs6000.md6
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5bca0c2..55824e5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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)
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 7b995ac..a9fabc1 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)"
"@