Commit 70205f17 authored by Matthew Oliver's avatar Matthew Oliver Committed by Michael Niedermayer

mpcodecs: Use _INLINE guards for inline asm.

Enabled compilation with compiler without inline asm support.
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent cc5f7315
...@@ -37,7 +37,7 @@ struct vf_priv_s { ...@@ -37,7 +37,7 @@ struct vf_priv_s {
int contrast; int contrast;
}; };
#if HAVE_MMX && HAVE_6REGS #if HAVE_MMX_INLINE && HAVE_6REGS
static void process_MMX(unsigned char *dest, int dstride, unsigned char *src, int sstride, static void process_MMX(unsigned char *dest, int dstride, unsigned char *src, int sstride,
int w, int h, int brightness, int contrast) int w, int h, int brightness, int contrast)
{ {
...@@ -224,7 +224,7 @@ static int vf_open(vf_instance_t *vf, char *args) ...@@ -224,7 +224,7 @@ static int vf_open(vf_instance_t *vf, char *args)
if (args) sscanf(args, "%d:%d", &vf->priv->brightness, &vf->priv->contrast); if (args) sscanf(args, "%d:%d", &vf->priv->brightness, &vf->priv->contrast);
process = process_C; process = process_C;
#if HAVE_MMX && HAVE_6REGS #if HAVE_MMX_INLINE && HAVE_6REGS
if(ff_gCpuCaps.hasMMX) process = process_MMX; if(ff_gCpuCaps.hasMMX) process = process_MMX;
#endif #endif
......
...@@ -120,7 +120,7 @@ void create_lut (eq2_param_t *par) ...@@ -120,7 +120,7 @@ void create_lut (eq2_param_t *par)
par->lut_clean = 1; par->lut_clean = 1;
} }
#if HAVE_MMX && HAVE_6REGS #if HAVE_MMX_INLINE && HAVE_6REGS
static static
void affine_1d_MMX (eq2_param_t *par, unsigned char *dst, unsigned char *src, void affine_1d_MMX (eq2_param_t *par, unsigned char *dst, unsigned char *src,
unsigned w, unsigned h, unsigned dstride, unsigned sstride) unsigned w, unsigned h, unsigned dstride, unsigned sstride)
...@@ -289,7 +289,7 @@ void check_values (eq2_param_t *par) ...@@ -289,7 +289,7 @@ void check_values (eq2_param_t *par)
if ((par->c == 1.0) && (par->b == 0.0) && (par->g == 1.0)) { if ((par->c == 1.0) && (par->b == 0.0) && (par->g == 1.0)) {
par->adjust = NULL; par->adjust = NULL;
} }
#if HAVE_MMX && HAVE_6REGS #if HAVE_MMX_INLINE && HAVE_6REGS
else if (par->g == 1.0 && ff_gCpuCaps.hasMMX) { else if (par->g == 1.0 && ff_gCpuCaps.hasMMX) {
par->adjust = &affine_1d_MMX; par->adjust = &affine_1d_MMX;
} }
......
...@@ -101,7 +101,7 @@ struct vf_priv_s { //align 16 ! ...@@ -101,7 +101,7 @@ struct vf_priv_s { //align 16 !
}; };
#if !HAVE_MMX #if !HAVE_MMX_INLINE
//This func reads from 1 slice, 1 and clears 0 & 1 //This func reads from 1 slice, 1 and clears 0 & 1
static void store_slice_c(uint8_t *dst, int16_t *src, int dst_stride, int src_stride, int width, int height, int log2_scale) static void store_slice_c(uint8_t *dst, int16_t *src, int dst_stride, int src_stride, int width, int height, int log2_scale)
...@@ -177,7 +177,7 @@ static void row_fdct_c(int16_t *data, const uint8_t *pixels, int line_size, int ...@@ -177,7 +177,7 @@ static void row_fdct_c(int16_t *data, const uint8_t *pixels, int line_size, int
#define row_idct_s row_idct_c #define row_idct_s row_idct_c
#define row_fdct_s row_fdct_c #define row_fdct_s row_fdct_c
#else /* HAVE_MMX */ #else /* HAVE_MMX_INLINE */
//This func reads from 1 slice, 1 and clears 0 & 1 //This func reads from 1 slice, 1 and clears 0 & 1
static void store_slice_mmx(uint8_t *dst, int16_t *src, long dst_stride, long src_stride, long width, long height, long log2_scale) static void store_slice_mmx(uint8_t *dst, int16_t *src, long dst_stride, long src_stride, long width, long height, long log2_scale)
...@@ -404,7 +404,7 @@ static void row_fdct_mmx(int16_t *data, const uint8_t *pixels, int line_size, ...@@ -404,7 +404,7 @@ static void row_fdct_mmx(int16_t *data, const uint8_t *pixels, int line_size,
#define column_fidct_s column_fidct_mmx #define column_fidct_s column_fidct_mmx
#define row_idct_s row_idct_mmx #define row_idct_s row_idct_mmx
#define row_fdct_s row_fdct_mmx #define row_fdct_s row_fdct_mmx
#endif // HAVE_MMX #endif // HAVE_MMX_INLINE
static void filter(struct vf_priv_s *p, uint8_t *dst, uint8_t *src, static void filter(struct vf_priv_s *p, uint8_t *dst, uint8_t *src,
int dst_stride, int src_stride, int dst_stride, int src_stride,
...@@ -563,10 +563,10 @@ static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) ...@@ -563,10 +563,10 @@ static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts)
} }
} }
#if HAVE_MMX #if HAVE_MMX_INLINE
if(ff_gCpuCaps.hasMMX) __asm__ volatile ("emms\n\t"); if(ff_gCpuCaps.hasMMX) __asm__ volatile ("emms\n\t");
#endif #endif
#if HAVE_MMX2 #if HAVE_MMXEXT_INLINE
if(ff_gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t"); if(ff_gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t");
#endif #endif
return ff_vf_next_put_image(vf,dmpi, pts); return ff_vf_next_put_image(vf,dmpi, pts);
...@@ -707,7 +707,7 @@ const vf_info_t ff_vf_info_fspp = { ...@@ -707,7 +707,7 @@ const vf_info_t ff_vf_info_fspp = {
#define THRESHOLD(r,x,t) if(((unsigned)((x)+t))>t*2) r=(x);else r=0; #define THRESHOLD(r,x,t) if(((unsigned)((x)+t))>t*2) r=(x);else r=0;
#define DESCALE(x,n) (((x) + (1 << ((n)-1))) >> n) #define DESCALE(x,n) (((x) + (1 << ((n)-1))) >> n)
#if HAVE_MMX #if HAVE_MMX_INLINE
DECLARE_ASM_CONST(8, uint64_t, MM_FIX_0_382683433)=FIX64(0.382683433, 14); DECLARE_ASM_CONST(8, uint64_t, MM_FIX_0_382683433)=FIX64(0.382683433, 14);
DECLARE_ALIGNED(8, uint64_t, ff_MM_FIX_0_541196100)=FIX64(0.541196100, 14); DECLARE_ALIGNED(8, uint64_t, ff_MM_FIX_0_541196100)=FIX64(0.541196100, 14);
...@@ -728,7 +728,7 @@ DECLARE_ASM_CONST(8, uint64_t, MM_FIX_0_198912367)=FIX64(0.198912367, 14); ...@@ -728,7 +728,7 @@ DECLARE_ASM_CONST(8, uint64_t, MM_FIX_0_198912367)=FIX64(0.198912367, 14);
DECLARE_ASM_CONST(8, uint64_t, MM_DESCALE_RND)=C64(4); DECLARE_ASM_CONST(8, uint64_t, MM_DESCALE_RND)=C64(4);
DECLARE_ASM_CONST(8, uint64_t, MM_2)=C64(2); DECLARE_ASM_CONST(8, uint64_t, MM_2)=C64(2);
#else /* !HAVE_MMX */ #else /* !HAVE_MMX_INLINE */
typedef int32_t int_simd16_t; typedef int32_t int_simd16_t;
static const int16_t FIX_0_382683433=FIX(0.382683433, 14); static const int16_t FIX_0_382683433=FIX(0.382683433, 14);
...@@ -743,7 +743,7 @@ static const int16_t FIX_1_082392200=FIX(1.082392200, 13); ...@@ -743,7 +743,7 @@ static const int16_t FIX_1_082392200=FIX(1.082392200, 13);
#endif #endif
#if !HAVE_MMX #if !HAVE_MMX_INLINE
static void column_fidct_c(int16_t* thr_adr, int16_t *data, int16_t *output, int cnt) static void column_fidct_c(int16_t* thr_adr, int16_t *data, int16_t *output, int cnt)
{ {
...@@ -868,7 +868,7 @@ static void column_fidct_c(int16_t* thr_adr, int16_t *data, int16_t *output, int ...@@ -868,7 +868,7 @@ static void column_fidct_c(int16_t* thr_adr, int16_t *data, int16_t *output, int
} }
} }
#else /* HAVE_MMX */ #else /* HAVE_MMX_INLINE */
static void column_fidct_mmx(int16_t* thr_adr, int16_t *data, int16_t *output, int cnt) static void column_fidct_mmx(int16_t* thr_adr, int16_t *data, int16_t *output, int cnt)
{ {
...@@ -1605,9 +1605,9 @@ static void column_fidct_mmx(int16_t* thr_adr, int16_t *data, int16_t *output, ...@@ -1605,9 +1605,9 @@ static void column_fidct_mmx(int16_t* thr_adr, int16_t *data, int16_t *output,
); );
} }
#endif // HAVE_MMX #endif // HAVE_MMX_INLINE
#if !HAVE_MMX #if !HAVE_MMX_INLINE
static void row_idct_c(int16_t* workspace, static void row_idct_c(int16_t* workspace,
int16_t* output_adr, int output_stride, int cnt) int16_t* output_adr, int output_stride, int cnt)
...@@ -1672,7 +1672,7 @@ static void row_idct_c(int16_t* workspace, ...@@ -1672,7 +1672,7 @@ static void row_idct_c(int16_t* workspace,
} }
} }
#else /* HAVE_MMX */ #else /* HAVE_MMX_INLINE */
static void row_idct_mmx (int16_t* workspace, static void row_idct_mmx (int16_t* workspace,
int16_t* output_adr, int output_stride, int cnt) int16_t* output_adr, int output_stride, int cnt)
...@@ -1876,9 +1876,9 @@ static void row_idct_mmx (int16_t* workspace, ...@@ -1876,9 +1876,9 @@ static void row_idct_mmx (int16_t* workspace,
); );
} }
#endif // HAVE_MMX #endif // HAVE_MMX_INLINE
#if !HAVE_MMX #if !HAVE_MMX_INLINE
static void row_fdct_c(int16_t *data, const uint8_t *pixels, int line_size, int cnt) static void row_fdct_c(int16_t *data, const uint8_t *pixels, int line_size, int cnt)
{ {
...@@ -1941,7 +1941,7 @@ static void row_fdct_c(int16_t *data, const uint8_t *pixels, int line_size, int ...@@ -1941,7 +1941,7 @@ static void row_fdct_c(int16_t *data, const uint8_t *pixels, int line_size, int
} }
} }
#else /* HAVE_MMX */ #else /* HAVE_MMX_INLINE */
static void row_fdct_mmx(int16_t *data, const uint8_t *pixels, int line_size, int cnt) static void row_fdct_mmx(int16_t *data, const uint8_t *pixels, int line_size, int cnt)
{ {
...@@ -2121,4 +2121,4 @@ static void row_fdct_mmx(int16_t *data, const uint8_t *pixels, int line_size, ...@@ -2121,4 +2121,4 @@ static void row_fdct_mmx(int16_t *data, const uint8_t *pixels, int line_size,
: "%"REG_d); : "%"REG_d);
} }
#endif // HAVE_MMX #endif // HAVE_MMX_INLINE
...@@ -78,7 +78,7 @@ static void pack_li_1_C(unsigned char *dst, unsigned char *y, ...@@ -78,7 +78,7 @@ static void pack_li_1_C(unsigned char *dst, unsigned char *y,
} }
} }
#if HAVE_MMX #if HAVE_MMX_INLINE
static void pack_nn_MMX(unsigned char *dst, unsigned char *y, static void pack_nn_MMX(unsigned char *dst, unsigned char *y,
unsigned char *u, unsigned char *v, int w, unsigned char *u, unsigned char *v, int w,
int av_unused us, int av_unused vs) int av_unused us, int av_unused vs)
...@@ -420,7 +420,7 @@ static int vf_open(vf_instance_t *vf, char *args) ...@@ -420,7 +420,7 @@ static int vf_open(vf_instance_t *vf, char *args)
pack_nn = pack_nn_C; pack_nn = pack_nn_C;
pack_li_0 = pack_li_0_C; pack_li_0 = pack_li_0_C;
pack_li_1 = pack_li_1_C; pack_li_1 = pack_li_1_C;
#if HAVE_MMX #if HAVE_MMX_INLINE
if(ff_gCpuCaps.hasMMX) { if(ff_gCpuCaps.hasMMX) {
pack_nn = pack_nn_MMX; pack_nn = pack_nn_MMX;
#if HAVE_EBX_AVAILABLE #if HAVE_EBX_AVAILABLE
......
...@@ -155,7 +155,7 @@ static void dctB_c(int16_t *dst, int16_t *src){ ...@@ -155,7 +155,7 @@ static void dctB_c(int16_t *dst, int16_t *src){
} }
} }
#if HAVE_MMX #if HAVE_MMX_INLINE
static void dctB_mmx(int16_t *dst, int16_t *src){ static void dctB_mmx(int16_t *dst, int16_t *src){
__asm__ volatile ( __asm__ volatile (
"movq (%0), %%mm0 \n\t" "movq (%0), %%mm0 \n\t"
...@@ -397,10 +397,10 @@ static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ ...@@ -397,10 +397,10 @@ static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){
memcpy_pic(dmpi->planes[2], mpi->planes[2], mpi->w>>mpi->chroma_x_shift, mpi->h>>mpi->chroma_y_shift, dmpi->stride[2], mpi->stride[2]); memcpy_pic(dmpi->planes[2], mpi->planes[2], mpi->w>>mpi->chroma_x_shift, mpi->h>>mpi->chroma_y_shift, dmpi->stride[2], mpi->stride[2]);
} }
#if HAVE_MMX #if HAVE_MMX_INLINE
if(ff_gCpuCaps.hasMMX) __asm__ volatile ("emms\n\t"); if(ff_gCpuCaps.hasMMX) __asm__ volatile ("emms\n\t");
#endif #endif
#if HAVE_MMX2 #if HAVE_MMXEXT_INLINE
if(ff_gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t"); if(ff_gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t");
#endif #endif
...@@ -464,7 +464,7 @@ static int vf_open(vf_instance_t *vf, char *args){ ...@@ -464,7 +464,7 @@ static int vf_open(vf_instance_t *vf, char *args){
case 2: requantize= mediumthresh_c; break; case 2: requantize= mediumthresh_c; break;
} }
#if HAVE_MMX #if HAVE_MMX_INLINE
if(ff_gCpuCaps.hasMMX){ if(ff_gCpuCaps.hasMMX){
dctB= dctB_mmx; dctB= dctB_mmx;
} }
......
...@@ -297,10 +297,10 @@ static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ ...@@ -297,10 +297,10 @@ static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){
} }
} }
#if HAVE_MMX #if HAVE_MMX_INLINE
if(ff_gCpuCaps.hasMMX) __asm__ volatile ("emms\n\t"); if(ff_gCpuCaps.hasMMX) __asm__ volatile ("emms\n\t");
#endif #endif
#if HAVE_MMX2 #if HAVE_MMXEXT_INLINE
if(ff_gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t"); if(ff_gCpuCaps.hasMMX2) __asm__ volatile ("sfence\n\t");
#endif #endif
...@@ -375,7 +375,7 @@ static int vf_open(vf_instance_t *vf, char *args){ ...@@ -375,7 +375,7 @@ static int vf_open(vf_instance_t *vf, char *args){
if(vf->priv->qp < 0) if(vf->priv->qp < 0)
vf->priv->qp = 0; vf->priv->qp = 0;
// #if HAVE_MMX // #if HAVE_MMX_INLINE
// if(ff_gCpuCaps.hasMMX){ // if(ff_gCpuCaps.hasMMX){
// store_slice= store_slice_mmx; // store_slice= store_slice_mmx;
// } // }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment