libavcodec/x86/mlpdsp.c File Reference

#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/mlp.h"

Go to the source code of this file.

Defines

#define MLPMUL(label, offset, offs, offc)
#define FIRMULREG(label, offset, firc)
#define CLEAR_ACCUM   "xor %%rsi, %%rsi\n\t"
#define SHIFT_ACCUM   "shr %%cl, %%rsi\n\t"
#define ACCUM   "%%rdx"
#define RESULT   "%%rsi"
#define RESULT32   "%%esi"
#define BINC   AV_STRINGIFY(4* MAX_CHANNELS)
#define IOFFS   AV_STRINGIFY(4*(MAX_FIR_ORDER + MAX_BLOCKSIZE))
#define IOFFC   AV_STRINGIFY(4* MAX_FIR_ORDER)
#define FIRMUL(label, offset)   MLPMUL(label, #offset, "0", "0")
#define IIRMUL(label, offset)   MLPMUL(label, #offset, IOFFS, IOFFC)

Functions

static void mlp_filter_channel_x86 (int32_t *state, const int32_t *coeff, int firorder, int iirorder, unsigned int filter_shift, int32_t mask, int blocksize, int32_t *sample_buffer)
void ff_mlp_init_x86 (DSPContext *c, AVCodecContext *avctx)

Variables

void ff_mlp_firorder_8
void ff_mlp_firorder_7
void ff_mlp_firorder_6
void ff_mlp_firorder_5
void ff_mlp_firorder_4
void ff_mlp_firorder_3
void ff_mlp_firorder_2
void ff_mlp_firorder_1
void ff_mlp_firorder_0
void ff_mlp_iirorder_4
void ff_mlp_iirorder_3
void ff_mlp_iirorder_2
void ff_mlp_iirorder_1
void ff_mlp_iirorder_0
static const void * firtable [9]
static const void * iirtable [5]

Define Documentation

#define ACCUM   "%%rdx"

Definition at line 74 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().

#define BINC   AV_STRINGIFY(4* MAX_CHANNELS)

Definition at line 106 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().

#define CLEAR_ACCUM   "xor %%rsi, %%rsi\n\t"

Definition at line 68 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().

#define FIRMUL (   label,
  offset 
)    MLPMUL(label, #offset, "0", "0")

Definition at line 110 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().

#define FIRMULREG (   label,
  offset,
  firc 
)
Value:
LABEL_MANGLE(label)":       \n\t" \
    "movslq "#offset"(%0), %%rax\n\t" \
    "imul        %"#firc", %%rax\n\t" \
    "add            %%rax, %%rsi\n\t"

Definition at line 62 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().

#define IIRMUL (   label,
  offset 
)    MLPMUL(label, #offset, IOFFS, IOFFC)

Definition at line 111 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().

#define IOFFC   AV_STRINGIFY(4* MAX_FIR_ORDER)

Definition at line 108 of file mlpdsp.c.

#define IOFFS   AV_STRINGIFY(4*(MAX_FIR_ORDER + MAX_BLOCKSIZE))

Definition at line 107 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().

#define MLPMUL (   label,
  offset,
  offs,
  offc 
)
Value:
LABEL_MANGLE(label)":             \n\t" \
    "movslq "offset"+"offs"(%0), %%rax\n\t" \
    "movslq "offset"+"offc"(%1), %%rdx\n\t" \
    "imul                 %%rdx, %%rax\n\t" \
    "add                  %%rax, %%rsi\n\t"

Definition at line 55 of file mlpdsp.c.

#define RESULT   "%%rsi"

Definition at line 75 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().

#define RESULT32   "%%esi"

Definition at line 76 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().

#define SHIFT_ACCUM   "shr %%cl, %%rsi\n\t"

Definition at line 71 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().


Function Documentation

void ff_mlp_init_x86 ( DSPContext c,
AVCodecContext avctx 
)

Definition at line 176 of file mlpdsp.c.

Referenced by ff_mlp_init().

static void mlp_filter_channel_x86 ( int32_t *  state,
const int32_t *  coeff,
int  firorder,
int  iirorder,
unsigned int  filter_shift,
int32_t  mask,
int  blocksize,
int32_t *  sample_buffer 
) [static]

Definition at line 113 of file mlpdsp.c.


Variable Documentation

const void* iirtable[5] [static]
Initial value:

Definition at line 49 of file mlpdsp.c.

Referenced by mlp_filter_channel_x86().