PR target/30315
authorrask <rask@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Aug 2007 14:39:24 +0000 (14:39 +0000)
committerrask <rask@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Aug 2007 14:39:24 +0000 (14:39 +0000)
commitaa8c6aad445339e9fdb1e9bbbcf3c9516a69a228
tree22db592c1799b6343afa09bfa8ece2e1faa8d6d9
parent24756408ba55089ff67ae54e1e1fad656f5f031d
PR target/30315
* config/i386/i386.h (CANONICALIZE_COMPARISON): New.
* config/i386/i386.md (plusminus)(addsub)(SWI): New.
(*<addsub><mode>3_cc_overflow): New.
(*add<mode>3_cconly_overflow): New.
(*sub<mode>3_cconly_overflow): New.
(*<addsub>si3_zext_cc_overflow): New.
* config/i386/predicates.md (fcmov_comparison_operator): Accept
CCCmode for LTU, GTU, LEU and GEU.
(ix86_comparison_operator): Likewise.
(ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
* gcc/config/i386/i386.c (put_condition_code): Support CCCmode.
(ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
or MINUS expressions.

testsuite/
PR target/30315
* gcc.target/i386/pr30315.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127481 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/config/i386/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr30315.c [new file with mode: 0644]