Chromium Code Reviews| Index: src/core/SkUtilsArm.h | 
| diff --git a/src/core/SkUtilsArm.h b/src/core/SkUtilsArm.h | 
| index dde933bafa974056c8ef9e533a491162dee5b6eb..0d35193e0407c125d1a1845b41274a085fa1891d 100644 | 
| --- a/src/core/SkUtilsArm.h | 
| +++ b/src/core/SkUtilsArm.h | 
| @@ -8,75 +8,12 @@ | 
| #ifndef SkUtilsArm_DEFINED | 
| #define SkUtilsArm_DEFINED | 
| -#include "SkCpu.h" | 
| -#include "SkUtils.h" | 
| +#include "SkTypes.h" | 
| -// Define SK_ARM_NEON_MODE to one of the following values | 
| -// corresponding respectively to: | 
| -// - No ARM Neon support at all (not targetting ARMv7-A, or don't have NEON) | 
| -// - Full ARM Neon support (i.e. assume the CPU always supports it) | 
| -// - Optional ARM Neon support (i.e. probe CPU at runtime) | 
| -// | 
| -#define SK_ARM_NEON_MODE_NONE 0 | 
| -#define SK_ARM_NEON_MODE_ALWAYS 1 | 
| -#define SK_ARM_NEON_MODE_DYNAMIC 2 | 
| - | 
| -#if defined(SK_ARM_HAS_OPTIONAL_NEON) | 
| -# define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_DYNAMIC | 
| -#elif defined(SK_ARM_HAS_NEON) | 
| -# define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_ALWAYS | 
| -#else | 
| -# define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_NONE | 
| -#endif | 
| - | 
| -// Convenience test macros, always defined as 0 or 1 | 
| -#define SK_ARM_NEON_IS_NONE (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_NONE) | 
| -#define SK_ARM_NEON_IS_ALWAYS (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_ALWAYS) | 
| -#define SK_ARM_NEON_IS_DYNAMIC (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_DYNAMIC) | 
| - | 
| -// The sk_cpu_arm_has_neon() function returns true iff the target device | 
| -// is ARMv7-A and supports Neon instructions. In DYNAMIC mode, this actually | 
| -// probes the CPU at runtime (and caches the result). | 
| - | 
| -static inline bool sk_cpu_arm_has_neon(void) { | 
| -#if SK_ARM_NEON_IS_NONE | 
| - return false; | 
| +#if defined(SK_ARM_HAS_NEON) | 
| + #define SK_ARM_NEON_WRAP(x) (x ## _neon) | 
| #else | 
| - return SkCpu::Supports(SkCpu::NEON); | 
| -#endif | 
| -} | 
| - | 
| -// Use SK_ARM_NEON_WRAP(symbol) to map 'symbol' to a NEON-specific symbol | 
| -// when applicable. This will transform 'symbol' differently depending on | 
| -// the current NEON configuration, i.e.: | 
| -// | 
| -// NONE -> 'symbol' | 
| -// ALWAYS -> 'symbol_neon' | 
| -// DYNAMIC -> 'symbol' or 'symbol_neon' depending on runtime check. | 
| -// | 
| -// The goal is to simplify user code, for example: | 
| -// | 
| -// return SK_ARM_NEON_WRAP(do_something)(params); | 
| -// | 
| -// Replaces the equivalent: | 
| -// | 
| -// #if SK_ARM_NEON_IS_NONE | 
| -// return do_something(params); | 
| -// #elif SK_ARM_NEON_IS_ALWAYS | 
| -// return do_something_neon(params); | 
| -// #elif SK_ARM_NEON_IS_DYNAMIC | 
| -// if (sk_cpu_arm_has_neon()) | 
| -// return do_something_neon(params); | 
| -// else | 
| -// return do_something(params); | 
| -// #endif | 
| -// | 
| -#if SK_ARM_NEON_IS_NONE | 
| -# define SK_ARM_NEON_WRAP(x) (x) | 
| -#elif SK_ARM_NEON_IS_ALWAYS | 
| -# define SK_ARM_NEON_WRAP(x) (x ## _neon) | 
| -#elif SK_ARM_NEON_IS_DYNAMIC | 
| -# define SK_ARM_NEON_WRAP(x) (sk_cpu_arm_has_neon() ? x ## _neon : x) | 
| + #define SK_ARM_NEON_WRAP(x) (x) | 
| 
 
djsollen
2016/05/05 17:55:08
can we remove this wrapper now as well?
 
mtklein_C
2016/05/05 17:57:33
There are still a few files where this chooses bet
 
 | 
| #endif | 
| #endif // SkUtilsArm_DEFINED |