diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2003-07-15 13:42:39 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2003-07-15 13:42:39 +0000 |
commit | 5df90541c7b752e3092907b2dfd3a4e324537aaf (patch) | |
tree | c050ecd7a20c73b137bc340d107052020ed7a6ee /gcc | |
parent | b5524f94977d65f8c84fc46ef383c5a439d6ec46 (diff) | |
download | gcc-5df90541c7b752e3092907b2dfd3a4e324537aaf.zip gcc-5df90541c7b752e3092907b2dfd3a4e324537aaf.tar.gz gcc-5df90541c7b752e3092907b2dfd3a4e324537aaf.tar.bz2 |
re PR target/10795 (ICE in extract_insn, at recog.c:2188)
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.
From-SVN: r69407
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 38b86a7..744f15a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index e4a6622..e314ba5 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; |