Reg-stack and cmove bug

Jan Hubicka jh@suse.cz
Fri Feb 16 03:50:00 GMT 2001


> Notice how the 'ge' in the first insn has mysteriously become an 'le'
> after reg-stack.  It is NOT trying to reverse the sense of the
> comparison here; it has got confused while trying to reorder operands
> to fit the 387 register stack.  fcmov can only move to top-of-stack.
No what really he is trying is to avoid extra fxch on comparison.
There is loop searching for CC user and trying to swap the operands.
This gets messed up, since there are actually two CC users.
One way is to verify presense of REG_DEAD note, better is probably to
try swap all users.

I will prepare patch later today.
Honza



More information about the Gcc-bugs mailing list