Revision 849f1035 libavcodec/i386/fdct_mmx.c
libavcodec/i386/fdct_mmx.c | ||
---|---|---|
284 | 284 |
}}; |
285 | 285 |
|
286 | 286 |
|
287 |
static always_inline void fdct_col(const int16_t *in, int16_t *out, int offset) |
|
287 |
static av_always_inline void fdct_col(const int16_t *in, int16_t *out, int offset)
|
|
288 | 288 |
{ |
289 | 289 |
movq_m2r(*(in + offset + 1 * 8), mm0); |
290 | 290 |
movq_m2r(*(in + offset + 6 * 8), mm1); |
... | ... | |
364 | 364 |
} |
365 | 365 |
|
366 | 366 |
|
367 |
static always_inline void fdct_row_sse2(const int16_t *in, int16_t *out) |
|
367 |
static av_always_inline void fdct_row_sse2(const int16_t *in, int16_t *out)
|
|
368 | 368 |
{ |
369 | 369 |
asm volatile( |
370 | 370 |
#define FDCT_ROW_SSE2_H1(i,t) \ |
... | ... | |
426 | 426 |
); |
427 | 427 |
} |
428 | 428 |
|
429 |
static always_inline void fdct_row_mmx2(const int16_t *in, int16_t *out, const int16_t *table) |
|
429 |
static av_always_inline void fdct_row_mmx2(const int16_t *in, int16_t *out, const int16_t *table)
|
|
430 | 430 |
{ |
431 | 431 |
pshufw_m2r(*(in + 4), mm5, 0x1B); |
432 | 432 |
movq_m2r(*(in + 0), mm0); |
... | ... | |
469 | 469 |
movq_r2m(mm7, *(out + 4)); |
470 | 470 |
} |
471 | 471 |
|
472 |
static always_inline void fdct_row_mmx(const int16_t *in, int16_t *out, const int16_t *table) |
|
472 |
static av_always_inline void fdct_row_mmx(const int16_t *in, int16_t *out, const int16_t *table)
|
|
473 | 473 |
{ |
474 | 474 |
//FIXME reorder (i dont have a old mmx only cpu here to benchmark ...) |
475 | 475 |
movd_m2r(*(in + 6), mm1); |
Also available in: Unified diff