FFmpeg
Data Structures | Macros | Functions
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)   (((mask) >> ((idx) << 2)) & 0xf)
 
#define NIBBLE_SET(mask, idx, val)   do { (mask) |= (((val) & 0xf) << ((idx) << 2)); } while (0)
 
#define LOOP(mask, idx)
 
#define LOOP_BWD(mask, idx)
 
#define LOOP_MASK(p, idx)   LOOP(p->mask, idx)
 
#define LOOP_MASK_BWD(p, idx)   LOOP_BWD(p->mask, idx)
 
#define offsetof_exec_in   0
 These values will be used by ops_asmgen to access fields inside of SwsOpExec and SwsOpImpl. More...
 
#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 
)    (((mask) >> ((idx) << 2)) & 0xf)

Definition at line 31 of file ops_impl.h.

◆ NIBBLE_SET

#define NIBBLE_SET (   mask,
  idx,
  val 
)    do { (mask) |= (((val) & 0xf) << ((idx) << 2)); } while (0)

Definition at line 32 of file ops_impl.h.

◆ LOOP

#define LOOP (   mask,
  idx 
)
Value:
for (int idx = 0; idx < 4; idx++) \
if (mask & SWS_COMP(idx))

Definition at line 56 of file ops_impl.h.

◆ 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

#define LOOP_MASK (   p,
  idx 
)    LOOP(p->mask, idx)

Definition at line 63 of file ops_impl.h.

◆ LOOP_MASK_BWD

#define LOOP_MASK_BWD (   p,
  idx 
)    LOOP_BWD(p->mask, idx)

Definition at line 64 of file ops_impl.h.

◆ 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.

◆ offsetof_exec_out

#define offsetof_exec_out   32

Definition at line 82 of file ops_impl.h.

◆ offsetof_exec_in_bump

#define offsetof_exec_in_bump   128

Definition at line 83 of file ops_impl.h.

◆ offsetof_exec_out_bump

#define offsetof_exec_out_bump   160

Definition at line 84 of file ops_impl.h.

◆ offsetof_impl_cont

#define offsetof_impl_cont   0

Definition at line 85 of file ops_impl.h.

◆ offsetof_impl_priv

#define offsetof_impl_priv   16

Definition at line 86 of file ops_impl.h.

◆ sizeof_impl

#define sizeof_impl   32

Definition at line 87 of file ops_impl.h.

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().

mask
int mask
Definition: mediacodecdec_common.c:154
SWS_COMP
#define SWS_COMP(X)
Definition: uops.h:96