[Pixman] [PATCH/RFC] More reliable support for older ARM processors (armv4t/armv6)

Siarhei Siamashka siarhei.siamashka at gmail.com
Mon Mar 22 13:27:03 PDT 2010


I got some ARM fixes in this branch:

They should address the recent armv4t SIGILL problems and also some of the
unexpected build failures in different ARM configurations.

To be on a safe side, any assembly optimizations are only enabled for EABI (as 
this is AFAIK what most of linux systems use or should use nowadays). IMO
it's better to get a bugreport about the optimizations not being enabled than
hunt some weird runtime crashes.

This branch did not get much real testing yet, though I tried different
toochain configurations and build options and examined the generated code.
Also the regression tests pass. But testing one real armv4t hardware and
generally on any ARM systems without NEON support would be appreciated.

For armv4t the expected result should be that both ARM SIMD and ARM NEON
optimizations et compiled in, but they should not cause any bad effects at
runtime. Library size can be reduced a bit by explicitly disabling them
via --disable-arm-simd and --disable-arm-neon configure options. Adding an
extra option to identify what kind of optimizations would be useful based on
CFLAGS/specs/compiler defaults and do not enable anything else should be
possible to introduce too, but I would like to sort it out later.

I'll continue testing these changes a bit more and would like to push them
to pixman master tomorrow if everything is fine.

Performance should not be affected much (it could even get a bit slower
because of an extra function call in the chain). Some real performance
improvements for armv6 and armv4t systems are definitely possible, but
probably they are better to be deployed after pixman 0.18.0 is out.

Comments and suggestions are welcome. Patches review would be appreciated.

Best regards,
Siarhei Siamashka

More information about the Pixman mailing list