]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mips/hevcpred_msa.c
avutil/pixdesc: Remove deprecated off-by-one fields from pix fmt descs
[ffmpeg] / libavcodec / mips / hevcpred_msa.c
index 963c64c8618237be856698cb7d987eb027a74fa7..f53276d34e0ccf748e309d39e616509545bb8261 100644 (file)
@@ -83,7 +83,7 @@ static void hevc_intra_pred_vert_4x4_msa(const uint8_t *src_top,
         vec2 -= vec0;
         vec2 >>= 1;
         vec2 += vec1;
-        vec2 = CLIP_SH_0_255(vec2);
+        CLIP_SH_0_255(vec2);
 
         for (col = 0; col < 4; col++) {
             dst[stride * col] = (uint8_t) vec2[col];
@@ -122,7 +122,7 @@ static void hevc_intra_pred_vert_8x8_msa(const uint8_t *src_top,
         vec2 -= vec0;
         vec2 >>= 1;
         vec2 += vec1;
-        vec2 = CLIP_SH_0_255(vec2);
+        CLIP_SH_0_255(vec2);
 
         val0 = vec2[0];
         val1 = vec2[1];
@@ -214,7 +214,7 @@ static void hevc_intra_pred_horiz_4x4_msa(const uint8_t *src_top,
         src0_r -= src_top_val;
         src0_r >>= 1;
         src0_r += src_left_val;
-        src0_r = CLIP_SH_0_255(src0_r);
+        CLIP_SH_0_255(src0_r);
         src0 = __msa_pckev_b((v16i8) src0_r, (v16i8) src0_r);
         val0 = __msa_copy_s_w((v4i32) src0, 0);
         SW(val0, dst);
@@ -254,7 +254,7 @@ static void hevc_intra_pred_horiz_8x8_msa(const uint8_t *src_top,
         src0_r -= src_top_val;
         src0_r >>= 1;
         src0_r += src_left_val;
-        src0_r = CLIP_SH_0_255(src0_r);
+        CLIP_SH_0_255(src0_r);
         src0 = __msa_pckev_b((v16i8) src0_r, (v16i8) src0_r);
         val0 = __msa_copy_s_d((v2i64) src0, 0);
         SD(val0, dst);
@@ -589,7 +589,7 @@ static void hevc_intra_pred_plane_4x4_msa(const uint8_t *src_top,
     PCKEV_D2_SH(res1, res0, res3, res2, res0, res1);
     SRARI_H2_SH(res0, res1, 3);
     src_vec0 = __msa_pckev_b((v16i8) res1, (v16i8) res0);
-    ST4x4_UB(src_vec0, src_vec0, 0, 1, 2, 3, dst, stride);
+    ST_W4(src_vec0, 0, 1, 2, 3, dst, stride);
 }
 
 static void hevc_intra_pred_plane_8x8_msa(const uint8_t *src_top,
@@ -656,7 +656,8 @@ static void hevc_intra_pred_plane_8x8_msa(const uint8_t *src_top,
     PCKEV_B4_SB(res1, res0, res3, res2, res5, res4, res7, res6,
                 src_vec0, src_vec1, src_vec2, src_vec3);
 
-    ST8x8_UB(src_vec0, src_vec1, src_vec2, src_vec3, dst, stride);
+    ST_D8(src_vec0, src_vec1, src_vec2, src_vec3, 0, 1, 0, 1,
+          0, 1, 0, 1, dst, stride);
 }
 
 static void hevc_intra_pred_plane_16x16_msa(const uint8_t *src_top,
@@ -997,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);
@@ -1007,7 +1009,7 @@ static void hevc_intra_pred_angular_upper_4width_msa(const uint8_t *src_top,
 
     SRARI_H2_SH(diff1, diff3, 5);
     dst_val0 = __msa_pckev_b((v16i8) diff3, (v16i8) diff1);
-    ST4x4_UB(dst_val0, dst_val0, 0, 1, 2, 3, dst, stride);
+    ST_W4(dst_val0, 0, 1, 2, 3, dst, stride);
 }
 
 static void hevc_intra_pred_angular_upper_8width_msa(const uint8_t *src_top,
@@ -1092,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);
 
@@ -1104,7 +1106,7 @@ static void hevc_intra_pred_angular_upper_8width_msa(const uint8_t *src_top,
 
         SRARI_H4_SH(diff1, diff3, diff5, diff7, 5);
         PCKEV_B2_UB(diff3, diff1, diff7, diff5, dst_val0, dst_val1);
-        ST8x4_UB(dst_val0, dst_val1, dst, stride);
+        ST_D4(dst_val0, dst_val1, 0, 1, 0, 1, dst, stride);
         dst += (4 * stride);
     }
 }
@@ -1185,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);
@@ -1296,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);
@@ -1406,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);
@@ -1425,9 +1428,8 @@ static void hevc_intra_pred_angular_lower_4width_msa(const uint8_t *src_top,
     dst_val0 = __msa_pckev_b((v16i8) diff2, (v16i8) diff2);
     dst_val1 = __msa_pckod_b((v16i8) diff2, (v16i8) diff2);
 
-    ST4x2_UB(dst_val0, dst, stride);
-    dst += (2 * stride);
-    ST4x2_UB(dst_val1, dst, stride);
+    ST_W2(dst_val0, 0, 1, dst, stride);
+    ST_W2(dst_val1, 0, 1, dst + 2 * stride, stride);
 }
 
 static void hevc_intra_pred_angular_lower_8width_msa(const uint8_t *src_top,
@@ -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);
 
@@ -1526,7 +1528,7 @@ static void hevc_intra_pred_angular_lower_8width_msa(const uint8_t *src_top,
                     dst_val0, dst_val1, dst_val2, dst_val3);
         ILVR_B2_SH(dst_val1, dst_val0, dst_val3, dst_val2, diff0, diff1);
         ILVRL_H2_SH(diff1, diff0, diff3, diff4);
-        ST4x8_UB(diff3, diff4, dst_org, stride);
+        ST_W8(diff3, diff4, 0, 1, 2, 3, 0, 1, 2, 3, dst_org, stride);
         dst += 4;
     }
 }
