#include "libavutil/cpu.h"#include "libavutil/x86_cpu.h"#include "libavcodec/dsputil.h"#include "libavcodec/h264dsp.h"#include "libavcodec/mpegvideo.h"#include "libavcodec/simple_idct.h"#include "libavcodec/ac3dec.h"#include "dsputil_mmx.h"#include "idct_xvid.h"#include "diracdsp_mmx.h"#include "dsputil_mmx_rnd_template.c"#include "dsputil_mmx_avg_template.c"#include "h264_qpel_mmx.c"Go to the source code of this file.
Defines | |
| #define | JUMPALIGN() __asm__ volatile (".p2align 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 | 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 | CHROMA_MC(OP, NUM, DEPTH, OPT) |
| #define | IF1(x) x |
| #define | IF0(x) |
| #define | MIX5(mono, stereo) |
| #define | MIX_MISC(stereo) |
| #define | SET_HPEL_FUNCS(PFX, IDX, SIZE, CPU) |
| #define | SET_QPEL_FUNCS(PFX, IDX, SIZE, CPU, PREFIX) |
| #define | H264_QPEL_FUNCS(x, y, CPU) |
Typedefs | |
| typedef void | emulated_edge_mc_func (uint8_t *dst, const uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h) |
Functions | |
| void | ff_put_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
| void | ff_put_signed_pixels_clamped_mmx (const DCTELEM *block, uint8_t *pixels, int line_size) |
| void | ff_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 | h263_v_loop_filter_mmx (uint8_t *src, int stride, int qscale) |
| 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, int h, int sides) |
| static av_always_inline void | gmc (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, emulated_edge_mc_func *emu_edge_fn) |
| 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_h264_chroma_mc8_mmx_rnd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_avg_h264_chroma_mc8_mmx2_rnd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_avg_h264_chroma_mc8_3dnow_rnd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_put_h264_chroma_mc4_mmx (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_avg_h264_chroma_mc4_mmx2 (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_avg_h264_chroma_mc4_3dnow (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_put_h264_chroma_mc2_mmx2 (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_avg_h264_chroma_mc2_mmx2 (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_put_h264_chroma_mc8_ssse3_rnd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_put_h264_chroma_mc4_ssse3 (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_avg_h264_chroma_mc8_ssse3_rnd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| void | ff_avg_h264_chroma_mc4_ssse3 (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
| 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 | put_vp_no_rnd_pixels8_l2_mmx (uint8_t *dst, const uint8_t *a, const uint8_t *b, int stride, int h) |
| static void | put_vp_no_rnd_pixels16_l2_mmx (uint8_t *dst, const uint8_t *a, const uint8_t *b, int stride, int h) |
| 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 *src0, const float *src1, int len) |
| static void | vector_fmul_sse (float *dst, const float *src0, const float *src1, 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_clipf_sse (float *dst, const float *src, float min, float max, int len) |
| void | ff_vp3_idct_mmx (int16_t *input_data) |
| void | ff_vp3_idct_put_mmx (uint8_t *dest, int line_size, DCTELEM *block) |
| void | ff_vp3_idct_add_mmx (uint8_t *dest, int line_size, DCTELEM *block) |
| void | ff_vp3_idct_dc_add_mmx2 (uint8_t *dest, int line_size, const DCTELEM *block) |
| void | ff_vp3_v_loop_filter_mmx2 (uint8_t *src, int stride, int *bounding_values) |
| void | ff_vp3_h_loop_filter_mmx2 (uint8_t *src, int stride, int *bounding_values) |
| void | ff_vp3_idct_sse2 (int16_t *input_data) |
| void | ff_vp3_idct_put_sse2 (uint8_t *dest, int line_size, DCTELEM *block) |
| void | ff_vp3_idct_add_sse2 (uint8_t *dest, int line_size, DCTELEM *block) |
| int32_t | ff_scalarproduct_int16_mmx2 (const int16_t *v1, const int16_t *v2, int order, int shift) |
| int32_t | ff_scalarproduct_int16_sse2 (const int16_t *v1, const int16_t *v2, int order, int shift) |
| int32_t | ff_scalarproduct_and_madd_int16_mmx2 (int16_t *v1, const int16_t *v2, const int16_t *v3, int order, int mul) |
| int32_t | ff_scalarproduct_and_madd_int16_sse2 (int16_t *v1, const int16_t *v2, const int16_t *v3, int order, int mul) |
| int32_t | ff_scalarproduct_and_madd_int16_ssse3 (int16_t *v1, const int16_t *v2, const int16_t *v3, int order, int mul) |
| void | ff_apply_window_int16_mmxext (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
| void | ff_apply_window_int16_mmxext_ba (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
| void | ff_apply_window_int16_sse2 (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
| void | ff_apply_window_int16_sse2_ba (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
| void | ff_apply_window_int16_ssse3 (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
| void | ff_apply_window_int16_ssse3_atom (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len) |
| 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) |
| float | ff_scalarproduct_float_sse (const float *v1, const float *v2, int order) |
| void | ff_vector_clip_int32_mmx (int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len) |
| void | ff_vector_clip_int32_sse2 (int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len) |
| void | ff_vector_clip_int32_int_sse2 (int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len) |
| void | ff_vector_clip_int32_sse4 (int32_t *dst, const int32_t *src, int32_t min, int32_t max, unsigned int len) |
| void | ff_butterflies_float_interleave_sse (float *dst, const float *src0, const float *src1, int len) |
| void | ff_butterflies_float_interleave_avx (float *dst, const float *src0, const float *src1, int len) |
| void | dsputil_init_mmx (DSPContext *c, AVCodecContext *avctx) |
Variables | |
| const uint64_t | ff_bone = 0x0101010101010101ULL |
| const uint64_t | ff_wtwo = 0x0002000200020002ULL |
| const uint64_t | ff_pdw_80000000 [2] |
| const xmm_reg | ff_pw_1 = {0x0001000100010001ULL, 0x0001000100010001ULL} |
| const xmm_reg | ff_pw_2 = {0x0002000200020002ULL, 0x0002000200020002ULL} |
| const xmm_reg | ff_pw_3 = {0x0003000300030003ULL, 0x0003000300030003ULL} |
| const xmm_reg | ff_pw_4 = {0x0004000400040004ULL, 0x0004000400040004ULL} |
| const xmm_reg | ff_pw_5 = {0x0005000500050005ULL, 0x0005000500050005ULL} |
| const xmm_reg | ff_pw_8 = {0x0008000800080008ULL, 0x0008000800080008ULL} |
| const xmm_reg | ff_pw_9 = {0x0009000900090009ULL, 0x0009000900090009ULL} |
| const uint64_t | ff_pw_15 = 0x000F000F000F000FULL |
| const xmm_reg | ff_pw_16 = {0x0010001000100010ULL, 0x0010001000100010ULL} |
| const xmm_reg | ff_pw_17 = {0x0011001100110011ULL, 0x0011001100110011ULL} |
| const xmm_reg | ff_pw_18 = {0x0012001200120012ULL, 0x0012001200120012ULL} |
| const uint64_t | ff_pw_20 = 0x0014001400140014ULL |
| const xmm_reg | ff_pw_27 = {0x001B001B001B001BULL, 0x001B001B001B001BULL} |
| const xmm_reg | ff_pw_28 = {0x001C001C001C001CULL, 0x001C001C001C001CULL} |
| const xmm_reg | ff_pw_32 = {0x0020002000200020ULL, 0x0020002000200020ULL} |
| const uint64_t | ff_pw_42 = 0x002A002A002A002AULL |
| const uint64_t | ff_pw_53 = 0x0035003500350035ULL |
| const xmm_reg | ff_pw_63 = {0x003F003F003F003FULL, 0x003F003F003F003FULL} |
| const xmm_reg | ff_pw_64 = {0x0040004000400040ULL, 0x0040004000400040ULL} |
| const uint64_t | ff_pw_96 = 0x0060006000600060ULL |
| const uint64_t | ff_pw_128 = 0x0080008000800080ULL |
| const uint64_t | ff_pw_255 = 0x00ff00ff00ff00ffULL |
| const xmm_reg | ff_pw_512 = {0x0200020002000200ULL, 0x0200020002000200ULL} |
| const xmm_reg | ff_pw_1019 = {0x03FB03FB03FB03FBULL, 0x03FB03FB03FB03FBULL} |
| const xmm_reg | ff_pb_0 = {0x0000000000000000ULL, 0x0000000000000000ULL} |
| const xmm_reg | ff_pb_1 = {0x0101010101010101ULL, 0x0101010101010101ULL} |
| const xmm_reg | ff_pb_3 = {0x0303030303030303ULL, 0x0303030303030303ULL} |
| const xmm_reg | ff_pb_4 = {0x0404040404040404ULL, 0x0404040404040404ULL} |
| const uint64_t | ff_pb_7 = 0x0707070707070707ULL |
| const uint64_t | ff_pb_1F = 0x1F1F1F1F1F1F1F1FULL |
| const uint64_t | ff_pb_3F = 0x3F3F3F3F3F3F3F3FULL |
| const xmm_reg | ff_pb_80 = {0x8080808080808080ULL, 0x8080808080808080ULL} |
| const uint64_t | ff_pb_81 = 0x8181818181818181ULL |
| const xmm_reg | ff_pb_A1 = {0xA1A1A1A1A1A1A1A1ULL, 0xA1A1A1A1A1A1A1A1ULL} |
| const xmm_reg | ff_pb_F8 = {0xF8F8F8F8F8F8F8F8ULL, 0xF8F8F8F8F8F8F8F8ULL} |
| const uint64_t | ff_pb_FC = 0xFCFCFCFCFCFCFCFCULL |
| const xmm_reg | ff_pb_FE = {0xFEFEFEFEFEFEFEFEULL, 0xFEFEFEFEFEFEFEFEULL} |
| const double | ff_pd_1 [2] = { 1.0, 1.0 } |
| const double | ff_pd_2 [2] = { 2.0, 2.0 } |
| #define CHROMA_MC | ( | OP, | |||
| NUM, | |||||
| DEPTH, | |||||
| OPT | ) |
| #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 502 of file dsputil_mmx.c.
| #define DEF | ( | x | ) | x ## _mmx2 |
Definition at line 210 of file dsputil_mmx.c.
| #define DEF | ( | x | ) | x ## _3dnow |
Definition at line 210 of file dsputil_mmx.c.
| #define DEF | ( | x, | |||
| y | ) | x ## _ ## y ##_mmx |
Definition at line 210 of file dsputil_mmx.c.
| #define DEF | ( | x, | |||
| y | ) | x ## _no_rnd_ ## y ##_mmx |
Definition at line 210 of file dsputil_mmx.c.
| #define H263_LOOP_FILTER |
Definition at line 621 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 | ) |
| #define IF1 | ( | x | ) | x |
| #define JUMPALIGN | ( | ) | __asm__ volatile (".p2align 3"::) |
| #define MIX5 | ( | mono, | |||
| stereo | ) |
| #define MIX_MISC | ( | stereo | ) |
Value:
__asm__ volatile(\ "1: \n"\ "movaps (%3,%0), %%xmm0 \n"\ stereo("movaps %%xmm0, %%xmm1 \n")\ "mulps %%xmm4, %%xmm0 \n"\ stereo("mulps %%xmm5, %%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 2087 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 91 of file dsputil_mmx.c.
Referenced by pixels16(), pixels16_l2(), pixels16_x2(), pixels4(), pixels8(), pixels8_l2(), pixels8_x2(), pixels8_y2(), and put_vp_no_rnd_pixels8_l2_mmx().
| #define MOVQ_BONE | ( | regd | ) | __asm__ volatile ("movq %0, %%" #regd " \n\t" ::"m"(ff_bone)) |
Definition at line 97 of file dsputil_mmx.c.
Referenced by avg_pixels8_xy2_TMPL(), put_no_rnd_pixels8_x2_TMPL(), and put_no_rnd_pixels8_y2_TMPL().
| #define MOVQ_WTWO | ( | regd | ) | __asm__ volatile ("movq %0, %%" #regd " \n\t" ::"m"(ff_wtwo)) |
Definition at line 98 of file dsputil_mmx.c.
| #define MOVQ_ZERO | ( | regd | ) | __asm__ volatile ("pxor %%" #regd ", %%" #regd ::) |
Definition at line 89 of file dsputil_mmx.c.
Referenced by ff_add_pixels_clamped_mmx(), and pixels8_xy2().
| #define OP_AVG PAVGB |
Definition at line 214 of file dsputil_mmx.c.
| #define OP_AVG PAVGB |
Definition at line 214 of file dsputil_mmx.c.
Definition at line 214 of file dsputil_mmx.c.
| #define PAVGB "pavgb" |
Definition at line 213 of file dsputil_mmx.c.
| #define PAVGB "pavgusb" |
Definition at line 213 of file dsputil_mmx.c.
Definition at line 213 of file dsputil_mmx.c.
Definition at line 213 of file dsputil_mmx.c.
Referenced by avg_pixels16_l2_TMPL(), avg_pixels4_l2_TMPL(), avg_pixels4_TMPL(), avg_pixels8_l2_TMPL(), avg_pixels8_TMPL(), avg_pixels8_x2_TMPL(), avg_pixels8_xy2_TMPL(), avg_pixels8_y2_TMPL(), deInterlaceBlendLinear_TMPL(), deInterlaceInterpolateLinear_TMPL(), dering_TMPL(), doVertDefFilter_TMPL(), doVertLowPass_TMPL(), extract_even2avg_TMPL(), extract_odd2avg_TMPL(), pixels8_l2(), put_no_rnd_pixels16_l2_TMPL(), put_no_rnd_pixels8_l2_TMPL(), put_no_rnd_pixels8_x2_exact_TMPL(), put_no_rnd_pixels8_x2_TMPL(), put_no_rnd_pixels8_y2_exact_TMPL(), put_no_rnd_pixels8_y2_TMPL(), put_pixels16_l2_TMPL(), put_pixels16_x2_TMPL(), put_pixels4_l2_TMPL(), put_pixels8_l2_TMPL(), put_pixels8_x2_TMPL(), put_pixels8_y2_TMPL(), rgb24toyv12_TMPL(), tempNoiseReducer_TMPL(), and vertX1Filter_TMPL().
| #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 127 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 119 of file dsputil_mmx.c.
Definition at line 183 of file dsputil_mmx.c.
Definition at line 183 of file dsputil_mmx.c.
Referenced by pixels16_l2(), pixels16_x2(), pixels8_l2(), pixels8_x2(), and pixels8_y2().
| #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 150 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 136 of file dsputil_mmx.c.
Referenced by put_vp_no_rnd_pixels8_l2_mmx().
| #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 1789 of file dsputil_mmx.c.
Referenced by bgr24ToUV_mmx_TMPL(), interleaveBytes_TMPL(), rgb15to16_TMPL(), rgb15to32_TMPL(), rgb15tobgr24_TMPL(), rgb16to15_TMPL(), rgb16to32_TMPL(), rgb16tobgr24_TMPL(), rgb24to15_TMPL(), rgb24to16_TMPL(), rgb24tobgr15_TMPL(), rgb24tobgr16_TMPL(), rgb24tobgr24_TMPL(), rgb24tobgr32_TMPL(), rgb24toyv12_TMPL(), rgb32to15_TMPL(), rgb32to16_TMPL(), rgb32tobgr15_TMPL(), rgb32tobgr16_TMPL(), rgb32tobgr24_TMPL(), shuffle_bytes_2103_TMPL(), uyvytoyv12_TMPL(), vu9_to_vu12_TMPL(), yuvPlanartouyvy_TMPL(), yuvPlanartoyuy2_TMPL(), yuy2toyv12_TMPL(), and yvu9_to_yuy2_TMPL().
| #define put_no_rnd_pixels16_3dnow put_no_rnd_pixels16_mmx |
Definition at line 232 of file dsputil_mmx.c.
| #define put_no_rnd_pixels16_mmx put_pixels16_mmx |
Definition at line 222 of file dsputil_mmx.c.
| #define put_no_rnd_pixels16_mmx2 put_no_rnd_pixels16_mmx |
Definition at line 227 of file dsputil_mmx.c.
| #define put_no_rnd_pixels8_3dnow put_no_rnd_pixels8_mmx |
Definition at line 233 of file dsputil_mmx.c.
| #define put_no_rnd_pixels8_mmx put_pixels8_mmx |
Definition at line 223 of file dsputil_mmx.c.
| #define put_no_rnd_pixels8_mmx2 put_no_rnd_pixels8_mmx |
Definition at line 228 of file dsputil_mmx.c.
Definition at line 1508 of file dsputil_mmx.c.
| #define put_pixels16_3dnow put_pixels16_mmx |
Definition at line 229 of file dsputil_mmx.c.
| #define put_pixels16_mmx2 put_pixels16_mmx |
Definition at line 224 of file dsputil_mmx.c.
| #define put_pixels4_3dnow put_pixels4_mmx |
Definition at line 231 of file dsputil_mmx.c.
| #define put_pixels4_mmx2 put_pixels4_mmx |
Definition at line 226 of file dsputil_mmx.c.
| #define put_pixels8_3dnow put_pixels8_mmx |
Definition at line 230 of file dsputil_mmx.c.
| #define put_pixels8_mmx2 put_pixels8_mmx |
Definition at line 225 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 293 of file dsputil_mmx.c.
Referenced by ff_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 1540 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 882 of file dsputil_mmx.c.
| #define QPEL_OP | ( | OPNAME, | |||
| ROUNDER, | |||||
| RND, | |||||
| OP, | |||||
| MMX | ) |
Definition at line 1145 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 861 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, | |||||
| PREFIX | ) |
Value:
c->PFX ## _pixels_tab[IDX][ 0] = PREFIX ## PFX ## SIZE ## _mc00_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 1] = PREFIX ## PFX ## SIZE ## _mc10_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 2] = PREFIX ## PFX ## SIZE ## _mc20_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 3] = PREFIX ## PFX ## SIZE ## _mc30_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 4] = PREFIX ## PFX ## SIZE ## _mc01_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 5] = PREFIX ## PFX ## SIZE ## _mc11_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 6] = PREFIX ## PFX ## SIZE ## _mc21_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 7] = PREFIX ## PFX ## SIZE ## _mc31_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 8] = PREFIX ## PFX ## SIZE ## _mc02_ ## CPU; \ c->PFX ## _pixels_tab[IDX][ 9] = PREFIX ## PFX ## SIZE ## _mc12_ ## CPU; \ c->PFX ## _pixels_tab[IDX][10] = PREFIX ## PFX ## SIZE ## _mc22_ ## CPU; \ c->PFX ## _pixels_tab[IDX][11] = PREFIX ## PFX ## SIZE ## _mc32_ ## CPU; \ c->PFX ## _pixels_tab[IDX][12] = PREFIX ## PFX ## SIZE ## _mc03_ ## CPU; \ c->PFX ## _pixels_tab[IDX][13] = PREFIX ## PFX ## SIZE ## _mc13_ ## CPU; \ c->PFX ## _pixels_tab[IDX][14] = PREFIX ## PFX ## SIZE ## _mc23_ ## CPU; \ c->PFX ## _pixels_tab[IDX][15] = PREFIX ## PFX ## SIZE ## _mc33_ ## CPU
Referenced by dsputil_init_mmx().
| #define SET_RND MOVQ_WTWO |
Definition at line 182 of file dsputil_mmx.c.
| #define SET_RND MOVQ_WONE |
Definition at line 182 of file dsputil_mmx.c.
| typedef void emulated_edge_mc_func(uint8_t *dst, const uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h) |
Definition at line 1640 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] |
| static void add_bytes_mmx | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | w | |||
| ) | [static] |
| static void avg_pixels16_sse2 | ( | uint8_t * | block, | |
| const uint8_t * | pixels, | |||
| int | line_size, | |||
| int | h | |||
| ) | [static] |
Definition at line 476 of file dsputil_mmx.c.
Referenced by avg_h264_qpel16_mc00_sse2(), and dsputil_init_mmx().
| static void clear_block_sse | ( | DCTELEM * | block | ) | [static] |
| static void clear_blocks_sse | ( | DCTELEM * | blocks | ) | [static] |
| static void draw_edges_mmx | ( | uint8_t * | buf, | |
| int | wrap, | |||
| int | width, | |||
| int | height, | |||
| int | w, | |||
| int | h, | |||
| int | sides | |||
| ) | [static] |
| void dsputil_init_mmx | ( | DSPContext * | c, | |
| AVCodecContext * | avctx | |||
| ) |
| int ff_add_hfyu_left_prediction_sse4 | ( | uint8_t * | dst, | |
| const uint8_t * | src, | |||
| int | w, | |||
| int | left | |||
| ) |
Referenced by dsputil_init_mmx().
| int ff_add_hfyu_left_prediction_ssse3 | ( | uint8_t * | dst, | |
| const uint8_t * | src, | |||
| int | w, | |||
| int | left | |||
| ) |
Referenced by dsputil_init_mmx().
| 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 | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_add_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
| uint8_t * | pixels, | |||
| int | line_size | |||
| ) |
Definition at line 327 of file dsputil_mmx.c.
Referenced by cavs_idct8_add_mmx(), dsputil_init_mmx(), ff_idct_xvid_mmx2_add(), ff_idct_xvid_mmx_add(), ff_idct_xvid_sse2_add(), and ff_simple_idct_add_mmx().
| void ff_apply_window_int16_mmxext | ( | int16_t * | output, | |
| const int16_t * | input, | |||
| const int16_t * | window, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_apply_window_int16_mmxext_ba | ( | int16_t * | output, | |
| const int16_t * | input, | |||
| const int16_t * | window, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_apply_window_int16_sse2 | ( | int16_t * | output, | |
| const int16_t * | input, | |||
| const int16_t * | window, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_apply_window_int16_sse2_ba | ( | int16_t * | output, | |
| const int16_t * | input, | |||
| const int16_t * | window, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_apply_window_int16_ssse3 | ( | int16_t * | output, | |
| const int16_t * | input, | |||
| const int16_t * | window, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_apply_window_int16_ssse3_atom | ( | int16_t * | output, | |
| const int16_t * | input, | |||
| const int16_t * | window, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_avg_cavs_qpel16_mc00_mmx2 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride | |||
| ) |
Definition at line 1856 of file dsputil_mmx.c.
| void ff_avg_cavs_qpel8_mc00_mmx2 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride | |||
| ) |
Definition at line 1850 of file dsputil_mmx.c.
| void ff_avg_h264_chroma_mc2_mmx2 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_avg_h264_chroma_mc4_3dnow | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_avg_h264_chroma_mc4_mmx2 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_avg_h264_chroma_mc4_ssse3 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_avg_h264_chroma_mc8_3dnow_rnd | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_avg_h264_chroma_mc8_mmx2_rnd | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_avg_h264_chroma_mc8_ssse3_rnd | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_avg_vc1_mspel_mc00_mmx2 | ( | uint8_t * | dst, | |
| const uint8_t * | src, | |||
| int | stride, | |||
| int | rnd | |||
| ) |
| void ff_butterflies_float_interleave_avx | ( | float * | dst, | |
| const float * | src0, | |||
| const float * | src1, | |||
| int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_butterflies_float_interleave_sse | ( | float * | dst, | |
| const float * | src0, | |||
| const float * | src1, | |||
| int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| static void ff_idct_xvid_mmx2_add | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
| static void ff_idct_xvid_mmx2_put | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
| static void ff_idct_xvid_mmx_add | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
| static void ff_idct_xvid_mmx_put | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | [static] |
| void ff_put_cavs_qpel16_mc00_mmx2 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride | |||
| ) |
Definition at line 1853 of file dsputil_mmx.c.
| void ff_put_cavs_qpel8_mc00_mmx2 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride | |||
| ) |
Definition at line 1847 of file dsputil_mmx.c.
| void ff_put_h264_chroma_mc2_mmx2 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_put_h264_chroma_mc4_mmx | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_put_h264_chroma_mc4_ssse3 | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_put_h264_chroma_mc8_mmx_rnd | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_put_h264_chroma_mc8_ssse3_rnd | ( | uint8_t * | dst, | |
| uint8_t * | src, | |||
| int | stride, | |||
| int | h, | |||
| int | x, | |||
| int | y | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_put_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
| uint8_t * | pixels, | |||
| int | line_size | |||
| ) |
Definition at line 238 of file dsputil_mmx.c.
Referenced by dsputil_init_mmx(), ff_idct_xvid_mmx2_put(), ff_idct_xvid_mmx_put(), ff_idct_xvid_sse2_put(), and ff_simple_idct_put_mmx().
| void ff_put_signed_pixels_clamped_mmx | ( | const DCTELEM * | block, | |
| uint8_t * | pixels, | |||
| int | line_size | |||
| ) |
| void ff_put_vc1_mspel_mc00_mmx | ( | uint8_t * | dst, | |
| const uint8_t * | src, | |||
| int | stride, | |||
| int | rnd | |||
| ) |
| int32_t ff_scalarproduct_and_madd_int16_mmx2 | ( | int16_t * | v1, | |
| const int16_t * | v2, | |||
| const int16_t * | v3, | |||
| int | order, | |||
| int | mul | |||
| ) |
Referenced by dsputil_init_mmx().
| int32_t ff_scalarproduct_and_madd_int16_sse2 | ( | int16_t * | v1, | |
| const int16_t * | v2, | |||
| const int16_t * | v3, | |||
| int | order, | |||
| int | mul | |||
| ) |
Referenced by dsputil_init_mmx().
| int32_t ff_scalarproduct_and_madd_int16_ssse3 | ( | int16_t * | v1, | |
| const int16_t * | v2, | |||
| const int16_t * | v3, | |||
| int | order, | |||
| int | mul | |||
| ) |
Referenced by dsputil_init_mmx().
| float ff_scalarproduct_float_sse | ( | const float * | v1, | |
| const float * | v2, | |||
| int | order | |||
| ) |
Referenced by dsputil_init_mmx().
| int32_t ff_scalarproduct_int16_mmx2 | ( | const int16_t * | v1, | |
| const int16_t * | v2, | |||
| int | order, | |||
| int | shift | |||
| ) |
Referenced by dsputil_init_mmx().
| int32_t ff_scalarproduct_int16_sse2 | ( | const int16_t * | v1, | |
| const int16_t * | v2, | |||
| int | order, | |||
| int | shift | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vector_clip_int32_int_sse2 | ( | int32_t * | dst, | |
| const int32_t * | src, | |||
| int32_t | min, | |||
| int32_t | max, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vector_clip_int32_mmx | ( | int32_t * | dst, | |
| const int32_t * | src, | |||
| int32_t | min, | |||
| int32_t | max, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vector_clip_int32_sse2 | ( | int32_t * | dst, | |
| const int32_t * | src, | |||
| int32_t | min, | |||
| int32_t | max, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vector_clip_int32_sse4 | ( | int32_t * | dst, | |
| const int32_t * | src, | |||
| int32_t | min, | |||
| int32_t | max, | |||
| unsigned int | len | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vp3_h_loop_filter_mmx2 | ( | uint8_t * | src, | |
| int | stride, | |||
| int * | bounding_values | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vp3_idct_add_mmx | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vp3_idct_add_sse2 | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vp3_idct_dc_add_mmx2 | ( | uint8_t * | dest, | |
| int | line_size, | |||
| const DCTELEM * | block | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vp3_idct_mmx | ( | int16_t * | input_data | ) |
Referenced by dsputil_init_mmx().
| void ff_vp3_idct_put_mmx | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vp3_idct_put_sse2 | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) |
Referenced by dsputil_init_mmx().
| void ff_vp3_idct_sse2 | ( | int16_t * | input_data | ) |
Referenced by dsputil_init_mmx().
| void ff_vp3_v_loop_filter_mmx2 | ( | uint8_t * | src, | |
| int | stride, | |||
| int * | bounding_values | |||
| ) |
Referenced by dsputil_init_mmx().
| static av_always_inline void gmc | ( | 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, | |||
| emulated_edge_mc_func * | emu_edge_fn | |||
| ) | [static] |
| 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] |
| static void h263_h_loop_filter_mmx | ( | uint8_t * | src, | |
| int | stride, | |||
| int | qscale | |||
| ) | [static] |
| static void h263_v_loop_filter_mmx | ( | uint8_t * | src, | |
| int | stride, | |||
| int | qscale | |||
| ) | [static] |
| static void put_pixels16_mmx | ( | uint8_t * | block, | |
| const uint8_t * | pixels, | |||
| int | line_size, | |||
| int | h | |||
| ) | [static] |
| static void put_pixels16_sse2 | ( | uint8_t * | block, | |
| const uint8_t * | pixels, | |||
| int | line_size, | |||
| int | h | |||
| ) | [static] |
Definition at line 454 of file dsputil_mmx.c.
Referenced by dsputil_init_mmx(), and put_h264_qpel16_mc00_sse2().
| static void put_pixels4_mmx | ( | uint8_t * | block, | |
| const uint8_t * | pixels, | |||
| int | line_size, | |||
| int | h | |||
| ) | [static] |
Definition at line 368 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 394 of file dsputil_mmx.c.
Referenced by ff_put_cavs_qpel8_mc00_mmx2(), and ff_put_vc1_mspel_mc00_mmx().
| static void put_vp_no_rnd_pixels16_l2_mmx | ( | uint8_t * | dst, | |
| const uint8_t * | a, | |||
| const uint8_t * | b, | |||
| int | stride, | |||
| int | h | |||
| ) | [static] |
| static void put_vp_no_rnd_pixels8_l2_mmx | ( | uint8_t * | dst, | |
| const uint8_t * | a, | |||
| const uint8_t * | b, | |||
| int | stride, | |||
| int | h | |||
| ) | [static] |
Definition at line 1869 of file dsputil_mmx.c.
Referenced by dsputil_init_mmx(), and put_vp_no_rnd_pixels16_l2_mmx().
| static void vector_clipf_sse | ( | float * | dst, | |
| const float * | src, | |||
| float | min, | |||
| float | max, | |||
| int | len | |||
| ) | [static] |
| static void vector_fmul_3dnow | ( | float * | dst, | |
| const float * | src0, | |||
| const float * | src1, | |||
| int | len | |||
| ) | [static] |
| static void vector_fmul_add_3dnow | ( | float * | dst, | |
| const float * | src0, | |||
| const float * | src1, | |||
| const float * | src2, | |||
| int | len | |||
| ) | [static] |
| static void vector_fmul_add_sse | ( | float * | dst, | |
| const float * | src0, | |||
| const float * | src1, | |||
| const float * | src2, | |||
| int | len | |||
| ) | [static] |
| static void vector_fmul_reverse_3dnow2 | ( | float * | dst, | |
| const float * | src0, | |||
| const float * | src1, | |||
| int | len | |||
| ) | [static] |
| static void vector_fmul_reverse_sse | ( | float * | dst, | |
| const float * | src0, | |||
| const float * | src1, | |||
| int | len | |||
| ) | [static] |
| static void vector_fmul_sse | ( | float * | dst, | |
| const float * | src0, | |||
| const float * | src1, | |||
| int | len | |||
| ) | [static] |
| static void vorbis_inverse_coupling_3dnow | ( | float * | mag, | |
| float * | ang, | |||
| int | blocksize | |||
| ) | [static] |
| static void vorbis_inverse_coupling_sse | ( | float * | mag, | |
| float * | ang, | |||
| int | blocksize | |||
| ) | [static] |
| const uint64_t ff_bone = 0x0101010101010101ULL |
Definition at line 40 of file dsputil_mmx.c.
Definition at line 71 of file dsputil_mmx.c.
| const uint64_t ff_pb_1F = 0x1F1F1F1F1F1F1F1FULL |
Definition at line 76 of file dsputil_mmx.c.
| const uint64_t ff_pb_3F = 0x3F3F3F3F3F3F3F3FULL |
Definition at line 77 of file dsputil_mmx.c.
Definition at line 74 of file dsputil_mmx.c.
| const uint64_t ff_pb_7 = 0x0707070707070707ULL |
Definition at line 75 of file dsputil_mmx.c.
| const uint64_t ff_pb_81 = 0x8181818181818181ULL |
Definition at line 79 of file dsputil_mmx.c.
Definition at line 80 of file dsputil_mmx.c.
Definition at line 81 of file dsputil_mmx.c.
| const uint64_t ff_pb_FC = 0xFCFCFCFCFCFCFCFCULL |
Definition at line 82 of file dsputil_mmx.c.
Referenced by h263_h_loop_filter_mmx(), and h263_v_loop_filter_mmx().
Definition at line 83 of file dsputil_mmx.c.
| const double ff_pd_1[2] = { 1.0, 1.0 } |
Definition at line 85 of file dsputil_mmx.c.
Referenced by lpc_apply_welch_window_sse2(), and lpc_compute_autocorr_sse2().
| const double ff_pd_2[2] = { 2.0, 2.0 } |
| const uint64_t ff_pdw_80000000[2] |
Initial value:
{0x8000000080000000ULL, 0x8000000080000000ULL}
Definition at line 43 of file dsputil_mmx.c.
Referenced by vorbis_inverse_coupling_sse().
Definition at line 46 of file dsputil_mmx.c.
| const xmm_reg ff_pw_1019 = {0x03FB03FB03FB03FBULL, 0x03FB03FB03FB03FBULL} |
Definition at line 69 of file dsputil_mmx.c.
| const uint64_t ff_pw_128 = 0x0080008000800080ULL |
Definition at line 66 of file dsputil_mmx.c.
| const uint64_t ff_pw_15 = 0x000F000F000F000FULL |
Definition at line 53 of file dsputil_mmx.c.
Definition at line 54 of file dsputil_mmx.c.
Definition at line 55 of file dsputil_mmx.c.
Definition at line 56 of file dsputil_mmx.c.
Definition at line 47 of file dsputil_mmx.c.
| const uint64_t ff_pw_20 = 0x0014001400140014ULL |
Definition at line 57 of file dsputil_mmx.c.
| const uint64_t ff_pw_255 = 0x00ff00ff00ff00ffULL |
Definition at line 67 of file dsputil_mmx.c.
Definition at line 58 of file dsputil_mmx.c.
Definition at line 59 of file dsputil_mmx.c.
Definition at line 48 of file dsputil_mmx.c.
Definition at line 60 of file dsputil_mmx.c.
| const uint64_t ff_pw_42 = 0x002A002A002A002AULL |
Definition at line 61 of file dsputil_mmx.c.
Definition at line 50 of file dsputil_mmx.c.
Definition at line 68 of file dsputil_mmx.c.
| const uint64_t ff_pw_53 = 0x0035003500350035ULL |
Definition at line 62 of file dsputil_mmx.c.
Definition at line 63 of file dsputil_mmx.c.
Definition at line 51 of file dsputil_mmx.c.
| const uint64_t ff_pw_96 = 0x0060006000600060ULL |
Definition at line 65 of file dsputil_mmx.c.
| const uint64_t ff_wtwo = 0x0002000200020002ULL |
Definition at line 41 of file dsputil_mmx.c.
1.5.8