FFmpeg
Loading...
Searching...
No Matches
sws_ops_aarch64.c File Reference

Go to the source code of this file.

Macros

#define FUNC_NAME_WIDTH   45
 
#define UOP_NAME_WIDTH   21
 
#define TYPE_NAME_WIDTH   14
 

Functions

static uint16_t clear_to_mask (const SwsClearUOp *clear)
 
static uint64_t move_to_mask (const SwsMoveUOp *move)
 
static uint16_t pack_to_mask (const SwsPackUOp *pack)
 
static uint64_t linear_to_mask (const SwsLinearUOp *linear)
 
static uint16_t dither_to_mask (const SwsAArch64OpImplParams *p, const SwsDitherUOp *dither)
 
static int aarch64_op_impl_cmp (const void *a, const void *b)
 
static int aarch64_collect_op (const SwsAArch64OpImplParams *params, struct AVTreeNode **root)
 
static int collect_ops_compile (SwsContext *ctx, const SwsOpList *ops, SwsCompiledOp *out)
 
static int register_op (SwsContext *ctx, void *opaque, SwsOpList *ops)
 
static void serialize_op (AVBPrint *bp, const SwsAArch64OpImplParams *params)
 
static int print_op (void *opaque, void *elem)
 
int main (int argc, char *argv[])
 

Variables

static const SwsOpBackend backend_collect
 
static const char op_type_names [SWS_UOP_TYPE_NB][16]
 
static const char pixel_type_names [SWS_PIXEL_TYPE_NB][4]
 
static const char uop_types [SWS_UOP_TYPE_NB][32]
 
static const char pixel_types [SWS_PIXEL_TYPE_NB][32]
 

Macro Definition Documentation

◆ FUNC_NAME_WIDTH

#define FUNC_NAME_WIDTH   45

Referenced by serialize_op().

◆ UOP_NAME_WIDTH

#define UOP_NAME_WIDTH   21

Referenced by serialize_op().

◆ TYPE_NAME_WIDTH

#define TYPE_NAME_WIDTH   14

Referenced by serialize_op().

Function Documentation

◆ clear_to_mask()

static uint16_t clear_to_mask ( const SwsClearUOp * clear)
static

Definition at line 41 of file sws_ops_aarch64.c.

Referenced by aarch64_op_impl_cmp(), and serialize_op().

◆ move_to_mask()

static uint64_t move_to_mask ( const SwsMoveUOp * move)
static

Definition at line 56 of file sws_ops_aarch64.c.

Referenced by aarch64_op_impl_cmp(), and serialize_op().

◆ pack_to_mask()

static uint16_t pack_to_mask ( const SwsPackUOp * pack)
static

Definition at line 68 of file sws_ops_aarch64.c.

Referenced by aarch64_op_impl_cmp(), and serialize_op().

◆ linear_to_mask()

static uint64_t linear_to_mask ( const SwsLinearUOp * linear)
static

Definition at line 76 of file sws_ops_aarch64.c.

Referenced by aarch64_op_impl_cmp(), and serialize_op().

◆ dither_to_mask()

static uint16_t dither_to_mask ( const SwsAArch64OpImplParams * p,
const SwsDitherUOp * dither )
static

Definition at line 91 of file sws_ops_aarch64.c.

Referenced by aarch64_op_impl_cmp(), and serialize_op().

◆ aarch64_op_impl_cmp()

static int aarch64_op_impl_cmp ( const void * a,
const void * b )
static

Definition at line 104 of file sws_ops_aarch64.c.

Referenced by aarch64_collect_op().

◆ aarch64_collect_op()

static int aarch64_collect_op ( const SwsAArch64OpImplParams * params,
struct AVTreeNode ** root )
static

Definition at line 174 of file sws_ops_aarch64.c.

Referenced by collect_ops_compile().

◆ collect_ops_compile()

static int collect_ops_compile ( SwsContext * ctx,
const SwsOpList * ops,
SwsCompiledOp * out )
static

Generate both sets of linear op functions that do use and do not use fmla (selected by SWS_BITEXACT).

Definition at line 194 of file sws_ops_aarch64.c.

◆ register_op()

static int register_op ( SwsContext * ctx,
void * opaque,
SwsOpList * ops )
static

Definition at line 238 of file sws_ops_aarch64.c.

Referenced by main().

◆ serialize_op()

static void serialize_op ( AVBPrint * bp,
const SwsAArch64OpImplParams * params )
static

