[FFmpeg-devel] [PATCH 5/9] SBR DSP x86: implement SSE hf_apply_noise

Jason Garrett-Glaser darkshikari at gmail.com
Sat Apr 6 01:03:11 CEST 2013


On Fri, Apr 5, 2013 at 2:57 PM, Christophe Gisquet <
christophe.gisquet at gmail.com> wrote:

> 2013/4/5 Michael Niedermayer <michaelni at gmx.at>:
> >> +INIT_XMM sse
> >> +%ifdef PIC
> >
> > i suspect you meant ifNdef
>
> I'm confused. From what I understood from your compile error, you had
> a non-PIC config (win64 is eg always PIC and does not exhibit it). In
> the case of such a non-PIC config, I'm supposed to allocate another
> reg and lea said address into it.
>
> Therefore for PIC, no additional reg and directly use the address.
> For non-PIC, one more and use it for addressing.
>
> And therefore this:
> >> +%define NPICREGS 0
> >> +%define NOISE_TABLE sbr_noise_table
> >> +%else
> >> +%define NPICREGS 1
> >> +%define NOISE_TABLE r5q
> >> +%endif
>
> So where am I mistaken?
>
> >> +    mova       m0, [kxq + ps_noise13 + 16]
> >
> > these 2 will break PIC too
>
> OK, I'll lea the ps_noise* to the !PIC-allocated r5q and use it instead.
>
> Jason had a proposal for AVX code. I can test the SSE changes, but not
> the actual ymm stuff (nor understand it enough).
>

You shouldn't need to implement the AVX or anything like that to get the
code in; I just figured I'd mention it.   For testing, you can use the
Intel Software Development Emulator: it's a super easy program that works
like this:

sde -- ./program my args go here

and supports everything up through AVX2.  It uses dynamic recompilation, so
it's pretty fast.

Good catch on the cmpps; we should fix that.

Jason


More information about the ffmpeg-devel mailing list