Merge remote-tracking branch 'qatar/master'
* qatar/master: build: export filtered -lz flag in config.mak build: add separate setting for host linker configure: probe_cc: use separate variable for linker output flag x86: Always compile files with functions that are called unconditionally x86: mpegvideoenc: fix linking with --disable-mmx x86: mpegvideoenc: Do not abuse HAVE_ variables for template instantiation Conflicts: Makefile configure libavcodec/x86/Makefile Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
8579d4b2f0
2
Makefile
2
Makefile
@ -59,7 +59,7 @@ $(PROGS): %$(EXESUF): %_g$(EXESUF)
|
|||||||
$(TOOLS): %$(EXESUF): %.o
|
$(TOOLS): %$(EXESUF): %.o
|
||||||
$(LD) $(LDFLAGS) $(LD_O) $< $(ELIBS)
|
$(LD) $(LDFLAGS) $(LD_O) $< $(ELIBS)
|
||||||
|
|
||||||
tools/cws2fws$(EXESUF): ELIBS = -lz
|
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
|
||||||
|
|
||||||
config.h: .config
|
config.h: .config
|
||||||
.config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c))
|
.config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c))
|
||||||
|
@ -10,7 +10,7 @@ ifndef SUBDIR
|
|||||||
ifndef V
|
ifndef V
|
||||||
Q = @
|
Q = @
|
||||||
ECHO = printf "$(1)\t%s\n" $(2)
|
ECHO = printf "$(1)\t%s\n" $(2)
|
||||||
BRIEF = CC CXX HOSTCC AS YASM AR LD STRIP CP
|
BRIEF = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP
|
||||||
SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM
|
SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM
|
||||||
|
|
||||||
MSG = $@
|
MSG = $@
|
||||||
@ -109,7 +109,7 @@ $(HOSTOBJS): %.o: %.c
|
|||||||
$(call COMPILE,HOSTCC)
|
$(call COMPILE,HOSTCC)
|
||||||
|
|
||||||
$(HOSTPROGS): %$(HOSTEXESUF): %.o
|
$(HOSTPROGS): %$(HOSTEXESUF): %.o
|
||||||
$(HOSTCC) $(HOSTLDFLAGS) $(HOSTCC_O) $< $(HOSTLIBS)
|
$(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $< $(HOSTLIBS)
|
||||||
|
|
||||||
$(OBJS): | $(sort $(dir $(OBJS)))
|
$(OBJS): | $(sort $(dir $(OBJS)))
|
||||||
$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))
|
$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))
|
||||||
|
20
configure
vendored
20
configure
vendored
@ -242,6 +242,7 @@ Advanced options (experts only):
|
|||||||
--ld=LD use linker LD [$ld_default]
|
--ld=LD use linker LD [$ld_default]
|
||||||
--host-cc=HOSTCC use host C compiler HOSTCC
|
--host-cc=HOSTCC use host C compiler HOSTCC
|
||||||
--host-cflags=HCFLAGS use HCFLAGS when compiling for host
|
--host-cflags=HCFLAGS use HCFLAGS when compiling for host
|
||||||
|
--host-ld=HOSTLD use host linker HOSTLD
|
||||||
--host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
|
--host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
|
||||||
--host-libs=HLIBS use libs HLIBS when linking for host
|
--host-libs=HLIBS use libs HLIBS when linking for host
|
||||||
--host-os=OS compiler host OS [$target_os]
|
--host-os=OS compiler host OS [$target_os]
|
||||||
@ -1444,6 +1445,7 @@ CMDLINE_SET="
|
|||||||
extra_version
|
extra_version
|
||||||
host_cc
|
host_cc
|
||||||
host_cflags
|
host_cflags
|
||||||
|
host_ld
|
||||||
host_ldflags
|
host_ldflags
|
||||||
host_libs
|
host_libs
|
||||||
host_os
|
host_os
|
||||||
@ -2050,6 +2052,7 @@ LD_O='-o $@'
|
|||||||
FORCE_INC="-include"
|
FORCE_INC="-include"
|
||||||
HOSTCC_C='-c'
|
HOSTCC_C='-c'
|
||||||
HOSTCC_O='-o $@'
|
HOSTCC_O='-o $@'
|
||||||
|
HOSTLD_O='-o $@'
|
||||||
|
|
||||||
host_cflags='-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600 -O3 -g'
|
host_cflags='-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600 -O3 -g'
|
||||||
host_libs='-lm'
|
host_libs='-lm'
|
||||||
@ -2408,7 +2411,7 @@ probe_cc(){
|
|||||||
pfx=$1
|
pfx=$1
|
||||||
_cc=$2
|
_cc=$2
|
||||||
|
|
||||||
unset _type _ident _cc_c _cc_e _cc_o _flags _cflags _ldflags
|
unset _type _ident _cc_c _cc_e _cc_o _ld_o _flags _cflags _ldflags
|
||||||
unset _depflags _DEPCMD _DEPFLAGS
|
unset _depflags _DEPCMD _DEPFLAGS
|
||||||
_flags_filter=echo
|
_flags_filter=echo
|
||||||
|
|
||||||
@ -2548,9 +2551,7 @@ set_ccvars CC
|
|||||||
|
|
||||||
probe_cc hostcc "$host_cc"
|
probe_cc hostcc "$host_cc"
|
||||||
host_cflags_filter=$_flags_filter
|
host_cflags_filter=$_flags_filter
|
||||||
host_ldflags_filter=$_flags_filter
|
|
||||||
add_host_cflags $_flags $_cflags
|
add_host_cflags $_flags $_cflags
|
||||||
add_host_ldflags $_flags $_ldflags
|
|
||||||
set_ccvars HOSTCC
|
set_ccvars HOSTCC
|
||||||
|
|
||||||
test -n "$cc_type" && enable $cc_type ||
|
test -n "$cc_type" && enable $cc_type ||
|
||||||
@ -2559,7 +2560,8 @@ test -n "$cc_type" && enable $cc_type ||
|
|||||||
: ${as_default:=$cc}
|
: ${as_default:=$cc}
|
||||||
: ${dep_cc_default:=$cc}
|
: ${dep_cc_default:=$cc}
|
||||||
: ${ld_default:=$cc}
|
: ${ld_default:=$cc}
|
||||||
set_default ar as dep_cc ld
|
: ${host_ld_default:=$host_cc}
|
||||||
|
set_default ar as dep_cc ld host_ld
|
||||||
|
|
||||||
probe_cc as "$as"
|
probe_cc as "$as"
|
||||||
asflags_filter=$_flags_filter
|
asflags_filter=$_flags_filter
|
||||||
@ -2570,7 +2572,12 @@ probe_cc ld "$ld"
|
|||||||
ldflags_filter=$_flags_filter
|
ldflags_filter=$_flags_filter
|
||||||
add_ldflags $_flags $_ldflags
|
add_ldflags $_flags $_ldflags
|
||||||
test "$cc_type" != "$ld_type" && add_ldflags $cc_ldflags
|
test "$cc_type" != "$ld_type" && add_ldflags $cc_ldflags
|
||||||
LD_O=${_cc_o-$LD_O}
|
LD_O=${_ld_o-$LD_O}
|
||||||
|
|
||||||
|
probe_cc hostld "$host_ld"
|
||||||
|
host_ldflags_filter=$_flags_filter
|
||||||
|
add_host_ldflags $_flags $_ldflags
|
||||||
|
HOSTLD_O=${_ld_o-$HOSTLD_O}
|
||||||
|
|
||||||
if [ -z "$CC_DEPFLAGS" ] && [ "$dep_cc" != "$cc" ]; then
|
if [ -z "$CC_DEPFLAGS" ] && [ "$dep_cc" != "$cc" ]; then
|
||||||
probe_cc depcc "$dep_cc"
|
probe_cc depcc "$dep_cc"
|
||||||
@ -4034,6 +4041,7 @@ ASDEP_FLAGS=$ASDEP_FLAGS
|
|||||||
CC_DEPFLAGS=$CC_DEPFLAGS
|
CC_DEPFLAGS=$CC_DEPFLAGS
|
||||||
AS_DEPFLAGS=$AS_DEPFLAGS
|
AS_DEPFLAGS=$AS_DEPFLAGS
|
||||||
HOSTCC=$host_cc
|
HOSTCC=$host_cc
|
||||||
|
HOSTLD=$host_ld
|
||||||
HOSTCFLAGS=$host_cflags
|
HOSTCFLAGS=$host_cflags
|
||||||
HOSTEXESUF=$HOSTEXESUF
|
HOSTEXESUF=$HOSTEXESUF
|
||||||
HOSTLDFLAGS=$host_ldflags
|
HOSTLDFLAGS=$host_ldflags
|
||||||
@ -4045,10 +4053,12 @@ HOSTCCDEP_FLAGS=$HOSTCCDEP_FLAGS
|
|||||||
HOSTCC_DEPFLAGS=$HOSTCC_DEPFLAGS
|
HOSTCC_DEPFLAGS=$HOSTCC_DEPFLAGS
|
||||||
HOSTCC_C=$HOSTCC_C
|
HOSTCC_C=$HOSTCC_C
|
||||||
HOSTCC_O=$HOSTCC_O
|
HOSTCC_O=$HOSTCC_O
|
||||||
|
HOSTLD_O=$HOSTLD_O
|
||||||
TARGET_EXEC=$target_exec
|
TARGET_EXEC=$target_exec
|
||||||
TARGET_PATH=$target_path
|
TARGET_PATH=$target_path
|
||||||
LIBS-ffplay=$sdl_libs
|
LIBS-ffplay=$sdl_libs
|
||||||
CFLAGS-ffplay=$sdl_cflags
|
CFLAGS-ffplay=$sdl_cflags
|
||||||
|
ZLIB=$($ldflags_filter -lz)
|
||||||
LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
|
LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
|
||||||
EXTRALIBS=$extralibs
|
EXTRALIBS=$extralibs
|
||||||
INSTALL=$install
|
INSTALL=$install
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
OBJS-$(CONFIG_DNXHD_ENCODER) += x86/dnxhdenc.o
|
||||||
OBJS-$(CONFIG_MLP_DECODER) += x86/mlpdsp.o
|
OBJS-$(CONFIG_MLP_DECODER) += x86/mlpdsp.o
|
||||||
|
OBJS-$(CONFIG_MPEGVIDEO) += x86/mpegvideo.o
|
||||||
|
OBJS-$(CONFIG_MPEGVIDEOENC) += x86/mpegvideoenc.o
|
||||||
OBJS-$(CONFIG_TRUEHD_DECODER) += x86/mlpdsp.o
|
OBJS-$(CONFIG_TRUEHD_DECODER) += x86/mlpdsp.o
|
||||||
OBJS-$(CONFIG_VP3DSP) += x86/vp3dsp_init.o
|
OBJS-$(CONFIG_VP3DSP) += x86/vp3dsp_init.o
|
||||||
OBJS-$(CONFIG_XMM_CLOBBER_TEST) += x86/w64xmmtest.o
|
OBJS-$(CONFIG_XMM_CLOBBER_TEST) += x86/w64xmmtest.o
|
||||||
@ -14,7 +17,6 @@ MMX-OBJS += x86/dsputil_mmx.o \
|
|||||||
MMX-OBJS-$(CONFIG_AAC_DECODER) += x86/sbrdsp_init.o
|
MMX-OBJS-$(CONFIG_AAC_DECODER) += x86/sbrdsp_init.o
|
||||||
MMX-OBJS-$(CONFIG_AC3DSP) += x86/ac3dsp_init.o
|
MMX-OBJS-$(CONFIG_AC3DSP) += x86/ac3dsp_init.o
|
||||||
MMX-OBJS-$(CONFIG_CAVS_DECODER) += x86/cavsdsp.o
|
MMX-OBJS-$(CONFIG_CAVS_DECODER) += x86/cavsdsp.o
|
||||||
MMX-OBJS-$(CONFIG_DNXHD_ENCODER) += x86/dnxhdenc.o
|
|
||||||
MMX-OBJS-$(CONFIG_DWT) += x86/snowdsp.o \
|
MMX-OBJS-$(CONFIG_DWT) += x86/snowdsp.o \
|
||||||
x86/dwt.o
|
x86/dwt.o
|
||||||
MMX-OBJS-$(CONFIG_ENCODERS) += x86/dsputilenc_mmx.o
|
MMX-OBJS-$(CONFIG_ENCODERS) += x86/dsputilenc_mmx.o
|
||||||
@ -24,8 +26,6 @@ MMX-OBJS-$(CONFIG_H264DSP) += x86/h264dsp_init.o
|
|||||||
MMX-OBJS-$(CONFIG_H264PRED) += x86/h264_intrapred_init.o
|
MMX-OBJS-$(CONFIG_H264PRED) += x86/h264_intrapred_init.o
|
||||||
MMX-OBJS-$(CONFIG_LPC) += x86/lpc.o
|
MMX-OBJS-$(CONFIG_LPC) += x86/lpc.o
|
||||||
MMX-OBJS-$(CONFIG_MPEGAUDIODSP) += x86/mpegaudiodec.o
|
MMX-OBJS-$(CONFIG_MPEGAUDIODSP) += x86/mpegaudiodec.o
|
||||||
MMX-OBJS-$(CONFIG_MPEGVIDEO) += x86/mpegvideo.o
|
|
||||||
MMX-OBJS-$(CONFIG_MPEGVIDEOENC) += x86/mpegvideoenc.o
|
|
||||||
MMX-OBJS-$(CONFIG_PNG_DECODER) += x86/pngdsp_init.o
|
MMX-OBJS-$(CONFIG_PNG_DECODER) += x86/pngdsp_init.o
|
||||||
MMX-OBJS-$(CONFIG_PRORES_DECODER) += x86/proresdsp_init.o
|
MMX-OBJS-$(CONFIG_PRORES_DECODER) += x86/proresdsp_init.o
|
||||||
MMX-OBJS-$(CONFIG_PRORES_LGPL_DECODER) += x86/proresdsp_init.o
|
MMX-OBJS-$(CONFIG_PRORES_LGPL_DECODER) += x86/proresdsp_init.o
|
||||||
|
@ -30,39 +30,44 @@
|
|||||||
|
|
||||||
extern uint16_t ff_inv_zigzag_direct16[64];
|
extern uint16_t ff_inv_zigzag_direct16[64];
|
||||||
|
|
||||||
#if HAVE_SSSE3
|
#define COMPILE_TEMPLATE_MMXEXT 0
|
||||||
#define HAVE_SSSE3_BAK
|
#define COMPILE_TEMPLATE_SSE2 0
|
||||||
#endif
|
#define COMPILE_TEMPLATE_SSSE3 0
|
||||||
#undef HAVE_SSSE3
|
|
||||||
#define HAVE_SSSE3 0
|
|
||||||
|
|
||||||
#undef HAVE_SSE2
|
|
||||||
#undef HAVE_MMXEXT
|
|
||||||
#define HAVE_SSE2 0
|
|
||||||
#define HAVE_MMXEXT 0
|
|
||||||
#define RENAME(a) a ## _MMX
|
#define RENAME(a) a ## _MMX
|
||||||
#define RENAMEl(a) a ## _mmx
|
#define RENAMEl(a) a ## _mmx
|
||||||
#include "mpegvideoenc_template.c"
|
#include "mpegvideoenc_template.c"
|
||||||
|
|
||||||
#undef HAVE_MMXEXT
|
#undef COMPILE_TEMPLATE_SSSE3
|
||||||
#define HAVE_MMXEXT 1
|
#undef COMPILE_TEMPLATE_SSE2
|
||||||
|
#undef COMPILE_TEMPLATE_MMXEXT
|
||||||
|
#define COMPILE_TEMPLATE_MMXEXT 1
|
||||||
|
#define COMPILE_TEMPLATE_SSE2 0
|
||||||
|
#define COMPILE_TEMPLATE_SSSE3 0
|
||||||
#undef RENAME
|
#undef RENAME
|
||||||
#undef RENAMEl
|
#undef RENAMEl
|
||||||
#define RENAME(a) a ## _MMX2
|
#define RENAME(a) a ## _MMX2
|
||||||
#define RENAMEl(a) a ## _mmx2
|
#define RENAMEl(a) a ## _mmx2
|
||||||
#include "mpegvideoenc_template.c"
|
#include "mpegvideoenc_template.c"
|
||||||
|
|
||||||
#undef HAVE_SSE2
|
#undef COMPILE_TEMPLATE_MMXEXT
|
||||||
#define HAVE_SSE2 1
|
#undef COMPILE_TEMPLATE_SSE2
|
||||||
|
#undef COMPILE_TEMPLATE_SSSE3
|
||||||
|
#define COMPILE_TEMPLATE_MMXEXT 0
|
||||||
|
#define COMPILE_TEMPLATE_SSE2 1
|
||||||
|
#define COMPILE_TEMPLATE_SSSE3 0
|
||||||
#undef RENAME
|
#undef RENAME
|
||||||
#undef RENAMEl
|
#undef RENAMEl
|
||||||
#define RENAME(a) a ## _SSE2
|
#define RENAME(a) a ## _SSE2
|
||||||
#define RENAMEl(a) a ## _sse2
|
#define RENAMEl(a) a ## _sse2
|
||||||
#include "mpegvideoenc_template.c"
|
#include "mpegvideoenc_template.c"
|
||||||
|
|
||||||
#ifdef HAVE_SSSE3_BAK
|
#if HAVE_SSSE3
|
||||||
#undef HAVE_SSSE3
|
#undef COMPILE_TEMPLATE_MMXEXT
|
||||||
#define HAVE_SSSE3 1
|
#undef COMPILE_TEMPLATE_SSE2
|
||||||
|
#undef COMPILE_TEMPLATE_SSSE3
|
||||||
|
#define COMPILE_TEMPLATE_MMXEXT 0
|
||||||
|
#define COMPILE_TEMPLATE_SSE2 1
|
||||||
|
#define COMPILE_TEMPLATE_SSSE3 1
|
||||||
#undef RENAME
|
#undef RENAME
|
||||||
#undef RENAMEl
|
#undef RENAMEl
|
||||||
#define RENAME(a) a ## _SSSE3
|
#define RENAME(a) a ## _SSSE3
|
||||||
@ -84,11 +89,11 @@ void ff_MPV_encode_init_x86(MpegEncContext *s)
|
|||||||
s->dct_quantize = dct_quantize_SSSE3;
|
s->dct_quantize = dct_quantize_SSSE3;
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
if (mm_flags & AV_CPU_FLAG_SSE2) {
|
if (mm_flags & AV_CPU_FLAG_SSE2 && HAVE_SSE) {
|
||||||
s->dct_quantize = dct_quantize_SSE2;
|
s->dct_quantize = dct_quantize_SSE2;
|
||||||
} else if (mm_flags & AV_CPU_FLAG_MMXEXT) {
|
} else if (mm_flags & AV_CPU_FLAG_MMXEXT && HAVE_MMXEXT) {
|
||||||
s->dct_quantize = dct_quantize_MMX2;
|
s->dct_quantize = dct_quantize_MMX2;
|
||||||
} else {
|
} else if (mm_flags & AV_CPU_FLAG_MMX && HAVE_MMX) {
|
||||||
s->dct_quantize = dct_quantize_MMX;
|
s->dct_quantize = dct_quantize_MMX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
#undef SAVE_SIGN
|
#undef SAVE_SIGN
|
||||||
#undef RESTORE_SIGN
|
#undef RESTORE_SIGN
|
||||||
|
|
||||||
#if HAVE_SSE2
|
#if COMPILE_TEMPLATE_SSE2
|
||||||
#define MMREG_WIDTH "16"
|
#define MMREG_WIDTH "16"
|
||||||
#define MM "%%xmm"
|
#define MM "%%xmm"
|
||||||
#define MOVQ "movdqa"
|
#define MOVQ "movdqa"
|
||||||
@ -48,7 +48,7 @@
|
|||||||
#define MMREG_WIDTH "8"
|
#define MMREG_WIDTH "8"
|
||||||
#define MM "%%mm"
|
#define MM "%%mm"
|
||||||
#define MOVQ "movq"
|
#define MOVQ "movq"
|
||||||
#if HAVE_MMXEXT
|
#if COMPILE_TEMPLATE_MMXEXT
|
||||||
#define SPREADW(a) "pshufw $0, "a", "a" \n\t"
|
#define SPREADW(a) "pshufw $0, "a", "a" \n\t"
|
||||||
#define PMAXW(a,b) "pmaxsw "a", "b" \n\t"
|
#define PMAXW(a,b) "pmaxsw "a", "b" \n\t"
|
||||||
#define PMAX(a,b) \
|
#define PMAX(a,b) \
|
||||||
@ -74,7 +74,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_SSSE3
|
#if COMPILE_TEMPLATE_SSSE3
|
||||||
#define SAVE_SIGN(a,b) \
|
#define SAVE_SIGN(a,b) \
|
||||||
"movdqa "b", "a" \n\t"\
|
"movdqa "b", "a" \n\t"\
|
||||||
"pabsw "b", "b" \n\t"
|
"pabsw "b", "b" \n\t"
|
||||||
@ -215,7 +215,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
|
|||||||
SPREADW(MM"1")
|
SPREADW(MM"1")
|
||||||
"psubusw "MM"1, "MM"4 \n\t"
|
"psubusw "MM"1, "MM"4 \n\t"
|
||||||
"packuswb "MM"4, "MM"4 \n\t"
|
"packuswb "MM"4, "MM"4 \n\t"
|
||||||
#if HAVE_SSE2
|
#if COMPILE_TEMPLATE_SSE2
|
||||||
"packuswb "MM"4, "MM"4 \n\t"
|
"packuswb "MM"4, "MM"4 \n\t"
|
||||||
#endif
|
#endif
|
||||||
"movd "MM"4, %0 \n\t" // *overflow
|
"movd "MM"4, %0 \n\t" // *overflow
|
||||||
|
Loading…
x
Reference in New Issue
Block a user