From 021b04102ba25a17a164c47678b12cee235f35e9 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Wed, 23 Oct 2013 14:32:32 +0000 Subject: [PATCH] re PR target/58838 (mullw sets condition code incorrectly.) PR target/58838 * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add TARGET_32BIT final condition. (mulsi3_internal2 and splitter): Same. From-SVN: r203977 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/rs6000.md | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index acd6620a048c..cf5fef277044 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2013-10-23 David Edelsohn + + PR target/58838 + * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add + TARGET_32BIT final condition. + (mulsi3_internal2 and splitter): Same. + 2013-10-23 Jeff Law * tree-ssa-threadedge.c (thread_across_edge): Do not allow threading diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 567961a42e54..9a0472d21a9e 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -2699,7 +2699,7 @@ (match_operand:SI 2 "gpc_reg_operand" "r,r")) (const_int 0))) (clobber (match_scratch:SI 3 "=r,r"))] - "" + "TARGET_32BIT" "@ mullw. %3,%1,%2 #" @@ -2712,7 +2712,7 @@ (match_operand:SI 2 "gpc_reg_operand" "")) (const_int 0))) (clobber (match_scratch:SI 3 ""))] - "reload_completed" + "TARGET_32BIT && reload_completed" [(set (match_dup 3) (mult:SI (match_dup 1) (match_dup 2))) (set (match_dup 0) @@ -2727,7 +2727,7 @@ (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (mult:SI (match_dup 1) (match_dup 2)))] - "" + "TARGET_32BIT" "@ mullw. %0,%1,%2 #" @@ -2741,7 +2741,7 @@ (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "") (mult:SI (match_dup 1) (match_dup 2)))] - "reload_completed" + "TARGET_32BIT && reload_completed" [(set (match_dup 0) (mult:SI (match_dup 1) (match_dup 2))) (set (match_dup 3) -- 2.47.2