30 int *left,
int *left_top);
40 static void add_hfyu_median_pred_cmov(
uint8_t *dst,
const uint8_t *top,
42 int *left,
int *left_top)
47 int tl = *left_top & 0xff;
52 "movzbl (%3, %4), %2 \n" 65 "add (%6, %4), %b0 \n" 66 "mov %b0, (%5, %4) \n" 69 :
"+&q"(l),
"+&q"(tl),
"=&r"(t),
"=&q"(x),
"+&r"(w2)
70 :
"r"(dst + w),
"r"(diff + w),
"rm"(top + w)
84 "movq (%1, %0), %%mm0 \n\t" 85 "movq (%2, %0), %%mm1 \n\t" 86 "paddb %%mm0, %%mm1 \n\t" 87 "movq %%mm1, (%2, %0) \n\t" 88 "movq 8(%1, %0), %%mm0 \n\t" 89 "movq 8(%2, %0), %%mm1 \n\t" 90 "paddb %%mm0, %%mm1 \n\t" 91 "movq %%mm1, 8(%2, %0) \n\t" 97 :
"r" (src),
"r" (dst),
"r" ((
x86_reg) w - 15));
100 dst[i + 0] += src[i + 0];
void(* add_bytes)(uint8_t *dst, uint8_t *src, int w)
#define AV_CPU_FLAG_CMOV
i686 cmov
void ff_add_hfyu_median_pred_mmxext(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top)
Macro definitions for various function/variable attributes.
int ff_add_hfyu_left_pred_sse4(uint8_t *dst, const uint8_t *src, int w, int left)
void(* add_hfyu_median_pred)(uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top)
av_cold void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c)
#define INLINE_MMX(flags)
int(* add_hfyu_left_pred)(uint8_t *dst, const uint8_t *src, int w, int left)
#define AV_CPU_FLAG_3DNOW
AMD 3DNOW.
#define EXTERNAL_SSSE3(flags)
#define AV_CPU_FLAG_SSE4
Penryn SSE4.1 functions.
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
#define EXTERNAL_MMXEXT(flags)
int ff_add_hfyu_left_pred_ssse3(uint8_t *dst, const uint8_t *src, int w, int left)