#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "dsputil_mmx.h"
Go to the source code of this file.
Defines | |
| #define | VP3_LOOP_FILTER(flim) | 
| #define | STORE_4_WORDS(dst0, dst1, dst2, dst3, mm) | 
| #define | BeginIDCT() | 
| #define | RowIDCT() | 
| #define | ColumnIDCT() | 
| #define | Transpose() | 
| #define | C(x) AV_STRINGIFY(16*(x-1))"(%1)" | 
| #define | OC_8 "%2" | 
| #define | I(x) AV_STRINGIFY(16* x )"(%0)" | 
| #define | J(x) AV_STRINGIFY(16*(x-4) + 8)"(%0)" | 
| #define | I(x) AV_STRINGIFY(16* x + 64)"(%0)" | 
| #define | J(x) AV_STRINGIFY(16*(x-4) + 72)"(%0)" | 
| #define | I(x) AV_STRINGIFY(16*x)"(%0)" | 
| #define | J(x) AV_STRINGIFY(16*x)"(%0)" | 
| #define | I(x) AV_STRINGIFY(16*x + 8)"(%0)" | 
| #define | J(x) AV_STRINGIFY(16*x + 8)"(%0)" | 
Functions | |
| 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_mmx (int16_t *output_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) | 
Variables | |
| const uint16_t | ff_vp3_idct_data [] | 
Definition in file vp3dsp_mmx.c.
| #define BeginIDCT | ( | ) | 
Definition at line 133 of file vp3dsp_mmx.c.
| #define C | ( | x | ) | AV_STRINGIFY(16*(x-1))"(%1)" | 
Referenced by gmc1_c(), h263_pred_motion(), horizX1Filter(), idct(), initFilter(), mpc8_dec_enum(), pred_8x16_motion(), pred_motion(), put_no_rnd_h264_chroma_mc8_c(), rv30_loop_filter(), rv34_pred_mv(), rv34_pred_mv_b(), rv34_pred_mv_rv3(), rv40_decode_intra_types(), rv40_loop_filter(), vc1_pred_b_mv(), vc1_pred_mv(), and wmv2_pred_motion().
| #define ColumnIDCT | ( | ) | 
| #define I | ( | x | ) | AV_STRINGIFY(16*x + 8)"(%0)" | 
| #define I | ( | x | ) | AV_STRINGIFY(16*x)"(%0)" | 
| #define I | ( | x | ) | AV_STRINGIFY(16* x + 64)"(%0)" | 
| #define I | ( | x | ) | AV_STRINGIFY(16* x )"(%0)" | 
Referenced by ff_iir_filter_init_coeffs().
| #define J | ( | x | ) | AV_STRINGIFY(16*x + 8)"(%0)" | 
| #define J | ( | x | ) | AV_STRINGIFY(16*x)"(%0)" | 
| #define J | ( | x | ) | AV_STRINGIFY(16*(x-4) + 72)"(%0)" | 
| #define J | ( | x | ) | AV_STRINGIFY(16*(x-4) + 8)"(%0)" | 
| #define OC_8 "%2" | 
| #define RowIDCT | ( | ) | 
Value:
BeginIDCT() \ "movq "I(2)", %%mm3 \n\t" /* r3 = D. */ \ "psubsw %%mm7, %%mm4 \n\t" /* r4 = E. = E - G */ \ "paddsw %%mm1, %%mm1 \n\t" /* r1 = H. + H. */ \ "paddsw %%mm7, %%mm7 \n\t" /* r7 = G + G */ \ "paddsw %%mm2, %%mm1 \n\t" /* r1 = R1 = A.. + H. */ \ "paddsw %%mm4, %%mm7 \n\t" /* r1 = R1 = A.. + H. */ \ "psubsw %%mm3, %%mm4 \n\t" /* r4 = R4 = E. - D. */ \ "paddsw %%mm3, %%mm3 \n\t" \ "psubsw %%mm5, %%mm6 \n\t" /* r6 = R6 = F. - B.. */ \ "paddsw %%mm5, %%mm5 \n\t" \ "paddsw %%mm4, %%mm3 \n\t" /* r3 = R3 = E. + D. */ \ "paddsw %%mm6, %%mm5 \n\t" /* r5 = R5 = F. + B.. */ \ "psubsw %%mm0, %%mm7 \n\t" /* r7 = R7 = G. - C. */ \ "paddsw %%mm0, %%mm0 \n\t" \ "movq %%mm1, "I(1)"\n\t" /* save R1 */ \ "paddsw %%mm7, %%mm0 \n\t"
Definition at line 210 of file vp3dsp_mmx.c.
Referenced by ff_vp3_idct_mmx().
| #define STORE_4_WORDS | ( | dst0, | |||
| dst1, | |||||
| dst2, | |||||
| dst3, | |||||
| mm | ) | 
Value:
"movd "#mm", %0 \n\t" \ "movw %w0, -1"#dst0" \n\t" \ "psrlq $32, "#mm" \n\t" \ "shr $16, %0 \n\t" \ "movw %w0, -1"#dst1" \n\t" \ "movd "#mm", %0 \n\t" \ "movw %w0, -1"#dst2" \n\t" \ "shr $16, %0 \n\t" \ "movw %w0, -1"#dst3" \n\t"
Definition at line 76 of file vp3dsp_mmx.c.
Referenced by ff_vp3_h_loop_filter_mmx2().
| #define Transpose | ( | ) | 
| #define VP3_LOOP_FILTER | ( | flim | ) | 
Definition at line 35 of file vp3dsp_mmx.c.
Referenced by ff_vp3_h_loop_filter_mmx2(), and ff_vp3_v_loop_filter_mmx2().
| void ff_vp3_h_loop_filter_mmx2 | ( | uint8_t * | src, | |
| int | stride, | |||
| int * | bounding_values | |||
| ) | 
| void ff_vp3_idct_add_mmx | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | 
| void ff_vp3_idct_mmx | ( | int16_t * | output_data | ) | 
Definition at line 335 of file vp3dsp_mmx.c.
Referenced by dsputil_init_mmx(), ff_vp3_idct_add_mmx(), and ff_vp3_idct_put_mmx().
| void ff_vp3_idct_put_mmx | ( | uint8_t * | dest, | |
| int | line_size, | |||
| DCTELEM * | block | |||
| ) | 
| void ff_vp3_v_loop_filter_mmx2 | ( | uint8_t * | src, | |
| int | stride, | |||
| int * | bounding_values | |||
| ) | 
| const uint16_t ff_vp3_idct_data[] | 
Referenced by ff_vp3_idct_mmx(), and ff_vp3_idct_sse2().
 1.5.8