On 2015-10-01 19:25, Paul B Mahol wrote:
> +cglobal maskedmerge8, 10, 11, 3, 0, bsrc, blinesize, osrc, olinesize, msrc, 
> mlinesize, dst, dlinesize, w, h

You need a guard to prevent this being compiled on x86.

> +    lea bsrcq, [bsrcq+blinesizeq]
> +    lea osrcq, [osrcq+olinesizeq]
> +    lea msrcq, [msrcq+mlinesizeq]
> +    lea dstq, [dstq+dlinesizeq]

> +    void (*maskedmerge)(const uint8_t *bsrc, int blinesize,
> +                        const uint8_t *osrc, int olinesize,
> +                        const uint8_t *msrc, int mlinesize,
> +                        uint8_t *dst, int dlinesize, int w, int h,
> +                        int half, int shift);

As I said briefly on IRC, you need to sign-extend (movsxd or the macro
movsxdifnidn) these integer linesize arguments before using the quadword
registers they sit in.  An alternative is to define the arguments as
ptrdiff_t types and let the compiler do that in the C code.

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to