aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorJames E Wilson <wilson@specifixinc.com>2004-02-20 01:20:33 +0000
committerJim Wilson <wilson@gcc.gnu.org>2004-02-19 17:20:33 -0800
commite0c34369b81d9334b04833c2fa7de08282b3929f (patch)
tree9cdd16fb37d04fb9ea3396afb55532a1d6e28e96 /gcc/config
parent325b439bbcb9eeacdbaaa6b68dfea0daf962ec70 (diff)
downloadgcc-e0c34369b81d9334b04833c2fa7de08282b3929f.zip
gcc-e0c34369b81d9334b04833c2fa7de08282b3929f.tar.gz
gcc-e0c34369b81d9334b04833c2fa7de08282b3929f.tar.bz2
Fix latent problem found by Mostafa Hagog.
* config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand for operand2. Add condition that requires register_operand operand2 before reload. From-SVN: r78140
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/i386.md6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 7733681..abd7f3d 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -13468,12 +13468,14 @@
(const_int 1))
(label_ref (match_operand 0 "" ""))
(pc)))
- (set (match_operand:SI 2 "register_operand" "=1,1,*m*r")
+ (set (match_operand:SI 2 "nonimmediate_operand" "=1,1,*m*r")
(plus:SI (match_dup 1)
(const_int -1)))
(clobber (match_scratch:SI 3 "=X,X,r"))
(clobber (reg:CC 17))]
- "!TARGET_64BIT && TARGET_USE_LOOP"
+ "!TARGET_64BIT && TARGET_USE_LOOP
+ && (reload_in_progress || reload_completed
+ || register_operand (operands[2], VOIDmode))"
{
if (which_alternative != 0)
return "#";