Neon improvements for ARM Cortex.
authornash <nash@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 10 May 2010 09:24:11 +0000 (09:24 +0000)
committernash <nash@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 10 May 2010 09:24:11 +0000 (09:24 +0000)
commitaf2c453e671f77e3b7d3e8ecd741aaa391278bdb
tree65faaa21f1071d28764b1a22adc89191c0c4ee5b
parentfd25a3d6c3bdc0cd3e0fa6a43440c18467e2fdd8
Neon improvements for ARM Cortex.

Samsung Electronics just allowed me to release the first set of ARM neon
patches under the Evas licence.  They are silently helping improve EFL and
this another product of their help.

These patches have been tested on a Cortex A8 and show consistent improvement
across the board.  For expedite some tests up to 100% improvements, and
practical real world examples show that rendering limited applications show
similar improvements.  For instance in one application from 17fps->30fps or
for another 40->63fps.

The patches are pure neon code (intrinsics tend to generate worse code).  To
build under GCC you will need a recent GCC and the following C flags:
-mfloat-abi=softfp -mfpu=neon
I also recommend -O2 and -ffast-math.

If you have any problems please let me know.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@48733 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
src/lib/engines/common/evas_op_blend/op_blend_color_neon.c
src/lib/engines/common/evas_op_blend/op_blend_mask_color_neon.c
src/lib/engines/common/evas_op_blend/op_blend_pixel_color_neon.c
src/lib/engines/common/evas_op_blend/op_blend_pixel_neon.c
src/lib/engines/common/evas_op_copy/op_copy_color_neon.c