[fpc-devel] ARM-Linux, ARMv5 runtime detection fails

Bernd Mueller mueller.b at gmx.net
Wed Mar 5 16:47:13 CET 2008


Hello,

the ARMv5 runtime detection in rtl/arm/arm.inc fails, because the used 
pld instruction does not raise SIGILL on ARM architectures ARMv4 and 
below. If you would use an instruction which raises a SIGILL, it would 
still fail, because SignalToRunerror in rtl/linux/arm/sighnd.inc does 
not recover correct from the SIGILL.

The problem is now, that the wrong move procedure Move_pld is used 
instead of Move_blended for ARMv4 which leads to a huge speed penalty 
(about 25 %) for this architecture.

I would suggest to use conditional compilation to separate between the 
different ARM architectures.

Regards, Bernd.




More information about the fpc-devel mailing list