Go to the source code of this file.
|
#define | OP(LOAD, STORE) |
|
#define | OP_X2(LOAD, STORE) |
|
#define | OP_Y2(LOAD, STORE) |
|
#define | OP_XY2(LOAD, STORE) |
|
#define | MAKE_OP(OPNAME, SUFF, OPKIND, STORE) |
|
#define | PIXOP(OPNAME, STORE) |
|
#define | AVG2 avg2 |
|
#define | AVG4 avg4 |
|
#define | AVG4_ROUNDER BYTE_VEC(0x02) |
|
#define | STORE(l, b) stq(l, b) |
|
#define | STORE(l, b) stq(AVG2(l, ldq(b)), b); |
|
#define | AVG2 avg2_no_rnd |
|
#define | AVG4 avg4_no_rnd |
|
#define | AVG4_ROUNDER BYTE_VEC(0x01) |
|
#define | STORE(l, b) stq(l, b) |
|
#define | STORE(l, b) stq(AVG2(l, ldq(b)), b); |
|
|
static uint64_t | avg2_no_rnd (uint64_t a, uint64_t b) |
|
static uint64_t | avg2 (uint64_t a, uint64_t b) |
|
| PIXOP (put, STORE) |
|
| PIXOP (avg, STORE) |
|
| PIXOP (put_no_rnd, STORE) |
|
| PIXOP (avg_no_rnd, STORE) |
|
static void | put_pixels16_axp_asm (uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) |
|
av_cold void | ff_hpeldsp_init_alpha (HpelDSPContext *c, int flags) |
|
Value:do { \
uint64_t pix1, pix2; \
\
pix2 = pix1 >> 8 | ((uint64_t) pixels[8] << 56);
\
} while (--h)
Definition at line 62 of file hpeldsp_alpha.c.
Value:do { \
uint64_t pix =
LOAD(pixels); \
do { \
uint64_t next_pix; \
\
pixels += line_size; \
next_pix =
LOAD(pixels);
\
pix = next_pix; \
} while (--h); \
} while (0)
Definition at line 73 of file hpeldsp_alpha.c.
Value:do { \
uint64_t pix1 =
LOAD(pixels); \
uint64_t pix2 = pix1 >> 8 | ((uint64_t) pixels[8] << 56); \
uint64_t pix_l = (pix1 &
BYTE_VEC(0x03)) \
uint64_t pix_h = ((pix1 & ~
BYTE_VEC(0x03)) >> 2) \
\
do { \
uint64_t npix1, npix2; \
uint64_t npix_l, npix_h; \
uint64_t avg; \
\
pixels += line_size; \
npix2 = npix1 >> 8 | ((uint64_t) pixels[8] << 56); \
npix_h = ((npix1 & ~
BYTE_VEC(0x03)) >> 2) \
pix_l = npix_l; \
pix_h = npix_h; \
} while (--h); \
} while (0)
static uint64_t BYTE_VEC(uint64_t x)
Definition at line 87 of file hpeldsp_alpha.c.
#define MAKE_OP |
( |
|
OPNAME, |
|
|
|
SUFF, |
|
|
|
OPKIND, |
|
|
|
STORE |
|
) |
| |
Value:static void OPNAME ## _pixels ## SUFF ## _axp \
ptrdiff_t line_size, int h) \
if ((
size_t) pixels & 0x7) { \
} else { \
} \
} \
\
static void OPNAME ## _pixels16 ## SUFF ## _axp \
ptrdiff_t line_size, int h) \
{ \
OPNAME ## _pixels ## SUFF ## _axp(block, pixels, line_size, h); \
OPNAME ## _pixels ## SUFF ## _axp(block + 8, pixels + 8, line_size, h); \
}
Definition at line 118 of file hpeldsp_alpha.c.
#define PIXOP |
( |
|
OPNAME, |
|
|
|
STORE |
|
) |
| |
Value:
#define OP_Y2(LOAD, STORE)
#define OP_X2(LOAD, STORE)
#define MAKE_OP(OPNAME, SUFF, OPKIND, STORE)
#define OP_XY2(LOAD, STORE)
Definition at line 138 of file hpeldsp_alpha.c.
#define STORE |
( |
|
l, |
|
|
|
b |
|
) |
| stq(l, b) |
#define STORE |
( |
|
l, |
|
|
|
b |
|
) |
| stq(l, b) |
static uint64_t avg2_no_rnd |
( |
uint64_t |
a, |
|
|
uint64_t |
b |
|
) |
| |
|
inlinestatic |
static uint64_t avg2 |
( |
uint64_t |
a, |
|
|
uint64_t |
b |
|
) |
| |
|
inlinestatic |
PIXOP |
( |
put_no_rnd |
, |
|
|
STORE |
|
|
) |
| |
PIXOP |
( |
avg_no_rnd |
, |
|
|
STORE |
|
|
) |
| |
static void put_pixels16_axp_asm |
( |
uint8_t * |
block, |
|
|
const uint8_t * |
pixels, |
|
|
ptrdiff_t |
line_size, |
|
|
int |
h |
|
) |
| |
|
static |