23 #include "../lossless_videodsp.h"
31 int *left,
int *left_top);
34 int *left,
int *left_top);
37 ptrdiff_t w,
int left);
39 ptrdiff_t w,
int left);
44 #if HAVE_INLINE_ASM && HAVE_7REGS && ARCH_X86_32
47 int *left,
int *left_top)
52 int tl = *left_top & 0xff;
57 "movzbl (%3, %4), %2 \n"
70 "add (%6, %4), %b0 \n"
71 "mov %b0, (%5, %4) \n"
74 :
"+&q"(l),
"+&q"(tl),
"=&r"(t),
"=&q"(x),
"+&r"(w2)
75 :
"r"(dst + w),
"r"(diff + w),
"rm"(top + w)
86 #if HAVE_INLINE_ASM && HAVE_7REGS && ARCH_X86_32
int(* add_left_pred_int16)(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned left)
#define EXTERNAL_MMX(flags)
#define AV_CPU_FLAG_CMOV
supports cmov instruction
static atomic_int cpu_flags
int ff_add_left_pred_int16_ssse3(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned acc)
void ff_add_bytes_mmx(uint8_t *dst, uint8_t *src, ptrdiff_t w)
void(* add_bytes)(uint8_t *dst, uint8_t *src, ptrdiff_t w)
#define EXTERNAL_SSE4(flags)
int ff_add_left_pred_int16_sse4(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned acc)
#define EXTERNAL_SSE2(flags)
void ff_llviddsp_init_x86(LLVidDSPContext *c)
void ff_add_bytes_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t w)
static const uint16_t mask[17]
void ff_add_median_pred_sse2(uint8_t *dst, const uint8_t *top, const uint8_t *diff, ptrdiff_t w, int *left, int *left_top)
#define AV_CPU_FLAG_3DNOW
AMD 3DNOW.
#define EXTERNAL_SSSE3(flags)
int ff_add_left_pred_unaligned_ssse3(uint8_t *dst, const uint8_t *src, ptrdiff_t w, int left)
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
#define EXTERNAL_MMXEXT(flags)
void ff_add_median_pred_mmxext(uint8_t *dst, const uint8_t *top, const uint8_t *diff, ptrdiff_t w, int *left, int *left_top)
static av_always_inline int diff(const uint32_t a, const uint32_t b)
int(* add_left_pred)(uint8_t *dst, const uint8_t *src, ptrdiff_t w, int left)
int ff_add_left_pred_ssse3(uint8_t *dst, const uint8_t *src, ptrdiff_t w, int left)
#define EXTERNAL_SSSE3_FAST(flags)
void(* add_median_pred)(uint8_t *dst, const uint8_t *top, const uint8_t *diff, ptrdiff_t w, int *left, int *left_top)