21#ifndef SWSCALE_AARCH64_OPS_IMPL_H
22#define SWSCALE_AARCH64_OPS_IMPL_H
31#define NIBBLE_GET(mask, idx) (((mask) >> ((idx) << 2)) & 0xf)
32#define NIBBLE_SET(mask, idx, val) do { (mask) |= (((val) & 0xf) << ((idx) << 2)); } while (0)
37 for (
int i = 0;
i < 4;
i++)
56#define LOOP(mask, idx) \
57 for (int idx = 0; idx < 4; idx++) \
58 if (mask & SWS_COMP(idx))
59#define LOOP_BWD(mask, idx) \
60 for (int idx = 3; idx >= 0; idx--) \
61 if (mask & SWS_COMP(idx))
63#define LOOP_MASK(p, idx) LOOP(p->mask, idx)
64#define LOOP_MASK_BWD(p, idx) LOOP_BWD(p->mask, idx)
70 for (
int i = 0;
i < 4 * 5;
i++)
71 if (!(
params->par.lin.zero & (1ULL <<
i)))
73 return (count + 3) / 4;
81#define offsetof_exec_in 0
82#define offsetof_exec_out 32
83#define offsetof_exec_in_bump 128
84#define offsetof_exec_out_bump 160
85#define offsetof_impl_cont 0
86#define offsetof_impl_priv 16
SwsAArch64OpImplParams params
#define i(width, name, range_min, range_max)
static const uint16_t mask[17]
static uint16_t nibble_mask(SwsCompMask mask)
static int linear_num_vregs(const SwsAArch64OpImplParams *params)
#define NIBBLE_SET(mask, idx, val)
SwsAArch64OpImplParams describes the parameters for an SwsUOpType operation.
uint8_t SwsCompMask
Bit-mask of components.