Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: source/convert_from_argb.cc

Issue 2595333002: Libyuv MIPS DSPR2 optimizations. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/convert_from.cc ('k') | source/row_any.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/convert_from_argb.cc
diff --git a/source/convert_from_argb.cc b/source/convert_from_argb.cc
index 81b59ba2914665f359bd6b3f0ca489bae6b765e4..e45bb230fe7e3df3c3fefca500a68e530bebbe8b 100644
--- a/source/convert_from_argb.cc
+++ b/source/convert_from_argb.cc
@@ -100,6 +100,14 @@ int ARGBToI444(const uint8* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToYRow = ARGBToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ ARGBToYRow = ARGBToYRow_DSPR2;
+ }
+ }
+#endif
#if defined(HAS_ARGBTOYROW_MSA)
if (TestCpuFlag(kCpuHasMSA)) {
ARGBToYRow = ARGBToYRow_Any_MSA;
@@ -189,6 +197,23 @@ int ARGBToI422(const uint8* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToYRow = ARGBToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ ARGBToYRow = ARGBToYRow_DSPR2;
+ }
+ }
+#endif
+#if defined(HAS_ARGBTOUVROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToUVRow = ARGBToUVRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 16)) {
+ ARGBToUVRow = ARGBToUVRow_DSPR2;
+ }
+ }
+#endif
+
#if defined(HAS_ARGBTOYROW_MSA)
if (TestCpuFlag(kCpuHasMSA)) {
ARGBToYRow = ARGBToYRow_Any_MSA;
@@ -319,6 +344,22 @@ int ARGBToNV12(const uint8* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToYRow = ARGBToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ ARGBToYRow = ARGBToYRow_DSPR2;
+ }
+ }
+#endif
+#if defined(HAS_ARGBTOUVROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToUVRow = ARGBToUVRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 16)) {
+ ARGBToUVRow = ARGBToUVRow_DSPR2;
+ }
+ }
+#endif
{
// Allocate a rows of uv.
align_buffer_64(row_u, ((halfwidth + 31) & ~31) * 2);
@@ -446,6 +487,22 @@ int ARGBToNV21(const uint8* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToYRow = ARGBToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ ARGBToYRow = ARGBToYRow_DSPR2;
+ }
+ }
+#endif
+#if defined(HAS_ARGBTOUVROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToUVRow = ARGBToUVRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 16)) {
+ ARGBToUVRow = ARGBToUVRow_DSPR2;
+ }
+ }
+#endif
{
// Allocate a rows of uv.
align_buffer_64(row_u, ((halfwidth + 31) & ~31) * 2);
@@ -570,6 +627,22 @@ int ARGBToYUY2(const uint8* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToYRow = ARGBToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ ARGBToYRow = ARGBToYRow_DSPR2;
+ }
+ }
+#endif
+#if defined(HAS_ARGBTOUVROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToUVRow = ARGBToUVRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 16)) {
+ ARGBToUVRow = ARGBToUVRow_DSPR2;
+ }
+ }
+#endif
#if defined(HAS_I422TOYUY2ROW_MSA)
if (TestCpuFlag(kCpuHasMSA)) {
I422ToYUY2Row = I422ToYUY2Row_Any_MSA;
@@ -698,6 +771,22 @@ int ARGBToUYVY(const uint8* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToYRow = ARGBToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ ARGBToYRow = ARGBToYRow_DSPR2;
+ }
+ }
+#endif
+#if defined(HAS_ARGBTOUVROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToUVRow = ARGBToUVRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 16)) {
+ ARGBToUVRow = ARGBToUVRow_DSPR2;
+ }
+ }
+#endif
#if defined(HAS_I422TOUYVYROW_MSA)
if (TestCpuFlag(kCpuHasMSA)) {
I422ToUYVYRow = I422ToUYVYRow_Any_MSA;
@@ -775,6 +864,14 @@ int ARGBToI400(const uint8* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToYRow = ARGBToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ ARGBToYRow = ARGBToYRow_DSPR2;
+ }
+ }
+#endif
#if defined(HAS_ARGBTOYROW_MSA)
if (TestCpuFlag(kCpuHasMSA)) {
ARGBToYRow = ARGBToYRow_Any_MSA;
« no previous file with comments | « source/convert_from.cc ('k') | source/row_any.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698