OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The LibYuv project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
650 "addu.ph $t9, $t9, $s5 \n" \ | 650 "addu.ph $t9, $t9, $s5 \n" \ |
651 "addu.ph $t8, $t8, $s5 \n" \ | 651 "addu.ph $t8, $t8, $s5 \n" \ |
652 "addu.ph $t2, $t2, $s5 \n" \ | 652 "addu.ph $t2, $t2, $s5 \n" \ |
653 "addu.ph $t1, $t1, $s5 \n" | 653 "addu.ph $t1, $t1, $s5 \n" |
654 | 654 |
655 // TODO(fbarchard): accept yuv conversion constants. | 655 // TODO(fbarchard): accept yuv conversion constants. |
656 void I422ToARGBRow_MIPS_DSPR2(const uint8* y_buf, | 656 void I422ToARGBRow_MIPS_DSPR2(const uint8* y_buf, |
657 const uint8* u_buf, | 657 const uint8* u_buf, |
658 const uint8* v_buf, | 658 const uint8* v_buf, |
659 uint8* rgb_buf, | 659 uint8* rgb_buf, |
660 struct YuvConstants* yuvconstants, | 660 const struct YuvConstants* yuvconstants, |
661 int width) { | 661 int width) { |
662 __asm__ __volatile__ ( | 662 __asm__ __volatile__ ( |
663 ".set push \n" | 663 ".set push \n" |
664 ".set noreorder \n" | 664 ".set noreorder \n" |
665 "beqz %[width], 2f \n" | 665 "beqz %[width], 2f \n" |
666 " repl.ph $s0, 74 \n" // |YG|YG| = |74|74| | 666 " repl.ph $s0, 74 \n" // |YG|YG| = |74|74| |
667 "repl.ph $s1, -25 \n" // |UG|UG| = |-25|-25| | 667 "repl.ph $s1, -25 \n" // |UG|UG| = |-25|-25| |
668 "repl.ph $s2, -52 \n" // |VG|VG| = |-52|-52| | 668 "repl.ph $s2, -52 \n" // |VG|VG| = |-52|-52| |
669 "repl.ph $s3, 102 \n" // |VR|VR| = |102|102| | 669 "repl.ph $s3, 102 \n" // |VR|VR| = |102|102| |
670 "repl.ph $s4, 16 \n" // |0|16|0|16| | 670 "repl.ph $s4, 16 \n" // |0|16|0|16| |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
712 "t6", "t7", "t8", "t9", | 712 "t6", "t7", "t8", "t9", |
713 "s0", "s1", "s2", "s3", | 713 "s0", "s1", "s2", "s3", |
714 "s4", "s5", "s6" | 714 "s4", "s5", "s6" |
715 ); | 715 ); |
716 } | 716 } |
717 | 717 |
718 void I422ToABGRRow_MIPS_DSPR2(const uint8* y_buf, | 718 void I422ToABGRRow_MIPS_DSPR2(const uint8* y_buf, |
719 const uint8* u_buf, | 719 const uint8* u_buf, |
720 const uint8* v_buf, | 720 const uint8* v_buf, |
721 uint8* rgb_buf, | 721 uint8* rgb_buf, |
722 struct YuvConstants* yuvconstants, | 722 const struct YuvConstants* yuvconstants, |
723 int width) { | 723 int width) { |
724 __asm__ __volatile__ ( | 724 __asm__ __volatile__ ( |
725 ".set push \n" | 725 ".set push \n" |
726 ".set noreorder \n" | 726 ".set noreorder \n" |
727 "beqz %[width], 2f \n" | 727 "beqz %[width], 2f \n" |
728 " repl.ph $s0, 74 \n" // |YG|YG| = |74|74| | 728 " repl.ph $s0, 74 \n" // |YG|YG| = |74|74| |
729 "repl.ph $s1, -25 \n" // |UG|UG| = |-25|-25| | 729 "repl.ph $s1, -25 \n" // |UG|UG| = |-25|-25| |
730 "repl.ph $s2, -52 \n" // |VG|VG| = |-52|-52| | 730 "repl.ph $s2, -52 \n" // |VG|VG| = |-52|-52| |
731 "repl.ph $s3, 102 \n" // |VR|VR| = |102|102| | 731 "repl.ph $s3, 102 \n" // |VR|VR| = |102|102| |
732 "repl.ph $s4, 16 \n" // |0|16|0|16| | 732 "repl.ph $s4, 16 \n" // |0|16|0|16| |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 "t6", "t7", "t8", "t9", | 774 "t6", "t7", "t8", "t9", |
775 "s0", "s1", "s2", "s3", | 775 "s0", "s1", "s2", "s3", |
776 "s4", "s5", "s6" | 776 "s4", "s5", "s6" |
777 ); | 777 ); |
778 } | 778 } |
779 | 779 |
780 void I422ToBGRARow_MIPS_DSPR2(const uint8* y_buf, | 780 void I422ToBGRARow_MIPS_DSPR2(const uint8* y_buf, |
781 const uint8* u_buf, | 781 const uint8* u_buf, |
782 const uint8* v_buf, | 782 const uint8* v_buf, |
783 uint8* rgb_buf, | 783 uint8* rgb_buf, |
784 struct YuvConstants* yuvconstants, | 784 const struct YuvConstants* yuvconstants, |
785 int width) { | 785 int width) { |
786 __asm__ __volatile__ ( | 786 __asm__ __volatile__ ( |
787 ".set push \n" | 787 ".set push \n" |
788 ".set noreorder \n" | 788 ".set noreorder \n" |
789 "beqz %[width], 2f \n" | 789 "beqz %[width], 2f \n" |
790 " repl.ph $s0, 74 \n" // |YG|YG| = |74 |74 | | 790 " repl.ph $s0, 74 \n" // |YG|YG| = |74 |74 | |
791 "repl.ph $s1, -25 \n" // |UG|UG| = |-25|-25| | 791 "repl.ph $s1, -25 \n" // |UG|UG| = |-25|-25| |
792 "repl.ph $s2, -52 \n" // |VG|VG| = |-52|-52| | 792 "repl.ph $s2, -52 \n" // |VG|VG| = |-52|-52| |
793 "repl.ph $s3, 102 \n" // |VR|VR| = |102|102| | 793 "repl.ph $s3, 102 \n" // |VR|VR| = |102|102| |
794 "repl.ph $s4, 16 \n" // |0|16|0|16| | 794 "repl.ph $s4, 16 \n" // |0|16|0|16| |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
899 ); | 899 ); |
900 } | 900 } |
901 #endif // __mips_dsp_rev >= 2 | 901 #endif // __mips_dsp_rev >= 2 |
902 | 902 |
903 #endif // defined(__mips__) | 903 #endif // defined(__mips__) |
904 | 904 |
905 #ifdef __cplusplus | 905 #ifdef __cplusplus |
906 } // extern "C" | 906 } // extern "C" |
907 } // namespace libyuv | 907 } // namespace libyuv |
908 #endif | 908 #endif |
OLD | NEW |