Lines Matching refs:src
43 #define MMI_BTOH(dst_l, dst_r, src) \
45 "pcmpgtb %[db_2], %[db_1], "#src" \n\t" \
46 "punpcklbh "#dst_r", "#src", %[db_2] \n\t" \
47 "punpckhbh "#dst_l", "#src", %[db_2] \n\t"
193 #define PUT_VP8_EPEL4_H6_MMI(src, dst) \
194 MMI_ULWC1(%[ftmp1], src, 0x00) \
198 MMI_ULWC1(%[ftmp1], src, -0x01) \
203 MMI_ULWC1(%[ftmp1], src, -0x02) \
208 MMI_ULWC1(%[ftmp1], src, 0x01) \
212 MMI_ULWC1(%[ftmp1], src, 0x02) \
217 MMI_ULWC1(%[ftmp1], src, 0x03) \
230 #define PUT_VP8_EPEL4_H4_MMI(src, dst) \
231 MMI_ULWC1(%[ftmp1], src, 0x00) \
235 MMI_ULWC1(%[ftmp1], src, -0x01) \
240 MMI_ULWC1(%[ftmp1], src, 0x01) \
244 MMI_ULWC1(%[ftmp1], src, 0x02) \
258 #define PUT_VP8_EPEL4_V6_MMI(src, src1, dst, srcstride) \
259 MMI_ULWC1(%[ftmp1], src, 0x00) \
263 PTR_SUBU ""#src1", "#src", "#srcstride" \n\t" \
275 PTR_ADDU ""#src1", "#src", "#srcstride" \n\t" \
301 #define PUT_VP8_EPEL4_V4_MMI(src, src1, dst, srcstride) \
302 MMI_ULWC1(%[ftmp1], src, 0x00) \
306 PTR_SUBU ""#src1", "#src", "#srcstride" \n\t" \
312 PTR_ADDU ""#src1", "#src", "#srcstride" \n\t" \
332 #define PUT_VP8_EPEL8_H6_MMI(src, dst) \
333 MMI_ULDC1(%[ftmp1], src, 0x00) \
339 MMI_ULDC1(%[ftmp1], src, -0x01) \
347 MMI_ULDC1(%[ftmp1], src, -0x02) \
355 MMI_ULDC1(%[ftmp1], src, 0x01) \
361 MMI_ULDC1(%[ftmp1], src, 0x02) \
369 MMI_ULDC1(%[ftmp1], src, 0x03) \
389 #define PUT_VP8_EPEL8_H4_MMI(src, dst) \
390 MMI_ULDC1(%[ftmp1], src, 0x00) \
396 MMI_ULDC1(%[ftmp1], src, -0x01) \
404 MMI_ULDC1(%[ftmp1], src, 0x01) \
410 MMI_ULDC1(%[ftmp1], src, 0x02) \
430 #define PUT_VP8_EPEL8_V6_MMI(src, src1, dst, srcstride) \
431 MMI_ULDC1(%[ftmp1], src, 0x00) \
437 PTR_SUBU ""#src1", "#src", "#srcstride" \n\t" \
455 PTR_ADDU ""#src1", "#src", "#srcstride" \n\t" \
492 #define PUT_VP8_EPEL8_V4_MMI(src, src1, dst, srcstride) \
493 MMI_ULDC1(%[ftmp1], src, 0x00) \
499 PTR_SUBU ""#src1", "#src", "#srcstride" \n\t" \
508 PTR_ADDU ""#src1", "#src", "#srcstride" \n\t" \
536 #define PUT_VP8_BILINEAR8_H_MMI(src, dst) \
537 MMI_ULDC1(%[ftmp1], src, 0x00) \
543 MMI_ULDC1(%[ftmp1], src, 0x01) \
560 #define PUT_VP8_BILINEAR4_H_MMI(src, dst) \
561 MMI_ULWC1(%[ftmp1], src, 0x00) \
565 MMI_ULWC1(%[ftmp1], src, 0x01) \
577 #define PUT_VP8_BILINEAR8_V_MMI(src, src1, dst, sstride) \
578 MMI_ULDC1(%[ftmp1], src, 0x00) \
584 PTR_ADDU ""#src1", "#src", "#sstride" \n\t" \
602 #define PUT_VP8_BILINEAR4_V_MMI(src, src1, dst, sstride) \
603 MMI_ULWC1(%[ftmp1], src, 0x00) \
607 PTR_ADDU ""#src1", "#src", "#sstride" \n\t" \
644 #define FILTER_6TAP(src, F, stride) \
645 cm[(F[2] * src[x + 0 * stride] - F[1] * src[x - 1 * stride] + \
646 F[0] * src[x - 2 * stride] + F[3] * src[x + 1 * stride] - \
647 F[4] * src[x + 2 * stride] + F[5] * src[x + 3 * stride] + 64) >> 7]
649 #define FILTER_4TAP(src, F, stride) \
650 cm[(F[2] * src[x + 0 * stride] - F[1] * src[x - 1 * stride] + \
651 F[3] * src[x + 1 * stride] - F[4] * src[x + 2 * stride] + 64) >> 7]
1442 void ff_put_vp8_pixels16_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
1453 PTR_ADDU "%[addr0], %[src], %[srcstride] \n\t"
1454 MMI_ULDC1(%[ftmp0], %[src], 0x00)
1455 "ldl %[tmp0], 0x0f(%[src]) \n\t"
1456 "ldr %[tmp0], 0x08(%[src]) \n\t"
1466 PTR_ADDU "%[src], %[addr0], %[srcstride] \n\t"
1475 [dst]"+&r"(dst), [src]"+&r"(src),
1484 for (i = 0; i < h; i++, dst += dststride, src += srcstride)
1485 memcpy(dst, src, 16);
1489 void ff_put_vp8_pixels8_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
1500 PTR_ADDU "%[addr0], %[src], %[srcstride] \n\t"
1501 MMI_ULDC1(%[ftmp0], %[src], 0x00)
1509 PTR_ADDU "%[src], %[addr0], %[srcstride] \n\t"
1515 [dst]"+&r"(dst), [src]"+&r"(src),
1524 for (i = 0; i < h; i++, dst += dststride, src += srcstride)
1525 memcpy(dst, src, 8);
1529 void ff_put_vp8_pixels4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
1540 PTR_ADDU "%[addr0], %[src], %[srcstride] \n\t"
1541 MMI_LWC1(%[ftmp0], %[src], 0x00)
1549 PTR_ADDU "%[src], %[addr0], %[srcstride] \n\t"
1555 [dst]"+&r"(dst), [src]"+&r"(src),
1564 for (i = 0; i < h; i++, dst += dststride, src += srcstride)
1565 memcpy(dst, src, 4);
1569 void ff_put_vp8_epel16_h4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
1588 dst[0] = cm[(filter[2] * src[0] - filter[1] * src[-1] + filter[3] * src[1] - filter[4] * src[2] + 64) >> 7];
1589 dst[1] = cm[(filter[2] * src[1] - filter[1] * src[ 0] + filter[3] * src[2] - filter[4] * src[3] + 64) >> 7];
1590 dst[2] = cm[(filter[2] * src[2] - filter[1] * src[ 1] + filter[3] * src[3] - filter[4] * src[4] + 64) >> 7];
1591 dst[3] = cm[(filter[2] * src[3] - filter[1] * src[ 2] + filter[3] * src[4] - filter[4] * src[5] + 64) >> 7];
1592 dst[4] = cm[(filter[2] * src[4] - filter[1] * src[ 3] + filter[3] * src[5] - filter[4] * src[6] + 64) >> 7];
1593 dst[5] = cm[(filter[2] * src[5] - filter[1] * src[ 4] + filter[3] * src[6] - filter[4] * src[7] + 64) >> 7];
1594 dst[6] = cm[(filter[2] * src[6] - filter[1] * src[ 5] + filter[3] * src[7] - filter[4] * src[8] + 64) >> 7];
1595 dst[7] = cm[(filter[2] * src[7] - filter[1] * src[ 6] + filter[3] * src[8] - filter[4] * src[9] + 64) >> 7];
1597 dst[ 8] = cm[(filter[2] * src[ 8] - filter[1] * src[ 7] + filter[3] * src[ 9] - filter[4] * src[10] + 64) >> 7];
1598 dst[ 9] = cm[(filter[2] * src[ 9] - filter[1] * src[ 8] + filter[3] * src[10] - filter[4] * src[11] + 64) >> 7];
1599 dst[10] = cm[(filter[2] * src[10] - filter[1] * src[ 9] + filter[3] * src[11] - filter[4] * src[12] + 64) >> 7];
1600 dst[11] = cm[(filter[2] * src[11] - filter[1] * src[10] + filter[3] * src[12] - filter[4] * src[13] + 64) >> 7];
1601 dst[12] = cm[(filter[2] * src[12] - filter[1] * src[11] + filter[3] * src[13] - filter[4] * src[14] + 64) >> 7];
1602 dst[13] = cm[(filter[2] * src[13] - filter[1] * src[12] + filter[3] * src[14] - filter[4] * src[15] + 64) >> 7];
1603 dst[14] = cm[(filter[2] * src[14] - filter[1] * src[13] + filter[3] * src[15] - filter[4] * src[16] + 64) >> 7];
1604 dst[15] = cm[(filter[2] * src[15] - filter[1] * src[14] + filter[3] * src[16] - filter[4] * src[17] + 64) >> 7];
1613 PUT_VP8_EPEL8_H4_MMI(%[src], %[dst])
1614 PTR_ADDIU "%[src1], %[src], 0x08 \n\t"
1620 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
1632 [dst]"+&r"(dst), [src]"+&r"(src)
1647 dst[x] = FILTER_4TAP(src, filter, 1);
1649 src += srcstride;
1654 void ff_put_vp8_epel8_h4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
1673 dst[0] = cm[(filter[2] * src[0] - filter[1] * src[-1] + filter[3] * src[1] - filter[4] * src[2] + 64) >> 7];
1674 dst[1] = cm[(filter[2] * src[1] - filter[1] * src[ 0] + filter[3] * src[2] - filter[4] * src[3] + 64) >> 7];
1675 dst[2] = cm[(filter[2] * src[2] - filter[1] * src[ 1] + filter[3] * src[3] - filter[4] * src[4] + 64) >> 7];
1676 dst[3] = cm[(filter[2] * src[3] - filter[1] * src[ 2] + filter[3] * src[4] - filter[4] * src[5] + 64) >> 7];
1677 dst[4] = cm[(filter[2] * src[4] - filter[1] * src[ 3] + filter[3] * src[5] - filter[4] * src[6] + 64) >> 7];
1678 dst[5] = cm[(filter[2] * src[5] - filter[1] * src[ 4] + filter[3] * src[6] - filter[4] * src[7] + 64) >> 7];
1679 dst[6] = cm[(filter[2] * src[6] - filter[1] * src[ 5] + filter[3] * src[7] - filter[4] * src[8] + 64) >> 7];
1680 dst[7] = cm[(filter[2] * src[7] - filter[1] * src[ 6] + filter[3] * src[8] - filter[4] * src[9] + 64) >> 7];
1688 PUT_VP8_EPEL8_H4_MMI(%[src], %[dst])
1691 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
1702 [dst]"+&r"(dst), [src]"+&r"(src)
1717 dst[x] = FILTER_4TAP(src, filter, 1);
1719 src += srcstride;
1724 void ff_put_vp8_epel4_h4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
1742 dst[0] = cm[(filter[2] * src[0] - filter[1] * src[-1] + filter[3] * src[1] - filter[4] * src[2] + 64) >> 7];
1743 dst[1] = cm[(filter[2] * src[1] - filter[1] * src[ 0] + filter[3] * src[2] - filter[4] * src[3] + 64) >> 7];
1744 dst[2] = cm[(filter[2] * src[2] - filter[1] * src[ 1] + filter[3] * src[3] - filter[4] * src[4] + 64) >> 7];
1745 dst[3] = cm[(filter[2] * src[3] - filter[1] * src[ 2] + filter[3] * src[4] - filter[4] * src[5] + 64) >> 7];
1753 PUT_VP8_EPEL4_H4_MMI(%[src], %[dst])
1756 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
1765 [dst]"+&r"(dst), [src]"+&r"(src)
1780 dst[x] = FILTER_4TAP(src, filter, 1);
1782 src += srcstride;
1787 void ff_put_vp8_epel16_h6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
1810 dst[ 0] = cm[(filter[2]*src[ 0] - filter[1]*src[-1] + filter[0]*src[-2] + filter[3]*src[ 1] - filter[4]*src[ 2] + filter[5]*src[ 3] + 64) >> 7];
1811 dst[ 1] = cm[(filter[2]*src[ 1] - filter[1]*src[ 0] + filter[0]*src[-1] + filter[3]*src[ 2] - filter[4]*src[ 3] + filter[5]*src[ 4] + 64) >> 7];
1812 dst[ 2] = cm[(filter[2]*src[ 2] - filter[1]*src[ 1] + filter[0]*src[ 0] + filter[3]*src[ 3] - filter[4]*src[ 4] + filter[5]*src[ 5] + 64) >> 7];
1813 dst[ 3] = cm[(filter[2]*src[ 3] - filter[1]*src[ 2] + filter[0]*src[ 1] + filter[3]*src[ 4] - filter[4]*src[ 5] + filter[5]*src[ 6] + 64) >> 7];
1814 dst[ 4] = cm[(filter[2]*src[ 4] - filter[1]*src[ 3] + filter[0]*src[ 2] + filter[3]*src[ 5] - filter[4]*src[ 6] + filter[5]*src[ 7] + 64) >> 7];
1815 dst[ 5] = cm[(filter[2]*src[ 5] - filter[1]*src[ 4] + filter[0]*src[ 3] + filter[3]*src[ 6] - filter[4]*src[ 7] + filter[5]*src[ 8] + 64) >> 7];
1816 dst[ 6] = cm[(filter[2]*src[ 6] - filter[1]*src[ 5] + filter[0]*src[ 4] + filter[3]*src[ 7] - filter[4]*src[ 8] + filter[5]*src[ 9] + 64) >> 7];
1817 dst[ 7] = cm[(filter[2]*src[ 7] - filter[1]*src[ 6] + filter[0]*src[ 5] + filter[3]*src[ 8] - filter[4]*src[ 9] + filter[5]*src[10] + 64) >> 7];
1819 dst[ 8] = cm[(filter[2]*src[ 8] - filter[1]*src[ 7] + filter[0]*src[ 6] + filter[3]*src[ 9] - filter[4]*src[10] + filter[5]*src[11] + 64) >> 7];
1820 dst[ 9] = cm[(filter[2]*src[ 9] - filter[1]*src[ 8] + filter[0]*src[ 7] + filter[3]*src[10] - filter[4]*src[11] + filter[5]*src[12] + 64) >> 7];
1821 dst[10] = cm[(filter[2]*src[10] - filter[1]*src[ 9] + filter[0]*src[ 8] + filter[3]*src[11] - filter[4]*src[12] + filter[5]*src[13] + 64) >> 7];
1822 dst[11] = cm[(filter[2]*src[11] - filter[1]*src[10] + filter[0]*src[ 9] + filter[3]*src[12] - filter[4]*src[13] + filter[5]*src[14] + 64) >> 7];
1823 dst[12] = cm[(filter[2]*src[12] - filter[1]*src[11] + filter[0]*src[10] + filter[3]*src[13] - filter[4]*src[14] + filter[5]*src[15] + 64) >> 7];
1824 dst[13] = cm[(filter[2]*src[13] - filter[1]*src[12] + filter[0]*src[11] + filter[3]*src[14] - filter[4]*src[15] + filter[5]*src[16] + 64) >> 7];
1825 dst[14] = cm[(filter[2]*src[14] - filter[1]*src[13] + filter[0]*src[12] + filter[3]*src[15] - filter[4]*src[16] + filter[5]*src[17] + 64) >> 7];
1826 dst[15] = cm[(filter[2]*src[15] - filter[1]*src[14] + filter[0]*src[13] + filter[3]*src[16] - filter[4]*src[17] + filter[5]*src[18] + 64) >> 7];
1835 PUT_VP8_EPEL8_H6_MMI(%[src], %[dst])
1836 PTR_ADDIU "%[src1], %[src], 0x08 \n\t"
1842 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
1854 [dst]"+&r"(dst), [src]"+&r"(src)
1870 dst[x] = FILTER_6TAP(src, filter, 1);
1872 src += srcstride;
1877 void ff_put_vp8_epel8_h6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
1899 dst[0] = cm[(filter[2]*src[0] - filter[1]*src[-1] + filter[0]*src[-2] + filter[3]*src[1] - filter[4]*src[2] + filter[5]*src[ 3] + 64) >> 7];
1900 dst[1] = cm[(filter[2]*src[1] - filter[1]*src[ 0] + filter[0]*src[-1] + filter[3]*src[2] - filter[4]*src[3] + filter[5]*src[ 4] + 64) >> 7];
1901 dst[2] = cm[(filter[2]*src[2] - filter[1]*src[ 1] + filter[0]*src[ 0] + filter[3]*src[3] - filter[4]*src[4] + filter[5]*src[ 5] + 64) >> 7];
1902 dst[3] = cm[(filter[2]*src[3] - filter[1]*src[ 2] + filter[0]*src[ 1] + filter[3]*src[4] - filter[4]*src[5] + filter[5]*src[ 6] + 64) >> 7];
1903 dst[4] = cm[(filter[2]*src[4] - filter[1]*src[ 3] + filter[0]*src[ 2] + filter[3]*src[5] - filter[4]*src[6] + filter[5]*src[ 7] + 64) >> 7];
1904 dst[5] = cm[(filter[2]*src[5] - filter[1]*src[ 4] + filter[0]*src[ 3] + filter[3]*src[6] - filter[4]*src[7] + filter[5]*src[ 8] + 64) >> 7];
1905 dst[6] = cm[(filter[2]*src[6] - filter[1]*src[ 5] + filter[0]*src[ 4] + filter[3]*src[7] - filter[4]*src[8] + filter[5]*src[ 9] + 64) >> 7];
1906 dst[7] = cm[(filter[2]*src[7] - filter[1]*src[ 6] + filter[0]*src[ 5] + filter[3]*src[8] - filter[4]*src[9] + filter[5]*src[10] + 64) >> 7];
1914 PUT_VP8_EPEL8_H6_MMI(%[src], %[dst])
1917 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
1928 [dst]"+&r"(dst), [src]"+&r"(src)
1944 dst[x] = FILTER_6TAP(src, filter, 1);
1946 src += srcstride;
1951 void ff_put_vp8_epel4_h6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
1973 dst[0] = cm[(filter[2]*src[0] - filter[1]*src[-1] + filter[0]*src[-2] + filter[3]*src[1] - filter[4]*src[2] + filter[5]*src[ 3] + 64) >> 7];
1974 dst[1] = cm[(filter[2]*src[1] - filter[1]*src[ 0] + filter[0]*src[-1] + filter[3]*src[2] - filter[4]*src[3] + filter[5]*src[ 4] + 64) >> 7];
1975 dst[2] = cm[(filter[2]*src[2] - filter[1]*src[ 1] + filter[0]*src[ 0] + filter[3]*src[3] - filter[4]*src[4] + filter[5]*src[ 5] + 64) >> 7];
1976 dst[3] = cm[(filter[2]*src[3] - filter[1]*src[ 2] + filter[0]*src[ 1] + filter[3]*src[4] - filter[4]*src[5] + filter[5]*src[ 6] + 64) >> 7];
1984 PUT_VP8_EPEL4_H6_MMI(%[src], %[dst])
1987 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
1996 [dst]"+&r"(dst), [src]"+&r"(src)
2012 dst[x] = FILTER_6TAP(src, filter, 1);
2014 src += srcstride;
2019 void ff_put_vp8_epel16_v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2038 dst[0] = cm[(filter[2] * src[0] - filter[1] * src[ -srcstride] + filter[3] * src[ srcstride] - filter[4] * src[ 2*srcstride] + 64) >> 7];
2039 dst[1] = cm[(filter[2] * src[1] - filter[1] * src[1-srcstride] + filter[3] * src[1+srcstride] - filter[4] * src[1+2*srcstride] + 64) >> 7];
2040 dst[2] = cm[(filter[2] * src[2] - filter[1] * src[2-srcstride] + filter[3] * src[2+srcstride] - filter[4] * src[2+2*srcstride] + 64) >> 7];
2041 dst[3] = cm[(filter[2] * src[3] - filter[1] * src[3-srcstride] + filter[3] * src[3+srcstride] - filter[4] * src[3+2*srcstride] + 64) >> 7];
2042 dst[4] = cm[(filter[2] * src[4] - filter[1] * src[4-srcstride] + filter[3] * src[4+srcstride] - filter[4] * src[4+2*srcstride] + 64) >> 7];
2043 dst[5] = cm[(filter[2] * src[5] - filter[1] * src[5-srcstride] + filter[3] * src[5+srcstride] - filter[4] * src[5+2*srcstride] + 64) >> 7];
2044 dst[6] = cm[(filter[2] * src[6] - filter[1] * src[6-srcstride] + filter[3] * src[6+srcstride] - filter[4] * src[6+2*srcstride] + 64) >> 7];
2045 dst[7] = cm[(filter[2] * src[7] - filter[1] * src[7-srcstride] + filter[3] * src[7+srcstride] - filter[4] * src[7+2*srcstride] + 64) >> 7];
2047 dst[ 8] = cm[(filter[2] * src[ 8] - filter[1] * src[ 8-srcstride] + filter[3] * src[ 8+srcstride] - filter[4] * src[ 8+2*srcstride] + 64) >> 7];
2048 dst[ 9] = cm[(filter[2] * src[ 9] - filter[1] * src[ 9-srcstride] + filter[3] * src[ 9+srcstride] - filter[4] * src[ 9+2*srcstride] + 64) >> 7];
2049 dst[10] = cm[(filter[2] * src[10] - filter[1] * src[10-srcstride] + filter[3] * src[10+srcstride] - filter[4] * src[10+2*srcstride] + 64) >> 7];
2050 dst[11] = cm[(filter[2] * src[11] - filter[1] * src[11-srcstride] + filter[3] * src[11+srcstride] - filter[4] * src[11+2*srcstride] + 64) >> 7];
2051 dst[12] = cm[(filter[2] * src[12] - filter[1] * src[12-srcstride] + filter[3] * src[12+srcstride] - filter[4] * src[12+2*srcstride] + 64) >> 7];
2052 dst[13] = cm[(filter[2] * src[13] - filter[1] * src[13-srcstride] + filter[3] * src[13+srcstride] - filter[4] * src[13+2*srcstride] + 64) >> 7];
2053 dst[14] = cm[(filter[2] * src[14] - filter[1] * src[14-srcstride] + filter[3] * src[14+srcstride] - filter[4] * src[14+2*srcstride] + 64) >> 7];
2054 dst[15] = cm[(filter[2] * src[15] - filter[1] * src[15-srcstride] + filter[3] * src[15+srcstride] - filter[4] * src[15+2*srcstride] + 64) >> 7];
2063 PUT_VP8_EPEL8_V4_MMI(%[src], %[src1], %[dst], %[srcstride])
2064 PTR_ADDIU "%[src0], %[src], 0x08 \n\t"
2070 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
2083 [dst]"+&r"(dst), [src]"+&r"(src)
2098 dst[x] = FILTER_4TAP(src, filter, srcstride);
2100 src += srcstride;
2105 void ff_put_vp8_epel8_v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2124 dst[0] = cm[(filter[2] * src[0] - filter[1] * src[ -srcstride] + filter[3] * src[ srcstride] - filter[4] * src[ 2*srcstride] + 64) >> 7];
2125 dst[1] = cm[(filter[2] * src[1] - filter[1] * src[1-srcstride] + filter[3] * src[1+srcstride] - filter[4] * src[1+2*srcstride] + 64) >> 7];
2126 dst[2] = cm[(filter[2] * src[2] - filter[1] * src[2-srcstride] + filter[3] * src[2+srcstride] - filter[4] * src[2+2*srcstride] + 64) >> 7];
2127 dst[3] = cm[(filter[2] * src[3] - filter[1] * src[3-srcstride] + filter[3] * src[3+srcstride] - filter[4] * src[3+2*srcstride] + 64) >> 7];
2128 dst[4] = cm[(filter[2] * src[4] - filter[1] * src[4-srcstride] + filter[3] * src[4+srcstride] - filter[4] * src[4+2*srcstride] + 64) >> 7];
2129 dst[5] = cm[(filter[2] * src[5] - filter[1] * src[5-srcstride] + filter[3] * src[5+srcstride] - filter[4] * src[5+2*srcstride] + 64) >> 7];
2130 dst[6] = cm[(filter[2] * src[6] - filter[1] * src[6-srcstride] + filter[3] * src[6+srcstride] - filter[4] * src[6+2*srcstride] + 64) >> 7];
2131 dst[7] = cm[(filter[2] * src[7] - filter[1] * src[7-srcstride] + filter[3] * src[7+srcstride] - filter[4] * src[7+2*srcstride] + 64) >> 7];
2139 PUT_VP8_EPEL8_V4_MMI(%[src], %[src1], %[dst], %[srcstride])
2142 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
2154 [dst]"+&r"(dst), [src]"+&r"(src)
2169 dst[x] = FILTER_4TAP(src, filter, srcstride);
2171 src += srcstride;
2176 void ff_put_vp8_epel4_v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2195 dst[0] = cm[(filter[2] * src[0] - filter[1] * src[ -srcstride] + filter[3] * src[ srcstride] - filter[4] * src[ 2*srcstride] + 64) >> 7];
2196 dst[1] = cm[(filter[2] * src[1] - filter[1] * src[1-srcstride] + filter[3] * src[1+srcstride] - filter[4] * src[1+2*srcstride] + 64) >> 7];
2197 dst[2] = cm[(filter[2] * src[2] - filter[1] * src[2-srcstride] + filter[3] * src[2+srcstride] - filter[4] * src[2+2*srcstride] + 64) >> 7];
2198 dst[3] = cm[(filter[2] * src[3] - filter[1] * src[3-srcstride] + filter[3] * src[3+srcstride] - filter[4] * src[3+2*srcstride] + 64) >> 7];
2206 PUT_VP8_EPEL4_V4_MMI(%[src], %[src1], %[dst], %[srcstride])
2209 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
2219 [dst]"+&r"(dst), [src]"+&r"(src)
2234 dst[x] = FILTER_4TAP(src, filter, srcstride);
2236 src += srcstride;
2241 void ff_put_vp8_epel16_v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2264 dst[0] = cm[(filter[2]*src[0] - filter[1]*src[0-srcstride] + filter[0]*src[0-2*srcstride] + filter[3]*src[0+srcstride] - filter[4]*src[0+2*srcstride] + filter[5]*src[0+3*srcstride] + 64) >> 7];
2265 dst[1] = cm[(filter[2]*src[1] - filter[1]*src[1-srcstride] + filter[0]*src[1-2*srcstride] + filter[3]*src[1+srcstride] - filter[4]*src[1+2*srcstride] + filter[5]*src[1+3*srcstride] + 64) >> 7];
2266 dst[2] = cm[(filter[2]*src[2] - filter[1]*src[2-srcstride] + filter[0]*src[2-2*srcstride] + filter[3]*src[2+srcstride] - filter[4]*src[2+2*srcstride] + filter[5]*src[2+3*srcstride] + 64) >> 7];
2267 dst[3] = cm[(filter[2]*src[3] - filter[1]*src[3-srcstride] + filter[0]*src[3-2*srcstride] + filter[3]*src[3+srcstride] - filter[4]*src[3+2*srcstride] + filter[5]*src[3+3*srcstride] + 64) >> 7];
2268 dst[4] = cm[(filter[2]*src[4] - filter[1]*src[4-srcstride] + filter[0]*src[4-2*srcstride] + filter[3]*src[4+srcstride] - filter[4]*src[4+2*srcstride] + filter[5]*src[4+3*srcstride] + 64) >> 7];
2269 dst[5] = cm[(filter[2]*src[5] - filter[1]*src[5-srcstride] + filter[0]*src[5-2*srcstride] + filter[3]*src[5+srcstride] - filter[4]*src[5+2*srcstride] + filter[5]*src[5+3*srcstride] + 64) >> 7];
2270 dst[6] = cm[(filter[2]*src[6] - filter[1]*src[6-srcstride] + filter[0]*src[6-2*srcstride] + filter[3]*src[6+srcstride] - filter[4]*src[6+2*srcstride] + filter[5]*src[6+3*srcstride] + 64) >> 7];
2271 dst[7] = cm[(filter[2]*src[7] - filter[1]*src[7-srcstride] + filter[0]*src[7-2*srcstride] + filter[3]*src[7+srcstride] - filter[4]*src[7+2*srcstride] + filter[5]*src[7+3*srcstride] + 64) >> 7];
2273 dst[ 8] = cm[(filter[2]*src[ 8] - filter[1]*src[ 8-srcstride] + filter[0]*src[ 8-2*srcstride] + filter[3]*src[ 8+srcstride] - filter[4]*src[ 8+2*srcstride] + filter[5]*src[ 8+3*srcstride] + 64) >> 7];
2274 dst[ 9] = cm[(filter[2]*src[ 9] - filter[1]*src[ 9-srcstride] + filter[0]*src[ 9-2*srcstride] + filter[3]*src[ 9+srcstride] - filter[4]*src[ 9+2*srcstride] + filter[5]*src[ 9+3*srcstride] + 64) >> 7];
2275 dst[10] = cm[(filter[2]*src[10] - filter[1]*src[10-srcstride] + filter[0]*src[10-2*srcstride] + filter[3]*src[10+srcstride] - filter[4]*src[10+2*srcstride] + filter[5]*src[10+3*srcstride] + 64) >> 7];
2276 dst[11] = cm[(filter[2]*src[11] - filter[1]*src[11-srcstride] + filter[0]*src[11-2*srcstride] + filter[3]*src[11+srcstride] - filter[4]*src[11+2*srcstride] + filter[5]*src[11+3*srcstride] + 64) >> 7];
2277 dst[12] = cm[(filter[2]*src[12] - filter[1]*src[12-srcstride] + filter[0]*src[12-2*srcstride] + filter[3]*src[12+srcstride] - filter[4]*src[12+2*srcstride] + filter[5]*src[12+3*srcstride] + 64) >> 7];
2278 dst[13] = cm[(filter[2]*src[13] - filter[1]*src[13-srcstride] + filter[0]*src[13-2*srcstride] + filter[3]*src[13+srcstride] - filter[4]*src[13+2*srcstride] + filter[5]*src[13+3*srcstride] + 64) >> 7];
2279 dst[14] = cm[(filter[2]*src[14] - filter[1]*src[14-srcstride] + filter[0]*src[14-2*srcstride] + filter[3]*src[14+srcstride] - filter[4]*src[14+2*srcstride] + filter[5]*src[14+3*srcstride] + 64) >> 7];
2280 dst[15] = cm[(filter[2]*src[15] - filter[1]*src[15-srcstride] + filter[0]*src[15-2*srcstride] + filter[3]*src[15+srcstride] - filter[4]*src[15+2*srcstride] + filter[5]*src[15+3*srcstride] + 64) >> 7];
2289 PUT_VP8_EPEL8_V6_MMI(%[src], %[src1], %[dst], %[srcstride])
2290 PTR_ADDIU "%[src0], %[src], 0x08 \n\t"
2296 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
2309 [dst]"+&r"(dst), [src]"+&r"(src)
2325 dst[x] = FILTER_6TAP(src, filter, srcstride);
2327 src += srcstride;
2332 void ff_put_vp8_epel8_v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2355 dst[0] = cm[(filter[2]*src[0] - filter[1]*src[0-srcstride] + filter[0]*src[0-2*srcstride] + filter[3]*src[0+srcstride] - filter[4]*src[0+2*srcstride] + filter[5]*src[0+3*srcstride] + 64) >> 7];
2356 dst[1] = cm[(filter[2]*src[1] - filter[1]*src[1-srcstride] + filter[0]*src[1-2*srcstride] + filter[3]*src[1+srcstride] - filter[4]*src[1+2*srcstride] + filter[5]*src[1+3*srcstride] + 64) >> 7];
2357 dst[2] = cm[(filter[2]*src[2] - filter[1]*src[2-srcstride] + filter[0]*src[2-2*srcstride] + filter[3]*src[2+srcstride] - filter[4]*src[2+2*srcstride] + filter[5]*src[2+3*srcstride] + 64) >> 7];
2358 dst[3] = cm[(filter[2]*src[3] - filter[1]*src[3-srcstride] + filter[0]*src[3-2*srcstride] + filter[3]*src[3+srcstride] - filter[4]*src[3+2*srcstride] + filter[5]*src[3+3*srcstride] + 64) >> 7];
2359 dst[4] = cm[(filter[2]*src[4] - filter[1]*src[4-srcstride] + filter[0]*src[4-2*srcstride] + filter[3]*src[4+srcstride] - filter[4]*src[4+2*srcstride] + filter[5]*src[4+3*srcstride] + 64) >> 7];
2360 dst[5] = cm[(filter[2]*src[5] - filter[1]*src[5-srcstride] + filter[0]*src[5-2*srcstride] + filter[3]*src[5+srcstride] - filter[4]*src[5+2*srcstride] + filter[5]*src[5+3*srcstride] + 64) >> 7];
2361 dst[6] = cm[(filter[2]*src[6] - filter[1]*src[6-srcstride] + filter[0]*src[6-2*srcstride] + filter[3]*src[6+srcstride] - filter[4]*src[6+2*srcstride] + filter[5]*src[6+3*srcstride] + 64) >> 7];
2362 dst[7] = cm[(filter[2]*src[7] - filter[1]*src[7-srcstride] + filter[0]*src[7-2*srcstride] + filter[3]*src[7+srcstride] - filter[4]*src[7+2*srcstride] + filter[5]*src[7+3*srcstride] + 64) >> 7];
2370 PUT_VP8_EPEL8_V6_MMI(%[src], %[src1], %[dst], %[srcstride])
2373 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
2385 [dst]"+&r"(dst), [src]"+&r"(src)
2401 dst[x] = FILTER_6TAP(src, filter, srcstride);
2403 src += srcstride;
2408 void ff_put_vp8_epel4_v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2431 dst[0] = cm[(filter[2]*src[0] - filter[1]*src[0-srcstride] + filter[0]*src[0-2*srcstride] + filter[3]*src[0+srcstride] - filter[4]*src[0+2*srcstride] + filter[5]*src[0+3*srcstride] + 64) >> 7];
2432 dst[1] = cm[(filter[2]*src[1] - filter[1]*src[1-srcstride] + filter[0]*src[1-2*srcstride] + filter[3]*src[1+srcstride] - filter[4]*src[1+2*srcstride] + filter[5]*src[1+3*srcstride] + 64) >> 7];
2433 dst[2] = cm[(filter[2]*src[2] - filter[1]*src[2-srcstride] + filter[0]*src[2-2*srcstride] + filter[3]*src[2+srcstride] - filter[4]*src[2+2*srcstride] + filter[5]*src[2+3*srcstride] + 64) >> 7];
2434 dst[3] = cm[(filter[2]*src[3] - filter[1]*src[3-srcstride] + filter[0]*src[3-2*srcstride] + filter[3]*src[3+srcstride] - filter[4]*src[3+2*srcstride] + filter[5]*src[3+3*srcstride] + 64) >> 7];
2442 PUT_VP8_EPEL4_V6_MMI(%[src], %[src1], %[dst], %[srcstride])
2445 PTR_ADDU "%[src], %[src], %[srcstride] \n\t"
2455 [dst]"+&r"(dst), [src]"+&r"(src)
2471 dst[x] = FILTER_6TAP(src, filter, srcstride);
2473 src += srcstride;
2478 void ff_put_vp8_epel16_h4v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2485 src -= srcstride;
2486 ff_put_vp8_epel16_h4_mmi(tmp, 16, src, srcstride, h + 3, mx, my);
2496 src -= srcstride;
2500 tmp[x] = FILTER_4TAP(src, filter, 1);
2502 src += srcstride;
2517 void ff_put_vp8_epel8_h4v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2524 src -= srcstride;
2525 ff_put_vp8_epel8_h4_mmi(tmp, 8, src, srcstride, h + 3, mx, my);
2535 src -= srcstride;
2539 tmp[x] = FILTER_4TAP(src, filter, 1);
2541 src += srcstride;
2556 void ff_put_vp8_epel4_h4v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2563 src -= srcstride;
2564 ff_put_vp8_epel4_h4_mmi(tmp, 4, src, srcstride, h + 3, mx, my);
2574 src -= srcstride;
2578 tmp[x] = FILTER_4TAP(src, filter, 1);
2580 src += srcstride;
2594 void ff_put_vp8_epel16_h4v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2601 src -= 2 * srcstride;
2602 ff_put_vp8_epel16_h4_mmi(tmp, 16, src, srcstride, h + 5, mx, my);
2612 src -= 2 * srcstride;
2616 tmp[x] = FILTER_4TAP(src, filter, 1);
2618 src += srcstride;
2633 void ff_put_vp8_epel8_h4v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2640 src -= 2 * srcstride;
2641 ff_put_vp8_epel8_h4_mmi(tmp, 8, src, srcstride, h + 5, mx, my);
2651 src -= 2 * srcstride;
2655 tmp[x] = FILTER_4TAP(src, filter, 1);
2657 src += srcstride;
2672 void ff_put_vp8_epel4_h4v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2679 src -= 2 * srcstride;
2680 ff_put_vp8_epel4_h4_mmi(tmp, 4, src, srcstride, h + 5, mx, my);
2690 src -= 2 * srcstride;
2694 tmp[x] = FILTER_4TAP(src, filter, 1);
2696 src += srcstride;
2711 void ff_put_vp8_epel16_h6v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2718 src -= srcstride;
2719 ff_put_vp8_epel16_h6_mmi(tmp, 16, src, srcstride, h + 3, mx, my);
2729 src -= srcstride;
2733 tmp[x] = FILTER_6TAP(src, filter, 1);
2735 src += srcstride;
2750 void ff_put_vp8_epel8_h6v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2757 src -= srcstride;
2758 ff_put_vp8_epel8_h6_mmi(tmp, 8, src, srcstride, h + 3, mx, my);
2768 src -= srcstride;
2772 tmp[x] = FILTER_6TAP(src, filter, 1);
2774 src += srcstride;
2789 void ff_put_vp8_epel4_h6v4_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2796 src -= srcstride;
2797 ff_put_vp8_epel4_h6_mmi(tmp, 4, src, srcstride, h + 3, mx, my);
2807 src -= srcstride;
2811 tmp[x] = FILTER_6TAP(src, filter, 1);
2813 src += srcstride;
2828 void ff_put_vp8_epel16_h6v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2835 src -= 2 * srcstride;
2836 ff_put_vp8_epel16_h6_mmi(tmp, 16, src, srcstride, h + 5, mx, my);
2846 src -= 2 * srcstride;
2850 tmp[x] = FILTER_6TAP(src, filter, 1);
2852 src += srcstride;
2867 void ff_put_vp8_epel8_h6v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2874 src -= 2 * srcstride;
2875 ff_put_vp8_epel8_h6_mmi(tmp, 8, src, srcstride, h + 5, mx, my);
2885 src -= 2 * srcstride;
2889 tmp[x] = FILTER_6TAP(src, filter, 1);
2891 src += srcstride;
2906 void ff_put_vp8_epel4_h6v6_mmi(uint8_t *dst, ptrdiff_t dststride, uint8_t *src,
2913 src -= 2 * srcstride;
2914 ff_put_vp8_epel4_h6_mmi(tmp, 4, src, srcstride, h + 5, mx, my);
2924 src -= 2 * srcstride;
2928 tmp[x] = FILTER_6TAP(src, filter, 1);
2930 src += srcstride;
2945 void ff_put_vp8_bilinear16_h_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
2958 dst[0] = (a * src[0] + b * src[1] + 4) >> 3;
2959 dst[1] = (a * src[1] + b * src[2] + 4) >> 3;
2960 dst[2] = (a * src[2] + b * src[3] + 4) >> 3;
2961 dst[3] = (a * src[3] + b * src[4] + 4) >> 3;
2962 dst[4] = (a * src[4] + b * src[5] + 4) >> 3;
2963 dst[5] = (a * src[5] + b * src[6] + 4) >> 3;
2964 dst[6] = (a * src[6] + b * src[7] + 4) >> 3;
2965 dst[7] = (a * src[7] + b * src[8] + 4) >> 3;
2967 dst[ 8] = (a * src[ 8] + b * src[ 9] + 4) >> 3;
2968 dst[ 9] = (a * src[ 9] + b * src[10] + 4) >> 3;
2969 dst[10] = (a * src[10] + b * src[11] + 4) >> 3;
2970 dst[11] = (a * src[11] + b * src[12] + 4) >> 3;
2971 dst[12] = (a * src[12] + b * src[13] + 4) >> 3;
2972 dst[13] = (a * src[13] + b * src[14] + 4) >> 3;
2973 dst[14] = (a * src[14] + b * src[15] + 4) >> 3;
2974 dst[15] = (a * src[15] + b * src[16] + 4) >> 3;
2985 PUT_VP8_BILINEAR8_H_MMI(%[src], %[dst])
2986 PTR_ADDIU "%[src0], %[src], 0x08 \n\t"
2992 PTR_ADDU "%[src], %[src], %[sstride] \n\t"
3003 [dst]"+&r"(dst), [src]"+&r"(src),
3016 dst[x] = (a * src[x] + b * src[x + 1] + 4) >> 3;
3018 src += sstride;
3023 void ff_put_vp8_bilinear16_v_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
3036 dst[0] = (c * src[0] + d * src[ sstride] + 4) >> 3;
3037 dst[1] = (c * src[1] + d * src[1 + sstride] + 4) >> 3;
3038 dst[2] = (c * src[2] + d * src[2 + sstride] + 4) >> 3;
3039 dst[3] = (c * src[3] + d * src[3 + sstride] + 4) >> 3;
3040 dst[4] = (c * src[4] + d * src[4 + sstride] + 4) >> 3;
3041 dst[5] = (c * src[5] + d * src[5 + sstride] + 4) >> 3;
3042 dst[6] = (c * src[6] + d * src[6 + sstride] + 4) >> 3;
3043 dst[7] = (c * src[7] + d * src[7 + sstride] + 4) >> 3;
3054 PUT_VP8_BILINEAR8_V_MMI(%[src], %[src1], %[dst], %[sstride])
3055 PTR_ADDIU "%[src0], %[src], 0x08 \n\t"
3061 PTR_ADDU "%[src], %[src], %[sstride] \n\t"
3073 [dst]"+&r"(dst), [src]"+&r"(src),
3086 dst[x] = (c * src[x] + d * src[x + sstride] + 4) >> 3;
3088 src += sstride;
3093 void ff_put_vp8_bilinear16_hv_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
3100 ff_put_vp8_bilinear16_h_mmi(tmp, 16, src, sstride, h + 1, mx, my);
3111 tmp[x] = (a * src[x] + b * src[x + 1] + 4) >> 3;
3113 src += sstride;
3127 void ff_put_vp8_bilinear8_h_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
3139 dst[0] = (a * src[0] + b * src[1] + 4) >> 3;
3140 dst[1] = (a * src[1] + b * src[2] + 4) >> 3;
3141 dst[2] = (a * src[2] + b * src[3] + 4) >> 3;
3142 dst[3] = (a * src[3] + b * src[4] + 4) >> 3;
3143 dst[4] = (a * src[4] + b * src[5] + 4) >> 3;
3144 dst[5] = (a * src[5] + b * src[6] + 4) >> 3;
3145 dst[6] = (a * src[6] + b * src[7] + 4) >> 3;
3146 dst[7] = (a * src[7] + b * src[8] + 4) >> 3;
3156 PUT_VP8_BILINEAR8_H_MMI(%[src], %[dst])
3159 PTR_ADDU "%[src], %[src], %[sstride] \n\t"
3169 [dst]"+&r"(dst), [src]"+&r"(src),
3182 dst[x] = (a * src[x] + b * src[x + 1] + 4) >> 3;
3184 src += sstride;
3189 void ff_put_vp8_bilinear8_v_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
3202 dst[0] = (c * src[0] + d * src[ sstride] + 4) >> 3;
3203 dst[1] = (c * src[1] + d * src[1 + sstride] + 4) >> 3;
3204 dst[2] = (c * src[2] + d * src[2 + sstride] + 4) >> 3;
3205 dst[3] = (c * src[3] + d * src[3 + sstride] + 4) >> 3;
3206 dst[4] = (c * src[4] + d * src[4 + sstride] + 4) >> 3;
3207 dst[5] = (c * src[5] + d * src[5 + sstride] + 4) >> 3;
3208 dst[6] = (c * src[6] + d * src[6 + sstride] + 4) >> 3;
3209 dst[7] = (c * src[7] + d * src[7 + sstride] + 4) >> 3;
3219 PUT_VP8_BILINEAR8_V_MMI(%[src], %[src1], %[dst], %[sstride])
3222 PTR_ADDU "%[src], %[src], %[sstride] \n\t"
3233 [dst]"+&r"(dst), [src]"+&r"(src),
3246 dst[x] = (c * src[x] + d * src[x + sstride] + 4) >> 3;
3248 src += sstride;
3253 void ff_put_vp8_bilinear8_hv_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
3260 ff_put_vp8_bilinear8_h_mmi(tmp, 8, src, sstride, h + 1, mx, my);
3271 tmp[x] = (a * src[x] + b * src[x + 1] + 4) >> 3;
3273 src += sstride;
3287 void ff_put_vp8_bilinear4_h_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
3300 dst[0] = (a * src[0] + b * src[1] + 4) >> 3;
3301 dst[1] = (a * src[1] + b * src[2] + 4) >> 3;
3302 dst[2] = (a * src[2] + b * src[3] + 4) >> 3;
3303 dst[3] = (a * src[3] + b * src[4] + 4) >> 3;
3313 PUT_VP8_BILINEAR4_H_MMI(%[src], %[dst])
3316 PTR_ADDU "%[src], %[src], %[sstride] \n\t"
3326 [dst]"+&r"(dst), [src]"+&r"(src),
3339 dst[x] = (a * src[x] + b * src[x + 1] + 4) >> 3;
3341 src += sstride;
3346 void ff_put_vp8_bilinear4_v_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
3360 dst[0] = (c * src[0] + d * src[ sstride] + 4) >> 3;
3361 dst[1] = (c * src[1] + d * src[1 + sstride] + 4) >> 3;
3362 dst[2] = (c * src[2] + d * src[2 + sstride] + 4) >> 3;
3363 dst[3] = (c * src[3] + d * src[3 + sstride] + 4) >> 3;
3373 PUT_VP8_BILINEAR4_V_MMI(%[src], %[src1], %[dst], %[sstride])
3376 PTR_ADDU "%[src], %[src], %[sstride] \n\t"
3387 [dst]"+&r"(dst), [src]"+&r"(src),
3400 dst[x] = (c * src[x] + d * src[x + sstride] + 4) >> 3;
3402 src += sstride;
3407 void ff_put_vp8_bilinear4_hv_mmi(uint8_t *dst, ptrdiff_t dstride, uint8_t *src,
3414 ff_put_vp8_bilinear4_h_mmi(tmp, 4, src, sstride, h + 1, mx, my);
3425 tmp[x] = (a * src[x] + b * src[x + 1] + 4) >> 3;
3427 src += sstride;