Definition at line 342 of file sws_ops_aarch64.c.

Referenced by print_op().

◆ print_op()

static int print_op ( void * opaque,
void * elem )
static

Definition at line 426 of file sws_ops_aarch64.c.

◆ main()

int main ( int argc,
char * argv[] )

Generate a C file with all the unique function parameter entries collected by aarch64_enum_ops().

Definition at line 443 of file sws_ops_aarch64.c.

Variable Documentation

◆ backend_collect

const SwsOpBackend backend_collect
static
Initial value:
= {
.name = "collect_ops",
.compile = collect_ops_compile,
}
static int collect_ops_compile(SwsContext *ctx, const SwsOpList *ops, SwsCompiledOp *out)

Definition at line 232 of file sws_ops_aarch64.c.

Referenced by register_op().

◆ op_type_names

const char op_type_names[SWS_UOP_TYPE_NB][16]
static
Initial value:
= {
[SWS_UOP_READ_BIT ] = "read_bit",
[SWS_UOP_READ_NIBBLE ] = "read_nibble",
[SWS_UOP_READ_PACKED ] = "read_packed",
[SWS_UOP_READ_PLANAR ] = "read_planar",
[SWS_UOP_WRITE_BIT ] = "write_bit",
[SWS_UOP_WRITE_NIBBLE ] = "write_nibble",
[SWS_UOP_WRITE_PACKED ] = "write_packed",
[SWS_UOP_WRITE_PLANAR ] = "write_planar",
[SWS_UOP_SWAP_BYTES ] = "swap_bytes",
[SWS_UOP_PERMUTE ] = "permute",
[SWS_UOP_COPY ] = "copy",
[SWS_UOP_UNPACK ] = "unpack",
[SWS_UOP_PACK ] = "pack",
[SWS_UOP_LSHIFT ] = "lshift",
[SWS_UOP_RSHIFT ] = "rshift",
[SWS_UOP_CLEAR ] = "clear",
[SWS_UOP_TO_U8 ] = "to_u8",
[SWS_UOP_TO_U16 ] = "to_u16",
[SWS_UOP_TO_U32 ] = "to_u32",
[SWS_UOP_TO_F32 ] = "to_f32",
[SWS_UOP_EXPAND_PAIR ] = "expand_pair",
[SWS_UOP_EXPAND_QUAD ] = "expand_quad",
[SWS_UOP_MIN ] = "min",
[SWS_UOP_MAX ] = "max",
[SWS_UOP_SCALE ] = "scale",
[SWS_UOP_LINEAR ] = "linear",
[SWS_UOP_LINEAR_FMA ] = "linear_fma",
[SWS_UOP_DITHER ] = "dither",
}
@ SWS_UOP_TO_U8
Definition uops.h:159
@ SWS_UOP_PACK
Definition uops.h:172
@ SWS_UOP_PERMUTE
Definition uops.h:151
@ SWS_UOP_EXPAND_QUAD
Definition uops.h:158
@ SWS_UOP_READ_PLANAR
Definition uops.h:133
@ SWS_UOP_WRITE_PLANAR
Definition uops.h:142
@ SWS_UOP_READ_NIBBLE
Definition uops.h:138
@ SWS_UOP_MAX
Definition uops.h:168
@ SWS_UOP_READ_BIT
Definition uops.h:139
@ SWS_UOP_SWAP_BYTES
Definition uops.h:155
@ SWS_UOP_MIN
Definition uops.h:167
@ SWS_UOP_LINEAR
Definition uops.h:176
@ SWS_UOP_RSHIFT
Definition uops.h:174
@ SWS_UOP_COPY
Definition uops.h:152
@ SWS_UOP_WRITE_NIBBLE
Definition uops.h:144
@ SWS_UOP_LINEAR_FMA
Definition uops.h:177
@ SWS_UOP_SCALE
Definition uops.h:165
@ SWS_UOP_WRITE_PACKED
Definition uops.h:143
@ SWS_UOP_WRITE_BIT
Definition uops.h:145
@ SWS_UOP_READ_PACKED
Definition uops.h:137
@ SWS_UOP_EXPAND_PAIR
Definition uops.h:157
@ SWS_UOP_TO_U16
Definition uops.h:160
@ SWS_UOP_DITHER
Definition uops.h:178
@ SWS_UOP_CLEAR
Definition uops.h:175
@ SWS_UOP_TO_U32
Definition uops.h:161
@ SWS_UOP_UNPACK
Definition uops.h:171
@ SWS_UOP_TO_F32
Definition uops.h:162
@ SWS_UOP_LSHIFT
Definition uops.h:173

