Index: source/convert_from_argb.cc |
diff --git a/source/convert_from_argb.cc b/source/convert_from_argb.cc |
index eb8bd4459f2bb8ebff802bc5d2b90a404e3b110c..41df216dbec69e729da0f26c9d527f59c792a779 100644 |
--- a/source/convert_from_argb.cc |
+++ b/source/convert_from_argb.cc |
@@ -68,6 +68,14 @@ int ARGBToI444(const uint8* src_argb, |
} |
} |
#endif |
+#if defined(HAS_ARGBTOUV444ROW_MSA) |
+ if (TestCpuFlag(kCpuHasMSA)) { |
+ ARGBToUV444Row = ARGBToUV444Row_Any_MSA; |
+ if (IS_ALIGNED(width, 16)) { |
+ ARGBToUV444Row = ARGBToUV444Row_MSA; |
+ } |
+ } |
+#endif |
#if defined(HAS_ARGBTOYROW_SSSE3) |
if (TestCpuFlag(kCpuHasSSSE3)) { |
ARGBToYRow = ARGBToYRow_Any_SSSE3; |
@@ -1029,6 +1037,14 @@ int ARGBToRGB565(const uint8* src_argb, |
} |
} |
#endif |
+#if defined(HAS_ARGBTORGB565ROW_MSA) |
+ if (TestCpuFlag(kCpuHasMSA)) { |
+ ARGBToRGB565Row = ARGBToRGB565Row_Any_MSA; |
+ if (IS_ALIGNED(width, 8)) { |
+ ARGBToRGB565Row = ARGBToRGB565Row_MSA; |
+ } |
+ } |
+#endif |
for (y = 0; y < height; ++y) { |
ARGBToRGB565Row(src_argb, dst_rgb565, width); |
@@ -1087,6 +1103,14 @@ int ARGBToARGB1555(const uint8* src_argb, |
} |
} |
#endif |
+#if defined(HAS_ARGBTOARGB1555ROW_MSA) |
+ if (TestCpuFlag(kCpuHasMSA)) { |
+ ARGBToARGB1555Row = ARGBToARGB1555Row_Any_MSA; |
+ if (IS_ALIGNED(width, 8)) { |
+ ARGBToARGB1555Row = ARGBToARGB1555Row_MSA; |
+ } |
+ } |
+#endif |
for (y = 0; y < height; ++y) { |
ARGBToARGB1555Row(src_argb, dst_argb1555, width); |
@@ -1145,6 +1169,14 @@ int ARGBToARGB4444(const uint8* src_argb, |
} |
} |
#endif |
+#if defined(HAS_ARGBTOARGB4444ROW_MSA) |
+ if (TestCpuFlag(kCpuHasMSA)) { |
+ ARGBToARGB4444Row = ARGBToARGB4444Row_Any_MSA; |
+ if (IS_ALIGNED(width, 8)) { |
+ ARGBToARGB4444Row = ARGBToARGB4444Row_MSA; |
+ } |
+ } |
+#endif |
for (y = 0; y < height; ++y) { |
ARGBToARGB4444Row(src_argb, dst_argb4444, width); |