diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7641ecefba99059cb1acc2396f402e9655068446..1dcefa5ab74e4ca210beaa210334787c77893814 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
+	"*subsf3_cconly"): Subtraction is not commutative.
+
 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
 
 	* sdbout.c (preinit_symbols, sdbout_initialized): New statics.
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 5cae9ba2a023e7961e1741c1fb3f3d110f5be274..cc8655d676662b3d0eda690b9994df35a17a8c51 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -4108,7 +4108,7 @@
 
 (define_insn "*subdf3_cc"
   [(set (reg 33)
-	(compare (minus:DF (match_operand:DF 1 "nonimmediate_operand" "%0,0")
+	(compare (minus:DF (match_operand:DF 1 "nonimmediate_operand" "0,0")
 			   (match_operand:DF 2 "general_operand" "f,R"))
 		 (match_operand:DF 3 "const0_operand" "")))
    (set (match_operand:DF 0 "register_operand" "=f,f")
@@ -4122,7 +4122,7 @@
 
 (define_insn "*subdf3_cconly"
   [(set (reg 33)
-	(compare (minus:DF (match_operand:DF 1 "nonimmediate_operand" "%0,0")
+	(compare (minus:DF (match_operand:DF 1 "nonimmediate_operand" "0,0")
 			   (match_operand:DF 2 "general_operand" "f,R"))
 		 (match_operand:DF 3 "const0_operand" "")))
    (clobber (match_scratch:DF 0 "=f,f"))]
@@ -4172,7 +4172,7 @@
 
 (define_insn "*subsf3_cc"
   [(set (reg 33)
-	(compare (minus:SF (match_operand:SF 1 "nonimmediate_operand" "%0,0")
+	(compare (minus:SF (match_operand:SF 1 "nonimmediate_operand" "0,0")
 			   (match_operand:SF 2 "general_operand" "f,R"))
 		 (match_operand:SF 3 "const0_operand" "")))
    (set (match_operand:SF 0 "register_operand" "=f,f")
@@ -4186,7 +4186,7 @@
 
 (define_insn "*subsf3_cconly"
   [(set (reg 33)
-	(compare (minus:SF (match_operand:SF 1 "nonimmediate_operand" "%0,0")
+	(compare (minus:SF (match_operand:SF 1 "nonimmediate_operand" "0,0")
 			   (match_operand:SF 2 "general_operand" "f,R"))
 		 (match_operand:SF 3 "const0_operand" "")))
    (clobber (match_scratch:SF 0 "=f,f"))]