OLD | NEW |
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 |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 [kUVBiasBGR]"r"(&yuvconstants->kUVBiasBGR), | 316 [kUVBiasBGR]"r"(&yuvconstants->kUVBiasBGR), |
317 [kYToRgb]"r"(&yuvconstants->kYToRgb) | 317 [kYToRgb]"r"(&yuvconstants->kYToRgb) |
318 : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v20", | 318 : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v20", |
319 "v21", "v22", "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30" | 319 "v21", "v22", "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30" |
320 ); | 320 ); |
321 } | 321 } |
322 #endif // HAS_I422TORGB24ROW_NEON | 322 #endif // HAS_I422TORGB24ROW_NEON |
323 | 323 |
324 #define ARGBTORGB565 \ | 324 #define ARGBTORGB565 \ |
325 "shll v0.8h, v22.8b, #8 \n" /* R */ \ | 325 "shll v0.8h, v22.8b, #8 \n" /* R */ \ |
| 326 "shll v21.8h, v21.8b, #8 \n" /* G */ \ |
326 "shll v20.8h, v20.8b, #8 \n" /* B */ \ | 327 "shll v20.8h, v20.8b, #8 \n" /* B */ \ |
327 "shll v21.8h, v21.8b, #8 \n" /* G */ \ | |
328 "sri v0.8h, v21.8h, #5 \n" /* RG */ \ | 328 "sri v0.8h, v21.8h, #5 \n" /* RG */ \ |
329 "sri v0.8h, v20.8h, #11 \n" /* RGB */ | 329 "sri v0.8h, v20.8h, #11 \n" /* RGB */ |
330 | 330 |
331 #ifdef HAS_I422TORGB565ROW_NEON | 331 #ifdef HAS_I422TORGB565ROW_NEON |
332 void I422ToRGB565Row_NEON(const uint8* src_y, | 332 void I422ToRGB565Row_NEON(const uint8* src_y, |
333 const uint8* src_u, | 333 const uint8* src_u, |
334 const uint8* src_v, | 334 const uint8* src_v, |
335 uint8* dst_rgb565, | 335 uint8* dst_rgb565, |
336 const struct YuvConstants* yuvconstants, | 336 const struct YuvConstants* yuvconstants, |
337 int width) { | 337 int width) { |
(...skipping 18 matching lines...) Expand all Loading... |
356 [kYToRgb]"r"(&yuvconstants->kYToRgb) | 356 [kYToRgb]"r"(&yuvconstants->kYToRgb) |
357 : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v20", | 357 : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v20", |
358 "v21", "v22", "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30" | 358 "v21", "v22", "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30" |
359 ); | 359 ); |
360 } | 360 } |
361 #endif // HAS_I422TORGB565ROW_NEON | 361 #endif // HAS_I422TORGB565ROW_NEON |
362 | 362 |
363 #define ARGBTOARGB1555 \ | 363 #define ARGBTOARGB1555 \ |
364 "shll v0.8h, v23.8b, #8 \n" /* A */ \ | 364 "shll v0.8h, v23.8b, #8 \n" /* A */ \ |
365 "shll v22.8h, v22.8b, #8 \n" /* R */ \ | 365 "shll v22.8h, v22.8b, #8 \n" /* R */ \ |
| 366 "shll v21.8h, v21.8b, #8 \n" /* G */ \ |
366 "shll v20.8h, v20.8b, #8 \n" /* B */ \ | 367 "shll v20.8h, v20.8b, #8 \n" /* B */ \ |
367 "shll v21.8h, v21.8b, #8 \n" /* G */ \ | |
368 "sri v0.8h, v22.8h, #1 \n" /* AR */ \ | 368 "sri v0.8h, v22.8h, #1 \n" /* AR */ \ |
369 "sri v0.8h, v21.8h, #6 \n" /* ARG */ \ | 369 "sri v0.8h, v21.8h, #6 \n" /* ARG */ \ |
370 "sri v0.8h, v20.8h, #11 \n" /* ARGB */ | 370 "sri v0.8h, v20.8h, #11 \n" /* ARGB */ |
371 | 371 |
372 #ifdef HAS_I422TOARGB1555ROW_NEON | 372 #ifdef HAS_I422TOARGB1555ROW_NEON |
373 void I422ToARGB1555Row_NEON(const uint8* src_y, | 373 void I422ToARGB1555Row_NEON(const uint8* src_y, |
374 const uint8* src_u, | 374 const uint8* src_u, |
375 const uint8* src_v, | 375 const uint8* src_v, |
376 uint8* dst_argb1555, | 376 uint8* dst_argb1555, |
377 const struct YuvConstants* yuvconstants, | 377 const struct YuvConstants* yuvconstants, |
(...skipping 2574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2952 : "cc", "memory", "v0", "v1", "v2", "v3" // Clobber List | 2952 : "cc", "memory", "v0", "v1", "v2", "v3" // Clobber List |
2953 ); | 2953 ); |
2954 } | 2954 } |
2955 #endif // HAS_SOBELYROW_NEON | 2955 #endif // HAS_SOBELYROW_NEON |
2956 #endif // !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__) | 2956 #endif // !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__) |
2957 | 2957 |
2958 #ifdef __cplusplus | 2958 #ifdef __cplusplus |
2959 } // extern "C" | 2959 } // extern "C" |
2960 } // namespace libyuv | 2960 } // namespace libyuv |
2961 #endif | 2961 #endif |
OLD | NEW |