Mercurial > libavcodec.hg
comparison sparc/dsputil_vis.c @ 11458:bf6d274fef39 libavcodec
sparc: fix a few pages of cast warnings
| author | mru |
|---|---|
| date | Wed, 10 Mar 2010 22:24:46 +0000 |
| parents | 766ca433df3b |
| children | 7be32921237f |
comparison
equal
deleted
inserted
replaced
| 11457:766ca433df3b | 11458:bf6d274fef39 |
|---|---|
| 118 #define TMP26 52 | 118 #define TMP26 52 |
| 119 #define TMP28 54 | 119 #define TMP28 54 |
| 120 #define TMP30 56 | 120 #define TMP30 56 |
| 121 #define TMP32 58 | 121 #define TMP32 58 |
| 122 | 122 |
| 123 static void MC_put_o_16_vis (uint8_t * dest, const uint8_t * _ref, | 123 static void MC_put_o_16_vis (uint8_t * dest, const uint8_t * ref, |
| 124 const int stride, int height) | 124 const int stride, int height) |
| 125 { | 125 { |
| 126 uint8_t *ref = (uint8_t *) _ref; | |
| 127 | |
| 128 ref = vis_alignaddr(ref); | 126 ref = vis_alignaddr(ref); |
| 129 do { /* 5 cycles */ | 127 do { /* 5 cycles */ |
| 130 vis_ld64(ref[0], TMP0); | 128 vis_ld64(ref[0], TMP0); |
| 131 | 129 |
| 132 vis_ld64_2(ref, 8, TMP2); | 130 vis_ld64_2(ref, 8, TMP2); |
| 141 vis_st64_2(REF_2, dest, 8); | 139 vis_st64_2(REF_2, dest, 8); |
| 142 dest += stride; | 140 dest += stride; |
| 143 } while (--height); | 141 } while (--height); |
| 144 } | 142 } |
| 145 | 143 |
| 146 static void MC_put_o_8_vis (uint8_t * dest, const uint8_t * _ref, | 144 static void MC_put_o_8_vis (uint8_t * dest, const uint8_t * ref, |
| 147 const int stride, int height) | 145 const int stride, int height) |
| 148 { | 146 { |
| 149 uint8_t *ref = (uint8_t *) _ref; | |
| 150 | |
| 151 ref = vis_alignaddr(ref); | 147 ref = vis_alignaddr(ref); |
| 152 do { /* 4 cycles */ | 148 do { /* 4 cycles */ |
| 153 vis_ld64(ref[0], TMP0); | 149 vis_ld64(ref[0], TMP0); |
| 154 | 150 |
| 155 vis_ld64(ref[8], TMP2); | 151 vis_ld64(ref[8], TMP2); |
| 162 dest += stride; | 158 dest += stride; |
| 163 } while (--height); | 159 } while (--height); |
| 164 } | 160 } |
| 165 | 161 |
| 166 | 162 |
| 167 static void MC_avg_o_16_vis (uint8_t * dest, const uint8_t * _ref, | 163 static void MC_avg_o_16_vis (uint8_t * dest, const uint8_t * ref, |
| 168 const int stride, int height) | 164 const int stride, int height) |
| 169 { | 165 { |
| 170 uint8_t *ref = (uint8_t *) _ref; | |
| 171 int stride_8 = stride + 8; | 166 int stride_8 = stride + 8; |
| 172 | 167 |
| 173 ref = vis_alignaddr(ref); | 168 ref = vis_alignaddr(ref); |
| 174 | 169 |
| 175 vis_ld64(ref[0], TMP0); | 170 vis_ld64(ref[0], TMP0); |
| 323 | 318 |
| 324 vis_psub16(TMP26, TMP22, TMP22); | 319 vis_psub16(TMP26, TMP22, TMP22); |
| 325 vis_st64_2(TMP22, dest, 8); | 320 vis_st64_2(TMP22, dest, 8); |
| 326 } | 321 } |
| 327 | 322 |
| 328 static void MC_avg_o_8_vis (uint8_t * dest, const uint8_t * _ref, | 323 static void MC_avg_o_8_vis (uint8_t * dest, const uint8_t * ref, |
| 329 const int stride, int height) | 324 const int stride, int height) |
| 330 { | 325 { |
| 331 uint8_t *ref = (uint8_t *) _ref; | |
| 332 | |
| 333 ref = vis_alignaddr(ref); | 326 ref = vis_alignaddr(ref); |
| 334 | 327 |
| 335 vis_ld64(ref[0], TMP0); | 328 vis_ld64(ref[0], TMP0); |
| 336 | 329 |
| 337 vis_ld64(ref[8], TMP2); | 330 vis_ld64(ref[8], TMP2); |
| 417 | 410 |
| 418 vis_psub16(TMP6, TMP0, TMP4); | 411 vis_psub16(TMP6, TMP0, TMP4); |
| 419 vis_st64(TMP4, dest[0]); | 412 vis_st64(TMP4, dest[0]); |
| 420 } | 413 } |
| 421 | 414 |
| 422 static void MC_put_x_16_vis (uint8_t * dest, const uint8_t * _ref, | 415 static void MC_put_x_16_vis (uint8_t * dest, const uint8_t * ref, |
| 423 const int stride, int height) | 416 const int stride, int height) |
| 424 { | 417 { |
| 425 uint8_t *ref = (uint8_t *) _ref; | |
| 426 unsigned long off = (unsigned long) ref & 0x7; | 418 unsigned long off = (unsigned long) ref & 0x7; |
| 427 unsigned long off_plus_1 = off + 1; | 419 unsigned long off_plus_1 = off + 1; |
| 428 | 420 |
| 429 ref = vis_alignaddr(ref); | 421 ref = vis_alignaddr(ref); |
| 430 | 422 |
| 610 | 602 |
| 611 vis_psub16(TMP12, TMP8, TMP8); | 603 vis_psub16(TMP12, TMP8, TMP8); |
| 612 vis_st64_2(TMP8, dest, 8); | 604 vis_st64_2(TMP8, dest, 8); |
| 613 } | 605 } |
| 614 | 606 |
| 615 static void MC_put_x_8_vis (uint8_t * dest, const uint8_t * _ref, | 607 static void MC_put_x_8_vis (uint8_t * dest, const uint8_t * ref, |
| 616 const int stride, int height) | 608 const int stride, int height) |
| 617 { | 609 { |
| 618 uint8_t *ref = (uint8_t *) _ref; | |
| 619 unsigned long off = (unsigned long) ref & 0x7; | 610 unsigned long off = (unsigned long) ref & 0x7; |
| 620 unsigned long off_plus_1 = off + 1; | 611 unsigned long off_plus_1 = off + 1; |
| 621 | 612 |
| 622 ref = vis_alignaddr(ref); | 613 ref = vis_alignaddr(ref); |
| 623 | 614 |
| 734 vis_psub16(TMP14, TMP12, DST_0); | 725 vis_psub16(TMP14, TMP12, DST_0); |
| 735 vis_st64(DST_0, dest[0]); | 726 vis_st64(DST_0, dest[0]); |
| 736 dest += stride; | 727 dest += stride; |
| 737 } | 728 } |
| 738 | 729 |
| 739 static void MC_avg_x_16_vis (uint8_t * dest, const uint8_t * _ref, | 730 static void MC_avg_x_16_vis (uint8_t * dest, const uint8_t * ref, |
| 740 const int stride, int height) | 731 const int stride, int height) |
| 741 { | 732 { |
| 742 uint8_t *ref = (uint8_t *) _ref; | |
| 743 unsigned long off = (unsigned long) ref & 0x7; | 733 unsigned long off = (unsigned long) ref & 0x7; |
| 744 unsigned long off_plus_1 = off + 1; | 734 unsigned long off_plus_1 = off + 1; |
| 745 | 735 |
| 746 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 736 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 747 | 737 |
| 825 ref += stride; | 815 ref += stride; |
| 826 dest += stride; | 816 dest += stride; |
| 827 } while (--height); | 817 } while (--height); |
| 828 } | 818 } |
| 829 | 819 |
| 830 static void MC_avg_x_8_vis (uint8_t * dest, const uint8_t * _ref, | 820 static void MC_avg_x_8_vis (uint8_t * dest, const uint8_t * ref, |
| 831 const int stride, int height) | 821 const int stride, int height) |
| 832 { | 822 { |
| 833 uint8_t *ref = (uint8_t *) _ref; | |
| 834 unsigned long off = (unsigned long) ref & 0x7; | 823 unsigned long off = (unsigned long) ref & 0x7; |
| 835 unsigned long off_plus_1 = off + 1; | 824 unsigned long off_plus_1 = off + 1; |
| 836 int stride_times_2 = stride << 1; | 825 int stride_times_2 = stride << 1; |
| 837 | 826 |
| 838 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 827 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 991 vis_st64(DST_2, dest[0]); | 980 vis_st64(DST_2, dest[0]); |
| 992 dest += stride; | 981 dest += stride; |
| 993 } while (--height); | 982 } while (--height); |
| 994 } | 983 } |
| 995 | 984 |
| 996 static void MC_put_y_16_vis (uint8_t * dest, const uint8_t * _ref, | 985 static void MC_put_y_16_vis (uint8_t * dest, const uint8_t * ref, |
| 997 const int stride, int height) | 986 const int stride, int height) |
| 998 { | 987 { |
| 999 uint8_t *ref = (uint8_t *) _ref; | |
| 1000 | |
| 1001 ref = vis_alignaddr(ref); | 988 ref = vis_alignaddr(ref); |
| 1002 vis_ld64(ref[0], TMP0); | 989 vis_ld64(ref[0], TMP0); |
| 1003 | 990 |
| 1004 vis_ld64_2(ref, 8, TMP2); | 991 vis_ld64_2(ref, 8, TMP2); |
| 1005 | 992 |
| 1147 | 1134 |
| 1148 vis_psub16(TMP18, TMP2, TMP2); | 1135 vis_psub16(TMP18, TMP2, TMP2); |
| 1149 vis_st64_2(TMP2, dest, 8); | 1136 vis_st64_2(TMP2, dest, 8); |
| 1150 } | 1137 } |
| 1151 | 1138 |
| 1152 static void MC_put_y_8_vis (uint8_t * dest, const uint8_t * _ref, | 1139 static void MC_put_y_8_vis (uint8_t * dest, const uint8_t * ref, |
| 1153 const int stride, int height) | 1140 const int stride, int height) |
| 1154 { | 1141 { |
| 1155 uint8_t *ref = (uint8_t *) _ref; | |
| 1156 | |
| 1157 ref = vis_alignaddr(ref); | 1142 ref = vis_alignaddr(ref); |
| 1158 vis_ld64(ref[0], TMP0); | 1143 vis_ld64(ref[0], TMP0); |
| 1159 | 1144 |
| 1160 vis_ld64_2(ref, 8, TMP2); | 1145 vis_ld64_2(ref, 8, TMP2); |
| 1161 ref += stride; | 1146 ref += stride; |
| 1239 | 1224 |
| 1240 vis_psub16(TMP14, TMP12, DST_0); | 1225 vis_psub16(TMP14, TMP12, DST_0); |
| 1241 vis_st64(DST_0, dest[0]); | 1226 vis_st64(DST_0, dest[0]); |
| 1242 } | 1227 } |
| 1243 | 1228 |
| 1244 static void MC_avg_y_16_vis (uint8_t * dest, const uint8_t * _ref, | 1229 static void MC_avg_y_16_vis (uint8_t * dest, const uint8_t * ref, |
| 1245 const int stride, int height) | 1230 const int stride, int height) |
| 1246 { | 1231 { |
| 1247 uint8_t *ref = (uint8_t *) _ref; | |
| 1248 int stride_8 = stride + 8; | 1232 int stride_8 = stride + 8; |
| 1249 int stride_16 = stride + 16; | 1233 int stride_16 = stride + 16; |
| 1250 | 1234 |
| 1251 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 1235 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 1252 | 1236 |
| 1368 vis_st64_2(DST_2, dest, 8); | 1352 vis_st64_2(DST_2, dest, 8); |
| 1369 dest += stride; | 1353 dest += stride; |
| 1370 } while (--height); | 1354 } while (--height); |
| 1371 } | 1355 } |
| 1372 | 1356 |
| 1373 static void MC_avg_y_8_vis (uint8_t * dest, const uint8_t * _ref, | 1357 static void MC_avg_y_8_vis (uint8_t * dest, const uint8_t * ref, |
| 1374 const int stride, int height) | 1358 const int stride, int height) |
| 1375 { | 1359 { |
| 1376 uint8_t *ref = (uint8_t *) _ref; | |
| 1377 int stride_8 = stride + 8; | 1360 int stride_8 = stride + 8; |
| 1378 | 1361 |
| 1379 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 1362 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 1380 | 1363 |
| 1381 ref = vis_alignaddr(ref); | 1364 ref = vis_alignaddr(ref); |
| 1448 vis_st64(DST_2, dest[0]); | 1431 vis_st64(DST_2, dest[0]); |
| 1449 dest += stride; | 1432 dest += stride; |
| 1450 } while (--height); | 1433 } while (--height); |
| 1451 } | 1434 } |
| 1452 | 1435 |
| 1453 static void MC_put_xy_16_vis (uint8_t * dest, const uint8_t * _ref, | 1436 static void MC_put_xy_16_vis (uint8_t * dest, const uint8_t * ref, |
| 1454 const int stride, int height) | 1437 const int stride, int height) |
| 1455 { | 1438 { |
| 1456 uint8_t *ref = (uint8_t *) _ref; | |
| 1457 unsigned long off = (unsigned long) ref & 0x7; | 1439 unsigned long off = (unsigned long) ref & 0x7; |
| 1458 unsigned long off_plus_1 = off + 1; | 1440 unsigned long off_plus_1 = off + 1; |
| 1459 int stride_8 = stride + 8; | 1441 int stride_8 = stride + 8; |
| 1460 int stride_16 = stride + 16; | 1442 int stride_16 = stride + 16; |
| 1461 | 1443 |
| 1613 vis_st64_2(DST_2, dest, 8); | 1595 vis_st64_2(DST_2, dest, 8); |
| 1614 dest += stride; | 1596 dest += stride; |
| 1615 } while (--height); | 1597 } while (--height); |
| 1616 } | 1598 } |
| 1617 | 1599 |
| 1618 static void MC_put_xy_8_vis (uint8_t * dest, const uint8_t * _ref, | 1600 static void MC_put_xy_8_vis (uint8_t * dest, const uint8_t * ref, |
| 1619 const int stride, int height) | 1601 const int stride, int height) |
| 1620 { | 1602 { |
| 1621 uint8_t *ref = (uint8_t *) _ref; | |
| 1622 unsigned long off = (unsigned long) ref & 0x7; | 1603 unsigned long off = (unsigned long) ref & 0x7; |
| 1623 unsigned long off_plus_1 = off + 1; | 1604 unsigned long off_plus_1 = off + 1; |
| 1624 int stride_8 = stride + 8; | 1605 int stride_8 = stride + 8; |
| 1625 | 1606 |
| 1626 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 1607 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 1718 vis_st64(DST_2, dest[0]); | 1699 vis_st64(DST_2, dest[0]); |
| 1719 dest += stride; | 1700 dest += stride; |
| 1720 } while (--height); | 1701 } while (--height); |
| 1721 } | 1702 } |
| 1722 | 1703 |
| 1723 static void MC_avg_xy_16_vis (uint8_t * dest, const uint8_t * _ref, | 1704 static void MC_avg_xy_16_vis (uint8_t * dest, const uint8_t * ref, |
| 1724 const int stride, int height) | 1705 const int stride, int height) |
| 1725 { | 1706 { |
| 1726 uint8_t *ref = (uint8_t *) _ref; | |
| 1727 unsigned long off = (unsigned long) ref & 0x7; | 1707 unsigned long off = (unsigned long) ref & 0x7; |
| 1728 unsigned long off_plus_1 = off + 1; | 1708 unsigned long off_plus_1 = off + 1; |
| 1729 int stride_8 = stride + 8; | 1709 int stride_8 = stride + 8; |
| 1730 int stride_16 = stride + 16; | 1710 int stride_16 = stride + 16; |
| 1731 | 1711 |
| 1915 vis_st64_2(DST_2, dest, 8); | 1895 vis_st64_2(DST_2, dest, 8); |
| 1916 dest += stride; | 1896 dest += stride; |
| 1917 } while (--height); | 1897 } while (--height); |
| 1918 } | 1898 } |
| 1919 | 1899 |
| 1920 static void MC_avg_xy_8_vis (uint8_t * dest, const uint8_t * _ref, | 1900 static void MC_avg_xy_8_vis (uint8_t * dest, const uint8_t * ref, |
| 1921 const int stride, int height) | 1901 const int stride, int height) |
| 1922 { | 1902 { |
| 1923 uint8_t *ref = (uint8_t *) _ref; | |
| 1924 unsigned long off = (unsigned long) ref & 0x7; | 1903 unsigned long off = (unsigned long) ref & 0x7; |
| 1925 unsigned long off_plus_1 = off + 1; | 1904 unsigned long off_plus_1 = off + 1; |
| 1926 int stride_8 = stride + 8; | 1905 int stride_8 = stride + 8; |
| 1927 | 1906 |
| 1928 vis_set_gsr(4 << VIS_GSR_SCALEFACT_SHIFT); | 1907 vis_set_gsr(4 << VIS_GSR_SCALEFACT_SHIFT); |
| 2059 * fand f10, f6, f10 | 2038 * fand f10, f6, f10 |
| 2060 * fand f0, f2, f12 | 2039 * fand f0, f2, f12 |
| 2061 * fpadd16 f12, f10, f10 | 2040 * fpadd16 f12, f10, f10 |
| 2062 */ | 2041 */ |
| 2063 | 2042 |
| 2064 static void MC_put_no_round_o_16_vis (uint8_t * dest, const uint8_t * _ref, | 2043 static void MC_put_no_round_o_16_vis (uint8_t * dest, const uint8_t * ref, |
| 2065 const int stride, int height) | 2044 const int stride, int height) |
| 2066 { | 2045 { |
| 2067 uint8_t *ref = (uint8_t *) _ref; | |
| 2068 | |
| 2069 ref = vis_alignaddr(ref); | 2046 ref = vis_alignaddr(ref); |
| 2070 do { /* 5 cycles */ | 2047 do { /* 5 cycles */ |
| 2071 vis_ld64(ref[0], TMP0); | 2048 vis_ld64(ref[0], TMP0); |
| 2072 | 2049 |
| 2073 vis_ld64_2(ref, 8, TMP2); | 2050 vis_ld64_2(ref, 8, TMP2); |
| 2082 vis_st64_2(REF_2, dest, 8); | 2059 vis_st64_2(REF_2, dest, 8); |
| 2083 dest += stride; | 2060 dest += stride; |
| 2084 } while (--height); | 2061 } while (--height); |
| 2085 } | 2062 } |
| 2086 | 2063 |
| 2087 static void MC_put_no_round_o_8_vis (uint8_t * dest, const uint8_t * _ref, | 2064 static void MC_put_no_round_o_8_vis (uint8_t * dest, const uint8_t * ref, |
| 2088 const int stride, int height) | 2065 const int stride, int height) |
| 2089 { | 2066 { |
| 2090 uint8_t *ref = (uint8_t *) _ref; | |
| 2091 | |
| 2092 ref = vis_alignaddr(ref); | 2067 ref = vis_alignaddr(ref); |
| 2093 do { /* 4 cycles */ | 2068 do { /* 4 cycles */ |
| 2094 vis_ld64(ref[0], TMP0); | 2069 vis_ld64(ref[0], TMP0); |
| 2095 | 2070 |
| 2096 vis_ld64(ref[8], TMP2); | 2071 vis_ld64(ref[8], TMP2); |
| 2103 dest += stride; | 2078 dest += stride; |
| 2104 } while (--height); | 2079 } while (--height); |
| 2105 } | 2080 } |
| 2106 | 2081 |
| 2107 | 2082 |
| 2108 static void MC_avg_no_round_o_16_vis (uint8_t * dest, const uint8_t * _ref, | 2083 static void MC_avg_no_round_o_16_vis (uint8_t * dest, const uint8_t * ref, |
| 2109 const int stride, int height) | 2084 const int stride, int height) |
| 2110 { | 2085 { |
| 2111 uint8_t *ref = (uint8_t *) _ref; | |
| 2112 int stride_8 = stride + 8; | 2086 int stride_8 = stride + 8; |
| 2113 | 2087 |
| 2114 ref = vis_alignaddr(ref); | 2088 ref = vis_alignaddr(ref); |
| 2115 | 2089 |
| 2116 vis_ld64(ref[0], TMP0); | 2090 vis_ld64(ref[0], TMP0); |
| 2264 | 2238 |
| 2265 vis_padd16(TMP26, TMP22, TMP22); | 2239 vis_padd16(TMP26, TMP22, TMP22); |
| 2266 vis_st64_2(TMP22, dest, 8); | 2240 vis_st64_2(TMP22, dest, 8); |
| 2267 } | 2241 } |
| 2268 | 2242 |
| 2269 static void MC_avg_no_round_o_8_vis (uint8_t * dest, const uint8_t * _ref, | 2243 static void MC_avg_no_round_o_8_vis (uint8_t * dest, const uint8_t * ref, |
| 2270 const int stride, int height) | 2244 const int stride, int height) |
| 2271 { | 2245 { |
| 2272 uint8_t *ref = (uint8_t *) _ref; | |
| 2273 | |
| 2274 ref = vis_alignaddr(ref); | 2246 ref = vis_alignaddr(ref); |
| 2275 | 2247 |
| 2276 vis_ld64(ref[0], TMP0); | 2248 vis_ld64(ref[0], TMP0); |
| 2277 | 2249 |
| 2278 vis_ld64(ref[8], TMP2); | 2250 vis_ld64(ref[8], TMP2); |
| 2358 | 2330 |
| 2359 vis_padd16(TMP6, TMP0, TMP4); | 2331 vis_padd16(TMP6, TMP0, TMP4); |
| 2360 vis_st64(TMP4, dest[0]); | 2332 vis_st64(TMP4, dest[0]); |
| 2361 } | 2333 } |
| 2362 | 2334 |
| 2363 static void MC_put_no_round_x_16_vis (uint8_t * dest, const uint8_t * _ref, | 2335 static void MC_put_no_round_x_16_vis (uint8_t * dest, const uint8_t * ref, |
| 2364 const int stride, int height) | 2336 const int stride, int height) |
| 2365 { | 2337 { |
| 2366 uint8_t *ref = (uint8_t *) _ref; | |
| 2367 unsigned long off = (unsigned long) ref & 0x7; | 2338 unsigned long off = (unsigned long) ref & 0x7; |
| 2368 unsigned long off_plus_1 = off + 1; | 2339 unsigned long off_plus_1 = off + 1; |
| 2369 | 2340 |
| 2370 ref = vis_alignaddr(ref); | 2341 ref = vis_alignaddr(ref); |
| 2371 | 2342 |
| 2551 | 2522 |
| 2552 vis_padd16(TMP12, TMP8, TMP8); | 2523 vis_padd16(TMP12, TMP8, TMP8); |
| 2553 vis_st64_2(TMP8, dest, 8); | 2524 vis_st64_2(TMP8, dest, 8); |
| 2554 } | 2525 } |
| 2555 | 2526 |
| 2556 static void MC_put_no_round_x_8_vis (uint8_t * dest, const uint8_t * _ref, | 2527 static void MC_put_no_round_x_8_vis (uint8_t * dest, const uint8_t * ref, |
| 2557 const int stride, int height) | 2528 const int stride, int height) |
| 2558 { | 2529 { |
| 2559 uint8_t *ref = (uint8_t *) _ref; | |
| 2560 unsigned long off = (unsigned long) ref & 0x7; | 2530 unsigned long off = (unsigned long) ref & 0x7; |
| 2561 unsigned long off_plus_1 = off + 1; | 2531 unsigned long off_plus_1 = off + 1; |
| 2562 | 2532 |
| 2563 ref = vis_alignaddr(ref); | 2533 ref = vis_alignaddr(ref); |
| 2564 | 2534 |
| 2675 vis_padd16(TMP14, TMP12, DST_0); | 2645 vis_padd16(TMP14, TMP12, DST_0); |
| 2676 vis_st64(DST_0, dest[0]); | 2646 vis_st64(DST_0, dest[0]); |
| 2677 dest += stride; | 2647 dest += stride; |
| 2678 } | 2648 } |
| 2679 | 2649 |
| 2680 static void MC_avg_no_round_x_16_vis (uint8_t * dest, const uint8_t * _ref, | 2650 static void MC_avg_no_round_x_16_vis (uint8_t * dest, const uint8_t * ref, |
| 2681 const int stride, int height) | 2651 const int stride, int height) |
| 2682 { | 2652 { |
| 2683 uint8_t *ref = (uint8_t *) _ref; | |
| 2684 unsigned long off = (unsigned long) ref & 0x7; | 2653 unsigned long off = (unsigned long) ref & 0x7; |
| 2685 unsigned long off_plus_1 = off + 1; | 2654 unsigned long off_plus_1 = off + 1; |
| 2686 | 2655 |
| 2687 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 2656 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 2688 | 2657 |
| 2766 ref += stride; | 2735 ref += stride; |
| 2767 dest += stride; | 2736 dest += stride; |
| 2768 } while (--height); | 2737 } while (--height); |
| 2769 } | 2738 } |
| 2770 | 2739 |
| 2771 static void MC_avg_no_round_x_8_vis (uint8_t * dest, const uint8_t * _ref, | 2740 static void MC_avg_no_round_x_8_vis (uint8_t * dest, const uint8_t * ref, |
| 2772 const int stride, int height) | 2741 const int stride, int height) |
| 2773 { | 2742 { |
| 2774 uint8_t *ref = (uint8_t *) _ref; | |
| 2775 unsigned long off = (unsigned long) ref & 0x7; | 2743 unsigned long off = (unsigned long) ref & 0x7; |
| 2776 unsigned long off_plus_1 = off + 1; | 2744 unsigned long off_plus_1 = off + 1; |
| 2777 int stride_times_2 = stride << 1; | 2745 int stride_times_2 = stride << 1; |
| 2778 | 2746 |
| 2779 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 2747 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 2932 vis_st64(DST_2, dest[0]); | 2900 vis_st64(DST_2, dest[0]); |
| 2933 dest += stride; | 2901 dest += stride; |
| 2934 } while (--height); | 2902 } while (--height); |
| 2935 } | 2903 } |
| 2936 | 2904 |
| 2937 static void MC_put_no_round_y_16_vis (uint8_t * dest, const uint8_t * _ref, | 2905 static void MC_put_no_round_y_16_vis (uint8_t * dest, const uint8_t * ref, |
| 2938 const int stride, int height) | 2906 const int stride, int height) |
| 2939 { | 2907 { |
| 2940 uint8_t *ref = (uint8_t *) _ref; | |
| 2941 | |
| 2942 ref = vis_alignaddr(ref); | 2908 ref = vis_alignaddr(ref); |
| 2943 vis_ld64(ref[0], TMP0); | 2909 vis_ld64(ref[0], TMP0); |
| 2944 | 2910 |
| 2945 vis_ld64_2(ref, 8, TMP2); | 2911 vis_ld64_2(ref, 8, TMP2); |
| 2946 | 2912 |
| 3088 | 3054 |
| 3089 vis_padd16(TMP18, TMP2, TMP2); | 3055 vis_padd16(TMP18, TMP2, TMP2); |
| 3090 vis_st64_2(TMP2, dest, 8); | 3056 vis_st64_2(TMP2, dest, 8); |
| 3091 } | 3057 } |
| 3092 | 3058 |
| 3093 static void MC_put_no_round_y_8_vis (uint8_t * dest, const uint8_t * _ref, | 3059 static void MC_put_no_round_y_8_vis (uint8_t * dest, const uint8_t * ref, |
| 3094 const int stride, int height) | 3060 const int stride, int height) |
| 3095 { | 3061 { |
| 3096 uint8_t *ref = (uint8_t *) _ref; | |
| 3097 | |
| 3098 ref = vis_alignaddr(ref); | 3062 ref = vis_alignaddr(ref); |
| 3099 vis_ld64(ref[0], TMP0); | 3063 vis_ld64(ref[0], TMP0); |
| 3100 | 3064 |
| 3101 vis_ld64_2(ref, 8, TMP2); | 3065 vis_ld64_2(ref, 8, TMP2); |
| 3102 ref += stride; | 3066 ref += stride; |
| 3180 | 3144 |
| 3181 vis_padd16(TMP14, TMP12, DST_0); | 3145 vis_padd16(TMP14, TMP12, DST_0); |
| 3182 vis_st64(DST_0, dest[0]); | 3146 vis_st64(DST_0, dest[0]); |
| 3183 } | 3147 } |
| 3184 | 3148 |
| 3185 static void MC_avg_no_round_y_16_vis (uint8_t * dest, const uint8_t * _ref, | 3149 static void MC_avg_no_round_y_16_vis (uint8_t * dest, const uint8_t * ref, |
| 3186 const int stride, int height) | 3150 const int stride, int height) |
| 3187 { | 3151 { |
| 3188 uint8_t *ref = (uint8_t *) _ref; | |
| 3189 int stride_8 = stride + 8; | 3152 int stride_8 = stride + 8; |
| 3190 int stride_16 = stride + 16; | 3153 int stride_16 = stride + 16; |
| 3191 | 3154 |
| 3192 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 3155 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 3193 | 3156 |
| 3309 vis_st64_2(DST_2, dest, 8); | 3272 vis_st64_2(DST_2, dest, 8); |
| 3310 dest += stride; | 3273 dest += stride; |
| 3311 } while (--height); | 3274 } while (--height); |
| 3312 } | 3275 } |
| 3313 | 3276 |
| 3314 static void MC_avg_no_round_y_8_vis (uint8_t * dest, const uint8_t * _ref, | 3277 static void MC_avg_no_round_y_8_vis (uint8_t * dest, const uint8_t * ref, |
| 3315 const int stride, int height) | 3278 const int stride, int height) |
| 3316 { | 3279 { |
| 3317 uint8_t *ref = (uint8_t *) _ref; | |
| 3318 int stride_8 = stride + 8; | 3280 int stride_8 = stride + 8; |
| 3319 | 3281 |
| 3320 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 3282 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 3321 | 3283 |
| 3322 ref = vis_alignaddr(ref); | 3284 ref = vis_alignaddr(ref); |
| 3389 vis_st64(DST_2, dest[0]); | 3351 vis_st64(DST_2, dest[0]); |
| 3390 dest += stride; | 3352 dest += stride; |
| 3391 } while (--height); | 3353 } while (--height); |
| 3392 } | 3354 } |
| 3393 | 3355 |
| 3394 static void MC_put_no_round_xy_16_vis (uint8_t * dest, const uint8_t * _ref, | 3356 static void MC_put_no_round_xy_16_vis (uint8_t * dest, const uint8_t * ref, |
| 3395 const int stride, int height) | 3357 const int stride, int height) |
| 3396 { | 3358 { |
| 3397 uint8_t *ref = (uint8_t *) _ref; | |
| 3398 unsigned long off = (unsigned long) ref & 0x7; | 3359 unsigned long off = (unsigned long) ref & 0x7; |
| 3399 unsigned long off_plus_1 = off + 1; | 3360 unsigned long off_plus_1 = off + 1; |
| 3400 int stride_8 = stride + 8; | 3361 int stride_8 = stride + 8; |
| 3401 int stride_16 = stride + 16; | 3362 int stride_16 = stride + 16; |
| 3402 | 3363 |
| 3554 vis_st64_2(DST_2, dest, 8); | 3515 vis_st64_2(DST_2, dest, 8); |
| 3555 dest += stride; | 3516 dest += stride; |
| 3556 } while (--height); | 3517 } while (--height); |
| 3557 } | 3518 } |
| 3558 | 3519 |
| 3559 static void MC_put_no_round_xy_8_vis (uint8_t * dest, const uint8_t * _ref, | 3520 static void MC_put_no_round_xy_8_vis (uint8_t * dest, const uint8_t * ref, |
| 3560 const int stride, int height) | 3521 const int stride, int height) |
| 3561 { | 3522 { |
| 3562 uint8_t *ref = (uint8_t *) _ref; | |
| 3563 unsigned long off = (unsigned long) ref & 0x7; | 3523 unsigned long off = (unsigned long) ref & 0x7; |
| 3564 unsigned long off_plus_1 = off + 1; | 3524 unsigned long off_plus_1 = off + 1; |
| 3565 int stride_8 = stride + 8; | 3525 int stride_8 = stride + 8; |
| 3566 | 3526 |
| 3567 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); | 3527 vis_set_gsr(5 << VIS_GSR_SCALEFACT_SHIFT); |
| 3659 vis_st64(DST_2, dest[0]); | 3619 vis_st64(DST_2, dest[0]); |
| 3660 dest += stride; | 3620 dest += stride; |
| 3661 } while (--height); | 3621 } while (--height); |
| 3662 } | 3622 } |
| 3663 | 3623 |
| 3664 static void MC_avg_no_round_xy_16_vis (uint8_t * dest, const uint8_t * _ref, | 3624 static void MC_avg_no_round_xy_16_vis (uint8_t * dest, const uint8_t * ref, |
| 3665 const int stride, int height) | 3625 const int stride, int height) |
| 3666 { | 3626 { |
| 3667 uint8_t *ref = (uint8_t *) _ref; | |
| 3668 unsigned long off = (unsigned long) ref & 0x7; | 3627 unsigned long off = (unsigned long) ref & 0x7; |
| 3669 unsigned long off_plus_1 = off + 1; | 3628 unsigned long off_plus_1 = off + 1; |
| 3670 int stride_8 = stride + 8; | 3629 int stride_8 = stride + 8; |
| 3671 int stride_16 = stride + 16; | 3630 int stride_16 = stride + 16; |
| 3672 | 3631 |
| 3856 vis_st64_2(DST_2, dest, 8); | 3815 vis_st64_2(DST_2, dest, 8); |
| 3857 dest += stride; | 3816 dest += stride; |
| 3858 } while (--height); | 3817 } while (--height); |
| 3859 } | 3818 } |
| 3860 | 3819 |
| 3861 static void MC_avg_no_round_xy_8_vis (uint8_t * dest, const uint8_t * _ref, | 3820 static void MC_avg_no_round_xy_8_vis (uint8_t * dest, const uint8_t * ref, |
| 3862 const int stride, int height) | 3821 const int stride, int height) |
| 3863 { | 3822 { |
| 3864 uint8_t *ref = (uint8_t *) _ref; | |
| 3865 unsigned long off = (unsigned long) ref & 0x7; | 3823 unsigned long off = (unsigned long) ref & 0x7; |
| 3866 unsigned long off_plus_1 = off + 1; | 3824 unsigned long off_plus_1 = off + 1; |
| 3867 int stride_8 = stride + 8; | 3825 int stride_8 = stride + 8; |
| 3868 | 3826 |
| 3869 vis_set_gsr(4 << VIS_GSR_SCALEFACT_SHIFT); | 3827 vis_set_gsr(4 << VIS_GSR_SCALEFACT_SHIFT); |
