Home | History | Annotate | Download | only in dsp

Lines Matching refs:DST

26 static void TransformDC(const int16_t* in, uint8_t* dst) {
30 LOAD_WITH_OFFSET_X4(temp1, temp2, temp3, temp4, dst,
42 dst, 0, 1, 2, 3, BPS)
45 : [in]"r"(in), [dst]"r"(dst)
50 static void TransformAC3(const int16_t* in, uint8_t* dst) {
67 LOAD_WITH_OFFSET_X4(temp3, temp5, temp11, temp12, dst,
77 temp7, temp6, dst, 0, 1, 2, 3, BPS)
81 : [dst]"r"(dst), [a]"r"(a), [d1]"r"(d1), [d4]"r"(d4), [c1]"r"(c1)
86 static void TransformOne(const int16_t* in, uint8_t* dst) {
137 LOAD_WITH_OFFSET_X4(temp10, temp11, temp14, temp15, dst,
145 dst, 0, 1, 2, 3, BPS)
148 : [dst]"r"(dst), [in]"r"(in), [kC1]"r"(kC1), [kC2]"r"(kC2)
153 static void TransformTwo(const int16_t* in, uint8_t* dst, int do_two) {
154 TransformOne(in, dst);
156 TransformOne(in + 16, dst + 4);
623 // DST[A * BPS] = TEMP0
624 // DST[B + C * BPS] = TEMP1
625 #define STORE_8_BYTES(TEMP0, TEMP1, A, B, C, DST) \
626 "usw %[" #TEMP0 "], " #A "*" XSTR(BPS) "(%[" #DST "]) \n\t" \
627 "usw %[" #TEMP1 "], " #B "+" #C "*" XSTR(BPS) "(%[" #DST "]) \n\t"
629 static void VE4(uint8_t* dst) { // vertical
630 const uint8_t* top = dst - BPS;
649 STORE_8_BYTES(temp4, temp4, 0, 0, 1, dst)
650 STORE_8_BYTES(temp4, temp4, 2, 0, 3, dst)
654 : [top]"r"(top), [dst]"r"(dst)
659 static void DC4(uint8_t* dst) { // DC
662 "ulw %[temp0], -1*" XSTR(BPS) "(%[dst]) \n\t"
663 LOAD_4_BYTES(temp1, temp2, temp3, temp4, -1, 0, -1, 1, -1, 2, -1, 3, dst)
672 STORE_8_BYTES(temp0, temp0, 0, 0, 1, dst)
673 STORE_8_BYTES(temp0, temp0, 2, 0, 3, dst)
676 : [dst]"r"(dst)
681 static void RD4(uint8_t* dst) { // Down-right
685 LOAD_4_BYTES(temp0, temp1, temp2, temp3, -1, 0, -1, 1, -1, 2, -1, 3, dst)
686 "ulw %[temp7], -1-" XSTR(BPS) "(%[dst]) \n\t"
705 "lbu %[temp5], 3-" XSTR(BPS) "(%[dst]) \n\t"
713 STORE_8_BYTES(temp2, temp6, 3, 0, 1, dst)
716 STORE_8_BYTES(temp2, temp6, 2, 0, 0, dst)
720 : [dst]"r"(dst)
731 static void LD4(uint8_t* dst) { // Down-Left
735 LOAD_8_BYTES(temp0, temp1, -1, 4, -1, dst)
762 STORE_8_BYTES(temp9, temp3, 0, 0, 2, dst)
765 STORE_8_BYTES(temp9, temp3, 1, 0, 3, dst)
770 : [dst]"r"(dst)
778 static void DC8uv(uint8_t* dst) { // DC
782 LOAD_8_BYTES(temp0, temp1, -1, 4, -1, dst)
783 LOAD_4_BYTES(temp2, temp3, temp4, temp5, -1, 0, -1, 1, -1, 2, -1, 3, dst)
784 LOAD_4_BYTES(temp6, temp7, temp8, temp9, -1, 4, -1, 5, -1, 6, -1, 7, dst)
798 STORE_8_BYTES(temp0, temp0, 0, 4, 0, dst)
799 STORE_8_BYTES(temp0, temp0, 1, 4, 1, dst)
800 STORE_8_BYTES(temp0, temp0, 2, 4, 2, dst)
801 STORE_8_BYTES(temp0, temp0, 3, 4, 3, dst)
802 STORE_8_BYTES(temp0, temp0, 4, 4, 4, dst)
803 STORE_8_BYTES(temp0, temp0, 5, 4, 5, dst)
804 STORE_8_BYTES(temp0, temp0, 6, 4, 6, dst)
805 STORE_8_BYTES(temp0, temp0, 7, 4, 7, dst)
810 : [dst]"r"(dst)
815 static void DC8uvNoLeft(uint8_t* dst) { // DC with no left samples
818 LOAD_8_BYTES(temp0, temp1, -1, 4, -1, dst)
824 STORE_8_BYTES(temp0, temp0, 0, 4, 0, dst)
825 STORE_8_BYTES(temp0, temp0, 1, 4, 1, dst)
826 STORE_8_BYTES(temp0, temp0, 2, 4, 2, dst)
827 STORE_8_BYTES(temp0, temp0, 3, 4, 3, dst)
828 STORE_8_BYTES(temp0, temp0, 4, 4, 4, dst)
829 STORE_8_BYTES(temp0, temp0, 5, 4, 5, dst)
830 STORE_8_BYTES(temp0, temp0, 6, 4, 6, dst)
831 STORE_8_BYTES(temp0, temp0, 7, 4, 7, dst)
833 : [dst]"r"(dst)
838 static void DC8uvNoTop(uint8_t* dst) { // DC with no top samples
842 LOAD_4_BYTES(temp2, temp3, temp4, temp5, -1, 0, -1, 1, -1, 2, -1, 3, dst)
843 LOAD_4_BYTES(temp6, temp7, temp8, temp1, -1, 4, -1, 5, -1, 6, -1, 7, dst)
853 STORE_8_BYTES(temp0, temp0, 0, 4, 0, dst)
854 STORE_8_BYTES(temp0, temp0, 1, 4, 1, dst)
855 STORE_8_BYTES(temp0, temp0, 2, 4, 2, dst)
856 STORE_8_BYTES(temp0, temp0, 3, 4, 3, dst)
857 STORE_8_BYTES(temp0, temp0, 4, 4, 4, dst)
858 STORE_8_BYTES(temp0, temp0, 5, 4, 5, dst)
859 STORE_8_BYTES(temp0, temp0, 6, 4, 6, dst)
860 STORE_8_BYTES(temp0, temp0, 7, 4, 7, dst)
864 : [dst]"r"(dst)
898 #define CLIP_8B_TO_DST(DST, TOP, SIZE) do { \
899 int dst_1 = ((int)(DST)[-1] << 16) + (DST)[-1]; \
906 "usw %[temp0], 0(%[dst]) \n\t" \
912 "usw %[temp0], 0(%[dst]) \n\t" \
913 "usw %[temp1], 4(%[dst]) \n\t" \
918 "usw %[temp0], 8(%[dst]) \n\t" \
919 "usw %[temp1], 12(%[dst]) \n\t" \
924 : [top_1]"r"(top_1), [top]"r"((TOP)), [dst]"r"((DST)) \
929 #define CLIP_TO_DST(DST, SIZE) do { \
931 const uint8_t* top = (DST) - BPS; \
934 CLIP_8B_TO_DST((DST), top, (SIZE)); \
935 (DST
939 #define TRUE_MOTION(DST, SIZE) \
940 static void TrueMotion##SIZE(uint8_t* (DST)) { \
941 CLIP_TO_DST((DST), (SIZE)); \
944 TRUE_MOTION(dst, 4)
945 TRUE_MOTION(dst, 8)
946 TRUE_MOTION(dst, 16)