Hi,
2015-02-04 4:55 GMT+01:00 James Almer <[email protected]>:
> -DECLARE_ALIGNED(16, const xmm_reg, ff_pw_1) = { 0x0001000100010001ULL,
> 0x0001000100010001ULL };
> -DECLARE_ALIGNED(16, const xmm_reg, ff_pw_2) = { 0x0002000200020002ULL,
> 0x0002000200020002ULL };
> +DECLARE_ALIGNED(32, const ymm_reg, ff_pw_1) = { 0x0001000100010001ULL,
> 0x0001000100010001ULL,
> + 0x0001000100010001ULL,
> 0x0001000100010001ULL };
> +DECLARE_ALIGNED(32, const ymm_reg, ff_pw_2) = { 0x0002000200020002ULL,
> 0x0002000200020002ULL,
> + 0x0002000200020002ULL,
> 0x0002000200020002ULL };
> DECLARE_ALIGNED(16, const xmm_reg, ff_pw_3) = { 0x0003000300030003ULL,
> 0x0003000300030003ULL };
> DECLARE_ALIGNED(16, const xmm_reg, ff_pw_4) = { 0x0004000400040004ULL,
> 0x0004000400040004ULL };
> DECLARE_ALIGNED(16, const xmm_reg, ff_pw_5) = { 0x0005000500050005ULL,
> 0x0005000500050005ULL };
> @@ -48,7 +50,8 @@ DECLARE_ALIGNED(16, const xmm_reg, ff_pw_1019) = {
> 0x03FB03FB03FB03FBULL, 0x03F
> DECLARE_ALIGNED(16, const xmm_reg, ff_pw_1024) = { 0x0400040004000400ULL,
> 0x0400040004000400ULL };
> DECLARE_ALIGNED(16, const xmm_reg, ff_pw_2048) = { 0x0800080008000800ULL,
> 0x0800080008000800ULL };
> DECLARE_ALIGNED(16, const xmm_reg, ff_pw_8192) = { 0x2000200020002000ULL,
> 0x2000200020002000ULL };
> -DECLARE_ALIGNED(16, const xmm_reg, ff_pw_m1) = { 0xFFFFFFFFFFFFFFFFULL,
> 0xFFFFFFFFFFFFFFFFULL };
> +DECLARE_ALIGNED(32, const ymm_reg, ff_pw_m1) = { 0xFFFFFFFFFFFFFFFFULL,
> 0xFFFFFFFFFFFFFFFFULL,
> + 0xFFFFFFFFFFFFFFFFULL,
> 0xFFFFFFFFFFFFFFFFULL };
Nice of you to do this. There is more sharing to do, but I have
patches waiting for your patchset and the avx2 patch to clean even
more.
> +;void ff_hevc_sao_edge_filter_<width>_<depth>_<opt>(uint8_t *_dst, uint8_t
> *_src, ptrdiff_t stride_dst, ptrdiff_t stride_src,
> +; int16_t *sao_offset_val,
> int eo, int width, int height);
> +%macro HEVC_SAO_EDGE_FILTER_16 3
> +%if WIN64
> +cglobal hevc_sao_edge_filter_%2_%1, 4, 8, 16, dst, src, dststride,
> srcstride, eo, a_stride, b_stride, height
Ok, nevermind my comment in patch 5/6: 16 xmm regs are too much for
x86_32. Or playing with the stack is required, but that would be
another patch, if ever.
Otherwise, nothing striking in that code, looks good.
Thanks,
--
Christophe
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel