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.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 21:50:37 +02:00
ac3dsp_mmx.c
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 Merge remote-tracking branch 'qatar/master' 2012-01-28 07:53:34 +01:00
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.c lowres2 support. 2012-04-22 22:26:55 +02:00
dsputil_mmx.h Merge remote-tracking branch 'qatar/master' 2012-02-16 01:34:37 +01:00
dsputil_mmx_avg_template.c
dsputil_mmx_qns_template.c
dsputil_mmx_rnd_template.c
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 Merge remote-tracking branch 'qatar/master' 2012-01-28 07:53:34 +01:00
dwt.c
dwt.h
dwt_yasm.asm dirac_yasm: fix linking failure due to %ifndef 2012-01-28 09:06:03 +01:00
fdct_mmx.c Merge remote-tracking branch 'qatar/master' 2012-02-10 01:20:07 +01:00
fft.c Merge remote-tracking branch 'qatar/master' 2012-02-10 01:20:07 +01:00
fft.h
fft_3dn.c
fft_3dn2.c Merge remote-tracking branch 'qatar/master' 2012-02-10 01:20:07 +01:00
fft_mmx.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
fft_sse.c Merge remote-tracking branch 'qatar/master' 2012-02-10 01:20:07 +01:00
fmtconvert.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
fmtconvert_mmx.c Merge remote-tracking branch 'qatar/master' 2012-02-01 02:36:09 +01:00
h264_chromamc.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_chromamc_10bit.asm config.asm: change %ifdef directives to %if directives. 2012-01-27 10:19:57 +08:00
h264_deblock.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_i386.h h264: new assembly version of get_cabac for x86_64 with PIC 2012-04-28 20:02:27 +02:00
h264_idct.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_idct_10bit.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_intrapred.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_intrapred_10bit.asm Merge remote-tracking branch 'qatar/master' 2012-01-28 07:53:34 +01:00
h264_intrapred_init.c Detect and check for CMOV. 2012-02-12 18:56:06 +01: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.asm Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
h264_weight_10bit.asm h264: use proper PROLOGUE statement for a function using 8 registers. 2012-04-16 08:07:21 -07:00
h264dsp_mmx.c Detect and check for CMOV. 2012-02-12 18:56:06 +01:00
idct_mmx.c cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
idct_mmx_xvid.c Merge remote-tracking branch 'qatar/master' 2012-02-10 01:20:07 +01:00
idct_sse2_xvid.c
idct_xvid.h
imdct36_sse.asm Fix compilation without HAVE_AVX. 2012-02-12 21:42:31 +01:00
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 Merge remote-tracking branch 'qatar/master' 2012-02-16 01:34:37 +01:00
mpegaudiodec_mmx.c Merge remote-tracking branch 'qatar/master' 2012-02-17 00:35:06 +01:00
mpegvideo_mmx.c Merge remote-tracking branch 'qatar/master' 2012-02-16 01:34:37 +01:00
mpegvideo_mmx_template.c Merge remote-tracking branch 'qatar/master' 2012-02-16 01:34:37 +01:00
pngdsp-init.c Merge remote-tracking branch 'qatar/master' 2012-01-31 02:46:26 +01:00
pngdsp.asm Partially revert "Fix png decoding on x86." 2012-02-10 23:18:52 +01:00
proresdsp-init.c
proresdsp.asm Fix compilation without HAVE_AVX. 2012-02-12 21:42:31 +01:00
rv34dsp.asm Use correct register size. 2012-01-17 08:41:39 +01:00
rv34dsp_init.c rv34: change most "int stride" into "ptrdiff_t stride". 2012-02-20 14:58:25 -08:00
rv40dsp.asm Merge remote-tracking branch 'qatar/master' 2012-04-10 22:53:25 +02:00
rv40dsp_init.c rv40dsp: implement prescaled versions for biweight. 2012-04-10 10:06:48 -07:00
sbrdsp.asm dsputil x86: use SSE float instruction instead of SSE2 integer equivalent 2012-04-04 11:24:27 -07:00
sbrdsp_init.c SBR DSP x86: implement SSE sbr_hf_g_filt 2012-02-23 15:50:09 -08:00
simple_idct_mmx.c
snowdsp_mmx.c
v210-init.c Merge remote-tracking branch 'qatar/master' 2012-02-22 02:24:18 +01:00
v210.asm Fix compilation without HAVE_AVX. 2012-02-12 21:42:31 +01:00
vc1dsp_mmx.c Fix linking without yasm. 2012-03-24 14:54:06 +01:00
vc1dsp_yasm.asm
vp3dsp.asm Merge remote-tracking branch 'qatar/master' 2012-01-28 07:53:34 +01:00
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.asm Merge remote-tracking branch 'qatar/master' 2012-01-28 07:53:34 +01:00
vp56dsp_init.c
w64xmmtest.c win64: add a XMM clobber test configure option. 2012-02-02 12:00:48 -08:00