OSDN Git Service

PR target/10795
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Jul 2003 13:42:39 +0000 (13:42 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Jul 2003 13:42:39 +0000 (13:42 +0000)
* config/i386/i386.c (ix86_expand_carry_flag_compare): Don't
swap comparison operands if doing so would generate an
unrecognizable insn.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69407 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c

index 38b86a7..744f15a 100644 (file)
@@ -1,3 +1,10 @@
+2003-07-15  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR target/10795
+       * config/i386/i386.c (ix86_expand_carry_flag_compare): Don't
+       swap comparison operands if doing so would generate an
+       unrecognizable insn.
+
 2003-07-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        PR optimization/11320
index e4a6622..e314ba5 100644 (file)
@@ -9383,6 +9383,11 @@ ix86_expand_carry_flag_compare (enum rtx_code code, rtx op0, rtx op1, rtx *pop)
            return false;
          code = (code == GTU ? GEU : LTU);
        }
+      else if (!nonimmediate_operand (op1, mode)
+              || !general_operand (op0, mode))
+       /* Swapping operands in this case would generate an
+          unrecognizable insn.  */
+       return false;
       else
        {
          rtx tmp = op1;