i386.c (ix86_expand_int_movcc): In the case where the comparison directly gives a mask suppress addition when...
* config/i386/i386.c (ix86_expand_int_movcc): In the case where the comparison directly gives a mask suppress addition when cf is zero by complementing the mask. From-SVN: r55505
This commit is contained in:
parent
2aa9948d9b
commit
06ec023fb9
@ -1,3 +1,9 @@
|
||||
2002-07-16 Rodney Brown <rbrown64@csc.com.au>
|
||||
|
||||
* config/i386/i386.c (ix86_expand_int_movcc): In the case where
|
||||
the comparison directly gives a mask suppress addition when cf is
|
||||
zero by complementing the mask.
|
||||
|
||||
2002-07-16 Nathanael Nerode <neroden@gcc.gnu.org>
|
||||
|
||||
* Makefile.in: Delete references to enquire.
|
||||
|
@ -8666,7 +8666,6 @@ ix86_expand_int_movcc (operands)
|
||||
if ((compare_code == LTU || compare_code == GEU)
|
||||
&& !second_test && !bypass_test)
|
||||
{
|
||||
|
||||
/* Detect overlap between destination and compare sources. */
|
||||
rtx tmp = out;
|
||||
|
||||
@ -8723,7 +8722,7 @@ ix86_expand_int_movcc (operands)
|
||||
/*
|
||||
* cmpl op0,op1
|
||||
* sbbl dest,dest
|
||||
* xorl $-1, dest
|
||||
* notl dest
|
||||
* [addl dest, cf]
|
||||
*
|
||||
* Size 8 - 11.
|
||||
@ -8739,11 +8738,20 @@ ix86_expand_int_movcc (operands)
|
||||
/*
|
||||
* cmpl op0,op1
|
||||
* sbbl dest,dest
|
||||
* [notl dest]
|
||||
* andl cf - ct, dest
|
||||
* [addl dest, ct]
|
||||
*
|
||||
* Size 8 - 11.
|
||||
*/
|
||||
|
||||
if (cf == 0)
|
||||
{
|
||||
cf = ct;
|
||||
ct = 0;
|
||||
tmp = expand_simple_unop (mode, NOT, tmp, tmp, 1);
|
||||
}
|
||||
|
||||
tmp = expand_simple_binop (mode, AND,
|
||||
tmp,
|
||||
gen_int_mode (cf - ct, mode),
|
||||
|
Loading…
Reference in New Issue
Block a user