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

Unified Diff: src/opts/memset32_neon.S

Issue 1075003002: Replace NEON assembly memset16 and memset32 with intrinsic versions. (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: Created 5 years, 8 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
« src/opts/SkUtils_opts_arm_neon.cpp ('K') | « src/opts/memset16_neon.S ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/opts/memset32_neon.S
diff --git a/src/opts/memset32_neon.S b/src/opts/memset32_neon.S
deleted file mode 100644
index e7595adb58e193be66329c41d2f918b6d4a1ad0c..0000000000000000000000000000000000000000
--- a/src/opts/memset32_neon.S
+++ /dev/null
@@ -1,113 +0,0 @@
-/***************************************************************************
- * Copyright (c) 2009,2010, Code Aurora Forum. All rights reserved.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- ***************************************************************************/
-
- .syntax unified
- .code 32
- .fpu neon
- .align 4
- .globl memset32_neon
- .hidden memset32_neon
-
- /* r0 = buffer, r1 = value, r2 = times to write */
-memset32_neon:
- cmp r2, #1
- streq r1, [r0], #4
- bxeq lr
-
- cmp r2, #4
- bgt memset32_neon_start
- cmp r2, #0
- bxeq lr
-memset32_neon_small:
- str r1, [r0], #4
- subs r2, r2, #1
- bne memset32_neon_small
- bx lr
-memset32_neon_start:
- cmp r2, #16
- blt memset32_dropthru
- vdup.32 q0, r1
- vmov q1, q0
- cmp r2, #32
- blt memset32_16
- cmp r2, #64
- blt memset32_32
- cmp r2, #128
- blt memset32_64
-memset32_128:
- movs r12, r2, lsr #7
-memset32_loop128:
- subs r12, r12, #1
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- bne memset32_loop128
- ands r2, r2, #0x7f
- bxeq lr
-memset32_64:
- movs r12, r2, lsr #6
- beq memset32_32
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- ands r2, r2, #0x3f
- bxeq lr
-memset32_32:
- movs r12, r2, lsr #5
- beq memset32_16
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
- ands r2, r2, #0x1f
- bxeq lr
-memset32_16:
- movs r12, r2, lsr #4
- beq memset32_dropthru
- and r2, r2, #0xf
- vst1.64 {q0, q1}, [r0]!
- vst1.64 {q0, q1}, [r0]!
-memset32_dropthru:
- rsb r2, r2, #15
- add pc, pc, r2, lsl #2
- nop
- str r1, [r0, #56]
- str r1, [r0, #52]
- str r1, [r0, #48]
- str r1, [r0, #44]
- str r1, [r0, #40]
- str r1, [r0, #36]
- str r1, [r0, #32]
- str r1, [r0, #28]
- str r1, [r0, #24]
- str r1, [r0, #20]
- str r1, [r0, #16]
- str r1, [r0, #12]
- str r1, [r0, #8]
- str r1, [r0, #4]
- str r1, [r0, #0]
- bx lr
-
- .end
« src/opts/SkUtils_opts_arm_neon.cpp ('K') | « src/opts/memset16_neon.S ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698