This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: expand and truncate and 387


Hi
I've just read more curefully reg-stack sources and I think it solves all my problems :)
It is really piggy and have special cases for all fp instruction (thats why my changes
into patterns caused crashes).
So I should easilly take care for converting expands into real no-ops (possibly
removing them - but this solution will still confuse the scheduler). I also can convert 
the fsincos, because there is special case for sin and cos anyway.
I've also identified the code that emits fstp between condition and jump. It happends
in case both registers in condition dies at the time. If you don't like my fix
in notice_update_cc, I should do another fix, that says, that condition is somewhat
special and can handle cases where two operands are pushed. This should bring some
code duplication between md file and reg-stack and possibly cause a bit worse
scheduling, because there is more time between fstsw and jump. But this is not important.
Advantage is that in really rare cases I should generate fcompp opcode that pops
its operands automatically (but operands must be first two stack register).
So just let me know what solution you like better.
There is no way to fix it w/o breaking one of this two rules IMO.

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]