s390.c (s390_canonicalize_comparison): Prefer register over memory as first operand.
authorUlrich Weigand <uweigand@de.ibm.com>
Sun, 14 Aug 2005 19:06:56 +0000 (19:06 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Sun, 14 Aug 2005 19:06:56 +0000 (19:06 +0000)
* config/s390/s390.c (s390_canonicalize_comparison): Prefer register
over memory as first operand.

From-SVN: r103082

gcc/ChangeLog
gcc/config/s390/s390.c

index f112f1ba291e15c25dcf1bd5a3ebad305d017d09..fb927823d838b16ad742e3306b80b71f6d874bbb 100644 (file)
@@ -1,3 +1,8 @@
+2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
+       over memory as first operand.
+
 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR target/23360
index aae047912849689b4442ba5e4a9fe8683905e4d2..1814ed0f1b5bf9dc41557aadcf5057e363c86f8b 100644 (file)
@@ -673,6 +673,13 @@ s390_canonicalize_comparison (enum rtx_code *code, rtx *op0, rtx *op1)
        *code = NE;
       *op0 = XEXP (*op0, 0);
     }
+
+  /* Prefer register over memory as first operand.  */
+  if (MEM_P (*op0) && REG_P (*op1))
+    {
+      rtx tem = *op0; *op0 = *op1; *op1 = tem;
+      *code = swap_condition (*code);
+    }
 }
 
 /* Emit a compare instruction suitable to implement the comparison