diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-03-28 18:05:29 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-03-28 18:05:29 +0000 |
commit | d643a90ee248d22ec8260512812dee6d463de555 (patch) | |
tree | 3260334e7d03e5f509ff4a5546457f17e4f3d029 /include/core | |
parent | 972f9cd7a063d0544f8c919fd12b9a3adbd12b24 (diff) |
Revert of ARM Skia NEON patches - 35 - First AArch64 support (https://codereview.chromium.org/143423004/)
Reason for revert:
GYP's failing on most (all?) bots.
Original issue's description:
> 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, halcanary@google.com, kevin.petit@arm.com
TBR=djsollen@google.com, halcanary@google.com, kevin.petit@arm.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/216113005
git-svn-id: http://skia.googlecode.com/svn/trunk@13983 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'include/core')
-rw-r--r-- | include/core/SkOnce.h | 8 | ||||
-rw-r--r-- | include/core/SkPreConfig.h | 4 |
2 files changed, 5 insertions, 7 deletions
diff --git a/include/core/SkOnce.h b/include/core/SkOnce.h index d5330b9408..daeb819d42 100644 --- a/include/core/SkOnce.h +++ b/include/core/SkOnce.h @@ -85,10 +85,12 @@ inline static void compiler_barrier() { #endif inline static void full_barrier_on_arm() { -#if (defined(SK_CPU_ARM) && SK_ARM_ARCH >= 7) || defined(SK_CPU_ARM64) - asm volatile("dmb ish" : : : "memory"); -#elif defined(SK_CPU_ARM) +#ifdef SK_CPU_ARM +# if SK_ARM_ARCH >= 7 + asm volatile("dmb" : : : "memory"); +# else asm volatile("mcr p15, 0, %0, c7, c10, 5" : : "r" (0) : "memory"); +# endif #endif } diff --git a/include/core/SkPreConfig.h b/include/core/SkPreConfig.h index 73b54886bf..406a159d89 100644 --- a/include/core/SkPreConfig.h +++ b/include/core/SkPreConfig.h @@ -174,10 +174,6 @@ #endif #endif -#if defined(__aarch64__) - #define SK_CPU_ARM64 -#endif - ////////////////////////////////////////////////////////////////////// #if !defined(SKIA_IMPLEMENTATION) |