Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1050)

Unified Diff: src/opts/SkBlitRow_opts_arm.cpp

Issue 22229002: Cleanup the ARM blitrow optimizations (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/opts/SkBlitRow_opts_arm.h ('k') | src/opts/SkBlitRow_opts_arm_neon.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/opts/SkBlitRow_opts_arm.cpp
diff --git a/src/opts/SkBlitRow_opts_arm.cpp b/src/opts/SkBlitRow_opts_arm.cpp
index 50b498458afaac7b7f9d2b1a00f6932cd8b39804..8eb7b1cfebd064ad26ae09db7deb466b69f2e732 100644
--- a/src/opts/SkBlitRow_opts_arm.cpp
+++ b/src/opts/SkBlitRow_opts_arm.cpp
@@ -5,17 +5,26 @@
* found in the LICENSE file.
*/
-#include "SkBlitRow_opts_arm.h"
-
#include "SkBlitMask.h"
#include "SkBlitRow.h"
#include "SkColorPriv.h"
#include "SkDither.h"
#include "SkMathPriv.h"
#include "SkUtils.h"
+#include "SkUtilsArm.h"
#include "SkCachePreload_arm.h"
+// Define USE_NEON_CODE to indicate that we need to build NEON routines
+#define USE_NEON_CODE (!SK_ARM_NEON_IS_NONE)
+
+// Define USE_ARM_CODE to indicate that we need to build ARM routines
+#define USE_ARM_CODE (!SK_ARM_NEON_IS_ALWAYS)
+
+#if USE_NEON_CODE
+ #include "SkBlitRow_opts_arm_neon.h"
+#endif
+
#if USE_ARM_CODE
static void S32A_D565_Opaque(uint16_t* SK_RESTRICT dst,
@@ -185,12 +194,10 @@ static void S32A_Opaque_BlitRow32_arm(SkPMColor* SK_RESTRICT dst,
: "cc", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "ip", "memory"
);
}
-#endif // USE_ARM_CODE
/*
* ARM asm version of S32A_Blend_BlitRow32
*/
-// This version is also used by the NEON procs table, so always compile it
void S32A_Blend_BlitRow32_arm(SkPMColor* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha) {
@@ -331,8 +338,7 @@ void S32A_Blend_BlitRow32_arm(SkPMColor* SK_RESTRICT dst,
///////////////////////////////////////////////////////////////////////////////
-#if USE_ARM_CODE
-const SkBlitRow::Proc sk_blitrow_platform_565_procs_arm[] = {
+static const SkBlitRow::Proc sk_blitrow_platform_565_procs_arm[] = {
// no dither
// NOTE: For the functions below, we don't have a special version
// that assumes that each source pixel is opaque. But our S32A is
@@ -349,13 +355,14 @@ const SkBlitRow::Proc sk_blitrow_platform_565_procs_arm[] = {
NULL, // S32A_D565_Blend_Dither
};
-const SkBlitRow::Proc32 sk_blitrow_platform_32_procs_arm[] = {
+static const SkBlitRow::Proc32 sk_blitrow_platform_32_procs_arm[] = {
NULL, // S32_Opaque,
NULL, // S32_Blend,
S32A_Opaque_BlitRow32_arm, // S32A_Opaque,
S32A_Blend_BlitRow32_arm // S32A_Blend
};
-#endif
+
+#endif // USE_ARM_CODE
SkBlitRow::Proc SkBlitRow::PlatformProcs565(unsigned flags) {
return SK_ARM_NEON_WRAP(sk_blitrow_platform_565_procs_arm)[flags];
« no previous file with comments | « src/opts/SkBlitRow_opts_arm.h ('k') | src/opts/SkBlitRow_opts_arm_neon.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698