Defines | Functions

libavcodec/x86/vp3dsp_sse2.c File Reference

SSE2-optimized functions cribbed from the original VP3 source code. More...

#include "libavcodec/dsputil.h"
#include "dsputil_mmx.h"
#include "vp3dsp_sse2.h"

Go to the source code of this file.

Defines

#define VP3_1D_IDCT_SSE2(ADD, SHIFT)
#define PUT_BLOCK(r0, r1, r2, r3, r4, r5, r6, r7)
#define NOP(xmm)
#define SHIFT4(xmm)   "psraw $4, "#xmm"\n\t"
#define ADD8(xmm)   "paddsw %2, "#xmm"\n\t"
#define I(x)   AV_STRINGIFY(16*x)"(%0)"
#define O(x)   I(x)
#define C(x)   AV_STRINGIFY(16*(x-1))"(%1)"

Functions

 DECLARE_ALIGNED (16, const uint16_t, ff_vp3_idct_data)[7 *8]
void ff_vp3_idct_sse2 (int16_t *input_data)
void ff_vp3_idct_put_sse2 (uint8_t *dest, int line_size, DCTELEM *block)
void ff_vp3_idct_add_sse2 (uint8_t *dest, int line_size, DCTELEM *block)

Detailed Description

SSE2-optimized functions cribbed from the original VP3 source code.

Definition in file vp3dsp_sse2.c.


Define Documentation

#define ADD8 (   xmm  )     "paddsw %2, "#xmm"\n\t"

Definition at line 157 of file vp3dsp_sse2.c.

Referenced by ff_vp3_idct_sse2().

#define C (   x  )     AV_STRINGIFY(16*(x-1))"(%1)"
#define I (   x  )     AV_STRINGIFY(16*x)"(%0)"
#define NOP (   xmm  ) 

Definition at line 155 of file vp3dsp_sse2.c.

Referenced by ff_vp3_idct_sse2().

#define O (   x  )     I(x)
#define PUT_BLOCK (   r0,
  r1,
  r2,
  r3,
  r4,
  r5,
  r6,
  r7 
)
Value:
"movdqa " #r0 ", " O(0) "\n\t" \
    "movdqa " #r1 ", " O(1) "\n\t" \
    "movdqa " #r2 ", " O(2) "\n\t" \
    "movdqa " #r3 ", " O(3) "\n\t" \
    "movdqa " #r4 ", " O(4) "\n\t" \
    "movdqa " #r5 ", " O(5) "\n\t" \
    "movdqa " #r6 ", " O(6) "\n\t" \
    "movdqa " #r7 ", " O(7) "\n\t"

Definition at line 145 of file vp3dsp_sse2.c.

Referenced by ff_vp3_idct_sse2().

#define SHIFT4 (   xmm  )     "psraw $4, "#xmm"\n\t"

Definition at line 156 of file vp3dsp_sse2.c.

Referenced by ff_vp3_idct_sse2().

#define VP3_1D_IDCT_SSE2 (   ADD,
  SHIFT 
)

Definition at line 42 of file vp3dsp_sse2.c.

Referenced by ff_vp3_idct_sse2().


Function Documentation

DECLARE_ALIGNED ( 16  ,
const   uint16_t,
ff_vp3_idct_data   
)
void ff_vp3_idct_add_sse2 ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 183 of file vp3dsp_sse2.c.

void ff_vp3_idct_put_sse2 ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 177 of file vp3dsp_sse2.c.

void ff_vp3_idct_sse2 ( int16_t *  input_data  ) 

Definition at line 159 of file vp3dsp_sse2.c.

Referenced by ff_vp3_idct_add_sse2(), and ff_vp3_idct_put_sse2().