Henry Vermaak wrote:
On 20/01/11 08:20, Michael Schnell wrote:
On 01/19/2011 05:13 PM, Henry Vermaak wrote:
it's really expensive to trap the illegal instructions and emulate them.
AFAIK, the trapping is done by the ARM CPU, anyway, providing the
emulation functions just costs some memory, but of course it's even
slower and more intrusive than directly calling an FPU emulation
function in user space.
No, the cpu generates an exception for every illegal fpu operation,
which gets trapped by the kernel. The kernel then has to catch this
instruction and perform it by emulating the _whole_ fpu. This, together
with the exception handling causes the bad performance. Look at the
code in arch/arm/nwfpe if you're interested.
three years ago, I compared an OABI kernel with double precision
Netwinder FPE emulation against softfloat and the softfloat variant was
about 2 until 10 times faster, depending on the floating point instructions.
Henry
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel