As requested here is the reason why I found floating point emulation slow
on linux:

1. GCC generates inefficient code for floating point operations done in a
loop.

The same code when hand written in assembly is 10 times faster because one
can use one's judgement in dealing with 80387 stack registers more
efficiently.

Other conclusions:
1. Kernel traps are extremely fast.
2. Linux interrupt latency is very good.


I have tried all sorts of gcc optimizing options and none of them produce
the desirable code. It seems like gcc does not want to keep track of the
floating point register stack in most cases.

So I will have to hand write the certain portions of code in assembly.
For my benchmark tests, I stumbled and produced some code using "inline
assmbly". But now I need full fledged documentation on it.

I could not find any documentation on it (especially the syntax for
floating point instructions). The floating point instructions have
inherently different syntax because the operations happen on a stack of
registers. Can someone suggest any book on inline assembly for floating
point and gcc? I have looked at kernel examples and they are of no use for
floating point. The gcc documentation and a few other people's tutorials
are pretty much useless for floating point assembly.


Thanks

--
Pawan Singh
[EMAIL PROTECTED]
650-404-0213



--
To unsubscribe from this list, send a message to [EMAIL PROTECTED]
with the command "unsubscribe linux-embedded" in the message body.
For more information, see <http://waste.org/mail/linux-embedded>.

Reply via email to