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

Side by Side Diff: src/core/SkUtils.cpp

Issue 1256763003: Remove sk_memcpy32 (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 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 unified diff | Download patch
« no previous file with comments | « src/core/SkBlitRow_D32.cpp ('k') | src/opts/SkUtils_opts_SSE2.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #include "SkUtils.h" 10 #include "SkUtils.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 count &= 15; 102 count &= 15;
103 } 103 }
104 104
105 if (count) { 105 if (count) {
106 do { 106 do {
107 *dst++ = value; 107 *dst++ = value;
108 } while (--count != 0); 108 } while (--count != 0);
109 } 109 }
110 } 110 }
111 111
112 static void sk_memcpy32_portable(uint32_t dst[], const uint32_t src[], int count ) {
113 memcpy(dst, src, count * sizeof(uint32_t));
114 }
115
116 namespace { 112 namespace {
117 // These three methods technically need external linkage to be passed as templat e parameters. 113 // These three methods technically need external linkage to be passed as templat e parameters.
118 // Since they can't be static, we hide them in an anonymous namespace instead. 114 // Since they can't be static, we hide them in an anonymous namespace instead.
119 115
120 SkMemset16Proc choose_memset16() { 116 SkMemset16Proc choose_memset16() {
121 SkMemset16Proc proc = SkMemset16GetPlatformProc(); 117 SkMemset16Proc proc = SkMemset16GetPlatformProc();
122 return proc ? proc : sk_memset16_portable; 118 return proc ? proc : sk_memset16_portable;
123 } 119 }
124 120
125 SkMemset32Proc choose_memset32() { 121 SkMemset32Proc choose_memset32() {
126 SkMemset32Proc proc = SkMemset32GetPlatformProc(); 122 SkMemset32Proc proc = SkMemset32GetPlatformProc();
127 return proc ? proc : sk_memset32_portable; 123 return proc ? proc : sk_memset32_portable;
128 } 124 }
129 125
130 SkMemcpy32Proc choose_memcpy32() {
131 SkMemcpy32Proc proc = SkMemcpy32GetPlatformProc();
132 return proc ? proc : sk_memcpy32_portable;
133 }
134
135 } // namespace 126 } // namespace
136 127
137 void sk_memset16_large(uint16_t dst[], uint16_t value, int count) { 128 void sk_memset16_large(uint16_t dst[], uint16_t value, int count) {
138 SK_DECLARE_STATIC_LAZY_FN_PTR(SkMemset16Proc, proc, choose_memset16); 129 SK_DECLARE_STATIC_LAZY_FN_PTR(SkMemset16Proc, proc, choose_memset16);
139 proc.get()(dst, value, count); 130 proc.get()(dst, value, count);
140 } 131 }
141 132
142 void sk_memset32_large(uint32_t dst[], uint32_t value, int count) { 133 void sk_memset32_large(uint32_t dst[], uint32_t value, int count) {
143 SK_DECLARE_STATIC_LAZY_FN_PTR(SkMemset32Proc, proc, choose_memset32); 134 SK_DECLARE_STATIC_LAZY_FN_PTR(SkMemset32Proc, proc, choose_memset32);
144 proc.get()(dst, value, count); 135 proc.get()(dst, value, count);
145 } 136 }
146 137
147 void sk_memcpy32(uint32_t dst[], const uint32_t src[], int count) {
148 SK_DECLARE_STATIC_LAZY_FN_PTR(SkMemcpy32Proc, proc, choose_memcpy32);
149 proc.get()(dst, src, count);
150 }
151
152 /////////////////////////////////////////////////////////////////////////////// 138 ///////////////////////////////////////////////////////////////////////////////
153 139
154 /* 0xxxxxxx 1 total 140 /* 0xxxxxxx 1 total
155 10xxxxxx // never a leading byte 141 10xxxxxx // never a leading byte
156 110xxxxx 2 total 142 110xxxxx 2 total
157 1110xxxx 3 total 143 1110xxxx 3 total
158 11110xxx 4 total 144 11110xxx 4 total
159 145
160 11 10 01 01 xx xx xx xx 0... 146 11 10 01 01 xx xx xx xx 0...
161 0xE5XX0000 147 0xE5XX0000
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 } 399 }
414 } else { 400 } else {
415 char* start = utf8; 401 char* start = utf8;
416 while (utf16 < stop) { 402 while (utf16 < stop) {
417 utf8 += SkUTF8_FromUnichar(SkUTF16_NextUnichar(&utf16), utf8); 403 utf8 += SkUTF8_FromUnichar(SkUTF16_NextUnichar(&utf16), utf8);
418 } 404 }
419 size = utf8 - start; 405 size = utf8 - start;
420 } 406 }
421 return size; 407 return size;
422 } 408 }
OLDNEW
« no previous file with comments | « src/core/SkBlitRow_D32.cpp ('k') | src/opts/SkUtils_opts_SSE2.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698