aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author周晓勇 <zhouxiaoyong@loongson.cn>2015-07-03 18:11:27 +0800
committerMichael Niedermayer <michaelni@gmx.at>2015-07-07 03:46:57 +0200
commit387cbe018c87b44874a2e5dc53fe46b9695593f1 (patch)
tree3c9ab0913d31596b9db09e6c2a186cc9c8538bc6
parent72aaca748847f3add8349deb1577667b3964fe24 (diff)
downloadffmpeg-387cbe018c87b44874a2e5dc53fe46b9695593f1.tar.gz
use mmi instead of loongson3 as simd-optimization flag
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--Makefile2
-rw-r--r--arch.mak2
-rwxr-xr-xconfigure10
-rw-r--r--libavcodec/mips/Makefile4
-rw-r--r--libavcodec/mips/h264chroma_init_mips.c8
-rw-r--r--libavcodec/mips/h264dsp_init_mips.c8
6 files changed, 18 insertions, 16 deletions
diff --git a/Makefile b/Makefile
index 69f371b93f..1fb16101de 100644
--- a/Makefile
+++ b/Makefile
@@ -81,7 +81,7 @@ SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \
ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \
ALTIVEC-OBJS MMX-OBJS YASM-OBJS \
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MSA-OBJS \
- LOONGSON3-OBJS OBJS SLIBOBJS HOSTOBJS TESTOBJS
+ MMI-OBJS OBJS SLIBOBJS HOSTOBJS TESTOBJS
define RESET
$(1) :=
diff --git a/arch.mak b/arch.mak
index 4508c2a242..98fde4a3ee 100644
--- a/arch.mak
+++ b/arch.mak
@@ -8,7 +8,7 @@ OBJS-$(HAVE_MIPSFPU) += $(MIPSFPU-OBJS) $(MIPSFPU-OBJS-yes)
OBJS-$(HAVE_MIPSDSPR1) += $(MIPSDSPR1-OBJS) $(MIPSDSPR1-OBJS-yes)
OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes)
OBJS-$(HAVE_MSA) += $(MSA-OBJS) $(MSA-OBJS-yes)
-OBJS-$(HAVE_LOONGSON3) += $(LOONGSON3-OBJS) $(LOONGSON3-OBJS-yes)
+OBJS-$(HAVE_MMI) += $(MMI-OBJS) $(MMI-OBJS-yes)
OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes)
OBJS-$(HAVE_VSX) += $(VSX-OBJS) $(VSX-OBJS-yes)
diff --git a/configure b/configure
index cc23991fb7..a292102d55 100755
--- a/configure
+++ b/configure
@@ -374,7 +374,7 @@ Optimization options (experts only):
--disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations
--disable-msa disable MSA optimizations
--disable-mipsfpu disable floating point MIPS optimizations
- --disable-loongson3 disable Loongson-3 SIMD optimizations
+ --disable-mmi disable Loongson SIMD optimizations
--disable-fast-unaligned consider unaligned accesses slow
Developer options (useful when working on FFmpeg itself):
@@ -1591,7 +1591,7 @@ ARCH_EXT_LIST_MIPS="
"
ARCH_EXT_LIST_LOONGSON="
- loongson3
+ mmi
"
ARCH_EXT_LIST_X86_SIMD="
@@ -2046,7 +2046,7 @@ mips32r2_deps="mips"
mips32r5_deps="mips"
mips64r6_deps="mips"
msa_deps="mips"
-loongson3_deps="mips"
+mmi_deps="mips"
altivec_deps="ppc"
dcbzl_deps="ppc"
@@ -4737,6 +4737,8 @@ EOF
elif enabled mips; then
+ enabled mmi && check_inline_asm mmi '"punpcklhw $f0, $f0, $f0"'
+
# Enable minimum ISA based on selected options
if enabled mips64 && (enabled mipsdspr1 || enabled mipsdspr2); then
add_cflags "-mips64r2"
@@ -5779,7 +5781,7 @@ if enabled mips; then
echo "MIPS DSP R1 enabled ${mipsdspr1-no}"
echo "MIPS DSP R2 enabled ${mipsdspr2-no}"
echo "MIPS MSA enabled ${msa-no}"
- echo "LOONGSON3 enabled ${loongson3-no}"
+ echo "LOONGSON MMI enabled ${mmi-no}"
fi
if enabled ppc; then
echo "AltiVec enabled ${altivec-no}"
diff --git a/libavcodec/mips/Makefile b/libavcodec/mips/Makefile
index 29938912f8..695ee36b02 100644
--- a/libavcodec/mips/Makefile
+++ b/libavcodec/mips/Makefile
@@ -53,5 +53,5 @@ MSA-OBJS-$(CONFIG_PIXBLOCKDSP) += mips/pixblockdsp_msa.o
MSA-OBJS-$(CONFIG_MPEGVIDEO) += mips/mpegvideo_msa.o
MSA-OBJS-$(CONFIG_MPEGVIDEOENC) += mips/mpegvideoencdsp_msa.o
MSA-OBJS-$(CONFIG_ME_CMP) += mips/me_cmp_msa.o
-LOONGSON3-OBJS-$(CONFIG_H264DSP) += mips/h264dsp_mmi.o
-LOONGSON3-OBJS-$(CONFIG_H264CHROMA) += mips/h264chroma_mmi.o
+MMI-OBJS-$(CONFIG_H264DSP) += mips/h264dsp_mmi.o
+MMI-OBJS-$(CONFIG_H264CHROMA) += mips/h264chroma_mmi.o
diff --git a/libavcodec/mips/h264chroma_init_mips.c b/libavcodec/mips/h264chroma_init_mips.c
index 1cc57674b3..122148dc78 100644
--- a/libavcodec/mips/h264chroma_init_mips.c
+++ b/libavcodec/mips/h264chroma_init_mips.c
@@ -38,7 +38,7 @@ static av_cold void h264chroma_init_msa(H264ChromaContext *c, int bit_depth)
}
#endif // #if HAVE_MSA
-#if HAVE_LOONGSON3
+#if HAVE_MMI
static av_cold void h264chroma_init_mmi(H264ChromaContext *c, int bit_depth)
{
int high_bit_depth = bit_depth > 8;
@@ -50,14 +50,14 @@ static av_cold void h264chroma_init_mmi(H264ChromaContext *c, int bit_depth)
c->avg_h264_chroma_pixels_tab[1] = ff_avg_h264_chroma_mc4_mmi;
}
}
-#endif /* HAVE_LOONGSON3 */
+#endif /* HAVE_MMI */
av_cold void ff_h264chroma_init_mips(H264ChromaContext *c, int bit_depth)
{
#if HAVE_MSA
h264chroma_init_msa(c, bit_depth);
#endif // #if HAVE_MSA
-#if HAVE_LOONGSON3
+#if HAVE_MMI
h264chroma_init_mmi(c, bit_depth);
-#endif /* HAVE_LOONGSON3 */
+#endif /* HAVE_MMI */
}
diff --git a/libavcodec/mips/h264dsp_init_mips.c b/libavcodec/mips/h264dsp_init_mips.c
index 7f74adf591..369462190e 100644
--- a/libavcodec/mips/h264dsp_init_mips.c
+++ b/libavcodec/mips/h264dsp_init_mips.c
@@ -81,7 +81,7 @@ static av_cold void h264dsp_init_msa(H264DSPContext *c,
}
#endif // #if HAVE_MSA
-#if HAVE_LOONGSON3
+#if HAVE_MMI
static av_cold void h264dsp_init_mmi(H264DSPContext * c,
const int bit_depth,
const int chroma_format_idc)
@@ -96,7 +96,7 @@ static av_cold void h264dsp_init_mmi(H264DSPContext * c,
c->biweight_h264_pixels_tab[2] = ff_h264_biweight_pixels4_8_mmi;
}
}
-#endif /* HAVE_LOONGSON3 */
+#endif /* HAVE_MMI */
av_cold void ff_h264dsp_init_mips(H264DSPContext *c, const int bit_depth,
const int chroma_format_idc)
@@ -104,7 +104,7 @@ av_cold void ff_h264dsp_init_mips(H264DSPContext *c, const int bit_depth,
#if HAVE_MSA
h264dsp_init_msa(c, bit_depth, chroma_format_idc);
#endif // #if HAVE_MSA
-#if HAVE_LOONGSON3
+#if HAVE_MMI
h264dsp_init_mmi(c, bit_depth, chroma_format_idc);
-#endif /* HAVE_LOONGSON3 */
+#endif /* HAVE_MMI */
}