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.

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to