1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
FFmpeg/libavcodec/x86
Christophe Gisquet 0810608e23 x86: hevc_mc: better register allocation
The xmm reg count was incorrect, and manual loading of the gprs
furthermore allows to noticeable reduce the number needed.

The modified functions are used in weighted prediction, so only a
few samples like WP_* exhibit a change. For this one and Win64
(some widths removed because of too few occurrences):

WP_A_Toshiba_3.bit, ff_hevc_put_hevc_uni_w
         16    32
before: 2194  3872
after:  2119  3767

WP_B_Toshiba_3.bit, ff_hevc_put_hevc_bi_w
         16    32    64
before: 2819  4960  9396
after:  2617  4788  9150

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 17:39:34 +02:00
..
ac3dsp_init.c Merge commit 'b42f49e42f8cde25a788b2d13d03e99ca2956647' 2014-04-05 19:05:00 +02:00
ac3dsp.asm Merge commit '57b5b84e208ad61ffdd74ad849bed212deb92bc5' 2014-04-05 19:36:21 +02:00
cabac.h inline asm: fix arrays as named constraints. 2014-05-07 15:02:45 +02:00
cavsdsp.c x86: hpeldsp: propagate changes across codecs 2014-05-26 15:37:04 +02:00
constants.c
constants.h Add missing external declarations. 2014-03-17 00:48:09 +01:00
dca.h Merge commit 'b23bc95920e2f10b9621857e829c45b064f356c0' 2014-02-19 15:44:48 +01:00
dcadsp_init.c x86/synth_filter: remove the fma3 version ifdefs 2014-04-13 11:29:28 +02:00
dcadsp.asm x86/synth_filter: remove the fma3 version ifdefs 2014-04-13 11:29:28 +02:00
dct32.asm
dct_init.c Merge remote-tracking branch 'qatar/master' 2013-08-22 14:28:42 +02:00
deinterlace.asm Merge commit '831a1180785a786272cdcefb71566a770bfb879e' 2014-03-13 23:59:56 +01:00
dirac_dwt.c Merge commit '1399931d07f0f37ef4526eb8d39d33c64e09618a' 2013-05-14 12:12:20 +02:00
dirac_dwt.h
diracdsp_mmx.c x86: hpeldsp: propagate changes across codecs 2014-05-26 15:37:04 +02:00
diracdsp_mmx.h
diracdsp_yasm.asm
dnxhdenc_init.c DNxHD: convert inline asm to yasm 2014-04-11 12:09:09 +02:00
dnxhdenc.asm DNxHD: convert inline asm to yasm 2014-04-11 12:09:09 +02:00
dsputil_init.c Merge commit '0d439fbede03854eac8a978cccf21a3425a3c82d' 2014-05-27 23:16:06 +02:00
dsputil_mmx.c Merge commit '0d439fbede03854eac8a978cccf21a3425a3c82d' 2014-05-27 23:16:06 +02:00
dsputil_qns_template.c Merge commit 'aba70bb5387f12dfa5e6cd8cb861c9c7e668151f' 2014-03-26 14:50:55 +01:00
dsputil_x86.h Merge commit '0d439fbede03854eac8a978cccf21a3425a3c82d' 2014-05-27 23:16:06 +02:00
dsputil.asm Merge commit '0d439fbede03854eac8a978cccf21a3425a3c82d' 2014-05-27 23:16:06 +02:00
dsputilenc_mmx.c Merge commit '512f3ffe9b4bb86767c2b1176554407c75fe1a5c' 2014-05-28 00:03:59 +02:00
dsputilenc.asm x86/dsputilenc: use HADDD in ff_sse16_sse2 2014-05-27 15:12:50 +02:00
dwt_yasm.asm
fdct.c Merge commit '831a1180785a786272cdcefb71566a770bfb879e' 2014-03-13 23:59:56 +01:00
fft_init.c Merge remote-tracking branch 'qatar/master' 2013-08-22 14:28:42 +02:00
fft.asm x86: Fix compilation with nasm on PPC & OS/2 2013-10-08 12:36:19 +02:00
fft.h Merge remote-tracking branch 'qatar/master' 2013-08-22 14:28:42 +02:00
flacdsp_init.c x86/fladsp: add missing check to ff_flacdsp_init_x86() 2014-02-16 12:06:04 +01:00
flacdsp.asm x86: Move XOP emulation to x86util 2014-02-24 08:30:19 +01:00
fmtconvert_init.c Merge commit 'e998b56362c711701b3daa34e7b956e7126336f4' 2013-08-30 12:50:01 +02:00
fmtconvert.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
fpel.asm x86: kill fpel_mmx.c 2014-05-21 03:25:08 +02:00
fpel.h x86: hpeldsp: propagate changes across codecs 2014-05-26 15:37:04 +02:00
h263_loopfilter.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h263dsp_init.c Merge commit '0338c396987c82b41d322630ea9712fe5f9561d6' 2013-11-08 17:42:56 +01:00
h264_chromamc_10bit.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264_chromamc.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264_deblock_10bit.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264_deblock.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264_i386.h inline asm: fix arrays as named constraints. 2014-05-07 15:02:45 +02:00
h264_idct_10bit.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264_idct.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264_intrapred_10bit.asm x86: move horizontal add macros to x86util 2014-04-17 14:15:09 +02:00
h264_intrapred_init.c Merge commit 'ac4b32df71bd932838043a4838b86d11e169707f' 2014-04-04 14:46:10 +02:00
h264_intrapred.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264_qpel_8bit.asm
h264_qpel_10bit.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264_qpel.c x86: hpeldsp: propagate changes across codecs 2014-05-26 15:37:04 +02:00
h264_weight_10bit.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264_weight.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
h264chroma_init.c Merge commit '01c5779f56cf708e6cb88b11cfdc248cae7e2ee8' 2014-04-05 19:16:39 +02:00
h264dsp_init.c Merge commit 'b42f49e42f8cde25a788b2d13d03e99ca2956647' 2014-04-05 19:05:00 +02:00
hevc_deblock.asm x86/hevc_deblock: improve chroma functions register allocation 2014-05-24 01:16:26 +02:00
hevc_mc.asm x86: hevc_mc: better register allocation 2014-05-28 17:39:34 +02:00
hevcdsp_init.c avcodec/x86/hevc: added DBF assembly functions 2014-05-16 21:11:03 +02:00
hevcdsp.h hevcdsp: include stddef.h for ptrdiff_t definition 2014-05-10 18:23:30 +02:00
hpeldsp_init.c x86: hpeldsp: propagate changes across codecs 2014-05-26 15:37:04 +02:00
hpeldsp_rnd_template.c Merge commit 'aba70bb5387f12dfa5e6cd8cb861c9c7e668151f' 2014-03-26 14:50:55 +01:00
hpeldsp.asm x86: hpeldsp: implement SSSE3 version of _xy2 2014-05-24 15:15:56 +02:00
hpeldsp.h x86: hpeldsp: propagate changes across codecs 2014-05-26 15:37:04 +02:00
huffyuvdsp_init.c Merge commit '512f3ffe9b4bb86767c2b1176554407c75fe1a5c' 2014-05-28 00:03:59 +02:00
huffyuvdsp_mmx.c Merge commit '0d439fbede03854eac8a978cccf21a3425a3c82d' 2014-05-27 23:16:06 +02:00
huffyuvdsp.asm Merge commit '0d439fbede03854eac8a978cccf21a3425a3c82d' 2014-05-27 23:16:06 +02:00
huffyuvdsp.h Merge commit '0d439fbede03854eac8a978cccf21a3425a3c82d' 2014-05-27 23:16:06 +02:00
huffyuvencdsp_mmx.c Merge commit '512f3ffe9b4bb86767c2b1176554407c75fe1a5c' 2014-05-28 00:03:59 +02:00
idct_mmx_xvid.c Merge commit '0b8b2ae5e93d616c2ece59f7175f483154cff918' 2013-10-06 11:25:22 +02:00
idct_sse2_xvid.c inline asm: fix arrays as named constraints. 2014-05-07 15:02:45 +02:00
idct_xvid.h
imdct36.asm x86/imdct36: use sse3 instructions in the last BUTTERF step when possible 2014-02-27 23:28:15 +01:00
inline_asm.h Merge commit '1a8d0cf77ed2611e542ae98f341d4c43a04467bd' 2014-03-22 22:11:27 +01:00
lossless_videodsp_init.c avcodec/lossless_videodsp: fix incompatible pointer type warning 2014-05-05 05:49:18 +02:00
lossless_videodsp.asm avcodec/x86/lossless_videodsp: fix w type 2014-02-15 06:41:38 +01:00
lpc.c inline asm: fix arrays as named constraints. 2014-05-07 15:02:45 +02:00
Makefile Merge commit '512f3ffe9b4bb86767c2b1176554407c75fe1a5c' 2014-05-28 00:03:59 +02:00
mathops.h Fix compilation with !HAVE_6REGS. 2014-04-19 09:56:01 +02:00
mlpdsp.c avcodec/x86/mlpdsp: Only use asm when non-local inline asm lables are supported 2014-03-18 23:37:50 +01:00
motion_est.c Additional icl inline asm fix. 2014-03-22 14:07:03 +01:00
mpeg4qpel.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
mpegaudiodsp.c x86/mpegaudiodsp.c: msvc compilation error without sse/avx_external 2014-05-06 14:15:02 +02:00
mpegvideo.c Merge commit 'b42f49e42f8cde25a788b2d13d03e99ca2956647' 2014-04-05 19:05:00 +02:00
mpegvideoenc_template.c Merge commit 'aba70bb5387f12dfa5e6cd8cb861c9c7e668151f' 2014-03-26 14:50:55 +01:00
mpegvideoenc.c Fix compilation with !HAVE_6REGS. 2014-04-19 09:56:01 +02:00
pngdsp_init.c Merge remote-tracking branch 'qatar/master' 2013-07-18 09:53:47 +02:00
pngdsp.asm Reinstate proper FFmpeg license for all files. 2013-08-30 15:47:38 +00:00
proresdsp_init.c Merge commit 'b23650491fbd579a4365f42bd42575afb7b53f7e' 2014-02-28 17:13:00 +01:00
proresdsp.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
qpel.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
rnd_template.c Merge commit '1a8d0cf77ed2611e542ae98f341d4c43a04467bd' 2014-03-22 22:11:27 +01:00
rv34dsp_init.c Merge commit 'b0be1ae792ac8bbfb0fc7b9b9cb39eaf0feb489b' 2014-01-09 20:24:15 +01:00
rv34dsp.asm Reinstate proper FFmpeg license for all files. 2013-08-30 15:47:38 +00:00
rv40dsp_init.c x86: hpeldsp: propagate changes across codecs 2014-05-26 15:37:04 +02:00
rv40dsp.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
sbrdsp_init.c x86: sbrdsp: implement SSE qmf_deint_neg 2014-05-15 23:11:18 +02:00
sbrdsp.asm x86: sbrdsp: implement SSE qmf_deint_neg 2014-05-15 23:11:18 +02:00
simple_idct.c Automatically change MANGLE() into named inline asm operands when direct symbol reference in inline asm are not supported. 2014-03-18 23:39:30 +01:00
snowdsp.c Fix compilation with !HAVE_6REGS. 2014-04-19 09:56:01 +02:00
ttadsp_init.c tta/x86: add ff_ttafilter_process_dec_{ssse3, sse4} 2014-02-17 13:51:19 +01:00
ttadsp.asm tta/x86: add ff_ttafilter_process_dec_{ssse3, sse4} 2014-02-17 13:51:19 +01:00
v210-init.c
v210.asm Reinstate proper FFmpeg license for all files. 2013-08-30 15:47:38 +00:00
vc1dsp_init.c vc1dsp: fix build without inline asm 2014-04-22 14:01:53 +02:00
vc1dsp_mmx.c x86: kill fpel_mmx.c 2014-05-21 03:25:08 +02:00
vc1dsp.asm
vc1dsp.h
videodsp_init.c Merge commit '51daafb02eaf96e0743a37ce95a7f5d02c1fa3c2' 2014-01-31 14:30:30 +01:00
videodsp.asm x86: videodsp: Fix a bug in a %if statement where we used '%%' instead of '&&'. 2014-01-30 15:33:23 +01:00
vorbisdsp_init.c Merge commit '01c5779f56cf708e6cb88b11cfdc248cae7e2ee8' 2014-04-05 19:16:39 +02:00
vorbisdsp.asm
vp3dsp_init.c Fix compilation with !HAVE_6REGS. 2014-04-19 09:56:01 +02:00
vp3dsp.asm
vp6dsp_init.c Merge commit 'b0be1ae792ac8bbfb0fc7b9b9cb39eaf0feb489b' 2014-01-09 20:24:15 +01:00
vp6dsp.asm Merge commit '8506ff97c9ea4a1f52983497ecf8d4ef193403a9' 2013-08-24 11:04:11 +02:00
vp8dsp_init.c Merge commit 'ac4b32df71bd932838043a4838b86d11e169707f' 2014-04-04 14:46:10 +02:00
vp8dsp_loopfilter.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
vp8dsp.asm Merge commit '55519926ef855c671d084ccc151056de9e3d3a77' 2014-03-14 00:01:30 +01:00
vp9dsp_init.c x86/vp9mc: add vp9 namespace. 2014-03-29 18:13:15 +01:00
vp9intrapred.asm vp9/x86: set correct number of registers used in intra pred asm 2014-02-18 17:20:14 +01:00
vp9itxfm.asm vp9/x86: use explicit register for relative stack references. 2014-01-24 19:25:25 -05:00
vp9lpf.asm avcodec/x86/vp9lpf: add a comment above a bunch of SWAP. 2014-04-20 21:33:58 +02:00
vp9mc.asm x86/vp9mc: add vp9 namespace. 2014-03-29 18:13:15 +01:00
vp56_arith.h Fix compilation with !HAVE_6REGS. 2014-04-19 09:56:01 +02:00
w64xmmtest.c x86: Add an xmm clobbering wrapper for avcodec_encode_video2 2013-09-17 10:53:23 +02:00