#include "libavutil/cpu.h"
#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "dsputil_mmx.h"
#include "libavcodec/vc1dsp.h"
Go to the source code of this file.
Macros | |
#define | OP_PUT(S, D) |
#define | OP_AVG(S, D) "pavgb " #S ", " #D " \n\t" |
#define | NORMALIZE_MMX(SHIFT) |
Add rounder from mm7 to mm3 and pack result at destination. | |
#define | TRANSFER_DO_PACK(OP) |
#define | TRANSFER_DONT_PACK(OP) |
#define | DO_UNPACK(reg) "punpcklbw %%mm0, " reg "\n\t" |
#define | DONT_UNPACK(reg) |
#define | LOAD_ROUNDER_MMX(ROUND) |
Compute the rounder 32-r or 8-r and unpacks it to mm7. | |
#define | SHIFT2_LINE(OFF, R0, R1, R2, R3) |
#define | VC1_HOR_16b_SHIFT2(OP, OPNAME) |
Data is already unpacked, so some operations can directly be made from memory. | |
#define | VC1_SHIFT2(OP, OPNAME) |
#define | MSPEL_FILTER13_CORE(UNPACK, MOVQ, A1, A2, A3, A4) |
#define | MSPEL_FILTER13_VER_16B(NAME, A1, A2, A3, A4) |
#define | MSPEL_FILTER13_HOR_16B(NAME, A1, A2, A3, A4, OP, OPNAME) |
#define | MSPEL_FILTER13_8B(NAME, A1, A2, A3, A4, OP, OPNAME) |
#define | VC1_MSPEL_MC(OP) |
#define | DECLARE_FUNCTION(a, b) |
#define | LOOP_FILTER(EXT) |
#define | ASSIGN_LF(EXT) |
Functions | |
static void | vc1_put_ver_16b_shift2_mmx (int16_t *dst, const uint8_t *src, x86_reg stride, int rnd, int64_t shift) |
Sacrifying mm6 allows to pipeline loads from src. | |
VC1_HOR_16b_SHIFT2 (VC1_HOR_16b_SHIFT2(OP_PUT, put_) | |
static void | vc1_inv_trans_4x8_dc_mmx2 (uint8_t *dest, int linesize, DCTELEM *block) |
static void | vc1_inv_trans_8x4_dc_mmx2 (uint8_t *dest, int linesize, DCTELEM *block) |
static void | vc1_inv_trans_8x8_dc_mmx2 (uint8_t *dest, int linesize, DCTELEM *block) |
void | ff_put_vc1_chroma_mc8_mmx_nornd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
void | ff_avg_vc1_chroma_mc8_mmx2_nornd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
void | ff_avg_vc1_chroma_mc8_3dnow_nornd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
void | ff_put_vc1_chroma_mc8_ssse3_nornd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
void | ff_avg_vc1_chroma_mc8_ssse3_nornd (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) |
void | ff_vc1dsp_init_mmx (VC1DSPContext *dsp) |
#define ASSIGN_LF | ( | EXT | ) |
Referenced by ff_vc1dsp_init_mmx().
#define DECLARE_FUNCTION | ( | a, | |
b | |||
) |
Referenced by VC1_HOR_16b_SHIFT2().
#define DO_UNPACK | ( | reg | ) | "punpcklbw %%mm0, " reg "\n\t" |
Definition at line 55 of file vc1dsp_mmx.c.
#define DONT_UNPACK | ( | reg | ) |
Definition at line 56 of file vc1dsp_mmx.c.
#define LOAD_ROUNDER_MMX | ( | ROUND | ) |
Compute the rounder 32-r or 8-r and unpacks it to mm7.
Definition at line 59 of file vc1dsp_mmx.c.
Referenced by vc1_put_ver_16b_shift2_mmx().
#define LOOP_FILTER | ( | EXT | ) |
Definition at line 685 of file vc1dsp_mmx.c.
Referenced by VC1_HOR_16b_SHIFT2().
#define NORMALIZE_MMX | ( | SHIFT | ) |
Add rounder from mm7 to mm3 and pack result at destination.
Definition at line 37 of file vc1dsp_mmx.c.
Definition at line 34 of file vc1dsp_mmx.c.
Definition at line 33 of file vc1dsp_mmx.c.
Definition at line 64 of file vc1dsp_mmx.c.
Referenced by vc1_put_ver_16b_shift2_mmx().
#define TRANSFER_DO_PACK | ( | OP | ) |
Definition at line 43 of file vc1dsp_mmx.c.
#define TRANSFER_DONT_PACK | ( | OP | ) |
Definition at line 48 of file vc1dsp_mmx.c.
#define VC1_HOR_16b_SHIFT2 | ( | OP, | |
OPNAME | |||
) |
Data is already unpacked, so some operations can directly be made from memory.
Definition at line 116 of file vc1dsp_mmx.c.
#define VC1_MSPEL_MC | ( | OP | ) |
#define VC1_SHIFT2 | ( | OP, | |
OPNAME | |||
) |
Referenced by VC1_HOR_16b_SHIFT2().
void ff_avg_vc1_chroma_mc8_3dnow_nornd | ( | uint8_t * | dst, |
uint8_t * | src, | ||
int | stride, | ||
int | h, | ||
int | x, | ||
int | y | ||
) |
Referenced by ff_vc1dsp_init_mmx().
void ff_avg_vc1_chroma_mc8_mmx2_nornd | ( | uint8_t * | dst, |
uint8_t * | src, | ||
int | stride, | ||
int | h, | ||
int | x, | ||
int | y | ||
) |
Referenced by ff_vc1dsp_init_mmx().
void ff_avg_vc1_chroma_mc8_ssse3_nornd | ( | uint8_t * | dst, |
uint8_t * | src, | ||
int | stride, | ||
int | h, | ||
int | x, | ||
int | y | ||
) |
Referenced by ff_vc1dsp_init_mmx().
void ff_put_vc1_chroma_mc8_mmx_nornd | ( | uint8_t * | dst, |
uint8_t * | src, | ||
int | stride, | ||
int | h, | ||
int | x, | ||
int | y | ||
) |
Referenced by ff_vc1dsp_init_mmx().
void ff_put_vc1_chroma_mc8_ssse3_nornd | ( | uint8_t * | dst, |
uint8_t * | src, | ||
int | stride, | ||
int | h, | ||
int | x, | ||
int | y | ||
) |
Referenced by ff_vc1dsp_init_mmx().
void ff_vc1dsp_init_mmx | ( | VC1DSPContext * | dsp | ) |
Definition at line 730 of file vc1dsp_mmx.c.
Referenced by ff_vc1dsp_init().
VC1_HOR_16b_SHIFT2 | ( | VC1_HOR_16b_SHIFT2( | OP_PUT, |
put_ | |||
) |
Definition at line 156 of file vc1dsp_mmx.c.
Definition at line 525 of file vc1dsp_mmx.c.
Referenced by ff_vc1dsp_init_mmx().
Definition at line 586 of file vc1dsp_mmx.c.
Referenced by ff_vc1dsp_init_mmx().
Definition at line 624 of file vc1dsp_mmx.c.
Referenced by ff_vc1dsp_init_mmx().
|
static |
Sacrifying mm6 allows to pipeline loads from src.
Definition at line 79 of file vc1dsp_mmx.c.