Definition at line 266 of file sws_ops_aarch64.c.

Referenced by serialize_op().

◆ pixel_type_names

const char pixel_type_names[SWS_PIXEL_TYPE_NB][4]
static
Initial value:
= {
[SWS_PIXEL_U8 ] = "u8",
[SWS_PIXEL_U16] = "u16",
[SWS_PIXEL_U32] = "u32",
[SWS_PIXEL_F32] = "f32",
}
@ SWS_PIXEL_F32
Definition uops.h:44
@ SWS_PIXEL_U32
Definition uops.h:43
@ SWS_PIXEL_U16
Definition uops.h:42
@ SWS_PIXEL_U8
Definition uops.h:41

Definition at line 297 of file sws_ops_aarch64.c.

Referenced by serialize_op().

◆ uop_types

const char uop_types[SWS_UOP_TYPE_NB][32]
static
Initial value:
= {
[SWS_UOP_READ_BIT ] = "SWS_UOP_READ_BIT",
[SWS_UOP_READ_NIBBLE ] = "SWS_UOP_READ_NIBBLE",
[SWS_UOP_READ_PACKED ] = "SWS_UOP_READ_PACKED",
[SWS_UOP_READ_PLANAR ] = "SWS_UOP_READ_PLANAR",
[SWS_UOP_WRITE_BIT ] = "SWS_UOP_WRITE_BIT",
[SWS_UOP_WRITE_NIBBLE ] = "SWS_UOP_WRITE_NIBBLE",
[SWS_UOP_WRITE_PACKED ] = "SWS_UOP_WRITE_PACKED",
[SWS_UOP_WRITE_PLANAR ] = "SWS_UOP_WRITE_PLANAR",
[SWS_UOP_SWAP_BYTES ] = "SWS_UOP_SWAP_BYTES",
[SWS_UOP_PERMUTE ] = "SWS_UOP_PERMUTE",
[SWS_UOP_COPY ] = "SWS_UOP_COPY",
[SWS_UOP_UNPACK ] = "SWS_UOP_UNPACK",
[SWS_UOP_PACK ] = "SWS_UOP_PACK",
[SWS_UOP_LSHIFT ] = "SWS_UOP_LSHIFT",
[SWS_UOP_RSHIFT ] = "SWS_UOP_RSHIFT",
[SWS_UOP_CLEAR ] = "SWS_UOP_CLEAR",
[SWS_UOP_TO_U8 ] = "SWS_UOP_TO_U8",
[SWS_UOP_TO_U16 ] = "SWS_UOP_TO_U16",
[SWS_UOP_TO_U32 ] = "SWS_UOP_TO_U32",
[SWS_UOP_TO_F32 ] = "SWS_UOP_TO_F32",
[SWS_UOP_EXPAND_PAIR ] = "SWS_UOP_EXPAND_PAIR",
[SWS_UOP_EXPAND_QUAD ] = "SWS_UOP_EXPAND_QUAD",
[SWS_UOP_MIN ] = "SWS_UOP_MIN",
[SWS_UOP_MAX ] = "SWS_UOP_MAX",
[SWS_UOP_SCALE ] = "SWS_UOP_SCALE",
[SWS_UOP_LINEAR ] = "SWS_UOP_LINEAR",
[SWS_UOP_LINEAR_FMA ] = "SWS_UOP_LINEAR_FMA",
[SWS_UOP_DITHER ] = "SWS_UOP_DITHER",
}

Definition at line 304 of file sws_ops_aarch64.c.

Referenced by serialize_op().

◆ pixel_types

const char pixel_types[SWS_PIXEL_TYPE_NB][32]
static
Initial value:
= {
[SWS_PIXEL_U8 ] = "SWS_PIXEL_U8",
[SWS_PIXEL_U16] = "SWS_PIXEL_U16",
[SWS_PIXEL_U32] = "SWS_PIXEL_U32",
[SWS_PIXEL_F32] = "SWS_PIXEL_F32",
}

Definition at line 335 of file sws_ops_aarch64.c.

Referenced by generate_entry_args(), generate_entry_struct(), serialize_op(), and sws_uops_macros_gen().