view x86/Makefile @ 12492:58a960d6e34c libavcodec

Rename h264_idct_sse2.asm to h264_idct.asm; move inline IDCT asm from h264dsp_mmx.c to h264_idct.asm (as yasm code). Because the loops are now coded in asm instead of C, this is (depending on the function) up to 50% faster for cases where gcc didn't do a great job at looping. Since h264_idct_add8() is now faster than the manual loop setup in h264.c, in-asm idct calling can now be enabled for chroma as well (see r16207). For MMX, this is 5% faster. For SSE2 (which isn't done for chroma if h264.c does the looping), this makes it up to 50% faster. Speed gain overall is ~0.5-1.0%.
author rbultje
date Tue, 14 Sep 2010 13:36:26 +0000
parents 14896fa76003
children c5ffa8b81f9c
line wrap: on
line source

OBJS-$(CONFIG_MLP_DECODER)             += x86/mlpdsp.o
OBJS-$(CONFIG_TRUEHD_DECODER)          += x86/mlpdsp.o

YASM-OBJS-FFT-$(HAVE_AMD3DNOW)         += x86/fft_3dn.o
YASM-OBJS-FFT-$(HAVE_AMD3DNOWEXT)      += x86/fft_3dn2.o
YASM-OBJS-FFT-$(HAVE_SSE)              += x86/fft_sse.o
YASM-OBJS-$(CONFIG_FFT)                += x86/fft_mmx.o                 \
                                          $(YASM-OBJS-FFT-yes)

MMX-OBJS-$(CONFIG_H264DSP)             += x86/h264dsp_mmx.o
YASM-OBJS-$(CONFIG_H264DSP)            += x86/h264_deblock.o            \
                                          x86/h264_weight.o             \
                                          x86/h264_idct.o               \

YASM-OBJS-$(CONFIG_H264PRED)           += x86/h264_intrapred.o
MMX-OBJS-$(CONFIG_H264PRED)            += x86/h264_intrapred_init.o

YASM-OBJS-$(CONFIG_VC1_DECODER)        += x86/vc1dsp_yasm.o

MMX-OBJS-$(CONFIG_CAVS_DECODER)        += x86/cavsdsp_mmx.o
MMX-OBJS-$(CONFIG_MP1FLOAT_DECODER)    += x86/mpegaudiodec_mmx.o
MMX-OBJS-$(CONFIG_MP2FLOAT_DECODER)    += x86/mpegaudiodec_mmx.o
MMX-OBJS-$(CONFIG_MP3FLOAT_DECODER)    += x86/mpegaudiodec_mmx.o
MMX-OBJS-$(CONFIG_MP3ON4FLOAT_DECODER) += x86/mpegaudiodec_mmx.o
MMX-OBJS-$(CONFIG_MP3ADUFLOAT_DECODER) += x86/mpegaudiodec_mmx.o
MMX-OBJS-$(CONFIG_ENCODERS)            += x86/dsputilenc_mmx.o
MMX-OBJS-$(CONFIG_GPL)                 += x86/idct_mmx.o
MMX-OBJS-$(CONFIG_LPC)                 += x86/lpc_mmx.o
MMX-OBJS-$(CONFIG_DWT)                 += x86/snowdsp_mmx.o
MMX-OBJS-$(CONFIG_VC1_DECODER)         += x86/vc1dsp_mmx.o
YASM-OBJS-$(CONFIG_VP3_DECODER)        += x86/vp3dsp.o
YASM-OBJS-$(CONFIG_VP5_DECODER)        += x86/vp3dsp.o
MMX-OBJS-$(CONFIG_VP5_DECODER)         += x86/vp56dsp_init.o
YASM-OBJS-$(CONFIG_VP6_DECODER)        += x86/vp3dsp.o                  \
                                          x86/vp56dsp.o
MMX-OBJS-$(CONFIG_VP6_DECODER)         += x86/vp56dsp_init.o
YASM-OBJS-$(CONFIG_VP8_DECODER)        += x86/vp8dsp.o
MMX-OBJS-$(CONFIG_VP8_DECODER)         += x86/vp8dsp-init.o
MMX-OBJS-$(HAVE_YASM)                  += x86/dsputil_yasm.o            \
                                          x86/deinterlace.o             \
                                          x86/h264_chromamc.o           \
                                          $(YASM-OBJS-yes)

MMX-OBJS-$(CONFIG_FFT)                 += x86/fft.o

OBJS-$(HAVE_MMX)                       += x86/dnxhd_mmx.o               \
                                          x86/dsputil_mmx.o             \
                                          x86/fdct_mmx.o                \
                                          x86/idct_mmx_xvid.o           \
                                          x86/idct_sse2_xvid.o          \
                                          x86/motion_est_mmx.o          \
                                          x86/mpegvideo_mmx.o           \
                                          x86/simple_idct_mmx.o         \

MMX-OBJS-$(CONFIG_DCT)                 += x86/dct32_sse.o