diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 38b86a7e0d1..744f15a9752 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-07-15 Kazu Hirata + + 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 PR optimization/11320 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index e4a66228665..e314ba53c2f 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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;