arm: dynamic NEON support for SkBitmapProcState matrix operations.
authordigit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 1 Aug 2012 14:25:07 +0000 (14:25 +0000)
committerdigit@google.com <digit@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 1 Aug 2012 14:25:07 +0000 (14:25 +0000)
commitfce02aca62525c3041226501574f740f7ea3714b
tree9053a19f5850210917e47ef54c778ccd5cae686d
parent47de6787a5aa677157fd468c5798eeb01c6c9139
arm: dynamic NEON support for SkBitmapProcState matrix operations.

This patch implements dynamic ARM NEON support for the functions
implemented by src/core/SkBitmapProcState_matrixProcs.cpp.

 - Because the SkBitmapProcState_matrix_{clamp,repeat}.h headers
   are NEON-specific, they are renamed with a _neon.h suffix, and
   moved to src/opts/ (from src/core/)

 - Add a new file src/opts/SkBitmapProcState_matrixProcs_neon.cpp
   which implements the NEON code paths for all builds, and add
   it to the 'opts_neon' static library.

 - Modify SkBitmapProcState_matrixProcs.cpp to select the right
   code-path depending on our build configuration. Note that in
   the case where 'arm_neon == 1', we do not embed regular ARM
   code paths in the final binary. Only 'arm_neon_optional == 1'
   builds will contain both regular and NEON code paths at the
   same time.

Note that there doesn't seem to be a simple way to put the
NEON-specific selection from that currently is in
SkBitmapProcState_matrixProcs.cpp into src/opts/. Doing so
would require much more drastic restructuring. This is also
true of the other SkBitmapProcState source files that will
be touched in a future patch.
Review URL: https://codereview.appspot.com/6453065

git-svn-id: http://skia.googlecode.com/svn/trunk@4888 2bbb7eff-a529-9590-31e7-b0007b416f81
gyp/opts.gyp
src/core/SkBitmapProcState_matrixProcs.cpp
src/core/SkUtilsArm.cpp
src/opts/SkBitmapProcState_matrixProcs_neon.cpp [new file with mode: 0644]
src/opts/SkBitmapProcState_matrix_clamp_neon.h [moved from src/core/SkBitmapProcState_matrix_clamp.h with 99% similarity]
src/opts/SkBitmapProcState_matrix_repeat_neon.h [moved from src/core/SkBitmapProcState_matrix_repeat.h with 93% similarity]