| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2011 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 | 12 |
| 13 #ifdef __cplusplus | 13 #ifdef __cplusplus |
| 14 namespace libyuv { | 14 namespace libyuv { |
| 15 extern "C" { | 15 extern "C" { |
| 16 #endif | 16 #endif |
| 17 | 17 |
| 18 // This module is for GCC Neon. | 18 // This module is for GCC Neon. |
| 19 #if !defined(LIBYUV_DISABLE_NEON) && defined(__ARM_NEON__) | 19 #if !defined(LIBYUV_DISABLE_NEON) && defined(__ARM_NEON__) && \ |
| 20 !defined(__aarch64__) |
| 20 | 21 |
| 21 // NEON downscalers with interpolation. | 22 // NEON downscalers with interpolation. |
| 22 // Provided by Fritz Koenig | 23 // Provided by Fritz Koenig |
| 23 | 24 |
| 24 // Read 32x1 throw away even pixels, and write 16x1. | 25 // Read 32x1 throw away even pixels, and write 16x1. |
| 25 void ScaleRowDown2_NEON(const uint8* src_ptr, ptrdiff_t src_stride, | 26 void ScaleRowDown2_NEON(const uint8* src_ptr, ptrdiff_t src_stride, |
| 26 uint8* dst, int dst_width) { | 27 uint8* dst, int dst_width) { |
| 27 asm volatile ( | 28 asm volatile ( |
| 28 ".p2align 2 \n" | 29 ".p2align 2 \n" |
| 29 "1: \n" | 30 "1: \n" |
| (...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 749 "bgt 1b \n" | 750 "bgt 1b \n" |
| 750 : "+r"(src_argb), // %0 | 751 : "+r"(src_argb), // %0 |
| 751 "+r"(src_stride), // %1 | 752 "+r"(src_stride), // %1 |
| 752 "+r"(dst_argb), // %2 | 753 "+r"(dst_argb), // %2 |
| 753 "+r"(dst_width) // %3 | 754 "+r"(dst_width) // %3 |
| 754 : "r"(src_stepx) // %4 | 755 : "r"(src_stepx) // %4 |
| 755 : "memory", "cc", "r12", "q0", "q1", "q2", "q3" | 756 : "memory", "cc", "r12", "q0", "q1", "q2", "q3" |
| 756 ); | 757 ); |
| 757 } | 758 } |
| 758 | 759 |
| 759 #endif // __ARM_NEON__ | 760 #endif // defined(__ARM_NEON__) && !defined(__aarch64__) |
| 760 | 761 |
| 761 #ifdef __cplusplus | 762 #ifdef __cplusplus |
| 762 } // extern "C" | 763 } // extern "C" |
| 763 } // namespace libyuv | 764 } // namespace libyuv |
| 764 #endif | 765 #endif |
| OLD | NEW |