Go to the source code of this file.
|
#define | MM "%%mm" |
|
#define | MOV "movd" |
|
#define | MOVQ "movq" |
|
#define | MOVQU "movq" |
|
#define | STEP 4 |
|
#define | LOAD(mem, dst) |
|
#define | PSRL1(reg) "psrlq $8, "reg" \n\t" |
|
#define | PSRL2(reg) "psrlq $16, "reg" \n\t" |
|
#define | PSHUF(src, dst) "pshufw $9, "dst", "src" \n\t" |
|
#define | PABS(tmp, dst) |
|
#define | CHECK(pj, mj) |
|
#define | CHECK1 |
|
#define | CHECK2 |
|
#define | FILTER |
|
#define | prev2 "prev" |
|
#define | next2 "cur" |
|
#define | prev2 "cur" |
|
#define | next2 "next" |
|
Value:MOVQU" "#pj
"(%[cur],%[mrefs]), "MM"2 \n\t" \
MOVQU" "#mj
"(%[cur],%[prefs]), "MM"3 \n\t" \
"pxor "MM"3, "MM"4 \n\t"\
"pavgb "MM"3, "MM"5 \n\t"\
"psubusb "MM"4, "MM"5 \n\t"\
"punpcklbw "MM"7, "MM"5 \n\t" \
"psubusb "MM"3, "MM"2 \n\t"\
"psubusb "MM"4, "MM"3 \n\t"\
"pmaxub "MM"3, "MM"2 \n\t"\
"punpcklbw "MM"7, "MM"2 \n\t"\
"punpcklbw "MM"7, "MM"3 \n\t"\
"punpcklbw "MM"7, "MM"4 \n\t"\
"paddw "MM"3, "MM"2 \n\t"\
"paddw "MM"4, "MM"2 \n\t"
Definition at line 58 of file yadif_template.c.
#define LOAD |
( |
|
mem, |
|
|
|
dst |
|
) |
| |
#define PABS |
( |
|
tmp, |
|
|
|
dst |
|
) |
| |
Value:"pxor "tmp", "tmp" \n\t"\
"psubw "dst", "tmp" \n\t"\
"pmaxsw "tmp", "dst" \n\t"
Definition at line 52 of file yadif_template.c.
#define PSHUF |
( |
|
src, |
|
|
|
dst |
|
) |
| "pshufw $9, "dst", "src" \n\t" |
#define PSRL1 |
( |
|
reg | ) |
"psrlq $8, "reg" \n\t" |
#define PSRL2 |
( |
|
reg | ) |
"psrlq $16, "reg" \n\t" |
void ff_yadif_filter_line_TMPL |
( |
uint8_t * |
dst, |
|
|
uint8_t * |
prev, |
|
|
uint8_t * |
cur, |
|
|
uint8_t * |
next, |
|
|
int |
w, |
|
|
int |
prefs, |
|
|
int |
mrefs, |
|
|
int |
parity, |
|
|
int |
mode |
|
) |
| |