skia2/include
commit-bot@chromium.org 6f2d4d4679 ARM Skia NEON patches - 35 - First AArch64 support
Aarch64 support

This change contains the necessary modifications to have Skia build and
run properly on an ARMv8 processor in aarch64 execution state.

Here's a list of the changes:

 - add an arm64 target to the build system + SK_CPU_ARM64 flag

 - MatrixTest was failing when built in Release mode. Fused MAC
   instructions were generated which made some intermediate results
   more accurate. As the test relies on result comparison, the more
   precise results when compared to others led to a gap bigger than
   what was tolerated. As I don't know if some actual skia code relies
   on results being comparable, I've disabled fused MAC instruction
   with -ffp-contract=off for arm64.

 - Modify include/core/SkOnce.h to have barriers work.

 - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.

 - use existing Xfermode optimisations with modifications that can be
   removed in the future when toolchains are ready. Also save a few
   instructions is two Xfermodes (will apply to ARM too).

 - use existing SkBoxBlur and SkMorphology optimisations.

 - use existing SkBlitMask optimisations

 - use existing BitmapProcState and Convolution optimisations.

Future changes will include:

 - Blitters (only partialy merged upstream)

 - SkUtils (there's little value in sending asm optimisations without
   having them benchmarked on real hardware).

Signed-off-by: Kevin PETIT <kevin.petit@arm.com>

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=13980

R=djsollen@google.com, reed@google.com, mtklein@google.com, halcanary@google.com

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/143423004

git-svn-id: http://skia.googlecode.com/svn/trunk@14025 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 15:03:56 +00:00
..
animator Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
config replace old SK_TRACE_EVENT macros with new TRACE_EVENT ones, and then remove them entirely! 2014-03-20 20:00:24 +00:00
core ARM Skia NEON patches - 35 - First AArch64 support 2014-04-02 15:03:56 +00:00
device/xps remove all references to legacy Config8888 2014-03-26 13:44:58 +00:00
effects Sanitizing source files in Housekeeper-Nightly 2014-04-02 03:05:59 +00:00
gpu Minor changes to GrFontCache system. 2014-04-01 16:25:11 +00:00
images Refactor read and write buffers. 2014-01-30 18:58:24 +00:00
pathops Export SkPathOps.h functions for external use. 2013-07-09 19:43:35 +00:00
pdf remove all references to legacy Config8888 2014-03-26 13:44:58 +00:00
pipe Fixes for piping bitmaps with encoded data. 2013-04-30 02:32:41 +00:00
ports Pass the IDWriteFactory instead of relying on a global creator. 2014-03-31 19:18:07 +00:00
svg Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
text Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
utils Consolidate SkCanvas matrix virtuals. 2014-03-25 17:32:26 +00:00
views Drop executable flag from headers so that they can be packaged 2014-03-11 19:55:51 +00:00
xml Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00