On 2014-04-23 12:29:26 +0300, Martin Storsjö wrote:
> On Tue, 22 Apr 2014, Janne Grunau wrote:
> 
> >+#include "libavutil/aarch64/asm.S"
> >+
> >+.macro resample_one     fmt, es=2
> >+function ff_resample_one_\fmt\()_neon, export=1
> >+        sxtw            x2,  w2
> >+        ldr             x9,  [x0, #16]          // filter_bank
> >+        ldr             w6,  [x0, #24]          // filter_length
> >+        ldr             w7,  [x0, #52]          // phase_shift
> >+        ldr             w8,  [x0, #56]          // phase_mask
> 
> I missed this earlier; this probably requires something like
> libavcodec/arm/asm-offsets.h to make sure it stays in sync with the
> struct.

That's not the only place we all missed that. MpegEncContext is the
exception where we do that. Probably due to its size and that there
were actually modifications of it that broke the ASM. IIRC due to
size changes of embedded structs.

But nothing prevents us from adding offset checks for other structs and
I actually like it since [x0, #VAR_NAME] looks better than '[x, #0x10] // 
var_name'.

I will update the patch


Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to