#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/h264dsp.h"
#include "libavcodec/mpegvideo.h"
#include "libavcodec/simple_idct.h"
#include "dsputil_mmx.h"
#include "vp3dsp_mmx.h"
#include "vp3dsp_sse2.h"
#include "vp6dsp_mmx.h"
#include "vp6dsp_sse2.h"
#include "idct_xvid.h"
#include "dsputil_mmx_rnd_template.c"
#include "dsputil_mmx_avg_template.c"
#include "h264dsp_mmx.c"
#include "rv40dsp_mmx.c"
Go to the source code of this file.
Defines | |
#define | JUMPALIGN() __asm__ volatile (ASMALIGN(3)::) |
#define | MOVQ_ZERO(regd) __asm__ volatile ("pxor %%" #regd ", %%" #regd ::) |
#define | MOVQ_BFE(regd) |
#define | MOVQ_BONE(regd) __asm__ volatile ("movq %0, %%" #regd " \n\t" ::"m"(ff_bone)) |
#define | MOVQ_WTWO(regd) __asm__ volatile ("movq %0, %%" #regd " \n\t" ::"m"(ff_wtwo)) |
#define | PAVGB_MMX_NO_RND(rega, regb, regr, regfe) |
#define | PAVGB_MMX(rega, regb, regr, regfe) |
#define | PAVGBP_MMX_NO_RND(rega, regb, regr,regc, regd, regp) |
#define | PAVGBP_MMX(rega, regb, regr, regc, regd, regp) |
#define | DEF(x, y) x ## _no_rnd_ ## y ##_mmx |
#define | SET_RND MOVQ_WONE |
#define | PAVGBP(a, b, c, d, e, f) PAVGBP_MMX_NO_RND(a, b, c, d, e, f) |
#define | PAVGB(a, b, c, e) PAVGB_MMX_NO_RND(a, b, c, e) |
#define | OP_AVG(a, b, c, e) PAVGB_MMX(a, b, c, e) |
#define | DEF(x, y) x ## _ ## y ##_mmx |
#define | SET_RND MOVQ_WTWO |
#define | PAVGBP(a, b, c, d, e, f) PAVGBP_MMX(a, b, c, d, e, f) |
#define | PAVGB(a, b, c, e) PAVGB_MMX(a, b, c, e) |
#define | DEF(x) x ## _3dnow |
#define | PAVGB "pavgusb" |
#define | OP_AVG PAVGB |
#define | DEF(x) x ## _mmx2 |
#define | PAVGB "pavgb" |
#define | OP_AVG PAVGB |
#define | put_no_rnd_pixels16_mmx put_pixels16_mmx |
#define | put_no_rnd_pixels8_mmx put_pixels8_mmx |
#define | put_pixels16_mmx2 put_pixels16_mmx |
#define | put_pixels8_mmx2 put_pixels8_mmx |
#define | put_pixels4_mmx2 put_pixels4_mmx |
#define | put_no_rnd_pixels16_mmx2 put_no_rnd_pixels16_mmx |
#define | put_no_rnd_pixels8_mmx2 put_no_rnd_pixels8_mmx |
#define | put_pixels16_3dnow put_pixels16_mmx |
#define | put_pixels8_3dnow put_pixels8_mmx |
#define | put_pixels4_3dnow put_pixels4_mmx |
#define | put_no_rnd_pixels16_3dnow put_no_rnd_pixels16_mmx |
#define | put_no_rnd_pixels8_3dnow put_no_rnd_pixels8_mmx |
#define | put_signed_pixels_clamped_mmx_half(off) |
#define | CLEAR_BLOCKS(name, n) |
#define | H263_LOOP_FILTER |
#define | PAETH(cpu, abs3) |
#define | ABS3_MMX2 |
#define | ABS3_SSSE3 |
#define | QPEL_V_LOW(m3, m4, m5, m6, pw_20, pw_3, rnd, in0, in1, in2, in7, out, OP) |
#define | QPEL_BASE(OPNAME, ROUNDER, RND, OP_MMX2, OP_3DNOW) |
#define | QPEL_OP(OPNAME, ROUNDER, RND, OP, MMX) |
#define | PUT_OP(a, b, temp, size) "mov" #size " " #a ", " #b " \n\t" |
#define | AVG_3DNOW_OP(a, b, temp, size) |
#define | AVG_MMX2_OP(a, b, temp, size) |
#define | QPEL_2TAP_XY(OPNAME, SIZE, MMX, XY, HPEL) |
#define | QPEL_2TAP_L3(OPNAME, SIZE, MMX, XY, S0, S1, S2) |
#define | QPEL_2TAP(OPNAME, SIZE, MMX) |
#define | PREFETCH(name, op) |
#define | IF1(x) x |
#define | IF0(x) |
#define | MIX5(mono, stereo) |
#define | MIX_MISC(stereo) |
#define | ff_float_to_int16_interleave6_sse(a, b, c) float_to_int16_interleave_misc_sse(a,b,c,6) |
#define | ff_float_to_int16_interleave6_3dnow(a, b, c) float_to_int16_interleave_misc_3dnow(a,b,c,6) |
#define | ff_float_to_int16_interleave6_3dn2(a, b, c) float_to_int16_interleave_misc_3dnow(a,b,c,6) |
#define | ff_float_to_int16_interleave6_sse2 ff_float_to_int16_interleave6_sse |
#define | FLOAT_TO_INT16_INTERLEAVE(cpu, body) |
#define | SET_HPEL_FUNCS(PFX, IDX, SIZE, CPU) |
#define | SET_QPEL_FUNCS(PFX, IDX, SIZE, CPU) |
#define | H264_QPEL_FUNCS(x, y, CPU) |
Functions | |
DECLARE_ALIGNED (8, const uint64_t, ff_bone)=0x0101010101010101ULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_wtwo)=0x0002000200020002ULL | |
DECLARE_ALIGNED (16, const uint64_t, ff_pdw_80000000)[2] | |
DECLARE_ALIGNED (8, const uint64_t, ff_pw_3)=0x0003000300030003ULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pw_4)=0x0004000400040004ULL | |
DECLARE_ALIGNED (16, const xmm_reg, ff_pw_5) | |
DECLARE_ALIGNED (16, const xmm_reg, ff_pw_8) | |
DECLARE_ALIGNED (8, const uint64_t, ff_pw_15)=0x000F000F000F000FULL | |
DECLARE_ALIGNED (16, const xmm_reg, ff_pw_16) | |
DECLARE_ALIGNED (8, const uint64_t, ff_pw_20)=0x0014001400140014ULL | |
DECLARE_ALIGNED (16, const xmm_reg, ff_pw_28) | |
DECLARE_ALIGNED (16, const xmm_reg, ff_pw_32) | |
DECLARE_ALIGNED (8, const uint64_t, ff_pw_42)=0x002A002A002A002AULL | |
DECLARE_ALIGNED (16, const xmm_reg, ff_pw_64) | |
DECLARE_ALIGNED (8, const uint64_t, ff_pw_96)=0x0060006000600060ULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pw_128)=0x0080008000800080ULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pw_255)=0x00ff00ff00ff00ffULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pb_1)=0x0101010101010101ULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pb_3)=0x0303030303030303ULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pb_7)=0x0707070707070707ULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pb_1F)=0x1F1F1F1F1F1F1F1FULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pb_3F)=0x3F3F3F3F3F3F3F3FULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pb_81)=0x8181818181818181ULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pb_A1)=0xA1A1A1A1A1A1A1A1ULL | |
DECLARE_ALIGNED (8, const uint64_t, ff_pb_FC)=0xFCFCFCFCFCFCFCFCULL | |
DECLARE_ALIGNED (16, const double, ff_pd_1)[2] | |
DECLARE_ALIGNED (16, const double, ff_pd_2)[2] | |
void | put_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
DECLARE_ASM_CONST (8, uint8_t, ff_vector128)[8] | |
void | put_signed_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
void | add_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
static void | put_pixels4_mmx (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
static void | put_pixels8_mmx (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
static void | put_pixels16_mmx (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
static void | put_pixels16_sse2 (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
static void | avg_pixels16_sse2 (uint8_t *block, const uint8_t *pixels, int line_size, int h) |
static void | clear_block_sse (DCTELEM *block) |
static void | clear_blocks_sse (DCTELEM *blocks) |
static void | add_bytes_mmx (uint8_t *dst, uint8_t *src, int w) |
static void | add_bytes_l2_mmx (uint8_t *dst, uint8_t *src1, uint8_t *src2, int w) |
static void | h263_v_loop_filter_mmx (uint8_t *src, int stride, int qscale) |
static void | transpose4x4 (uint8_t *dst, uint8_t *src, int dst_stride, int src_stride) |
static void | h263_h_loop_filter_mmx (uint8_t *src, int stride, int qscale) |
static void | draw_edges_mmx (uint8_t *buf, int wrap, int width, int height, int w) |
static void | gmc_mmx (uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy, int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height) |
void | ff_put_cavs_qpel8_mc00_mmx2 (uint8_t *dst, uint8_t *src, int stride) |
void | ff_avg_cavs_qpel8_mc00_mmx2 (uint8_t *dst, uint8_t *src, int stride) |
void | ff_put_cavs_qpel16_mc00_mmx2 (uint8_t *dst, uint8_t *src, int stride) |
void | ff_avg_cavs_qpel16_mc00_mmx2 (uint8_t *dst, uint8_t *src, int stride) |
void | ff_put_vc1_mspel_mc00_mmx (uint8_t *dst, const uint8_t *src, int stride, int rnd) |
void | ff_avg_vc1_mspel_mc00_mmx2 (uint8_t *dst, const uint8_t *src, int stride, int rnd) |
static void | ff_idct_xvid_mmx_put (uint8_t *dest, int line_size, DCTELEM *block) |
static void | ff_idct_xvid_mmx_add (uint8_t *dest, int line_size, DCTELEM *block) |
static void | ff_idct_xvid_mmx2_put (uint8_t *dest, int line_size, DCTELEM *block) |
static void | ff_idct_xvid_mmx2_add (uint8_t *dest, int line_size, DCTELEM *block) |
static void | vorbis_inverse_coupling_3dnow (float *mag, float *ang, int blocksize) |
static void | vorbis_inverse_coupling_sse (float *mag, float *ang, int blocksize) |
static void | ac3_downmix_sse (float(*samples)[256], float(*matrix)[2], int out_ch, int in_ch, int len) |
static void | vector_fmul_3dnow (float *dst, const float *src, int len) |
static void | vector_fmul_sse (float *dst, const float *src, int len) |
static void | vector_fmul_reverse_3dnow2 (float *dst, const float *src0, const float *src1, int len) |
static void | vector_fmul_reverse_sse (float *dst, const float *src0, const float *src1, int len) |
static void | vector_fmul_add_3dnow (float *dst, const float *src0, const float *src1, const float *src2, int len) |
static void | vector_fmul_add_sse (float *dst, const float *src0, const float *src1, const float *src2, int len) |
static void | vector_fmul_window_3dnow2 (float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len) |
static void | vector_fmul_window_sse (float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len) |
static void | int32_to_float_fmul_scalar_sse (float *dst, const int *src, float mul, int len) |
static void | int32_to_float_fmul_scalar_sse2 (float *dst, const int *src, float mul, int len) |
static void | vector_clipf_sse (float *dst, const float *src, float min, float max, int len) |
static void | float_to_int16_3dnow (int16_t *dst, const float *src, long len) |
static void | float_to_int16_sse (int16_t *dst, const float *src, long len) |
static void | float_to_int16_sse2 (int16_t *dst, const float *src, long len) |
void | ff_float_to_int16_interleave6_sse (int16_t *dst, const float **src, int len) |
void | ff_float_to_int16_interleave6_3dnow (int16_t *dst, const float **src, int len) |
void | ff_float_to_int16_interleave6_3dn2 (int16_t *dst, const float **src, int len) |
int32_t | ff_scalarproduct_int16_mmx2 (int16_t *v1, int16_t *v2, int order, int shift) |
int32_t | ff_scalarproduct_int16_sse2 (int16_t *v1, int16_t *v2, int order, int shift) |
int32_t | ff_scalarproduct_and_madd_int16_mmx2 (int16_t *v1, int16_t *v2, int16_t *v3, int order, int mul) |
int32_t | ff_scalarproduct_and_madd_int16_sse2 (int16_t *v1, int16_t *v2, int16_t *v3, int order, int mul) |
int32_t | ff_scalarproduct_and_madd_int16_ssse3 (int16_t *v1, int16_t *v2, int16_t *v3, int order, int mul) |
void | ff_add_hfyu_median_prediction_mmx2 (uint8_t *dst, const uint8_t *top, const uint8_t *diff, int w, int *left, int *left_top) |
int | ff_add_hfyu_left_prediction_ssse3 (uint8_t *dst, const uint8_t *src, int w, int left) |
int | ff_add_hfyu_left_prediction_sse4 (uint8_t *dst, const uint8_t *src, int w, int left) |
void | ff_x264_deblock_v_luma_sse2 (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
void | ff_x264_deblock_h_luma_sse2 (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
void | ff_x264_deblock_h_luma_intra_mmxext (uint8_t *pix, int stride, int alpha, int beta) |
void | ff_x264_deblock_v_luma_intra_sse2 (uint8_t *pix, int stride, int alpha, int beta) |
void | ff_x264_deblock_h_luma_intra_sse2 (uint8_t *pix, int stride, int alpha, int beta) |
FLOAT_TO_INT16_INTERLEAVE (3dnow,"1: \n""pf2id (%2,%0), %%mm0 \n""pf2id 8(%2,%0), %%mm1 \n""pf2id (%3,%0), %%mm2 \n""pf2id 8(%3,%0), %%mm3 \n""packssdw %%mm1, %%mm0 \n""packssdw %%mm3, %%mm2 \n""movq %%mm0, %%mm1 \n""punpcklwd %%mm2, %%mm0 \n""punpckhwd %%mm2, %%mm1 \n""movq %%mm0, (%1,%0)\n""movq %%mm1, 8(%1,%0)\n""add $16, %0 \n""js 1b \n""femms \n") FLOAT_TO_INT16_INTERLEAVE(sse | |
mm0 n | cvtps2pi (%2,%0) |
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq n movq n n js n emms n | FLOAT_TO_INT16_INTERLEAVE (sse2,"1: \n""cvtps2dq (%2,%0), %%xmm0 \n""cvtps2dq (%3,%0), %%xmm1 \n""packssdw %%xmm1, %%xmm0 \n""movhlps %%xmm0, %%xmm1 \n""punpcklwd %%xmm1, %%xmm0 \n""movdqa %%xmm0, (%1,%0) \n""add $16, %0 \n""js 1b \n") static void float_to_int16_interleave_3dn2(int16_t *dst |
void | dsputil_init_mmx (DSPContext *c, AVCodecContext *avctx) |
Variables | |
int | mm_flags |
__pad0__ | |
mm0 n mm1 n mm2 n mm3 n packssdw | mm1 |
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw | mm3 |
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq | mm0 |
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd | mm2 |
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq n movq n | add |
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq n movq n n js n emms n const float ** | src |
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq n movq n n js n emms n const float long | len |
#define ABS3_MMX2 |
"psubw %%mm5, %%mm7 \n"\ "pmaxsw %%mm7, %%mm5 \n"\ "pxor %%mm6, %%mm6 \n"\ "pxor %%mm7, %%mm7 \n"\ "psubw %%mm3, %%mm6 \n"\ "psubw %%mm4, %%mm7 \n"\ "pmaxsw %%mm6, %%mm3 \n"\ "pmaxsw %%mm7, %%mm4 \n"\ "pxor %%mm7, %%mm7 \n"
Definition at line 949 of file dsputil_mmx.c.
#define ABS3_SSSE3 |
"pabsw %%mm3, %%mm3 \n"\ "pabsw %%mm4, %%mm4 \n"\ "pabsw %%mm5, %%mm5 \n"
Definition at line 960 of file dsputil_mmx.c.
#define AVG_3DNOW_OP | ( | a, | ||
b, | ||||
temp, | ||||
size | ||||
) |
"mov" #size " " #b ", " #temp " \n\t"\ "pavgusb " #temp ", " #a " \n\t"\ "mov" #size " " #a ", " #b " \n\t"
Definition at line 1618 of file dsputil_mmx.c.
#define AVG_MMX2_OP | ( | a, | ||
b, | ||||
temp, | ||||
size | ||||
) |
"mov" #size " " #b ", " #temp " \n\t"\ "pavgb " #temp ", " #a " \n\t"\ "mov" #size " " #a ", " #b " \n\t"
Definition at line 1622 of file dsputil_mmx.c.
#define CLEAR_BLOCKS | ( | name, | ||
n | ||||
) |
static void name(DCTELEM *blocks)\ {\ __asm__ volatile(\ "pxor %%mm7, %%mm7 \n\t"\ "mov %1, %%"REG_a" \n\t"\ "1: \n\t"\ "movq %%mm7, (%0, %%"REG_a") \n\t"\ "movq %%mm7, 8(%0, %%"REG_a") \n\t"\ "movq %%mm7, 16(%0, %%"REG_a") \n\t"\ "movq %%mm7, 24(%0, %%"REG_a") \n\t"\ "add $32, %%"REG_a" \n\t"\ " js 1b \n\t"\ : : "r" (((uint8_t *)blocks)+128*n),\ "i" (-128*n)\ : "%"REG_a\ );\ }
Definition at line 493 of file dsputil_mmx.c.
#define DEF | ( | x | ) | x ## _3dnow |
Definition at line 198 of file dsputil_mmx.c.
#define DEF | ( | x, | ||
y | ||||
) | x ## _no_rnd_ ## y ##_mmx |
Definition at line 198 of file dsputil_mmx.c.
#define DEF | ( | x | ) | x ## _mmx2 |
Definition at line 198 of file dsputil_mmx.c.
#define DEF | ( | x, | ||
y | ||||
) | x ## _ ## y ##_mmx |
Definition at line 198 of file dsputil_mmx.c.
#define ff_float_to_int16_interleave6_3dn2 | ( | a, | ||
b, | ||||
c | ||||
) | float_to_int16_interleave_misc_3dnow(a,b,c,6) |
Definition at line 2401 of file dsputil_mmx.c.
#define ff_float_to_int16_interleave6_3dnow | ( | a, | ||
b, | ||||
c | ||||
) | float_to_int16_interleave_misc_3dnow(a,b,c,6) |
Definition at line 2400 of file dsputil_mmx.c.
#define ff_float_to_int16_interleave6_sse | ( | a, | ||
b, | ||||
c | ||||
) | float_to_int16_interleave_misc_sse(a,b,c,6) |
Definition at line 2399 of file dsputil_mmx.c.
#define ff_float_to_int16_interleave6_sse2 ff_float_to_int16_interleave6_sse |
Definition at line 2403 of file dsputil_mmx.c.
#define FLOAT_TO_INT16_INTERLEAVE | ( | cpu, | ||
body | ||||
) |
Definition at line 2405 of file dsputil_mmx.c.
#define H263_LOOP_FILTER |
Definition at line 634 of file dsputil_mmx.c.
Referenced by h263_h_loop_filter_mmx(), and h263_v_loop_filter_mmx().
#define H264_QPEL_FUNCS | ( | x, | ||
y, | ||||
CPU | ||||
) |
c->put_h264_qpel_pixels_tab[0][x+y*4] = put_h264_qpel16_mc##x##y##_##CPU;\ c->put_h264_qpel_pixels_tab[1][x+y*4] = put_h264_qpel8_mc##x##y##_##CPU;\ c->avg_h264_qpel_pixels_tab[0][x+y*4] = avg_h264_qpel16_mc##x##y##_##CPU;\ c->avg_h264_qpel_pixels_tab[1][x+y*4] = avg_h264_qpel8_mc##x##y##_##CPU;
Referenced by dsputil_init_mmx().
#define IF0 | ( | x | ) |
Definition at line 1947 of file dsputil_mmx.c.
Referenced by ac3_downmix_sse().
#define IF1 | ( | x | ) | x |
Definition at line 1946 of file dsputil_mmx.c.
Referenced by ac3_downmix_sse().
#define JUMPALIGN | ( | ) | __asm__ volatile (ASMALIGN(3)::) |
Definition at line 76 of file dsputil_mmx.c.
Referenced by DEF().
#define MIX5 | ( | mono, | ||
stereo | ||||
) |
Definition at line 1949 of file dsputil_mmx.c.
Referenced by ac3_downmix_sse().
#define MIX_MISC | ( | stereo | ) |
__asm__ volatile(\ "1: \n"\ "movaps (%3,%0), %%xmm0 \n"\ stereo("movaps %%xmm0, %%xmm1 \n")\ "mulps %%xmm6, %%xmm0 \n"\ stereo("mulps %%xmm7, %%xmm1 \n")\ "lea 1024(%3,%0), %1 \n"\ "mov %5, %2 \n"\ "2: \n"\ "movaps (%1), %%xmm2 \n"\ stereo("movaps %%xmm2, %%xmm3 \n")\ "mulps (%4,%2), %%xmm2 \n"\ stereo("mulps 16(%4,%2), %%xmm3 \n")\ "addps %%xmm2, %%xmm0 \n"\ stereo("addps %%xmm3, %%xmm1 \n")\ "add $1024, %1 \n"\ "add $32, %2 \n"\ "jl 2b \n"\ "movaps %%xmm0, (%3,%0) \n"\ stereo("movaps %%xmm1, 1024(%3,%0) \n")\ "add $16, %0 \n"\ "jl 1b \n"\ :"+&r"(i), "=&r"(j), "=&r"(k)\ :"r"(samples[0]+len), "r"(matrix_simd+in_ch), "g"((intptr_t)-32*(in_ch-1))\ :"memory"\ );
Definition at line 1982 of file dsputil_mmx.c.
Referenced by ac3_downmix_sse().
#define MOVQ_BFE | ( | regd | ) |
__asm__ volatile ( \ "pcmpeqd %%" #regd ", %%" #regd " \n\t"\ "paddb %%" #regd ", %%" #regd " \n\t" ::)
Definition at line 79 of file dsputil_mmx.c.
Referenced by DEF().
#define MOVQ_BONE | ( | regd | ) | __asm__ volatile ("movq %0, %%" #regd " \n\t" ::"m"(ff_bone)) |
Definition at line 85 of file dsputil_mmx.c.
Referenced by avg_pixels8_xy2(), put_no_rnd_pixels8_x2(), and put_no_rnd_pixels8_y2().
#define MOVQ_WTWO | ( | regd | ) | __asm__ volatile ("movq %0, %%" #regd " \n\t" ::"m"(ff_wtwo)) |
Definition at line 86 of file dsputil_mmx.c.
#define MOVQ_ZERO | ( | regd | ) | __asm__ volatile ("pxor %%" #regd ", %%" #regd ::) |
Definition at line 77 of file dsputil_mmx.c.
Referenced by add_pixels_clamped_mmx(), and DEF().
#define OP_AVG | ( | a, | ||
b, | ||||
c, | ||||
e | ||||
) | PAVGB_MMX(a, b, c, e) |
Definition at line 202 of file dsputil_mmx.c.
#define OP_AVG PAVGB |
Definition at line 202 of file dsputil_mmx.c.
#define OP_AVG PAVGB |
Definition at line 202 of file dsputil_mmx.c.
#define PAETH | ( | cpu, | ||
abs3 | ||||
) |
Definition at line 896 of file dsputil_mmx.c.
#define PAVGB | ( | a, | ||
b, | ||||
c, | ||||
e | ||||
) | PAVGB_MMX(a, b, c, e) |
Definition at line 201 of file dsputil_mmx.c.
#define PAVGB "pavgusb" |
Definition at line 201 of file dsputil_mmx.c.
#define PAVGB "pavgb" |
Definition at line 201 of file dsputil_mmx.c.
#define PAVGB | ( | a, | ||
b, | ||||
c, | ||||
e | ||||
) | PAVGB_MMX_NO_RND(a, b, c, e) |
Definition at line 201 of file dsputil_mmx.c.
Referenced by avg_pixels16_l2(), avg_pixels4(), avg_pixels4_l2(), avg_pixels8(), avg_pixels8_l2(), avg_pixels8_x2(), avg_pixels8_xy2(), avg_pixels8_y2(), DEF(), extract_even2avg_SSE2(), extract_odd2avg_SSE2(), planar2x_SSE2(), put_no_rnd_pixels16_l2(), put_no_rnd_pixels8_l2(), put_no_rnd_pixels8_x2(), put_no_rnd_pixels8_y2(), put_pixels16_l2(), put_pixels16_x2(), put_pixels4_l2(), put_pixels8_l2(), put_pixels8_x2(), put_pixels8_y2(), and rgb24toyv12_SSE2().
#define PAVGB_MMX | ( | rega, | ||
regb, | ||||
regr, | ||||
regfe | ||||
) |
"movq " #rega ", " #regr " \n\t"\ "por " #regb ", " #regr " \n\t"\ "pxor " #rega ", " #regb " \n\t"\ "pand " #regfe "," #regb " \n\t"\ "psrlq $1, " #regb " \n\t"\ "psubb " #regb ", " #regr " \n\t"
Definition at line 115 of file dsputil_mmx.c.
#define PAVGB_MMX_NO_RND | ( | rega, | ||
regb, | ||||
regr, | ||||
regfe | ||||
) |
"movq " #rega ", " #regr " \n\t"\ "pand " #regb ", " #regr " \n\t"\ "pxor " #rega ", " #regb " \n\t"\ "pand " #regfe "," #regb " \n\t"\ "psrlq $1, " #regb " \n\t"\ "paddb " #regb ", " #regr " \n\t"
Definition at line 107 of file dsputil_mmx.c.
#define PAVGBP | ( | a, | ||
b, | ||||
c, | ||||
d, | ||||
e, | ||||
f | ||||
) | PAVGBP_MMX(a, b, c, d, e, f) |
Definition at line 171 of file dsputil_mmx.c.
#define PAVGBP | ( | a, | ||
b, | ||||
c, | ||||
d, | ||||
e, | ||||
f | ||||
) | PAVGBP_MMX_NO_RND(a, b, c, d, e, f) |
Definition at line 171 of file dsputil_mmx.c.
Referenced by DEF().
#define PAVGBP_MMX | ( | rega, | ||
regb, | ||||
regr, | ||||
regc, | ||||
regd, | ||||
regp | ||||
) |
"movq " #rega ", " #regr " \n\t"\ "movq " #regc ", " #regp " \n\t"\ "por " #regb ", " #regr " \n\t"\ "por " #regd ", " #regp " \n\t"\ "pxor " #rega ", " #regb " \n\t"\ "pxor " #regc ", " #regd " \n\t"\ "pand %%mm6, " #regb " \n\t"\ "pand %%mm6, " #regd " \n\t"\ "psrlq $1, " #regd " \n\t"\ "psrlq $1, " #regb " \n\t"\ "psubb " #regb ", " #regr " \n\t"\ "psubb " #regd ", " #regp " \n\t"
Definition at line 138 of file dsputil_mmx.c.
#define PAVGBP_MMX_NO_RND | ( | rega, | ||
regb, | ||||
regr, | ||||
regc, | ||||
regd, | ||||
regp | ||||
) |
"movq " #rega ", " #regr " \n\t"\ "movq " #regc ", " #regp " \n\t"\ "pand " #regb ", " #regr " \n\t"\ "pand " #regd ", " #regp " \n\t"\ "pxor " #rega ", " #regb " \n\t"\ "pxor " #regc ", " #regd " \n\t"\ "pand %%mm6, " #regb " \n\t"\ "pand %%mm6, " #regd " \n\t"\ "psrlq $1, " #regb " \n\t"\ "psrlq $1, " #regd " \n\t"\ "paddb " #regb ", " #regr " \n\t"\ "paddb " #regd ", " #regp " \n\t"
Definition at line 124 of file dsputil_mmx.c.
#define PREFETCH | ( | name, | ||
op | ||||
) |
static void name(void *mem, int stride, int h){\ const uint8_t *p= mem;\ do{\ __asm__ volatile(#op" %0" :: "m"(*p));\ p+= stride;\ }while(--h);\ }
Definition at line 1806 of file dsputil_mmx.c.
#define put_no_rnd_pixels16_3dnow put_no_rnd_pixels16_mmx |
Definition at line 220 of file dsputil_mmx.c.
#define put_no_rnd_pixels16_mmx put_pixels16_mmx |
Definition at line 210 of file dsputil_mmx.c.
#define put_no_rnd_pixels16_mmx2 put_no_rnd_pixels16_mmx |
Definition at line 215 of file dsputil_mmx.c.
#define put_no_rnd_pixels8_3dnow put_no_rnd_pixels8_mmx |
Definition at line 221 of file dsputil_mmx.c.
#define put_no_rnd_pixels8_mmx put_pixels8_mmx |
Definition at line 211 of file dsputil_mmx.c.
#define put_no_rnd_pixels8_mmx2 put_no_rnd_pixels8_mmx |
Definition at line 216 of file dsputil_mmx.c.
Definition at line 1617 of file dsputil_mmx.c.
#define put_pixels16_3dnow put_pixels16_mmx |
Definition at line 217 of file dsputil_mmx.c.
#define put_pixels16_mmx2 put_pixels16_mmx |
Definition at line 212 of file dsputil_mmx.c.
#define put_pixels4_3dnow put_pixels4_mmx |
Definition at line 219 of file dsputil_mmx.c.
#define put_pixels4_mmx2 put_pixels4_mmx |
Definition at line 214 of file dsputil_mmx.c.
#define put_pixels8_3dnow put_pixels8_mmx |
Definition at line 218 of file dsputil_mmx.c.
#define put_pixels8_mmx2 put_pixels8_mmx |
Definition at line 213 of file dsputil_mmx.c.
#define put_signed_pixels_clamped_mmx_half | ( | off | ) |
"movq "#off"(%2), %%mm1 \n\t"\ "movq 16+"#off"(%2), %%mm2 \n\t"\ "movq 32+"#off"(%2), %%mm3 \n\t"\ "movq 48+"#off"(%2), %%mm4 \n\t"\ "packsswb 8+"#off"(%2), %%mm1 \n\t"\ "packsswb 24+"#off"(%2), %%mm2 \n\t"\ "packsswb 40+"#off"(%2), %%mm3 \n\t"\ "packsswb 56+"#off"(%2), %%mm4 \n\t"\ "paddb %%mm0, %%mm1 \n\t"\ "paddb %%mm0, %%mm2 \n\t"\ "paddb %%mm0, %%mm3 \n\t"\ "paddb %%mm0, %%mm4 \n\t"\ "movq %%mm1, (%0) \n\t"\ "movq %%mm2, (%0, %3) \n\t"\ "movq %%mm3, (%0, %3, 2) \n\t"\ "movq %%mm4, (%0, %1) \n\t"
Definition at line 284 of file dsputil_mmx.c.
Referenced by put_signed_pixels_clamped_mmx().
#define QPEL_2TAP | ( | OPNAME, | ||
SIZE, | ||||
MMX | ||||
) |
QPEL_2TAP_XY(OPNAME, SIZE, MMX, 20, _x2_ ## MMX)\ QPEL_2TAP_XY(OPNAME, SIZE, MMX, 02, _y2_ ## MMX)\ QPEL_2TAP_XY(OPNAME, SIZE, MMX, 22, _xy2_mmx)\ static const qpel_mc_func OPNAME ## 2tap_qpel ## SIZE ## _mc00_ ## MMX =\ OPNAME ## qpel ## SIZE ## _mc00_ ## MMX;\ static const qpel_mc_func OPNAME ## 2tap_qpel ## SIZE ## _mc21_ ## MMX =\ OPNAME ## 2tap_qpel ## SIZE ## _mc20_ ## MMX;\ static const qpel_mc_func OPNAME ## 2tap_qpel ## SIZE ## _mc12_ ## MMX =\ OPNAME ## 2tap_qpel ## SIZE ## _mc02_ ## MMX;\ static void OPNAME ## 2tap_qpel ## SIZE ## _mc32_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\ OPNAME ## pixels ## SIZE ## _y2_ ## MMX(dst, src+1, stride, SIZE);\ }\ static void OPNAME ## 2tap_qpel ## SIZE ## _mc23_ ## MMX(uint8_t *dst, uint8_t *src, int stride){\ OPNAME ## pixels ## SIZE ## _x2_ ## MMX(dst, src+stride, stride, SIZE);\ }\ QPEL_2TAP_L3(OPNAME, SIZE, MMX, 10, 0, 1, 0)\ QPEL_2TAP_L3(OPNAME, SIZE, MMX, 30, 1, -1, 0)\ QPEL_2TAP_L3(OPNAME, SIZE, MMX, 01, 0, stride, 0)\ QPEL_2TAP_L3(OPNAME, SIZE, MMX, 03, stride, -stride, 0)\ QPEL_2TAP_L3(OPNAME, SIZE, MMX, 11, 0, stride, 1)\ QPEL_2TAP_L3(OPNAME, SIZE, MMX, 31, 1, stride, -1)\ QPEL_2TAP_L3(OPNAME, SIZE, MMX, 13, stride, -stride, 1)\ QPEL_2TAP_L3(OPNAME, SIZE, MMX, 33, stride+1, -stride, -1)\
Definition at line 1649 of file dsputil_mmx.c.
#define QPEL_2TAP_L3 | ( | OPNAME, | ||
SIZE, | ||||
MMX, | ||||
XY, | ||||
S0, | ||||
S1, | ||||
S2 | ||||
) |
#define QPEL_2TAP_XY | ( | OPNAME, | ||
SIZE, | ||||
MMX, | ||||
XY, | ||||
HPEL | ||||
) |
#define QPEL_BASE | ( | OPNAME, | ||
ROUNDER, | ||||
RND, | ||||
OP_MMX2, | ||||
OP_3DNOW | ||||
) |
Definition at line 991 of file dsputil_mmx.c.
#define QPEL_OP | ( | OPNAME, | ||
ROUNDER, | ||||
RND, | ||||
OP, | ||||
MMX | ||||
) |
Definition at line 1254 of file dsputil_mmx.c.
#define QPEL_V_LOW | ( | m3, | ||
m4, | ||||
m5, | ||||
m6, | ||||
pw_20, | ||||
pw_3, | ||||
rnd, | ||||
in0, | ||||
in1, | ||||
in2, | ||||
in7, | ||||
out, | ||||
OP | ||||
) |
"paddw " #m4 ", " #m3 " \n\t" /* x1 */\ "movq "MANGLE(ff_pw_20)", %%mm4 \n\t" /* 20 */\ "pmullw " #m3 ", %%mm4 \n\t" /* 20x1 */\ "movq "#in7", " #m3 " \n\t" /* d */\ "movq "#in0", %%mm5 \n\t" /* D */\ "paddw " #m3 ", %%mm5 \n\t" /* x4 */\ "psubw %%mm5, %%mm4 \n\t" /* 20x1 - x4 */\ "movq "#in1", %%mm5 \n\t" /* C */\ "movq "#in2", %%mm6 \n\t" /* B */\ "paddw " #m6 ", %%mm5 \n\t" /* x3 */\ "paddw " #m5 ", %%mm6 \n\t" /* x2 */\ "paddw %%mm6, %%mm6 \n\t" /* 2x2 */\ "psubw %%mm6, %%mm5 \n\t" /* -2x2 + x3 */\ "pmullw "MANGLE(ff_pw_3)", %%mm5 \n\t" /* -6x2 + 3x3 */\ "paddw " #rnd ", %%mm4 \n\t" /* x2 */\ "paddw %%mm4, %%mm5 \n\t" /* 20x1 - 6x2 + 3x3 - x4 */\ "psraw $5, %%mm5 \n\t"\ "packuswb %%mm5, %%mm5 \n\t"\ OP(%%mm5, out, %%mm7, d)
Definition at line 970 of file dsputil_mmx.c.
#define SET_HPEL_FUNCS | ( | PFX, | ||
IDX, | ||||
SIZE, | ||||
CPU | ||||
) |
c->PFX ## _pixels_tab[IDX][0] = PFX ## _pixels ## SIZE ## _ ## CPU; \ c->PFX ## _pixels_tab[IDX][1] = PFX ## _pixels ## SIZE ## _x2_ ## CPU; \ c->PFX ## _pixels_tab[IDX][2] = PFX ## _pixels ## SIZE ## _y2_ ## CPU; \ c->PFX ## _pixels_tab[IDX][3] = PFX ## _pixels ## SIZE ## _xy2_ ## CPU
Referenced by dsputil_init_mmx().
#define SET_QPEL_FUNCS | ( | PFX, | ||
IDX, | ||||
SIZE, | ||||
CPU | ||||
) |
c->PFX ## _pixels_tab[IDX][ 0] = PFX ## SIZE ## _mc00_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 1] = PFX ## SIZE ## _mc10_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 2] = PFX ## SIZE ## _mc20_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 3] = PFX ## SIZE ## _mc30_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 4] = PFX ## SIZE ## _mc01_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 5] = PFX ## SIZE ## _mc11_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 6] = PFX ## SIZE ## _mc21_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 7] = PFX ## SIZE ## _mc31_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 8] = PFX ## SIZE ## _mc02_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 9] = PFX ## SIZE ## _mc12_ ## CPU; \ c->PFX ## _pixels_tab[IDX][10] = PFX ## SIZE ## _mc22_ ## CPU; \ c->PFX ## _pixels_tab[IDX][11] = PFX ## SIZE ## _mc32_ ## CPU; \ c->PFX ## _pixels_tab[IDX][12] = PFX ## SIZE ## _mc03_ ## CPU; \ c->PFX ## _pixels_tab[IDX][13] = PFX ## SIZE ## _mc13_ ## CPU; \ c->PFX ## _pixels_tab[IDX][14] = PFX ## SIZE ## _mc23_ ## CPU; \ c->PFX ## _pixels_tab[IDX][15] = PFX ## SIZE ## _mc33_ ## CPU
Referenced by dsputil_init_mmx().
#define SET_RND MOVQ_WTWO |
Definition at line 170 of file dsputil_mmx.c.
#define SET_RND MOVQ_WONE |
Definition at line 170 of file dsputil_mmx.c.
static void ac3_downmix_sse | ( | float(*) | samples[256], | |
float(*) | matrix[2], | |||
int | out_ch, | |||
int | in_ch, | |||
int | len | |||
) | [static] |
Definition at line 2010 of file dsputil_mmx.c.
static void add_bytes_l2_mmx | ( | uint8_t * | dst, | |
uint8_t * | src1, | |||
uint8_t * | src2, | |||
int | w | |||
) | [static] |
Definition at line 577 of file dsputil_mmx.c.
static void add_bytes_mmx | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | w | |||
) | [static] |
Definition at line 553 of file dsputil_mmx.c.
void add_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
uint8_t * | pixels, | |||
int | line_size | |||
) |
Definition at line 318 of file dsputil_mmx.c.
Referenced by cavs_idct8_add_mmx(), ff_h264_idct8_add_mmx(), ff_idct_xvid_mmx2_add(), ff_idct_xvid_mmx_add(), ff_idct_xvid_sse2_add(), ff_simple_idct_add_mmx(), ff_vp3_idct_add_mmx(), and ff_vp3_idct_add_sse2().
static void avg_pixels16_sse2 | ( | uint8_t * | block, | |
const uint8_t * | pixels, | |||
int | line_size, | |||
int | h | |||
) | [static] |
Definition at line 467 of file dsputil_mmx.c.
static void clear_block_sse | ( | DCTELEM * | block | ) | [static] |
Definition at line 514 of file dsputil_mmx.c.
static void clear_blocks_sse | ( | DCTELEM * | blocks | ) | [static] |
Definition at line 531 of file dsputil_mmx.c.
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pw_15 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pw_128 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pw_255 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pw_3 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pb_1 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 16 | , | |
const | xmm_reg, | |||
ff_pw_16 | ||||
) |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pb_3 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_wtwo | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pw_4 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pw_20 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pb_7 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pb_1F | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 16 | , | |
const | xmm_reg, | |||
ff_pw_28 | ||||
) |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pb_3F | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pb_81 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 16 | , | |
const | xmm_reg, | |||
ff_pw_5 | ||||
) |
DECLARE_ALIGNED | ( | 16 | , | |
const | xmm_reg, | |||
ff_pw_32 | ||||
) |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pb_A1 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pb_FC | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pw_42 | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 16 | , | |
const | double, | |||
ff_pd_1 | ||||
) |
DECLARE_ALIGNED | ( | 16 | , | |
const | double, | |||
ff_pd_2 | ||||
) |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_bone | ||||
) | [pure virtual] |
DECLARE_ALIGNED | ( | 16 | , | |
const | uint64_t, | |||
ff_pdw_80000000 | ||||
) |
DECLARE_ALIGNED | ( | 16 | , | |
const | xmm_reg, | |||
ff_pw_64 | ||||
) |
DECLARE_ALIGNED | ( | 16 | , | |
const | xmm_reg, | |||
ff_pw_8 | ||||
) |
DECLARE_ALIGNED | ( | 8 | , | |
const | uint64_t, | |||
ff_pw_96 | ||||
) | [pure virtual] |
DECLARE_ASM_CONST | ( | 8 | , | |
uint8_t | , | |||
ff_vector128 | ||||
) |
static void draw_edges_mmx | ( | uint8_t * | buf, | |
int | wrap, | |||
int | width, | |||
int | height, | |||
int | w | |||
) | [static] |
Definition at line 810 of file dsputil_mmx.c.
void dsputil_init_mmx | ( | DSPContext * | c, | |
AVCodecContext * | avctx | |||
) |
Definition at line 2496 of file dsputil_mmx.c.
Referenced by dsputil_init().
int ff_add_hfyu_left_prediction_sse4 | ( | uint8_t * | dst, | |
const uint8_t * | src, | |||
int | w, | |||
int | left | |||
) |
int ff_add_hfyu_left_prediction_ssse3 | ( | uint8_t * | dst, | |
const uint8_t * | src, | |||
int | w, | |||
int | left | |||
) |
void ff_add_hfyu_median_prediction_mmx2 | ( | uint8_t * | dst, | |
const uint8_t * | top, | |||
const uint8_t * | diff, | |||
int | w, | |||
int * | left, | |||
int * | left_top | |||
) |
void ff_avg_cavs_qpel16_mc00_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) |
Definition at line 1831 of file dsputil_mmx.c.
void ff_avg_cavs_qpel8_mc00_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) |
Definition at line 1825 of file dsputil_mmx.c.
void ff_avg_vc1_mspel_mc00_mmx2 | ( | uint8_t * | dst, | |
const uint8_t * | src, | |||
int | stride, | |||
int | rnd | |||
) |
Definition at line 1839 of file dsputil_mmx.c.
void ff_float_to_int16_interleave6_3dn2 | ( | int16_t * | dst, | |
const float ** | src, | |||
int | len | |||
) |
void ff_float_to_int16_interleave6_3dnow | ( | int16_t * | dst, | |
const float ** | src, | |||
int | len | |||
) |
void ff_float_to_int16_interleave6_sse | ( | int16_t * | dst, | |
const float ** | src, | |||
int | len | |||
) |
static void ff_idct_xvid_mmx2_add | ( | uint8_t * | dest, | |
int | line_size, | |||
DCTELEM * | block | |||
) | [static] |
Definition at line 1882 of file dsputil_mmx.c.
static void ff_idct_xvid_mmx2_put | ( | uint8_t * | dest, | |
int | line_size, | |||
DCTELEM * | block | |||
) | [static] |
Definition at line 1877 of file dsputil_mmx.c.
static void ff_idct_xvid_mmx_add | ( | uint8_t * | dest, | |
int | line_size, | |||
DCTELEM * | block | |||
) | [static] |
Definition at line 1872 of file dsputil_mmx.c.
static void ff_idct_xvid_mmx_put | ( | uint8_t * | dest, | |
int | line_size, | |||
DCTELEM * | block | |||
) | [static] |
Definition at line 1867 of file dsputil_mmx.c.
void ff_put_cavs_qpel16_mc00_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) |
Definition at line 1828 of file dsputil_mmx.c.
void ff_put_cavs_qpel8_mc00_mmx2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride | |||
) |
Definition at line 1822 of file dsputil_mmx.c.
void ff_put_vc1_mspel_mc00_mmx | ( | uint8_t * | dst, | |
const uint8_t * | src, | |||
int | stride, | |||
int | rnd | |||
) |
Definition at line 1836 of file dsputil_mmx.c.
int32_t ff_scalarproduct_and_madd_int16_mmx2 | ( | int16_t * | v1, | |
int16_t * | v2, | |||
int16_t * | v3, | |||
int | order, | |||
int | mul | |||
) |
int32_t ff_scalarproduct_and_madd_int16_sse2 | ( | int16_t * | v1, | |
int16_t * | v2, | |||
int16_t * | v3, | |||
int | order, | |||
int | mul | |||
) |
int32_t ff_scalarproduct_and_madd_int16_ssse3 | ( | int16_t * | v1, | |
int16_t * | v2, | |||
int16_t * | v3, | |||
int | order, | |||
int | mul | |||
) |
int32_t ff_scalarproduct_int16_mmx2 | ( | int16_t * | v1, | |
int16_t * | v2, | |||
int | order, | |||
int | shift | |||
) |
int32_t ff_scalarproduct_int16_sse2 | ( | int16_t * | v1, | |
int16_t * | v2, | |||
int | order, | |||
int | shift | |||
) |
void ff_x264_deblock_h_luma_intra_mmxext | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta | |||
) |
void ff_x264_deblock_h_luma_intra_sse2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta | |||
) |
void ff_x264_deblock_h_luma_sse2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta, | |||
int8_t * | tc0 | |||
) |
void ff_x264_deblock_v_luma_intra_sse2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta | |||
) |
void ff_x264_deblock_v_luma_sse2 | ( | uint8_t * | pix, | |
int | stride, | |||
int | alpha, | |||
int | beta, | |||
int8_t * | tc0 | |||
) |
static void float_to_int16_3dnow | ( | int16_t * | dst, | |
const float * | src, | |||
long | len | |||
) | [static] |
Definition at line 2310 of file dsputil_mmx.c.
FLOAT_TO_INT16_INTERLEAVE | ( | 3dnow | , | |
"1: \n""pf2id | %2,%0, | |||
%%mm0\n" "pf2id | 8%2,%0, | |||
%%mm1\n" " | pf2id%3,%0, | |||
%%mm2\n" "pf2id | 8%3,%0, | |||
%%mm3\n" "packssdw%% | mm1, | |||
%%mm0\n" "packssdw%% | mm3, | |||
%%mm2\n" "movq%% | mm0, | |||
%%mm1\n" "punpcklwd%% | mm2, | |||
%%mm0\n" "punpckhwd%% | mm2, | |||
%%mm1\n" "movq%% | mm0, | |||
(%1,%0)\n" "movq%% | mm1, | |||
8(%1,%0)\n" "add $ | 16, | |||
%0\n" "js 1b\n" "femms\n" | ||||
) |
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq n movq n n js n emms n FLOAT_TO_INT16_INTERLEAVE | ( | sse2 | , | |
"1: \n""cvtps2dq | %2,%0, | |||
%%xmm0\n" " | cvtps2dq%3,%0, | |||
%%xmm1\n" "packssdw%% | xmm1, | |||
%%xmm0\n" "movhlps%% | xmm0, | |||
%%xmm1\n" "punpcklwd%% | xmm1, | |||
%%xmm0\n" "movdqa%% | xmm0, | |||
(%1,%0)\n" "add $ | 16, | |||
%0\n" "js 1b\n" | ||||
) |
static void float_to_int16_sse | ( | int16_t * | dst, | |
const float * | src, | |||
long | len | |||
) | [static] |
Definition at line 2333 of file dsputil_mmx.c.
static void float_to_int16_sse2 | ( | int16_t * | dst, | |
const float * | src, | |||
long | len | |||
) | [static] |
Definition at line 2356 of file dsputil_mmx.c.
static void gmc_mmx | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
int | h, | |||
int | ox, | |||
int | oy, | |||
int | dxx, | |||
int | dxy, | |||
int | dyx, | |||
int | dyy, | |||
int | shift, | |||
int | r, | |||
int | width, | |||
int | height | |||
) | [static] |
Definition at line 1688 of file dsputil_mmx.c.
static void h263_h_loop_filter_mmx | ( | uint8_t * | src, | |
int | stride, | |||
int | qscale | |||
) | [static] |
Definition at line 755 of file dsputil_mmx.c.
static void h263_v_loop_filter_mmx | ( | uint8_t * | src, | |
int | stride, | |||
int | qscale | |||
) | [static] |
Definition at line 705 of file dsputil_mmx.c.
static void int32_to_float_fmul_scalar_sse | ( | float * | dst, | |
const int * | src, | |||
float | mul, | |||
int | len | |||
) | [static] |
Definition at line 2232 of file dsputil_mmx.c.
static void int32_to_float_fmul_scalar_sse2 | ( | float * | dst, | |
const int * | src, | |||
float | mul, | |||
int | len | |||
) | [static] |
Definition at line 2256 of file dsputil_mmx.c.
static void put_pixels16_mmx | ( | uint8_t * | block, | |
const uint8_t * | pixels, | |||
int | line_size, | |||
int | h | |||
) | [static] |
Definition at line 411 of file dsputil_mmx.c.
Referenced by ff_put_cavs_qpel16_mc00_mmx2().
static void put_pixels16_sse2 | ( | uint8_t * | block, | |
const uint8_t * | pixels, | |||
int | line_size, | |||
int | h | |||
) | [static] |
Definition at line 445 of file dsputil_mmx.c.
static void put_pixels4_mmx | ( | uint8_t * | block, | |
const uint8_t * | pixels, | |||
int | line_size, | |||
int | h | |||
) | [static] |
Definition at line 359 of file dsputil_mmx.c.
static void put_pixels8_mmx | ( | uint8_t * | block, | |
const uint8_t * | pixels, | |||
int | line_size, | |||
int | h | |||
) | [static] |
Definition at line 385 of file dsputil_mmx.c.
Referenced by ff_put_cavs_qpel8_mc00_mmx2(), and ff_put_vc1_mspel_mc00_mmx().
void put_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
uint8_t * | pixels, | |||
int | line_size | |||
) |
Definition at line 226 of file dsputil_mmx.c.
Referenced by ff_idct_xvid_mmx2_put(), ff_idct_xvid_mmx_put(), ff_idct_xvid_sse2_put(), and ff_simple_idct_put_mmx().
void put_signed_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
uint8_t * | pixels, | |||
int | line_size | |||
) |
Definition at line 302 of file dsputil_mmx.c.
Referenced by ff_vp3_idct_put_mmx(), and ff_vp3_idct_put_sse2().
static void transpose4x4 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | dst_stride, | |||
int | src_stride | |||
) | [inline, static] |
Definition at line 726 of file dsputil_mmx.c.
Referenced by h263_h_loop_filter_mmx(), h264_h_loop_filter_chroma_intra_mmx2(), h264_h_loop_filter_chroma_mmx2(), and h264_h_loop_filter_luma_mmx2().
static void vector_clipf_sse | ( | float * | dst, | |
const float * | src, | |||
float | min, | |||
float | max, | |||
int | len | |||
) | [static] |
Definition at line 2276 of file dsputil_mmx.c.
static void vector_fmul_3dnow | ( | float * | dst, | |
const float * | src, | |||
int | len | |||
) | [static] |
Definition at line 2045 of file dsputil_mmx.c.
static void vector_fmul_add_3dnow | ( | float * | dst, | |
const float * | src0, | |||
const float * | src1, | |||
const float * | src2, | |||
int | len | |||
) | [static] |
Definition at line 2119 of file dsputil_mmx.c.
static void vector_fmul_add_sse | ( | float * | dst, | |
const float * | src0, | |||
const float * | src1, | |||
const float * | src2, | |||
int | len | |||
) | [static] |
Definition at line 2140 of file dsputil_mmx.c.
static void vector_fmul_reverse_3dnow2 | ( | float * | dst, | |
const float * | src0, | |||
const float * | src1, | |||
int | len | |||
) | [static] |
Definition at line 2081 of file dsputil_mmx.c.
static void vector_fmul_reverse_sse | ( | float * | dst, | |
const float * | src0, | |||
const float * | src1, | |||
int | len | |||
) | [static] |
Definition at line 2099 of file dsputil_mmx.c.
static void vector_fmul_sse | ( | float * | dst, | |
const float * | src, | |||
int | len | |||
) | [static] |
Definition at line 2063 of file dsputil_mmx.c.
static void vector_fmul_window_3dnow2 | ( | float * | dst, | |
const float * | src0, | |||
const float * | src1, | |||
const float * | win, | |||
float | add_bias, | |||
int | len | |||
) | [static] |
Definition at line 2161 of file dsputil_mmx.c.
static void vector_fmul_window_sse | ( | float * | dst, | |
const float * | src0, | |||
const float * | src1, | |||
const float * | win, | |||
float | add_bias, | |||
int | len | |||
) | [static] |
Definition at line 2196 of file dsputil_mmx.c.
static void vorbis_inverse_coupling_3dnow | ( | float * | mag, | |
float * | ang, | |||
int | blocksize | |||
) | [static] |
Definition at line 1888 of file dsputil_mmx.c.
static void vorbis_inverse_coupling_sse | ( | float * | mag, | |
float * | ang, | |||
int | blocksize | |||
) | [static] |
Definition at line 1915 of file dsputil_mmx.c.
Definition at line 2459 of file dsputil_mmx.c.
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq n movq n add |
Definition at line 2463 of file dsputil_mmx.c.
Referenced by dct_unquantize_h263_axp(), decode_mb(), and wv_get_value().
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq n movq n n js n emms n const float long len |
Definition at line 2487 of file dsputil_mmx.c.
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq mm0 |
Definition at line 2463 of file dsputil_mmx.c.
Referenced by add_8x8basis(), cavs_idct8_1d(), cavs_idct8_add_mmx(), DEF(), deInterlaceBlendLinear_SSE2(), deInterlaceInterpolateLinear_SSE2(), deInterlaceL5_SSE2(), dering_SSE2(), doVertDefFilter_SSE2(), doVertLowPass_SSE2(), ff_h264_idct8_add_mmx(), ff_h264_idct_add_mmx(), ff_imdct_calc_3dn2(), ff_imdct_half_3dn2(), ff_vp3_h_loop_filter_mmx2(), H264_CHROMA_MC4_TMPL(), H264_CHROMA_MC8_TMPL(), h264_idct8_1d(), h264_loop_filter_chroma_intra_mmx2(), h264_loop_filter_luma_mmx2(), h264_loop_filter_strength_mmx2(), idct_col(), mmx_row(), mmx_row_head(), mmx_row_mid(), mmx_row_tail(), mmxext_row(), mmxext_row_head(), mmxext_row_mid(), mmxext_row_tail(), tempNoiseReducer_SSE2(), try_8x8basis(), vertX1Filter_SSE2(), vsad16_mmx(), vsad16_mmx2(), vsad_intra16_mmx(), vsad_intra16_mmx2(), yuv2packed2_SSE2(), and yuv2packedX_SSE2().
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq n movq mm1 |
Definition at line 2463 of file dsputil_mmx.c.
Referenced by add_8x8basis(), cavs_idct8_1d(), cavs_idct8_add_mmx(), DEF(), deInterlaceBlendLinear_SSE2(), deInterlaceInterpolateLinear_SSE2(), deInterlaceL5_SSE2(), dering_SSE2(), doVertDefFilter_SSE2(), doVertLowPass_SSE2(), ff_h264_idct8_add_mmx(), ff_h264_idct_add_mmx(), ff_imdct_calc_3dn2(), ff_imdct_half_3dn2(), ff_vp3_h_loop_filter_mmx2(), H264_CHROMA_MC4_TMPL(), h264_idct8_1d(), h264_loop_filter_chroma_intra_mmx2(), h264_loop_filter_luma_mmx2(), h264_loop_filter_strength_mmx2(), idct_col(), mmx_row(), mmx_row_head(), mmx_row_mid(), mmx_row_tail(), mmxext_row(), mmxext_row_mid(), mmxext_row_tail(), tempNoiseReducer_SSE2(), try_8x8basis(), vertX1Filter_SSE2(), vsad16_mmx(), vsad16_mmx2(), vsad_intra16_mmx(), vsad_intra16_mmx2(), yuv2packed2_SSE2(), and yuv2packedX_SSE2().
Definition at line 2463 of file dsputil_mmx.c.
Referenced by cavs_idct8_1d(), cavs_idct8_add_mmx(), DEF(), deInterlaceBlendLinear_SSE2(), dering_SSE2(), doVertDefFilter_SSE2(), doVertLowPass_SSE2(), ff_h264_idct8_add_mmx(), ff_h264_idct_add_mmx(), ff_imdct_half_3dn2(), ff_vp3_h_loop_filter_mmx2(), H264_CHROMA_MC8_TMPL(), h264_idct8_1d(), h264_loop_filter_chroma_intra_mmx2(), h264_loop_filter_luma_mmx2(), h264_loop_filter_strength_mmx2(), idct_col(), mmx_row(), mmx_row_head(), mmx_row_mid(), mmxext_row(), mmxext_row_head(), mmxext_row_mid(), tempNoiseReducer_SSE2(), yuv2packed2_SSE2(), and yuv2packedX_SSE2().
Definition at line 2463 of file dsputil_mmx.c.
Referenced by cavs_idct8_1d(), cavs_idct8_add_mmx(), DEF(), dering_SSE2(), doVertDefFilter_SSE2(), doVertLowPass_SSE2(), ff_h264_idct8_add_mmx(), ff_h264_idct_add_mmx(), ff_imdct_half_3dn2(), ff_vp3_h_loop_filter_mmx2(), h264_idct8_1d(), h264_loop_filter_chroma_intra_mmx2(), h264_loop_filter_luma_mmx2(), h264_loop_filter_strength_mmx2(), idct_col(), mmx_row(), mmx_row_head(), mmx_row_mid(), mmx_row_tail(), mmxext_row(), mmxext_row_head(), mmxext_row_mid(), mmxext_row_tail(), tempNoiseReducer_SSE2(), vertX1Filter_SSE2(), yuv2packed2_SSE2(), and yuv2packedX_SSE2().
int mm_flags |
Definition at line 40 of file dsputil_mmx.c.
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm1 n movq n movq n n js n emms n const float** src |
Definition at line 2487 of file dsputil_mmx.c.
Referenced by adpcm_decode_frame(), apply_dependent_coupling(), apply_independent_coupling(), avfilter_draw_slice(), bfi_decode_frame(), bmp_decode_frame(), bmp_encode_frame(), cavs_idct8_add_c(), cinaudio_decode_frame(), cmp_direct_inline(), cmp_inline(), copy(), copy_backptr(), decode(), decode_frame(), decode_init(), decode_p_frame(), deInterlaceBlendLinear_SSE2(), deInterlaceFF_SSE2(), deInterlaceInterpolateCubic_SSE2(), deInterlaceInterpolateLinear_SSE2(), deInterlaceL5_SSE2(), deInterlaceMedian_SSE2(), dering_SSE2(), doTest(), doVertDefFilter_SSE2(), doVertLowPass_SSE2(), encode_frame(), extract_even2_SSE2(), extract_even_SSE2(), extract_odd2_SSE2(), ff_draw_horiz_band(), ff_ivi_inverse_slant_4x4(), ff_ivi_inverse_slant_8x8(), ff_ivi_process_empty_tile(), ff_jpegls_decode_picture(), ff_mjpeg_decode_frame(), ff_rtmp_packet_dump(), ff_snow_horizontal_compose97i_mmx(), ff_snow_horizontal_compose97i_sse2(), guess_mv(), h264_handle_packet(), halfpel_interpol(), http_prepare_data(), indeo3_decode_frame(), load_input_picture(), main(), mca(), memcpy_backptr(), msrle_decode_8_16_24_32(), pcm_bluray_decode_frame(), pcm_decode_frame(), pcx_encode_frame(), planar2x_SSE2(), rgb15to16_SSE2(), rgb15to32_SSE2(), rgb15tobgr24_SSE2(), rgb16to15_SSE2(), rgb16to32_SSE2(), rgb16tobgr24_SSE2(), rgb24to15_SSE2(), rgb24to16_SSE2(), rgb24tobgr15_SSE2(), rgb24tobgr16_SSE2(), rgb24tobgr24_SSE2(), rgb24tobgr32_SSE2(), rgb24toyv12_SSE2(), rgb32to15_SSE2(), rgb32to16_SSE2(), rgb32tobgr15_SSE2(), rgb32tobgr16_SSE2(), rgb32tobgr24_SSE2(), rgb32tobgr32_SSE2(), svq1_decode_frame(), svq1_encode_plane(), svq1_motion_inter_4v_block(), svq1_motion_inter_block(), svq1_skip_block(), svq3_mc_dir_part(), tempNoiseReducer_SSE2(), tgv_decode_inter(), tmv_decode_frame(), uyvytoyuv420_SSE2(), uyvytoyuv422_SSE2(), uyvytoyv12_SSE2(), validate_acl_list(), vc1_interp_mc(), vc1_inv_trans_4x4_c(), vc1_inv_trans_4x8_c(), vc1_inv_trans_8x4_c(), vc1_inv_trans_8x8_c(), vc1_mc_1mv(), vc1_mc_4mv_chroma(), vc1_mc_4mv_luma(), vertX1Filter_SSE2(), wavpack_decode_frame(), yuv2yuv1_SSE2(), yuva420_bgr32_MMX2(), yuva420_rgb32_MMX2(), yuy2toyv12_SSE2(), yuyvtoyuv420_SSE2(), yuyvtoyuv422_SSE2(), zmbv_decode_xor_16(), and zmbv_decode_xor_8().