| 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 |
| (...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 604 | 604 |
| 605 #if defined(__arm__) || defined(__aarch64__) | 605 #if defined(__arm__) || defined(__aarch64__) |
| 606 #undef MEMACCESS | 606 #undef MEMACCESS |
| 607 #if defined(__native_client__) | 607 #if defined(__native_client__) |
| 608 #define MEMACCESS(base) ".p2align 3\nbic %" #base ", #0xc0000000\n" | 608 #define MEMACCESS(base) ".p2align 3\nbic %" #base ", #0xc0000000\n" |
| 609 #else | 609 #else |
| 610 #define MEMACCESS(base) | 610 #define MEMACCESS(base) |
| 611 #endif | 611 #endif |
| 612 #endif | 612 #endif |
| 613 | 613 |
| 614 // Intel Code Analizer markers. Insert IACA_START IACA_END around code to be |
| 615 // measured and then run with iaca -64 libyuv_unittest. |
| 616 // IACA_ASM_START amd IACA_ASM_END are equivalents that can be used within |
| 617 // inline assembly blocks. |
| 618 // example of iaca: |
| 619 // ~/iaca-lin64/bin/iaca.sh -64 -analysis LATENCY out/Release/libyuv_unittest |
| 620 |
| 621 #if defined(__x86_64__) || defined(__i386__) |
| 622 |
| 623 #define IACA_ASM_START \ |
| 624 ".byte 0x0F, 0x0B\n" \ |
| 625 " movl $111, %%ebx\n" \ |
| 626 ".byte 0x64, 0x67, 0x90\n" |
| 627 |
| 628 #define IACA_ASM_END \ |
| 629 " movl $222, %%ebx\n" \ |
| 630 ".byte 0x64, 0x67, 0x90\n" \ |
| 631 ".byte 0x0F, 0x0B\n" |
| 632 |
| 633 #define IACA_SSC_MARK(MARK_ID) \ |
| 634 __asm__ __volatile__("\n\t movl $" #MARK_ID \ |
| 635 ", %%ebx" \ |
| 636 "\n\t .byte 0x64, 0x67, 0x90" \ |
| 637 : \ |
| 638 : \ |
| 639 : "memory"); |
| 640 |
| 641 #define IACA_UD_BYTES __asm__ __volatile__("\n\t .byte 0x0F, 0x0B"); |
| 642 |
| 643 #else /* Visual C */ |
| 644 #define IACA_UD_BYTES \ |
| 645 { __asm _emit 0x0F __asm _emit 0x0B } |
| 646 |
| 647 #define IACA_SSC_MARK(x) \ |
| 648 { __asm mov ebx, x __asm _emit 0x64 __asm _emit 0x67 __asm _emit 0x90 } |
| 649 |
| 650 #define IACA_VC64_START __writegsbyte(111, 111); |
| 651 #define IACA_VC64_END __writegsbyte(222, 222); |
| 652 #endif |
| 653 |
| 654 #define IACA_START \ |
| 655 { \ |
| 656 IACA_UD_BYTES \ |
| 657 IACA_SSC_MARK(111) \ |
| 658 } |
| 659 #define IACA_END \ |
| 660 { \ |
| 661 IACA_SSC_MARK(222) \ |
| 662 IACA_UD_BYTES \ |
| 663 } |
| 664 |
| 614 void I444ToARGBRow_NEON(const uint8* src_y, | 665 void I444ToARGBRow_NEON(const uint8* src_y, |
| 615 const uint8* src_u, | 666 const uint8* src_u, |
| 616 const uint8* src_v, | 667 const uint8* src_v, |
| 617 uint8* dst_argb, | 668 uint8* dst_argb, |
| 618 const struct YuvConstants* yuvconstants, | 669 const struct YuvConstants* yuvconstants, |
| 619 int width); | 670 int width); |
| 620 void I422ToARGBRow_NEON(const uint8* src_y, | 671 void I422ToARGBRow_NEON(const uint8* src_y, |
| 621 const uint8* src_u, | 672 const uint8* src_u, |
| 622 const uint8* src_v, | 673 const uint8* src_v, |
| 623 uint8* dst_argb, | 674 uint8* dst_argb, |
| (...skipping 2298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2922 int width, | 2973 int width, |
| 2923 const uint8* luma, | 2974 const uint8* luma, |
| 2924 uint32 lumacoeff); | 2975 uint32 lumacoeff); |
| 2925 | 2976 |
| 2926 #ifdef __cplusplus | 2977 #ifdef __cplusplus |
| 2927 } // extern "C" | 2978 } // extern "C" |
| 2928 } // namespace libyuv | 2979 } // namespace libyuv |
| 2929 #endif | 2980 #endif |
| 2930 | 2981 |
| 2931 #endif // INCLUDE_LIBYUV_ROW_H_ | 2982 #endif // INCLUDE_LIBYUV_ROW_H_ |
| OLD | NEW |