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

Side by Side Diff: source/libvpx/third_party/libyuv/source/rotate_neon64.cc

Issue 1302353004: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: Created 5 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright 2014 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2014 The LibYuv 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
11 #include "libyuv/row.h" 11 #include "libyuv/row.h"
12 #include "libyuv/rotate_row.h"
12 13
13 #include "libyuv/basic_types.h" 14 #include "libyuv/basic_types.h"
14 15
15 #ifdef __cplusplus 16 #ifdef __cplusplus
16 namespace libyuv { 17 namespace libyuv {
17 extern "C" { 18 extern "C" {
18 #endif 19 #endif
19 20
20 // This module is for GCC Neon armv8 64 bit. 21 // This module is for GCC Neon armv8 64 bit.
21 #if !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__) 22 #if !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__)
22 23
23 static uvec8 kVTbl4x4Transpose = 24 static uvec8 kVTbl4x4Transpose =
24 { 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15 }; 25 { 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15 };
25 26
26 void TransposeWx8_NEON(const uint8* src, int src_stride, 27 void TransposeWx8_NEON(const uint8* src, int src_stride,
27 uint8* dst, int dst_stride, 28 uint8* dst, int dst_stride, int width) {
28 int width) {
29 const uint8* src_temp = NULL; 29 const uint8* src_temp = NULL;
30 int64 width64 = (int64) width; // Work around clang 3.4 warning. 30 int64 width64 = (int64) width; // Work around clang 3.4 warning.
31 asm volatile ( 31 asm volatile (
32 // loops are on blocks of 8. loop will stop when 32 // loops are on blocks of 8. loop will stop when
33 // counter gets to or below 0. starting the counter 33 // counter gets to or below 0. starting the counter
34 // at w-8 allow for this 34 // at w-8 allow for this
35 "sub %3, %3, #8 \n" 35 "sub %3, %3, #8 \n"
36 36
37 // handle 8x8 blocks. this should be the majority of the plane 37 // handle 8x8 blocks. this should be the majority of the plane
38 "1: \n" 38 "1: \n"
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23", 534 "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23",
535 "v30", "v31" 535 "v30", "v31"
536 ); 536 );
537 } 537 }
538 #endif // !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__) 538 #endif // !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__)
539 539
540 #ifdef __cplusplus 540 #ifdef __cplusplus
541 } // extern "C" 541 } // extern "C"
542 } // namespace libyuv 542 } // namespace libyuv
543 #endif 543 #endif
OLDNEW
« no previous file with comments | « source/libvpx/third_party/libyuv/source/rotate_neon.cc ('k') | source/libvpx/third_party/libyuv/source/rotate_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698