aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@redhat.com>2002-03-09 21:02:13 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2002-03-09 21:02:13 +0000
commit889b90a1085a916610fab93f51693a0e01f11333 (patch)
tree42af80df03e71cf3a3ffbb95a29d663ac4512b16
parenta012ba73273ca7cb8b4ab5dc61a14befb2d67004 (diff)
downloadgcc-889b90a1085a916610fab93f51693a0e01f11333.zip
gcc-889b90a1085a916610fab93f51693a0e01f11333.tar.gz
gcc-889b90a1085a916610fab93f51693a0e01f11333.tar.bz2
rs6000.md (ne0+4): Add extra CLOBBER.
* config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER. (ne0+5): Use new clobber to generate proper shift pattern. Patch by Michael Matz <matz@kde.org>. From-SVN: r50509
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.md15
2 files changed, 15 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f88b44d..56d2cf6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-03-09 Geoffrey Keating <geoffk@redhat.com>
+
+ * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
+ (ne0+5): Use new clobber to generate proper shift pattern.
+ Patch by Michael Matz <matz@kde.org>.
+
2002-03-09 Andreas Schwab <schwab@suse.de>
* gcc.c (validate_all_switches): Also handle `%W{...}'.
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index cf16276..b1ec3f4 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -11013,7 +11013,8 @@
(const_int 31))
(match_operand:SI 2 "gpc_reg_operand" "r,r"))
(const_int 0)))
- (clobber (match_scratch:SI 3 "=&r,&r"))]
+ (clobber (match_scratch:SI 3 "=&r,&r"))
+ (clobber (match_scratch:SI 4 "=X,&r"))]
"! TARGET_POWERPC64"
"@
{ai|addic} %3,%1,-1\;{aze.|addze.} %3,%2
@@ -11029,12 +11030,14 @@
(const_int 31))
(match_operand:SI 2 "gpc_reg_operand" ""))
(const_int 0)))
- (clobber (match_scratch:SI 3 ""))]
+ (clobber (match_scratch:SI 3 ""))
+ (clobber (match_scratch:SI 4 ""))]
"! TARGET_POWERPC64 && reload_completed"
- [(set (match_dup 3)
- (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1)))
- (const_int 31))
- (match_dup 2)))
+ [(parallel [(set (match_dup 3)
+ (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1)))
+ (const_int 31))
+ (match_dup 2)))
+ (clobber (match_dup 4))])
(set (match_dup 0)
(compare:CC (match_dup 3)
(const_int 0)))]