Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>tags/n2.8
| @@ -81,7 +81,7 @@ SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \ | |||||
| ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \ | ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \ | ||||
| ALTIVEC-OBJS MMX-OBJS YASM-OBJS \ | ALTIVEC-OBJS MMX-OBJS YASM-OBJS \ | ||||
| MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MSA-OBJS \ | MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MSA-OBJS \ | ||||
| LOONGSON3-OBJS OBJS SLIBOBJS HOSTOBJS TESTOBJS | |||||
| MMI-OBJS OBJS SLIBOBJS HOSTOBJS TESTOBJS | |||||
| define RESET | define RESET | ||||
| $(1) := | $(1) := | ||||
| @@ -8,7 +8,7 @@ OBJS-$(HAVE_MIPSFPU) += $(MIPSFPU-OBJS) $(MIPSFPU-OBJS-yes) | |||||
| OBJS-$(HAVE_MIPSDSPR1) += $(MIPSDSPR1-OBJS) $(MIPSDSPR1-OBJS-yes) | OBJS-$(HAVE_MIPSDSPR1) += $(MIPSDSPR1-OBJS) $(MIPSDSPR1-OBJS-yes) | ||||
| OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes) | OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes) | ||||
| OBJS-$(HAVE_MSA) += $(MSA-OBJS) $(MSA-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_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes) | ||||
| OBJS-$(HAVE_VSX) += $(VSX-OBJS) $(VSX-OBJS-yes) | OBJS-$(HAVE_VSX) += $(VSX-OBJS) $(VSX-OBJS-yes) | ||||
| @@ -374,7 +374,7 @@ Optimization options (experts only): | |||||
| --disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations | --disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations | ||||
| --disable-msa disable MSA optimizations | --disable-msa disable MSA optimizations | ||||
| --disable-mipsfpu disable floating point MIPS 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 | --disable-fast-unaligned consider unaligned accesses slow | ||||
| Developer options (useful when working on FFmpeg itself): | Developer options (useful when working on FFmpeg itself): | ||||
| @@ -1591,7 +1591,7 @@ ARCH_EXT_LIST_MIPS=" | |||||
| " | " | ||||
| ARCH_EXT_LIST_LOONGSON=" | ARCH_EXT_LIST_LOONGSON=" | ||||
| loongson3 | |||||
| mmi | |||||
| " | " | ||||
| ARCH_EXT_LIST_X86_SIMD=" | ARCH_EXT_LIST_X86_SIMD=" | ||||
| @@ -2046,7 +2046,7 @@ mips32r2_deps="mips" | |||||
| mips32r5_deps="mips" | mips32r5_deps="mips" | ||||
| mips64r6_deps="mips" | mips64r6_deps="mips" | ||||
| msa_deps="mips" | msa_deps="mips" | ||||
| loongson3_deps="mips" | |||||
| mmi_deps="mips" | |||||
| altivec_deps="ppc" | altivec_deps="ppc" | ||||
| dcbzl_deps="ppc" | dcbzl_deps="ppc" | ||||
| @@ -4737,6 +4737,8 @@ EOF | |||||
| elif enabled mips; then | elif enabled mips; then | ||||
| enabled mmi && check_inline_asm mmi '"punpcklhw $f0, $f0, $f0"' | |||||
| # Enable minimum ISA based on selected options | # Enable minimum ISA based on selected options | ||||
| if enabled mips64 && (enabled mipsdspr1 || enabled mipsdspr2); then | if enabled mips64 && (enabled mipsdspr1 || enabled mipsdspr2); then | ||||
| add_cflags "-mips64r2" | add_cflags "-mips64r2" | ||||
| @@ -5779,7 +5781,7 @@ if enabled mips; then | |||||
| echo "MIPS DSP R1 enabled ${mipsdspr1-no}" | echo "MIPS DSP R1 enabled ${mipsdspr1-no}" | ||||
| echo "MIPS DSP R2 enabled ${mipsdspr2-no}" | echo "MIPS DSP R2 enabled ${mipsdspr2-no}" | ||||
| echo "MIPS MSA enabled ${msa-no}" | echo "MIPS MSA enabled ${msa-no}" | ||||
| echo "LOONGSON3 enabled ${loongson3-no}" | |||||
| echo "LOONGSON MMI enabled ${mmi-no}" | |||||
| fi | fi | ||||
| if enabled ppc; then | if enabled ppc; then | ||||
| echo "AltiVec enabled ${altivec-no}" | echo "AltiVec enabled ${altivec-no}" | ||||
| @@ -53,5 +53,5 @@ MSA-OBJS-$(CONFIG_PIXBLOCKDSP) += mips/pixblockdsp_msa.o | |||||
| MSA-OBJS-$(CONFIG_MPEGVIDEO) += mips/mpegvideo_msa.o | MSA-OBJS-$(CONFIG_MPEGVIDEO) += mips/mpegvideo_msa.o | ||||
| MSA-OBJS-$(CONFIG_MPEGVIDEOENC) += mips/mpegvideoencdsp_msa.o | MSA-OBJS-$(CONFIG_MPEGVIDEOENC) += mips/mpegvideoencdsp_msa.o | ||||
| MSA-OBJS-$(CONFIG_ME_CMP) += mips/me_cmp_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 | |||||
| @@ -38,7 +38,7 @@ static av_cold void h264chroma_init_msa(H264ChromaContext *c, int bit_depth) | |||||
| } | } | ||||
| #endif // #if HAVE_MSA | #endif // #if HAVE_MSA | ||||
| #if HAVE_LOONGSON3 | |||||
| #if HAVE_MMI | |||||
| static av_cold void h264chroma_init_mmi(H264ChromaContext *c, int bit_depth) | static av_cold void h264chroma_init_mmi(H264ChromaContext *c, int bit_depth) | ||||
| { | { | ||||
| int high_bit_depth = bit_depth > 8; | 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; | 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) | av_cold void ff_h264chroma_init_mips(H264ChromaContext *c, int bit_depth) | ||||
| { | { | ||||
| #if HAVE_MSA | #if HAVE_MSA | ||||
| h264chroma_init_msa(c, bit_depth); | h264chroma_init_msa(c, bit_depth); | ||||
| #endif // #if HAVE_MSA | #endif // #if HAVE_MSA | ||||
| #if HAVE_LOONGSON3 | |||||
| #if HAVE_MMI | |||||
| h264chroma_init_mmi(c, bit_depth); | h264chroma_init_mmi(c, bit_depth); | ||||
| #endif /* HAVE_LOONGSON3 */ | |||||
| #endif /* HAVE_MMI */ | |||||
| } | } | ||||
| @@ -81,7 +81,7 @@ static av_cold void h264dsp_init_msa(H264DSPContext *c, | |||||
| } | } | ||||
| #endif // #if HAVE_MSA | #endif // #if HAVE_MSA | ||||
| #if HAVE_LOONGSON3 | |||||
| #if HAVE_MMI | |||||
| static av_cold void h264dsp_init_mmi(H264DSPContext * c, | static av_cold void h264dsp_init_mmi(H264DSPContext * c, | ||||
| const int bit_depth, | const int bit_depth, | ||||
| const int chroma_format_idc) | 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; | 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, | av_cold void ff_h264dsp_init_mips(H264DSPContext *c, const int bit_depth, | ||||
| const int chroma_format_idc) | 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 | #if HAVE_MSA | ||||
| h264dsp_init_msa(c, bit_depth, chroma_format_idc); | h264dsp_init_msa(c, bit_depth, chroma_format_idc); | ||||
| #endif // #if HAVE_MSA | #endif // #if HAVE_MSA | ||||
| #if HAVE_LOONGSON3 | |||||
| #if HAVE_MMI | |||||
| h264dsp_init_mmi(c, bit_depth, chroma_format_idc); | h264dsp_init_mmi(c, bit_depth, chroma_format_idc); | ||||
| #endif /* HAVE_LOONGSON3 */ | |||||
| #endif /* HAVE_MMI */ | |||||
| } | } | ||||