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)
commita555828ec5c079fb3f972b0aac1a4da3daaafd23
tree65faaa21f1071d28764b1a22adc89191c0c4ee5b
parent246906f9c7966fa0a76907b28ecec1f1b0793e48
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: http://svn.enlightenment.org/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