Simplify macro TRANSPOSE_4H in mmiutils.h and add TRANSPOSE_8B as a common macro.
Showing the changes to libavcodec/mips (2 of 3 files). Show all
Unified · Split
| @@ -248,8 +248,7 @@ void ff_vc1_inv_trans_8x8_mmi(int16_t block[64]) · 247 unmodified lines | ||
| 248 | 248 | 0xfff70004, 0xfff0000f, %[ff_pw_4]) |
| 249 | 249 | |
| 250 | 250 | TRANSPOSE_4H(%[ftmp15], %[ftmp16], %[ftmp17], %[ftmp18], |
| 251 | − %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4], | |
| 252 | − %[ftmp5], %[tmp0], %[ftmp6], %[ftmp7]) | |
| 251 | + %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4]) | |
| 253 | 252 | |
| 254 | 253 | MMI_SDC1(%[ftmp15], %[dst], 0x00) |
| 255 | 254 | MMI_SDC1(%[ftmp16], %[dst], 0x10) |
| @@ -257,8 +256,7 @@ void ff_vc1_inv_trans_8x8_mmi(int16_t block[64]) · 1 unmodified line | ||
| 257 | 256 | MMI_SDC1(%[ftmp18], %[dst], 0x30) |
| 258 | 257 | |
| 259 | 258 | TRANSPOSE_4H(%[ftmp19], %[ftmp20], %[ftmp21], %[ftmp22], |
| 260 | − %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4], | |
| 261 | − %[ftmp5], %[tmp0], %[ftmp6], %[ftmp7]) | |
| 259 | + %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4]) | |
| 262 | 260 | |
| 263 | 261 | MMI_SDC1(%[ftmp19], %[dst], 0x08) |
| 264 | 262 | MMI_SDC1(%[ftmp20], %[dst], 0x18) |
| @@ -301,8 +299,7 @@ void ff_vc1_inv_trans_8x8_mmi(int16_t block[64]) · 36 unmodified lines | ||
| 301 | 299 | 0xfff70004, 0xfff0000f, %[ff_pw_4]) |
| 302 | 300 | |
| 303 | 301 | TRANSPOSE_4H(%[ftmp15], %[ftmp16], %[ftmp17], %[ftmp18], |
| 304 | − %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4], | |
| 305 | − %[ftmp5], %[tmp0], %[ftmp6], %[ftmp7]) | |
| 302 | + %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4]) | |
| 306 | 303 | |
| 307 | 304 | MMI_SDC1(%[ftmp15], %[dst], 0x40) |
| 308 | 305 | MMI_SDC1(%[ftmp16], %[dst], 0x50) |
| @@ -310,8 +307,7 @@ void ff_vc1_inv_trans_8x8_mmi(int16_t block[64]) · 1 unmodified line | ||
| 310 | 307 | MMI_SDC1(%[ftmp18], %[dst], 0x70) |
| 311 | 308 | |
| 312 | 309 | TRANSPOSE_4H(%[ftmp19], %[ftmp20], %[ftmp21], %[ftmp22], |
| 313 | − %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4], | |
| 314 | − %[ftmp5], %[tmp0], %[ftmp6], %[ftmp7]) | |
| 310 | + %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4]) | |
| 315 | 311 | |
| 316 | 312 | MMI_SDC1(%[ftmp19], %[dst], 0x48) |
| 317 | 313 | MMI_SDC1(%[ftmp20], %[dst], 0x58) |
| @@ -44,58 +44,6 @@ · 43 unmodified lines | ||
| 44 | 44 | "punpcklbh "#dst_r", "#src", %[db_2] \n\t" \ |
| 45 | 45 | "punpckhbh "#dst_l", "#src", %[db_2] \n\t" |
| 46 | 46 | |
| 47 | −#define MMI_TRANSPOSE8x8_UB_UB(src_0, src_1, src_2, src_3, \ | |
| 48 | − src_4, src_5, src_6, src_7, \ | |
| 49 | − dst_0, dst_1, dst_2, dst_3, \ | |
| 50 | − dst_4, dst_5, dst_6, dst_7) \ | |
| 51 | − "li %[it_1], 0xe4 \n\t" \ | |
| 52 | − "dmtc1 %[it_1], %[db_1] \n\t" \ | |
| 53 | − "pshufh %[db_2], "#src_0", %[db_1] \n\t" \ | |
| 54 | − "punpcklbh "#dst_0", "#src_0", "#src_1" \n\t" \ | |
| 55 | − "punpckhbh "#dst_1", %[db_2], "#src_1" \n\t" \ | |
| 56 | − "pshufh %[db_2], "#src_2", %[db_1] \n\t" \ | |
| 57 | − "punpcklbh "#dst_2", "#src_2", "#src_3" \n\t" \ | |
| 58 | − "punpckhbh "#dst_3", %[db_2], "#src_3" \n\t" \ | |
| 59 | − "pshufh %[db_2], "#src_4", %[db_1] \n\t" \ | |
| 60 | − "punpcklbh "#dst_4", "#src_4", "#src_5" \n\t" \ | |
| 61 | − "punpckhbh "#dst_5", %[db_2], "#src_5" \n\t" \ | |
| 62 | − "pshufh %[db_2], "#src_6", %[db_1] \n\t" \ | |
| 63 | − "punpcklbh "#dst_6", "#src_6", "#src_7" \n\t" \ | |
| 64 | − "punpckhbh "#dst_7", %[db_2], "#src_7" \n\t" \ | |
| 65 | − \ | |
| 66 | − "pshufh %[db_2], "#dst_0", %[db_1] \n\t" \ | |
| 67 | − "punpcklhw "#dst_0", "#dst_0", "#dst_2" \n\t" \ | |
| 68 | − "punpckhhw "#dst_2", %[db_2], "#dst_2" \n\t" \ | |
| 69 | − "pshufh %[db_2], "#dst_1", %[db_1] \n\t" \ | |
| 70 | − "punpcklhw "#dst_1", "#dst_1", "#dst_3" \n\t" \ | |
| 71 | − "punpckhhw "#dst_3", %[db_2], "#dst_3" \n\t" \ | |
| 72 | − "pshufh %[db_2], "#dst_4", %[db_1] \n\t" \ | |
| 73 | − "punpcklhw "#dst_4", "#dst_4", "#dst_6" \n\t" \ | |
| 74 | − "punpckhhw "#dst_6", %[db_2], "#dst_6" \n\t" \ | |
| 75 | − "pshufh %[db_2], "#dst_5", %[db_1] \n\t" \ | |
| 76 | − "punpcklhw "#dst_5", "#dst_5", "#dst_7" \n\t" \ | |
| 77 | − "punpckhhw "#dst_7", %[db_2], "#dst_7" \n\t" \ | |
| 78 | − \ | |
| 79 | − "pshufh %[db_2], "#dst_0", %[db_1] \n\t" \ | |
| 80 | − "punpcklwd "#dst_0", "#dst_0", "#dst_4" \n\t" \ | |
| 81 | − "punpckhwd "#dst_4", %[db_2], "#dst_4" \n\t" \ | |
| 82 | − "pshufh %[db_2], "#dst_1", %[db_1] \n\t" \ | |
| 83 | − "punpcklwd "#dst_1", "#dst_1", "#dst_5" \n\t" \ | |
| 84 | − "punpckhwd "#dst_5", %[db_2], "#dst_5" \n\t" \ | |
| 85 | − "pshufh %[db_2], "#dst_2", %[db_1] \n\t" \ | |
| 86 | − "punpcklwd "#dst_2", "#dst_2", "#dst_6" \n\t" \ | |
| 87 | − "punpckhwd "#dst_6", %[db_2], "#dst_6" \n\t" \ | |
| 88 | − "pshufh %[db_2], "#dst_3", %[db_1] \n\t" \ | |
| 89 | − "punpcklwd "#dst_3", "#dst_3", "#dst_7" \n\t" \ | |
| 90 | − "punpckhwd "#dst_7", %[db_2], "#dst_7" \n\t" \ | |
| 91 | − \ | |
| 92 | − "pshufh %[db_2], "#dst_1", %[db_1] \n\t" \ | |
| 93 | − "pshufh "#dst_1", "#dst_4", %[db_1] \n\t" \ | |
| 94 | − "pshufh "#dst_4", %[db_2], %[db_1] \n\t" \ | |
| 95 | − "pshufh %[db_2], "#dst_3", %[db_1] \n\t" \ | |
| 96 | − "pshufh "#dst_3", "#dst_6", %[db_1] \n\t" \ | |
| 97 | − "pshufh "#dst_6", %[db_2], %[db_1] \n\t" | |
| 98 | − | |
| 99 | 47 | #define MMI_VP8_LOOP_FILTER \ |
| 100 | 48 | /* Calculation of hev */ \ |
| 101 | 49 | "dmtc1 %[thresh], %[ftmp3] \n\t" \ |
| @@ -952,16 +900,14 @@ static av_always_inline void vp8_h_loop_filter8_mmi(uint8_t *dst, · 850 unmodified lines | ||
| 952 | 900 | "gsldlc1 %[q3], 0x03(%[tmp0]) \n\t" |
| 953 | 901 | "gsldrc1 %[q3], -0x04(%[tmp0]) \n\t" |
| 954 | 902 | /* Matrix transpose */ |
| 955 | − MMI_TRANSPOSE8x8_UB_UB(%[p3], %[p2], %[p1], %[p0], | |
| 956 | − %[q0], %[q1], %[q2], %[q3], | |
| 957 | − %[p3], %[p2], %[p1], %[p0], | |
| 958 | − %[q0], %[q1], %[q2], %[q3]) | |
| 903 | + TRANSPOSE_8B(%[p3], %[p2], %[p1], %[p0], | |
| 904 | + %[q0], %[q1], %[q2], %[q3], | |
| 905 | + %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4]) | |
| 959 | 906 | MMI_VP8_LOOP_FILTER |
| 960 | 907 | /* Matrix transpose */ |
| 961 | − MMI_TRANSPOSE8x8_UB_UB(%[p3], %[p2], %[p1], %[p0], | |
| 962 | − %[q0], %[q1], %[q2], %[q3], | |
| 963 | − %[p3], %[p2], %[p1], %[p0], | |
| 964 | − %[q0], %[q1], %[q2], %[q3]) | |
| 908 | + TRANSPOSE_8B(%[p3], %[p2], %[p1], %[p0], | |
| 909 | + %[q0], %[q1], %[q2], %[q3], | |
| 910 | + %[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4]) | |
| 965 | 911 | /* Move to dst */ |
| 966 | 912 | "gssdlc1 %[p3], 0x03(%[dst]) \n\t" |
| 967 | 913 | "gssdrc1 %[p3], -0x04(%[dst]) \n\t" |
| @@ -1233,8 +1179,7 @@ void ff_vp8_idct_add_mmi(uint8_t *dst, int16_t block[16], ptrdiff_t stride) · 265 unmodified lines | ||
| 1233 | 1179 | MMI_SDC1(%[ftmp0], %[block], 0x18) |
| 1234 | 1180 | |
| 1235 | 1181 | TRANSPOSE_4H(%[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4], |
| 1236 | − %[ftmp5], %[ftmp6], %[ftmp7], %[ftmp8], | |
| 1237 | − %[ftmp9], %[tmp0], %[ftmp0], %[ftmp10]) | |
| 1182 | + %[ftmp5], %[ftmp6], %[ftmp7], %[ftmp8]) | |
| 1238 | 1183 | |
| 1239 | 1184 | // t[0 4 8 12] |
| 1240 | 1185 | "paddh %[ftmp5], %[ftmp1], %[ftmp3] \n\t" |
| @@ -1269,8 +1214,7 @@ void ff_vp8_idct_add_mmi(uint8_t *dst, int16_t block[16], ptrdiff_t stride) · 28 unmodified lines | ||
| 1269 | 1214 | "psrah %[ftmp4], %[ftmp4], %[ftmp11] \n\t" |
| 1270 | 1215 | |
| 1271 | 1216 | TRANSPOSE_4H(%[ftmp1], %[ftmp2], %[ftmp3], %[ftmp4], |
| 1272 | − %[ftmp5], %[ftmp6], %[ftmp7], %[ftmp8], | |
| 1273 | − %[ftmp9], %[tmp0], %[ftmp0], %[ftmp10]) | |
| 1217 | + %[ftmp5], %[ftmp6], %[ftmp7], %[ftmp8]) | |
| 1274 | 1218 | |
| 1275 | 1219 | MMI_LWC1(%[ftmp5], %[dst0], 0x00) |
| 1276 | 1220 | MMI_LWC1(%[ftmp6], %[dst1], 0x00) |