[FFmpeg-devel] [PATCH 3/5] x86: hevc_mc: save 1 gpr in epel filter loading
Christophe Gisquet
christophe.gisquet at gmail.com
Mon Feb 16 10:43:26 CET 2015
Hi,
2015-02-16 4:51 GMT+01:00 Michael Niedermayer <michaelni at gmx.at>:
> On Sat, Feb 07, 2015 at 06:49:38PM +0000, Christophe Gisquet wrote:
>> The 3*stride value stored in r3src can be loaded much later,
>> so use r3src instead of a dedicated gpr when possible.
>> ---
>> libavcodec/x86/hevc_mc.asm | 65 ++++++++++++++++++++++------------------------
>> 1 file changed, 31 insertions(+), 34 deletions(-)
>
> This seems to crash fate-hevc-conformance-AMP_D_Hisilicon and
> others, didnt had time to look at why
Can't test at the moment, but I guess the issue is in the !PIC case where:
> %ifdef PIC
> - lea rfilterq, [%%table]
> + lea r3srcq, [%%table]
> %else
> %define rfilterq %%table
> %endif
> @@ -187,9 +184,8 @@ QPEL_TABLE 10, 8, w, avx2
> sub myq, 1
> shl mxq, %%shift ; multiply by 32
> shl myq, %%shift ; multiply by 32
> - mova m14, [rfilterq + mxq] ; get 2 first values of filters
> - mova m15, [rfilterq + mxq+%%offset] ; get 2 last values of filters
> - lea r3srcq, [srcstrideq*3]
> + mova m14, [r3srcq + mxq] ; get 2 first values of filters
> + mova m15, [r3srcq + mxq+%%offset] ; get 2 last values of filters
Obviously I shouldn't unconditionally use r3srcq or equivalent, as
!PIC just directly access the %%table
I probably need to define an intermediate, say TABLE, which is either
r3srcq or %%table, and use it for loading the xmm regs.
--
Christophe
More information about the ffmpeg-devel
mailing list