aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2002-05-04 14:32:31 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2002-05-04 10:32:31 -0400
commit0387639b6290f723143524e84bf2373ee1791b33 (patch)
tree7794ee63c5ac57571a5d080a9f3b35d634f13a8f /gcc
parent30b50f906e0b45b53cb9d4b4e996bfc245f908c5 (diff)
downloadgcc-0387639b6290f723143524e84bf2373ee1791b33.zip
gcc-0387639b6290f723143524e84bf2373ee1791b33.tar.gz
gcc-0387639b6290f723143524e84bf2373ee1791b33.tar.bz2
rs6000.md (sCC pattern and splitter): Remove clobber and use result as temporary value.
* config/rs6000/rs6000.md (sCC pattern and splitter): Remove clobber and use result as temporary value. From-SVN: r53159
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.md27
2 files changed, 18 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6d8a2e7..ff8d6f7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-05-04 David Edelsohn <edelsohn@gnu.org>
+
+ PR c/6543
+ * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
+ clobber and use result as temporary value.
+
Sat May 4 13:20:54 CEST 2002 Jan Hubicka <jh@suse.cz>
* expr.c (force_operand): Use expand_simple_* to handle more
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 9f3ecb1..071af20 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -10899,23 +10899,22 @@
"")
(define_insn ""
- [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,x,x,x,?y,?y,?y,?y,?y")
+ [(set (match_operand:CC 4 "cc_reg_operand" "=x,x,x,x,x,?y,?y,?y,?y,?y")
(compare:CC
(plus:SI
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r,r,r,r,r,r")
(match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I,r,O,K,L,I"))
(match_operand:SI 3 "gpc_reg_operand" "r,r,r,r,r,r,r,r,r,r"))
(const_int 0)))
- (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r,r,r,r,r,r")
- (plus:SI (eq:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
- (clobber (match_scratch:SI 4 "=&r,&r,&r,&r,&r,&r,&r,&r,&r,&r"))]
+ (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r,&r,&r,&r,&r,&r,&r")
+ (plus:SI (eq:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
"! TARGET_POWERPC64"
"@
- xor %4,%1,%2\;{sfi|subfic} %4,%4,0\;{aze.|addze.} %0,%3
- {sfi|subfic} %4,%1,0\;{aze.|addze.} %0,%3
- {xoril|xori} %4,%1,%b2\;{sfi|subfic} %4,%4,0\;{aze.|addze.} %0,%3
- {xoriu|xoris} %4,%1,%u2\;{sfi|subfic} %4,%4,0\;{aze.|addze.} %0,%3
- {sfi|subfic} %4,%1,%2\;{sfi|subfic} %4,%4,0\;{aze.|addze.} %0,%3
+ xor %0,%1,%2\;{sfi|subfic} %0,%0,0\;{aze.|addze.} %0,%3
+ {sfi|subfic} %0,%1,0\;{aze.|addze.} %0,%3
+ {xoril|xori} %0,%1,%b2\;{sfi|subfic} %0,%0,0\;{aze.|addze.} %0,%3
+ {xoriu|xoris} %0,%1,%u2\;{sfi|subfic} %0,%0,0\;{aze.|addze.} %0,%3
+ {sfi|subfic} %0,%1,%2\;{sfi|subfic} %0,%0,0\;{aze.|addze.} %0,%3
#
#
#
@@ -10925,7 +10924,7 @@
(set_attr "length" "12,8,12,12,12,16,12,16,16,16")])
(define_split
- [(set (match_operand:CC 5 "cc_reg_not_cr0_operand" "")
+ [(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "")
(compare:CC
(plus:SI
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "")
@@ -10933,13 +10932,11 @@
(match_operand:SI 3 "gpc_reg_operand" ""))
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "")
- (plus:SI (eq:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
- (clobber (match_scratch:SI 4 ""))]
+ (plus:SI (eq:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
"! TARGET_POWERPC64 && reload_completed"
- [(parallel [(set (match_dup 0)
+ [(set (match_dup 0)
(plus:SI (eq:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
- (clobber (match_dup 4))])
- (set (match_dup 5)
+ (set (match_dup 4)
(compare:CC (match_dup 0)
(const_int 0)))]
"")