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);