X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fmips%2Fhevcpred_msa.c;h=f53276d34e0ccf748e309d39e616509545bb8261;hb=0181162bb54ce62ec212436a12d059726d8cd1df;hp=930a89cb48e12aaf300ed2d9c699e613b71e6d1c;hpb=a3e572d96fd1dd6291f6b28e173db858c08ff8d8;p=ffmpeg diff --git a/libavcodec/mips/hevcpred_msa.c b/libavcodec/mips/hevcpred_msa.c index 930a89cb48e..f53276d34e0 100644 --- a/libavcodec/mips/hevcpred_msa.c +++ b/libavcodec/mips/hevcpred_msa.c @@ -998,7 +998,8 @@ static void hevc_intra_pred_angular_upper_4width_msa(const uint8_t *src_top, ILVR_D2_SH(fact3, fact1, fact7, fact5, fact1, fact3); ILVR_B4_SH(zero, top0, zero, top1, zero, top2, zero, top3, diff0, diff2, diff4, diff6); - SLDI_B4_0_SH(diff0, diff2, diff4, diff6, diff1, diff3, diff5, diff7, 2); + SLDI_B4_SH(zero, diff0, zero, diff2, zero, diff4, zero, diff6, 2, + diff1, diff3, diff5, diff7); ILVR_D2_SH(diff2, diff0, diff6, diff4, diff0, diff2); ILVR_D2_SH(diff3, diff1, diff7, diff5, diff1, diff3); MUL2(diff1, fact0, diff3, fact2, diff1, diff3); @@ -1093,8 +1094,8 @@ static void hevc_intra_pred_angular_upper_8width_msa(const uint8_t *src_top, UNPCK_UB_SH(top2, diff4, diff5); UNPCK_UB_SH(top3, diff6, diff7); - SLDI_B2_SH(diff1, diff3, diff0, diff2, diff1, diff3, 2); - SLDI_B2_SH(diff5, diff7, diff4, diff6, diff5, diff7, 2); + SLDI_B4_SH(diff1, diff0, diff3, diff2, diff5, diff4, diff7, diff6, 2, + diff1, diff3, diff5, diff7); MUL4(diff1, fact0, diff3, fact2, diff5, fact4, diff7, fact6, diff1, diff3, diff5, diff7); @@ -1186,8 +1187,8 @@ static void hevc_intra_pred_angular_upper_16width_msa(const uint8_t *src_top, fact6 = __msa_fill_h(fact_val3); fact7 = __msa_fill_h(32 - fact_val3); - SLDI_B2_UB(top1, top3, top0, top2, top1, top3, 1); - SLDI_B2_UB(top5, top7, top4, top6, top5, top7, 1); + SLDI_B4_UB(top1, top0, top3, top2, top5, top4, top7, top6, 1, + top1, top3, top5, top7); UNPCK_UB_SH(top0, diff0, diff1); UNPCK_UB_SH(top1, diff2, diff3); UNPCK_UB_SH(top2, diff4, diff5); @@ -1297,8 +1298,8 @@ static void hevc_intra_pred_angular_upper_32width_msa(const uint8_t *src_top, top2 = top1; top6 = top5; - SLDI_B2_UB(top1, top3, top0, top2, top1, top3, 1); - SLDI_B2_UB(top5, top7, top4, top6, top5, top7, 1); + SLDI_B4_UB(top1, top0, top3, top2, top5, top4, top7, top6, 1, + top1, top3, top5, top7); UNPCK_UB_SH(top0, diff0, diff1); UNPCK_UB_SH(top1, diff2, diff3); UNPCK_UB_SH(top2, diff4, diff5); @@ -1407,7 +1408,8 @@ static void hevc_intra_pred_angular_lower_4width_msa(const uint8_t *src_top, ILVR_D2_SH(fact3, fact1, fact7, fact5, fact1, fact3); ILVR_B4_SH(zero, top0, zero, top1, zero, top2, zero, top3, diff0, diff2, diff4, diff6); - SLDI_B4_0_SH(diff0, diff2, diff4, diff6, diff1, diff3, diff5, diff7, 2); + SLDI_B4_SH(zero, diff0, zero, diff2, zero, diff4, zero, diff6, 2, + diff1, diff3, diff5, diff7); ILVR_D2_SH(diff2, diff0, diff6, diff4, diff0, diff2); ILVR_D2_SH(diff3, diff1, diff7, diff5, diff1, diff3); MUL2(diff1, fact0, diff3, fact2, diff1, diff3); @@ -1511,8 +1513,8 @@ static void hevc_intra_pred_angular_lower_8width_msa(const uint8_t *src_top, UNPCK_UB_SH(top1, diff2, diff3); UNPCK_UB_SH(top2, diff4, diff5); UNPCK_UB_SH(top3, diff6, diff7); - SLDI_B2_SH(diff1, diff3, diff0, diff2, diff1, diff3, 2); - SLDI_B2_SH(diff5, diff7, diff4, diff6, diff5, diff7, 2); + SLDI_B4_SH(diff1, diff0, diff3, diff2, diff5, diff4, diff7, diff6, 2, + diff1, diff3, diff5, diff7); MUL4(diff1, fact0, diff3, fact2, diff5, fact4, diff7, fact6, diff1, diff3, diff5, diff7); @@ -1606,8 +1608,8 @@ static void hevc_intra_pred_angular_lower_16width_msa(const uint8_t *src_top, fact6 = __msa_fill_h(fact_val3); fact7 = __msa_fill_h(32 - fact_val3); - SLDI_B2_SB(top1, top3, top0, top2, top1, top3, 1); - SLDI_B2_SB(top5, top7, top4, top6, top5, top7, 1); + SLDI_B4_SB(top1, top0, top3, top2, top5, top4, top7, top6, 1, + top1, top3, top5, top7); UNPCK_UB_SH(top0, diff0, diff1); UNPCK_UB_SH(top1, diff2, diff3); @@ -1713,8 +1715,8 @@ static void hevc_intra_pred_angular_lower_32width_msa(const uint8_t *src_top, top2 = top1; top6 = top5; - SLDI_B2_SB(top1, top3, top0, top2, top1, top3, 1); - SLDI_B2_SB(top5, top7, top4, top6, top5, top7, 1); + SLDI_B4_SB(top1, top0, top3, top2, top5, top4, top7, top6, 1, + top1, top3, top5, top7); UNPCK_UB_SH(top0, diff0, diff1); UNPCK_UB_SH(top1, diff2, diff3);