| 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 |