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

Side by Side Diff: source/libvpx/vp8/common/x86/vp8_asm_stubs.c

Issue 1124333011: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: only update to last nights LKGR Created 5 years, 7 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 | « source/libvpx/vp8/common/x86/sad_ssse3.asm ('k') | source/libvpx/vp8/decoder/decodeframe.c » ('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 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 void vp8_sixtap_predict4x4_mmx 120 void vp8_sixtap_predict4x4_mmx
121 ( 121 (
122 unsigned char *src_ptr, 122 unsigned char *src_ptr,
123 int src_pixels_per_line, 123 int src_pixels_per_line,
124 int xoffset, 124 int xoffset,
125 int yoffset, 125 int yoffset,
126 unsigned char *dst_ptr, 126 unsigned char *dst_ptr,
127 int dst_pitch 127 int dst_pitch
128 ) 128 )
129 { 129 {
130 DECLARE_ALIGNED_ARRAY(16, unsigned short, FData2, 16*16); /* Temp data buff fer used in filtering */ 130 DECLARE_ALIGNED(16, unsigned short, FData2[16*16]); /* Temp data bufffer us ed in filtering */
131 const short *HFilter, *VFilter; 131 const short *HFilter, *VFilter;
132 HFilter = vp8_six_tap_mmx[xoffset]; 132 HFilter = vp8_six_tap_mmx[xoffset];
133 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line), FData2, src_p ixels_per_line, 1, 9, 8, HFilter); 133 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line), FData2, src_p ixels_per_line, 1, 9, 8, HFilter);
134 VFilter = vp8_six_tap_mmx[yoffset]; 134 VFilter = vp8_six_tap_mmx[yoffset];
135 vp8_filter_block1dc_v6_mmx(FData2 + 8, dst_ptr, dst_pitch, 8, 4 , 4, 4, VFil ter); 135 vp8_filter_block1dc_v6_mmx(FData2 + 8, dst_ptr, dst_pitch, 8, 4 , 4, 4, VFil ter);
136 136
137 } 137 }
138 138
139 139
140 void vp8_sixtap_predict16x16_mmx 140 void vp8_sixtap_predict16x16_mmx
141 ( 141 (
142 unsigned char *src_ptr, 142 unsigned char *src_ptr,
143 int src_pixels_per_line, 143 int src_pixels_per_line,
144 int xoffset, 144 int xoffset,
145 int yoffset, 145 int yoffset,
146 unsigned char *dst_ptr, 146 unsigned char *dst_ptr,
147 int dst_pitch 147 int dst_pitch
148 ) 148 )
149 { 149 {
150 150
151 DECLARE_ALIGNED_ARRAY(16, unsigned short, FData2, 24*24); /* Temp data buff fer used in filtering */ 151 DECLARE_ALIGNED(16, unsigned short, FData2[24*24]); /* Temp data bufffer us ed in filtering */
152 152
153 const short *HFilter, *VFilter; 153 const short *HFilter, *VFilter;
154 154
155 155
156 HFilter = vp8_six_tap_mmx[xoffset]; 156 HFilter = vp8_six_tap_mmx[xoffset];
157 157
158 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line), FData2, src_pixels_per_line, 1, 21, 32, HFilter); 158 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line), FData2, src_pixels_per_line, 1, 21, 32, HFilter);
159 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 4, FData2 + 4, src_pixels_per_line, 1, 21, 32, HFilter); 159 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 4, FData2 + 4, src_pixels_per_line, 1, 21, 32, HFilter);
160 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 8, FData2 + 8, src_pixels_per_line, 1, 21, 32, HFilter); 160 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 8, FData2 + 8, src_pixels_per_line, 1, 21, 32, HFilter);
161 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 12, FData2 + 12, src_pixels_per_line, 1, 21, 32, HFilter); 161 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 12, FData2 + 12, src_pixels_per_line, 1, 21, 32, HFilter);
(...skipping 11 matching lines...) Expand all
173 ( 173 (
174 unsigned char *src_ptr, 174 unsigned char *src_ptr,
175 int src_pixels_per_line, 175 int src_pixels_per_line,
176 int xoffset, 176 int xoffset,
177 int yoffset, 177 int yoffset,
178 unsigned char *dst_ptr, 178 unsigned char *dst_ptr,
179 int dst_pitch 179 int dst_pitch
180 ) 180 )
181 { 181 {
182 182
183 DECLARE_ALIGNED_ARRAY(16, unsigned short, FData2, 256); /* Temp data buff fer used in filtering */ 183 DECLARE_ALIGNED(16, unsigned short, FData2[256]); /* Temp data bufffer us ed in filtering */
184 184
185 const short *HFilter, *VFilter; 185 const short *HFilter, *VFilter;
186 186
187 HFilter = vp8_six_tap_mmx[xoffset]; 187 HFilter = vp8_six_tap_mmx[xoffset];
188 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line), FData2, src_pixels_per_line, 1, 13, 16, HFilter); 188 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line), FData2, src_pixels_per_line, 1, 13, 16, HFilter);
189 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 4, FData2 + 4, src_pixels_per_line, 1, 13, 16, HFilter); 189 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 4, FData2 + 4, src_pixels_per_line, 1, 13, 16, HFilter);
190 190
191 VFilter = vp8_six_tap_mmx[yoffset]; 191 VFilter = vp8_six_tap_mmx[yoffset];
192 vp8_filter_block1dc_v6_mmx(FData2 + 16, dst_ptr, dst_pitch, 16, 8 , 8, 8, VFilter); 192 vp8_filter_block1dc_v6_mmx(FData2 + 16, dst_ptr, dst_pitch, 16, 8 , 8, 8, VFilter);
193 vp8_filter_block1dc_v6_mmx(FData2 + 20, dst_ptr + 4, dst_pitch, 16, 8 , 8, 8 , VFilter); 193 vp8_filter_block1dc_v6_mmx(FData2 + 20, dst_ptr + 4, dst_pitch, 16, 8 , 8, 8 , VFilter);
194 194
195 } 195 }
196 196
197 197
198 void vp8_sixtap_predict8x4_mmx 198 void vp8_sixtap_predict8x4_mmx
199 ( 199 (
200 unsigned char *src_ptr, 200 unsigned char *src_ptr,
201 int src_pixels_per_line, 201 int src_pixels_per_line,
202 int xoffset, 202 int xoffset,
203 int yoffset, 203 int yoffset,
204 unsigned char *dst_ptr, 204 unsigned char *dst_ptr,
205 int dst_pitch 205 int dst_pitch
206 ) 206 )
207 { 207 {
208 208
209 DECLARE_ALIGNED_ARRAY(16, unsigned short, FData2, 256); /* Temp data buff fer used in filtering */ 209 DECLARE_ALIGNED(16, unsigned short, FData2[256]); /* Temp data bufffer us ed in filtering */
210 210
211 const short *HFilter, *VFilter; 211 const short *HFilter, *VFilter;
212 212
213 HFilter = vp8_six_tap_mmx[xoffset]; 213 HFilter = vp8_six_tap_mmx[xoffset];
214 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line), FData2, src_pixels_per_line, 1, 9, 16, HFilter); 214 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line), FData2, src_pixels_per_line, 1, 9, 16, HFilter);
215 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 4, FData2 + 4, src_pixels_per_line, 1, 9, 16, HFilter); 215 vp8_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 4, FData2 + 4, src_pixels_per_line, 1, 9, 16, HFilter);
216 216
217 VFilter = vp8_six_tap_mmx[yoffset]; 217 VFilter = vp8_six_tap_mmx[yoffset];
218 vp8_filter_block1dc_v6_mmx(FData2 + 16, dst_ptr, dst_pitch, 16, 8 , 4, 8, VFilter); 218 vp8_filter_block1dc_v6_mmx(FData2 + 16, dst_ptr, dst_pitch, 16, 8 , 4, 8, VFilter);
219 vp8_filter_block1dc_v6_mmx(FData2 + 20, dst_ptr + 4, dst_pitch, 16, 8 , 4, 8 , VFilter); 219 vp8_filter_block1dc_v6_mmx(FData2 + 20, dst_ptr + 4, dst_pitch, 16, 8 , 4, 8 , VFilter);
(...skipping 25 matching lines...) Expand all
245 ( 245 (
246 unsigned char *src_ptr, 246 unsigned char *src_ptr,
247 int src_pixels_per_line, 247 int src_pixels_per_line,
248 int xoffset, 248 int xoffset,
249 int yoffset, 249 int yoffset,
250 unsigned char *dst_ptr, 250 unsigned char *dst_ptr,
251 int dst_pitch 251 int dst_pitch
252 252
253 ) 253 )
254 { 254 {
255 DECLARE_ALIGNED_ARRAY(16, unsigned short, FData2, 24*24); /* Temp data bu fffer used in filtering */ 255 DECLARE_ALIGNED(16, unsigned short, FData2[24*24]); /* Temp data bufffer used in filtering */
256 256
257 const short *HFilter, *VFilter; 257 const short *HFilter, *VFilter;
258 258
259 if (xoffset) 259 if (xoffset)
260 { 260 {
261 if (yoffset) 261 if (yoffset)
262 { 262 {
263 HFilter = vp8_six_tap_mmx[xoffset]; 263 HFilter = vp8_six_tap_mmx[xoffset];
264 vp8_filter_block1d16_h6_sse2(src_ptr - (2 * src_pixels_per_line), FD ata2, src_pixels_per_line, 1, 21, 32, HFilter); 264 vp8_filter_block1d16_h6_sse2(src_ptr - (2 * src_pixels_per_line), FD ata2, src_pixels_per_line, 1, 21, 32, HFilter);
265 VFilter = vp8_six_tap_mmx[yoffset]; 265 VFilter = vp8_six_tap_mmx[yoffset];
(...skipping 19 matching lines...) Expand all
285 void vp8_sixtap_predict8x8_sse2 285 void vp8_sixtap_predict8x8_sse2
286 ( 286 (
287 unsigned char *src_ptr, 287 unsigned char *src_ptr,
288 int src_pixels_per_line, 288 int src_pixels_per_line,
289 int xoffset, 289 int xoffset,
290 int yoffset, 290 int yoffset,
291 unsigned char *dst_ptr, 291 unsigned char *dst_ptr,
292 int dst_pitch 292 int dst_pitch
293 ) 293 )
294 { 294 {
295 DECLARE_ALIGNED_ARRAY(16, unsigned short, FData2, 256); /* Temp data bufffe r used in filtering */ 295 DECLARE_ALIGNED(16, unsigned short, FData2[256]); /* Temp data bufffer used in filtering */
296 const short *HFilter, *VFilter; 296 const short *HFilter, *VFilter;
297 297
298 if (xoffset) 298 if (xoffset)
299 { 299 {
300 if (yoffset) 300 if (yoffset)
301 { 301 {
302 HFilter = vp8_six_tap_mmx[xoffset]; 302 HFilter = vp8_six_tap_mmx[xoffset];
303 vp8_filter_block1d8_h6_sse2(src_ptr - (2 * src_pixels_per_line), FDa ta2, src_pixels_per_line, 1, 13, 16, HFilter); 303 vp8_filter_block1d8_h6_sse2(src_ptr - (2 * src_pixels_per_line), FDa ta2, src_pixels_per_line, 1, 13, 16, HFilter);
304 VFilter = vp8_six_tap_mmx[yoffset]; 304 VFilter = vp8_six_tap_mmx[yoffset];
305 vp8_filter_block1d8_v6_sse2(FData2 + 16, dst_ptr, dst_pitch, 16, 8 , 8, dst_pitch, VFilter); 305 vp8_filter_block1d8_v6_sse2(FData2 + 16, dst_ptr, dst_pitch, 16, 8 , 8, dst_pitch, VFilter);
(...skipping 17 matching lines...) Expand all
323 void vp8_sixtap_predict8x4_sse2 323 void vp8_sixtap_predict8x4_sse2
324 ( 324 (
325 unsigned char *src_ptr, 325 unsigned char *src_ptr,
326 int src_pixels_per_line, 326 int src_pixels_per_line,
327 int xoffset, 327 int xoffset,
328 int yoffset, 328 int yoffset,
329 unsigned char *dst_ptr, 329 unsigned char *dst_ptr,
330 int dst_pitch 330 int dst_pitch
331 ) 331 )
332 { 332 {
333 DECLARE_ALIGNED_ARRAY(16, unsigned short, FData2, 256); /* Temp data bufffe r used in filtering */ 333 DECLARE_ALIGNED(16, unsigned short, FData2[256]); /* Temp data bufffer used in filtering */
334 const short *HFilter, *VFilter; 334 const short *HFilter, *VFilter;
335 335
336 if (xoffset) 336 if (xoffset)
337 { 337 {
338 if (yoffset) 338 if (yoffset)
339 { 339 {
340 HFilter = vp8_six_tap_mmx[xoffset]; 340 HFilter = vp8_six_tap_mmx[xoffset];
341 vp8_filter_block1d8_h6_sse2(src_ptr - (2 * src_pixels_per_line), FDa ta2, src_pixels_per_line, 1, 9, 16, HFilter); 341 vp8_filter_block1d8_h6_sse2(src_ptr - (2 * src_pixels_per_line), FDa ta2, src_pixels_per_line, 1, 9, 16, HFilter);
342 VFilter = vp8_six_tap_mmx[yoffset]; 342 VFilter = vp8_six_tap_mmx[yoffset];
343 vp8_filter_block1d8_v6_sse2(FData2 + 16, dst_ptr, dst_pitch, 16, 8 , 4, dst_pitch, VFilter); 343 vp8_filter_block1d8_v6_sse2(FData2 + 16, dst_ptr, dst_pitch, 16, 8 , 4, dst_pitch, VFilter);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 ( 425 (
426 unsigned char *src_ptr, 426 unsigned char *src_ptr,
427 int src_pixels_per_line, 427 int src_pixels_per_line,
428 int xoffset, 428 int xoffset,
429 int yoffset, 429 int yoffset,
430 unsigned char *dst_ptr, 430 unsigned char *dst_ptr,
431 int dst_pitch 431 int dst_pitch
432 432
433 ) 433 )
434 { 434 {
435 DECLARE_ALIGNED_ARRAY(16, unsigned char, FData2, 24*24); 435 DECLARE_ALIGNED(16, unsigned char, FData2[24*24]);
436 436
437 if (xoffset) 437 if (xoffset)
438 { 438 {
439 if (yoffset) 439 if (yoffset)
440 { 440 {
441 vp8_filter_block1d16_h6_ssse3(src_ptr - (2 * src_pixels_per_line), 441 vp8_filter_block1d16_h6_ssse3(src_ptr - (2 * src_pixels_per_line),
442 src_pixels_per_line, FData2, 442 src_pixels_per_line, FData2,
443 16, 21, xoffset); 443 16, 21, xoffset);
444 vp8_filter_block1d16_v6_ssse3(FData2 , 16, dst_ptr, dst_pitch, 444 vp8_filter_block1d16_v6_ssse3(FData2 , 16, dst_ptr, dst_pitch,
445 16, yoffset); 445 16, yoffset);
(...skipping 27 matching lines...) Expand all
473 void vp8_sixtap_predict8x8_ssse3 473 void vp8_sixtap_predict8x8_ssse3
474 ( 474 (
475 unsigned char *src_ptr, 475 unsigned char *src_ptr,
476 int src_pixels_per_line, 476 int src_pixels_per_line,
477 int xoffset, 477 int xoffset,
478 int yoffset, 478 int yoffset,
479 unsigned char *dst_ptr, 479 unsigned char *dst_ptr,
480 int dst_pitch 480 int dst_pitch
481 ) 481 )
482 { 482 {
483 DECLARE_ALIGNED_ARRAY(16, unsigned char, FData2, 256); 483 DECLARE_ALIGNED(16, unsigned char, FData2[256]);
484 484
485 if (xoffset) 485 if (xoffset)
486 { 486 {
487 if (yoffset) 487 if (yoffset)
488 { 488 {
489 vp8_filter_block1d8_h6_ssse3(src_ptr - (2 * src_pixels_per_line), 489 vp8_filter_block1d8_h6_ssse3(src_ptr - (2 * src_pixels_per_line),
490 src_pixels_per_line, FData2, 490 src_pixels_per_line, FData2,
491 8, 13, xoffset); 491 8, 13, xoffset);
492 vp8_filter_block1d8_v6_ssse3(FData2, 8, dst_ptr, dst_pitch, 492 vp8_filter_block1d8_v6_ssse3(FData2, 8, dst_ptr, dst_pitch,
493 8, yoffset); 493 8, yoffset);
(...skipping 27 matching lines...) Expand all
521 void vp8_sixtap_predict8x4_ssse3 521 void vp8_sixtap_predict8x4_ssse3
522 ( 522 (
523 unsigned char *src_ptr, 523 unsigned char *src_ptr,
524 int src_pixels_per_line, 524 int src_pixels_per_line,
525 int xoffset, 525 int xoffset,
526 int yoffset, 526 int yoffset,
527 unsigned char *dst_ptr, 527 unsigned char *dst_ptr,
528 int dst_pitch 528 int dst_pitch
529 ) 529 )
530 { 530 {
531 DECLARE_ALIGNED_ARRAY(16, unsigned char, FData2, 256); 531 DECLARE_ALIGNED(16, unsigned char, FData2[256]);
532 532
533 if (xoffset) 533 if (xoffset)
534 { 534 {
535 if (yoffset) 535 if (yoffset)
536 { 536 {
537 vp8_filter_block1d8_h6_ssse3(src_ptr - (2 * src_pixels_per_line), 537 vp8_filter_block1d8_h6_ssse3(src_ptr - (2 * src_pixels_per_line),
538 src_pixels_per_line, FData2, 538 src_pixels_per_line, FData2,
539 8, 9, xoffset); 539 8, 9, xoffset);
540 vp8_filter_block1d8_v6_ssse3(FData2, 8, dst_ptr, dst_pitch, 540 vp8_filter_block1d8_v6_ssse3(FData2, 8, dst_ptr, dst_pitch,
541 4, yoffset); 541 4, yoffset);
(...skipping 27 matching lines...) Expand all
569 void vp8_sixtap_predict4x4_ssse3 569 void vp8_sixtap_predict4x4_ssse3
570 ( 570 (
571 unsigned char *src_ptr, 571 unsigned char *src_ptr,
572 int src_pixels_per_line, 572 int src_pixels_per_line,
573 int xoffset, 573 int xoffset,
574 int yoffset, 574 int yoffset,
575 unsigned char *dst_ptr, 575 unsigned char *dst_ptr,
576 int dst_pitch 576 int dst_pitch
577 ) 577 )
578 { 578 {
579 DECLARE_ALIGNED_ARRAY(16, unsigned char, FData2, 4*9); 579 DECLARE_ALIGNED(16, unsigned char, FData2[4*9]);
580 580
581 if (xoffset) 581 if (xoffset)
582 { 582 {
583 if (yoffset) 583 if (yoffset)
584 { 584 {
585 vp8_filter_block1d4_h6_ssse3(src_ptr - (2 * src_pixels_per_line), 585 vp8_filter_block1d4_h6_ssse3(src_ptr - (2 * src_pixels_per_line),
586 src_pixels_per_line, 586 src_pixels_per_line,
587 FData2, 4, 9, xoffset); 587 FData2, 4, 9, xoffset);
588 vp8_filter_block1d4_v6_ssse3(FData2, 4, dst_ptr, dst_pitch, 588 vp8_filter_block1d4_v6_ssse3(FData2, 4, dst_ptr, dst_pitch,
589 4, yoffset); 589 4, yoffset);
(...skipping 26 matching lines...) Expand all
616 dst_ptr[2] = src_ptr[2]; 616 dst_ptr[2] = src_ptr[2];
617 dst_ptr[3] = src_ptr[3]; 617 dst_ptr[3] = src_ptr[3];
618 dst_ptr += dst_pitch; 618 dst_ptr += dst_pitch;
619 src_ptr += src_pixels_per_line; 619 src_ptr += src_pixels_per_line;
620 } 620 }
621 } 621 }
622 } 622 }
623 } 623 }
624 624
625 #endif 625 #endif
OLDNEW
« no previous file with comments | « source/libvpx/vp8/common/x86/sad_ssse3.asm ('k') | source/libvpx/vp8/decoder/decodeframe.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698