FFmpeg/libavcodec/x86
Roland Scheidegger 82c71913e4 h264: new assembly version of get_cabac for x86_64 with PIC
This adds a hand-optimized assembly version for get_cabac much like the
existing one, but it works if the table offsets are RIP-relative.
Compared to the non-RIP-relative version this adds 2 lea instructions
and it needs one extra register.
There is a surprisingly large performance improvement over the c version (more
so than the generated assembly seems to suggest) just in get_cabac, I measured
roughly 40% faster for get_cabac on a K8. However, overall the difference is
not that big, I measured roughly 5% on a test clip on a K8 and a Core2.
Hopefully it still compiles on x86 32bit...
Now that only one table is used, there's some chance even darwin as compiles
this (apparently the label arithmetic used previously doesn't work if it
involves symbols defined in a different file, thanks to Ronald S. Bultje for
helping me with this).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 20:02:27 +02:00
..
ac3dsp_mmx.c
ac3dsp.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 21:50:37 +02:00
cabac.h h264: new assembly version of get_cabac for x86_64 with PIC 2012-04-28 20:02:27 +02:00
cavsdsp_mmx.c
dct32_sse.asm
deinterlace.asm
diracdsp_mmx.c dirac: mark some variables const. 2012-03-15 22:12:02 +01:00
diracdsp_mmx.h
diracdsp_yasm.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
dnxhd_mmx.c
dsputil_mmx_avg_template.c
dsputil_mmx_qns_template.c
dsputil_mmx_rnd_template.c
dsputil_mmx.c lowres2 support. 2012-04-22 22:26:55 +02:00
dsputil_mmx.h
dsputil_yasm.asm Merge remote-tracking branch 'qatar/master' 2012-04-14 22:37:43 +02:00
dsputilenc_mmx.c dsp: fix diff_bytes_mmx() with small width 2012-03-17 20:48:56 +01:00
dsputilenc_yasm.asm
dwt_yasm.asm
dwt.c
dwt.h
fdct_mmx.c
fft_3dn2.c
fft_3dn.c
fft_mmx.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
fft_sse.c
fft.c
fft.h
fmtconvert_mmx.c
fmtconvert.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_chromamc_10bit.asm
h264_chromamc.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_deblock_10bit.asm Merge remote-tracking branch 'qatar/master' 2012-02-28 03:38:58 +01:00
h264_deblock.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_i386.h h264: new assembly version of get_cabac for x86_64 with PIC 2012-04-28 20:02:27 +02:00
h264_idct_10bit.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_idct.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_intrapred_10bit.asm
h264_intrapred_init.c
h264_intrapred.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_qpel_10bit.asm x86inc improvements for 64-bit 2012-04-11 15:47:00 -04:00
h264_qpel_mmx.c Merge remote-tracking branch 'qatar/master' 2012-03-08 02:51:45 +01:00
h264_weight_10bit.asm h264: use proper PROLOGUE statement for a function using 8 registers. 2012-04-16 08:07:21 -07:00
h264_weight.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264dsp_mmx.c
idct_mmx_xvid.c
idct_mmx.c
idct_sse2_xvid.c
idct_xvid.h
imdct36_sse.asm
lpc_mmx.c
Makefile Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
mathops.h
mlpdsp.c
motion_est_mmx.c
mpegaudiodec_mmx.c
mpegvideo_mmx_template.c
mpegvideo_mmx.c
pngdsp-init.c
pngdsp.asm
proresdsp-init.c
proresdsp.asm
rv34dsp_init.c
rv34dsp.asm
rv40dsp_init.c rv40dsp: implement prescaled versions for biweight. 2012-04-10 10:06:48 -07:00
rv40dsp.asm Merge remote-tracking branch 'qatar/master' 2012-04-10 22:53:25 +02:00
sbrdsp_init.c SBR DSP x86: implement SSE sbr_hf_g_filt 2012-02-23 15:50:09 -08:00
sbrdsp.asm dsputil x86: use SSE float instruction instead of SSE2 integer equivalent 2012-04-04 11:24:27 -07:00
simple_idct_mmx.c
snowdsp_mmx.c
v210-init.c
v210.asm
vc1dsp_mmx.c Fix linking without yasm. 2012-03-24 14:54:06 +01:00
vc1dsp_yasm.asm
vp3dsp.asm
vp8dsp-init.c Merge remote-tracking branch 'qatar/master' 2012-03-05 00:15:55 +01:00
vp8dsp.asm Merge remote-tracking branch 'qatar/master' 2012-04-05 22:26:50 +02:00
vp56_arith.h
vp56dsp_init.c
vp56dsp.asm
w64xmmtest.c