@@ -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);
@@ -1640,9 +1642,9 @@ static void hevc_intra_pred_angular_lower_16width_msa(const uint8_t *src_top,
         ILVL_B2_SH(dst_val1, dst_val0, dst_val3, dst_val2, diff2, diff3);
         ILVRL_H2_SH(diff1, diff0, diff4, diff5);
         ILVRL_H2_SH(diff3, diff2, diff6, diff7);
-        ST4x8_UB(diff4, diff5, dst_org, stride);
+        ST_W8(diff4, diff5, 0, 1, 2, 3, 0, 1, 2, 3, dst_org, stride);
         dst_org += (8 * stride);
-        ST4x8_UB(diff6, diff7, dst_org, stride);
+        ST_W8(diff6, diff7, 0, 1, 2, 3, 0, 1, 2, 3, dst_org, stride);
         dst += 4;
     }
 }
@@ -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);
@@ -1746,23 +1748,14 @@ static void hevc_intra_pred_angular_lower_32width_msa(const uint8_t *src_top,
         ILVRL_B2_SH(dst_val2, dst_val0, diff0, diff1);
         ILVRL_B2_SH(dst_val3, dst_val1, diff2, diff3);
 
-        ST2x4_UB(diff0, 0, dst_org, stride);
-        dst_org += (4 * stride);
-        ST2x4_UB(diff0, 4, dst_org, stride);
-        dst_org += (4 * stride);
-        ST2x4_UB(diff1, 0, dst_org, stride);
-        dst_org += (4 * stride);
-        ST2x4_UB(diff1, 4, dst_org, stride);
-        dst_org += (4 * stride);
-
-        ST2x4_UB(diff2, 0, dst_org, stride);
-        dst_org += (4 * stride);
-        ST2x4_UB(diff2, 4, dst_org, stride);
-        dst_org += (4 * stride);
-        ST2x4_UB(diff3, 0, dst_org, stride);
-        dst_org += (4 * stride);
-        ST2x4_UB(diff3, 4, dst_org, stride);
-        dst_org += (4 * stride);
+        ST_H8(diff0, 0, 1, 2, 3, 4, 5, 6, 7, dst_org, stride)
+        dst_org += (8 * stride);
+        ST_H8(diff1, 0, 1, 2, 3, 4, 5, 6, 7, dst_org, stride)
+        dst_org += (8 * stride);
+        ST_H8(diff2, 0, 1, 2, 3, 4, 5, 6, 7, dst_org, stride)
+        dst_org += (8 * stride);
+        ST_H8(diff3, 0, 1, 2, 3, 4, 5, 6, 7, dst_org, stride)
+        dst_org += (8 * stride);
 
         dst += 2;
     }