23 #include "../lossless_videodsp.h" 32 int *left,
int *left_top);
35 int *left,
int *left_top);
38 ptrdiff_t
w,
int left);
40 ptrdiff_t
w,
int left);
42 ptrdiff_t
w,
int left);
50 #if HAVE_INLINE_ASM && HAVE_7REGS && ARCH_X86_32 53 int *left,
int *left_top)
58 int tl = *left_top & 0xff;
63 "movzbl (%3, %4), %2 \n" 76 "add (%6, %4), %b0 \n" 77 "mov %b0, (%5, %4) \n" 80 :
"+&q"(l),
"+&q"(tl),
"=&r"(t),
"=&q"(x),
"+&r"(w2)
81 :
"r"(dst + w),
"r"(diff +
w),
"rm"(top + w)
92 #if HAVE_INLINE_ASM && HAVE_7REGS && ARCH_X86_32 #define EXTERNAL_MMX(flags)
void ff_add_gradient_pred_ssse3(uint8_t *src, const ptrdiff_t stride, const ptrdiff_t width)
int(* add_left_pred)(uint8_t *dst, const uint8_t *src, ptrdiff_t w, int left)
int ff_add_left_pred_int16_unaligned_ssse3(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned acc)
#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_median_pred)(uint8_t *dst, const uint8_t *top, const uint8_t *diff, ptrdiff_t w, int *left, int *left_top)
#define EXTERNAL_SSE2(flags)
void ff_llviddsp_init_x86(LLVidDSPContext *c)
void(* add_gradient_pred)(uint8_t *src, const ptrdiff_t stride, const ptrdiff_t width)
void ff_add_bytes_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t w)
#define EXTERNAL_AVX2_FAST(flags)
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)
void ff_add_gradient_pred_avx2(uint8_t *src, const ptrdiff_t stride, const ptrdiff_t width)
int ff_add_left_pred_unaligned_avx2(uint8_t *dst, const uint8_t *src, ptrdiff_t w, int left)
#define AV_CPU_FLAG_3DNOW
AMD 3DNOW.
int(* add_left_pred_int16)(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned left)
#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 ff_add_left_pred_ssse3(uint8_t *dst, const uint8_t *src, ptrdiff_t w, int left)
void(* add_bytes)(uint8_t *dst, uint8_t *src, ptrdiff_t w)
#define EXTERNAL_SSSE3_FAST(flags)
void ff_add_bytes_avx2(uint8_t *dst, uint8_t *src, ptrdiff_t w)