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

Side by Side Diff: source/row_gcc.cc

Issue 2430313008: scale by 1 for neon implemented (Closed)
Patch Set: one allocations for halffloat test Created 4 years, 2 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/row_any.cc ('k') | source/row_neon64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // VERSION 2 1 // VERSION 2
2 /* 2 /*
3 * Copyright 2011 The LibYuv Project Authors. All rights reserved. 3 * Copyright 2011 The LibYuv Project Authors. All rights reserved.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license 5 * Use of this source code is governed by a BSD-style license
6 * that can be found in the LICENSE file in the root of the source 6 * that can be found in the LICENSE file in the root of the source
7 * tree. An additional intellectual property rights grant can be found 7 * tree. An additional intellectual property rights grant can be found
8 * in the file PATENTS. All contributing project authors may 8 * in the file PATENTS. All contributing project authors may
9 * be found in the AUTHORS file in the root of the source tree. 9 * be found in the AUTHORS file in the root of the source tree.
10 */ 10 */
(...skipping 5392 matching lines...) Expand 10 before | Expand all | Expand 10 after
5403 : "+r"(src), // %0 5403 : "+r"(src), // %0
5404 "+r"(dst), // %1 5404 "+r"(dst), // %1
5405 "+r"(width) // %2 5405 "+r"(width) // %2
5406 : "x"(scale) // %3 5406 : "x"(scale) // %3
5407 : "memory", "cc", 5407 : "memory", "cc",
5408 "xmm2", "xmm3", "xmm4" 5408 "xmm2", "xmm3", "xmm4"
5409 ); 5409 );
5410 } 5410 }
5411 #endif // HAS_HALFFLOATROW_F16C 5411 #endif // HAS_HALFFLOATROW_F16C
5412 5412
5413 #ifdef HAS_HALFFLOATROW_F16C
5414 void HalfFloat1Row_F16C(const uint16* src, uint16* dst, float, int width) {
5415 asm volatile (
5416 // 16 pixel loop.
5417 LABELALIGN
5418 "1: \n"
5419 "vpmovzxwd " MEMACCESS(0) ",%%ymm2 \n" // 16 shorts -> 16 ints
5420 "vpmovzxwd " MEMACCESS2(0x10,0) ",%%ymm3 \n"
5421 "lea " MEMLEA(0x20,0) ",%0 \n"
5422 "vcvtdq2ps %%ymm2,%%ymm2 \n"
5423 "vcvtdq2ps %%ymm3,%%ymm3 \n"
5424 "vcvtps2ph $3, %%ymm2, %%xmm2 \n"
5425 "vcvtps2ph $3, %%ymm3, %%xmm3 \n"
5426 "vmovdqu %%xmm2," MEMACCESS(1) " \n"
5427 "vmovdqu %%xmm3," MEMACCESS2(0x10,1) " \n"
5428 "lea " MEMLEA(0x20,1) ",%1 \n"
5429 "sub $0x10,%2 \n"
5430 "jg 1b \n"
5431
5432 "vzeroupper \n"
5433 : "+r"(src), // %0
5434 "+r"(dst), // %1
5435 "+r"(width) // %2
5436 :
5437 : "memory", "cc",
5438 "xmm2", "xmm3"
5439 );
5440 }
5441 #endif // HAS_HALFFLOATROW_F16C
5442
5413 #ifdef HAS_ARGBCOLORTABLEROW_X86 5443 #ifdef HAS_ARGBCOLORTABLEROW_X86
5414 // Tranform ARGB pixels with color table. 5444 // Tranform ARGB pixels with color table.
5415 void ARGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb, 5445 void ARGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb,
5416 int width) { 5446 int width) {
5417 uintptr_t pixel_temp; 5447 uintptr_t pixel_temp;
5418 asm volatile ( 5448 asm volatile (
5419 // 1 pixel loop. 5449 // 1 pixel loop.
5420 LABELALIGN 5450 LABELALIGN
5421 "1: \n" 5451 "1: \n"
5422 "movzb " MEMACCESS(0) ",%1 \n" 5452 "movzb " MEMACCESS(0) ",%1 \n"
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
5569 ); 5599 );
5570 } 5600 }
5571 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 5601 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3
5572 5602
5573 #endif // defined(__x86_64__) || defined(__i386__) 5603 #endif // defined(__x86_64__) || defined(__i386__)
5574 5604
5575 #ifdef __cplusplus 5605 #ifdef __cplusplus
5576 } // extern "C" 5606 } // extern "C"
5577 } // namespace libyuv 5607 } // namespace libyuv
5578 #endif 5608 #endif
OLDNEW
« no previous file with comments | « source/row_any.cc ('k') | source/row_neon64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698