Defines | Functions | Variables

libavcodec/x86/dsputil_mmx.c File Reference

#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
mm0cvtps2pi (%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 Documentation

#define ABS3_MMX2
Value:
"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
Value:
"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 
)
Value:
"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 
)
Value:
"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 
)
Value:
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 
)
Value:
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  ) 
Value:
__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  ) 
Value:
__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)
#define PAVGB_MMX (   rega,
  regb,
  regr,
  regfe 
)
Value:
"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 
)
Value:
"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 
)
Value:
"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 
)
Value:
"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 
)
Value:
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.

#define PUT_OP (   a,
  b,
  temp,
  size 
)    "mov" #size " " #a ", " #b " \n\t"

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  ) 
Value:
"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 
)
Value:
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 
)
Value:
static void OPNAME ## 2tap_qpel ## SIZE ## _mc ## XY ## _ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
    OPNAME ## 2tap_qpel ## SIZE ## _l3_ ## MMX(dst, src+S0, stride, SIZE, S1, S2);\
}

Definition at line 1644 of file dsputil_mmx.c.

#define QPEL_2TAP_XY (   OPNAME,
  SIZE,
  MMX,
  XY,
  HPEL 
)
Value:
static void OPNAME ## 2tap_qpel ## SIZE ## _mc ## XY ## _ ## MMX(uint8_t *dst, uint8_t *src, int stride){\
    OPNAME ## pixels ## SIZE ## HPEL(dst, src, stride, SIZE);\
}

Definition at line 1640 of file dsputil_mmx.c.

#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 
)
Value:
"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 
)
Value:
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 
)
Value:
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.


Function Documentation

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 
)
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.

mm0 n mm1 n mm2 n cvtps2pi ( 2,
0 
)
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pw_15   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pw_128   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pw_255   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pw_3   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pb_1   
) [pure virtual]
DECLARE_ALIGNED ( 16  ,
const   xmm_reg,
ff_pw_16   
)
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pb_3   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_wtwo   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pw_4   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pw_20   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pb_7   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pb_1F   
) [pure virtual]
DECLARE_ALIGNED ( 16  ,
const   xmm_reg,
ff_pw_28   
)
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pb_3F   
) [pure virtual]
DECLARE_ALIGNED ( ,
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 ( ,
const   uint64_t,
ff_pb_A1   
) [pure virtual]
DECLARE_ALIGNED ( ,
const   uint64_t,
ff_pb_FC   
) [pure virtual]
DECLARE_ALIGNED ( ,
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 ( ,
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 ( ,
const   uint64_t,
ff_pw_96   
) [pure virtual]
DECLARE_ASM_CONST ( ,
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 
)
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]
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.


Variable Documentation

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
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
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm2 n movq mm1 n punpcklwd mm0 n punpckhwd mm2
mm0 n mm1 n mm2 n mm3 n packssdw mm0 n packssdw mm3
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().