FFmpeg
Loading...
Searching...
No Matches
ops_impl.h File Reference
#include <assert.h>
#include <stddef.h>
#include <stdint.h>
#include "libswscale/uops.h"

Go to the source code of this file.

Data Structures

struct  SwsAArch64OpImplParams
 SwsAArch64OpImplParams describes the parameters for an SwsUOpType operation. More...
 

Macros

#define NIBBLE_GET(mask, idx)
 
#define NIBBLE_SET(mask, idx, val)
 
#define LOOP(mask, idx)
 
#define LOOP_BWD(mask, idx)
 
#define LOOP_MASK(p, idx)
 
#define LOOP_MASK_BWD(p, idx)
 
#define offsetof_exec_in   0
 These values will be used by ops_asmgen to access fields inside of SwsOpExec and SwsOpImpl.
 
#define offsetof_exec_out   32
 
#define offsetof_exec_in_bump   128
 
#define offsetof_exec_out_bump   160
 
#define offsetof_impl_cont   0
 
#define offsetof_impl_priv   16
 
#define sizeof_impl   32
 

Functions

static uint16_t nibble_mask (SwsCompMask mask)
 
static int linear_num_vregs (const SwsAArch64OpImplParams *params)
 

Macro Definition Documentation

◆ NIBBLE_GET

#define NIBBLE_GET ( mask,
idx )
Value:
(((mask) >> ((idx) << 2)) & 0xf)
static const uint16_t mask[17]
Definition lzw.c:38

Definition at line 31 of file ops_impl.h.

◆ NIBBLE_SET

#define NIBBLE_SET ( mask,
idx,
val )
Value:
do { (mask) |= (((val) & 0xf) << ((idx) << 2)); } while (0)
static double val(void *priv, double ch)
Definition aeval.c:77

Definition at line 32 of file ops_impl.h.

Referenced by clear_to_mask(), dither_to_mask(), nibble_mask(), and pack_to_mask().

◆ LOOP

#define LOOP ( mask,
idx )
Value:
for (int idx = 0; idx < 4; idx++) \
if (mask & SWS_COMP(idx))
#define SWS_COMP(X)
Definition uops.h:97

Definition at line 56 of file ops_impl.h.

Referenced by asmgen_common_frame(), asmgen_op_pack(), asmgen_process(), asmgen_process_frame(), asmgen_setup_linear(), clobbered_gprs(), convert_swizzle_to_moves(), and convert_to_aarch64_impl().

◆ LOOP_BWD

#define LOOP_BWD ( mask,
idx )
Value:
for (int idx = 3; idx >= 0; idx--) \
if (mask & SWS_COMP(idx))

Definition at line 59 of file ops_impl.h.

◆ LOOP_MASK

◆ LOOP_MASK_BWD

#define LOOP_MASK_BWD ( p,
idx )
Value:
LOOP_BWD(p->mask, idx)
#define LOOP_BWD(mask, idx)
Definition ops_impl.h:59

Definition at line 64 of file ops_impl.h.

Referenced by asmgen_op_unpack().

◆ offsetof_exec_in

#define offsetof_exec_in   0

These values will be used by ops_asmgen to access fields inside of SwsOpExec and SwsOpImpl.

The sizes are checked in aarch64/ops.c when compiling for AArch64 to make sure there is no mismatch.

Definition at line 81 of file ops_impl.h.

Referenced by asmgen_process().

◆ offsetof_exec_out

#define offsetof_exec_out   32

Definition at line 82 of file ops_impl.h.

Referenced by asmgen_process().

◆ offsetof_exec_in_bump

#define offsetof_exec_in_bump   128

Definition at line 83 of file ops_impl.h.

Referenced by asmgen_process().

◆ offsetof_exec_out_bump

#define offsetof_exec_out_bump   160

Definition at line 84 of file ops_impl.h.

Referenced by asmgen_process().

◆ offsetof_impl_cont

#define offsetof_impl_cont   0

Definition at line 85 of file ops_impl.h.

Referenced by asmgen_process_cps().

◆ offsetof_impl_priv

#define offsetof_impl_priv   16

Definition at line 86 of file ops_impl.h.

Referenced by asmgen_setup_scale().

◆ sizeof_impl

#define sizeof_impl   32

Definition at line 87 of file ops_impl.h.

Referenced by asmgen_op_cps(), and asmgen_process_cps().

Function Documentation

◆ nibble_mask()

static uint16_t nibble_mask ( SwsCompMask mask)
inlinestatic

◆ linear_num_vregs()

static int linear_num_vregs ( const SwsAArch64OpImplParams * params)
inlinestatic

Definition at line 67 of file ops_impl.h.

Referenced by aarch64_setup_linear(), and asmgen_setup_linear().