diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 757d529ec0fb6f9745eeaa8a457c563e014dfae4..79022e8218061e5bba2b8a481b0ee93b9499713f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-02-19 James E Wilson <wilson@specifixinc.com> + + * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand + for operand2. Add condition that requires register_operand operand2 + before reload. + 2004-02-19 Richard Sandiford <rsandifo@redhat.com> Maciej W. Rozycki <macro@ds2.pg.gda.pl> diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 77336814934b74d9010872e7528f2ac71168769b..abd7f3dd77394da4c30e8091de83dbd550a48de7 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 "#";