Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
d1a32c3f
Commit
d1a32c3f
authored
May 19, 2014
by
Christophe Gisquet
Committed by
Michael Niedermayer
May 21, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x86: kill fpel_mmx.c
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
19e66c72
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
96 additions
and
230 deletions
+96
-230
Makefile
libavcodec/x86/Makefile
+1
-3
cavsdsp.c
libavcodec/x86/cavsdsp.c
+7
-6
dsputil_init.c
libavcodec/x86/dsputil_init.c
+7
-4
dsputil_mmx.c
libavcodec/x86/dsputil_mmx.c
+4
-5
fpel.asm
libavcodec/x86/fpel.asm
+62
-64
fpel_mmx.c
libavcodec/x86/fpel_mmx.c
+0
-140
h264_qpel.c
libavcodec/x86/h264_qpel.c
+7
-4
hpeldsp_init.c
libavcodec/x86/hpeldsp_init.c
+3
-2
vc1dsp_mmx.c
libavcodec/x86/vc1dsp_mmx.c
+5
-2
No files found.
libavcodec/x86/Makefile
View file @
d1a32c3f
...
...
@@ -50,13 +50,11 @@ OBJS-$(CONFIG_VP9_DECODER) += x86/vp9dsp_init.o
OBJS-$(CONFIG_WEBP_DECODER)
+=
x86/vp8dsp_init.o
MMX-OBJS-$(CONFIG_DSPUTIL)
+=
x86/dsputil_mmx.o
\
x86/fpel_mmx.o
\
x86/idct_mmx_xvid.o
\
x86/idct_sse2_xvid.o
\
x86/simple_idct.o
MMX-OBJS-$(CONFIG_DIRAC_DECODER)
+=
x86/dirac_dwt.o
MMX-OBJS-$(CONFIG_HPELDSP)
+=
x86/fpel_mmx.o
\
x86/hpeldsp_mmx.o
MMX-OBJS-$(CONFIG_HPELDSP)
+=
x86/hpeldsp_mmx.o
MMX-OBJS-$(CONFIG_SNOW_DECODER)
+=
x86/snowdsp.o
MMX-OBJS-$(CONFIG_SNOW_ENCODER)
+=
x86/snowdsp.o
...
...
libavcodec/x86/cavsdsp.c
View file @
d1a32c3f
...
...
@@ -461,7 +461,7 @@ static void OPNAME ## cavs_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, uint8_t *
#endif
/* (HAVE_MMXEXT_INLINE || HAVE_AMD3DNOW_INLINE) */
#if HAVE_MMX_
INLINE
#if HAVE_MMX_
EXTERNAL
static
void
put_cavs_qpel8_mc00_mmx
(
uint8_t
*
dst
,
uint8_t
*
src
,
ptrdiff_t
stride
)
{
...
...
@@ -485,19 +485,23 @@ static void avg_cavs_qpel16_mc00_mmx(uint8_t *dst, uint8_t *src,
{
ff_avg_pixels16_mmx
(
dst
,
src
,
stride
,
16
);
}
#endif
static
av_cold
void
cavsdsp_init_mmx
(
CAVSDSPContext
*
c
,
AVCodecContext
*
avctx
)
{
#if HAVE_MMX_EXTERNAL
c
->
put_cavs_qpel_pixels_tab
[
0
][
0
]
=
put_cavs_qpel16_mc00_mmx
;
c
->
put_cavs_qpel_pixels_tab
[
1
][
0
]
=
put_cavs_qpel8_mc00_mmx
;
c
->
avg_cavs_qpel_pixels_tab
[
0
][
0
]
=
avg_cavs_qpel16_mc00_mmx
;
c
->
avg_cavs_qpel_pixels_tab
[
1
][
0
]
=
avg_cavs_qpel8_mc00_mmx
;
#endif
#if HAVE_MMX_INLINE
c
->
cavs_idct8_add
=
cavs_idct8_add_mmx
;
c
->
idct_perm
=
FF_TRANSPOSE_IDCT_PERM
;
}
#endif
/* HAVE_MMX_INLINE */
}
#define DSPFUNC(PFX, IDX, NUM, EXT) \
c->PFX ## _cavs_qpel_pixels_tab[IDX][ 2] = PFX ## _cavs_qpel ## NUM ## _mc20_ ## EXT; \
...
...
@@ -545,12 +549,9 @@ static av_cold void cavsdsp_init_3dnow(CAVSDSPContext *c,
av_cold
void
ff_cavsdsp_init_x86
(
CAVSDSPContext
*
c
,
AVCodecContext
*
avctx
)
{
#if HAVE_MMX_INLINE
int
cpu_flags
=
av_get_cpu_flags
();
if
(
INLINE_MMX
(
cpu_flags
))
cavsdsp_init_mmx
(
c
,
avctx
);
#endif
/* HAVE_MMX_INLINE */
cavsdsp_init_mmx
(
c
,
avctx
);
#if HAVE_AMD3DNOW_INLINE
if
(
INLINE_AMD3DNOW
(
cpu_flags
))
cavsdsp_init_3dnow
(
c
,
avctx
);
...
...
libavcodec/x86/dsputil_init.c
View file @
d1a32c3f
...
...
@@ -73,8 +73,8 @@ void ff_avg_mpeg4_qpel8_v_lowpass_mmxext(uint8_t *dst, uint8_t *src,
int
dstStride
,
int
srcStride
);
void
ff_put_no_rnd_mpeg4_qpel8_v_lowpass_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src
,
int
dstStride
,
int
srcStride
);
#define ff_put_no_rnd_pixels16_mmxext ff_put_pixels16_mmx
ext
#define ff_put_no_rnd_pixels8_mmxext ff_put_pixels8_mmx
ext
#define ff_put_no_rnd_pixels16_mmxext ff_put_pixels16_mmx
#define ff_put_no_rnd_pixels8_mmxext ff_put_pixels8_mmx
int32_t
ff_scalarproduct_int16_mmxext
(
const
int16_t
*
v1
,
const
int16_t
*
v2
,
int
order
);
...
...
@@ -112,8 +112,11 @@ void ff_vector_clip_int32_sse4(int32_t *dst, const int32_t *src,
#if HAVE_YASM
CALL_2X_PIXELS
(
ff_avg_pixels16_mmxext
,
ff_avg_pixels8_mmxext
,
8
)
CALL_2X_PIXELS
(
ff_put_pixels16_mmxext
,
ff_put_pixels8_mmxext
,
8
)
#define ff_put_pixels16_mmxext ff_put_pixels16_mmx
#define ff_put_pixels8_mmxext ff_put_pixels8_mmx
void
ff_avg_pixels16_mmxext
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
);
#define QPEL_OP(OPNAME, RND, MMX) \
static void OPNAME ## qpel8_mc00_ ## MMX(uint8_t *dst, uint8_t *src, \
...
...
libavcodec/x86/dsputil_mmx.c
View file @
d1a32c3f
...
...
@@ -554,13 +554,12 @@ void ff_ ## OPNAME2 ## _dirac_pixels32_ ## EXT(uint8_t *dst, const uint8_t *src[
}\
}
#if HAVE_MMX_INLINE
CALL_2X_PIXELS
(
ff_avg_pixels16_mmxext
,
ff_avg_pixels8_mmxext
,
8
)
#if HAVE_YASM
void
ff_avg_pixels16_mmxext
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
);
DIRAC_PIXOP
(
put
,
ff_put
,
mmx
)
DIRAC_PIXOP
(
avg
,
ff_avg
,
mmx
)
#endif
#if HAVE_YASM
DIRAC_PIXOP
(
avg
,
ff_avg
,
mmxext
)
void
ff_put_dirac_pixels16_sse2
(
uint8_t
*
dst
,
const
uint8_t
*
src
[
5
],
int
stride
,
int
h
)
...
...
libavcodec/x86/fpel.asm
View file @
d1a32c3f
...
...
@@ -25,85 +25,83 @@
SECTION
.
text
INIT_MMX
mmxext
%macro
PAVGB_MMX
4
LOAD
%3
,
%1
por
%3
,
%2
pxor
%2
,
%1
pand
%2
,
%4
psrlq
%2
,
1
psubb
%3
,
%2
SWAP
%2
,
%3
%endmacro
; void ff_put/avg_pixels(uint8_t *block, const uint8_t *pixels,
; ptrdiff_t line_size, int h)
%macro
PIXELS48
2
%if
%2
==
4
%define
OP
movh
%macro
OP_PIXELS
2
%if
%2
==
mmsize
/
2
%define
LOAD
movh
%define
SAVE
movh
%define
LEN
mmsize
%else
%define
OP
mova
%define
LOAD
movu
%define
SAVE
mova
%define
LEN
%2
%endif
cglobal
%1
_pixels
%2
,
4
,
5
cglobal
%1
_pixels
%2
,
4
,
5
,
4
movsxdifnidn
r2
,
r2d
lea
r4
,
[
r2
*
3
]
%ifidn
%1
,
avg
%if
notcpuflag
(
mmxext
)
pcmpeqd
m6
,
m6
paddb
m6
,
m6
%endif
%endif
.
loop
:
OP
m0
,
[r1]
OP
m1
,
[
r1
+
r2
]
OP
m2
,
[
r1
+
r2
*
2
]
OP
m3
,
[
r1
+
r4
]
lea
r1
,
[
r1
+
r2
*
4
]
%assign
%%
i
0
%rep
LEN
/
mmsize
LOAD
m0
,
[
r1
+
%%
i
]
LOAD
m1
,
[
r1
+
r2
+
%%
i
]
LOAD
m2
,
[
r1
+
r2
*
2
+
%%
i
]
LOAD
m3
,
[
r1
+
r4
+
%%
i
]
%ifidn
%1
,
avg
pavgb
m0
,
[r0]
pavgb
m1
,
[
r0
+
r2
]
pavgb
m2
,
[
r0
+
r2
*
2
]
pavgb
m3
,
[
r0
+
r4
]
%if
notcpuflag
(
mmxext
)
PAVGB_MMX
[
r0
+
%%
i
]
,
m0
,
m4
,
m6
PAVGB_MMX
[
r0
+
r2
+
%%
i
]
,
m1
,
m5
,
m6
PAVGB_MMX
[
r0
+
r2
*
2
+
%%
i
]
,
m2
,
m4
,
m6
PAVGB_MMX
[
r0
+
r4
+
%%
i
]
,
m3
,
m5
,
m6
%else
pavgb
m0
,
[
r0
+
%%
i
]
pavgb
m1
,
[
r0
+
r2
+
%%
i
]
pavgb
m2
,
[
r0
+
r2
*
2
+
%%
i
]
pavgb
m3
,
[
r0
+
r4
+
%%
i
]
%endif
%endif
OP
[r0],
m0
OP
[
r0
+
r2
]
,
m1
OP
[
r0
+
r2
*
2
]
,
m2
OP
[
r0
+
r4
]
,
m3
SAVE
[
r0
+
%%
i
]
,
m0
SAVE
[
r0
+
r2
+
%%
i
]
,
m1
SAVE
[
r0
+
r2
*
2
+
%%
i
]
,
m2
SAVE
[
r0
+
r4
+
%%
i
]
,
m3
%assign
%%
i
%%
i
+
mmsize
%endrep
sub
r3d
,
4
lea
r1
,
[
r1
+
r2
*
4
]
lea
r0
,
[
r0
+
r2
*
4
]
jne
.
loop
RET
%endmacro
PIXELS48
put
,
4
PIXELS48
avg
,
4
PIXELS48
put
,
8
PIXELS48
avg
,
8
INIT_MMX
mmx
OP_PIXELS
put
,
4
OP_PIXELS
avg
,
4
OP_PIXELS
put
,
8
OP_PIXELS
avg
,
8
OP_PIXELS
put
,
16
OP_PIXELS
avg
,
16
INIT_MMX
mmxext
OP_PIXELS
avg
,
4
OP_PIXELS
avg
,
8
OP_PIXELS
avg
,
16
INIT_XMM
sse2
; void ff_put_pixels16_sse2(uint8_t *block, const uint8_t *pixels,
; ptrdiff_t line_size, int h)
cglobal
put_pixels16
,
4
,
5
,
4
lea
r4
,
[
r2
*
3
]
.
loop
:
movu
m0
,
[r1]
movu
m1
,
[
r1
+
r2
]
movu
m2
,
[
r1
+
r2
*
2
]
movu
m3
,
[
r1
+
r4
]
lea
r1
,
[
r1
+
r2
*
4
]
mova
[r0],
m0
mova
[
r0
+
r2
]
,
m1
mova
[
r0
+
r2
*
2
]
,
m2
mova
[
r0
+
r4
]
,
m3
sub
r3d
,
4
lea
r0
,
[
r0
+
r2
*
4
]
jnz
.
loop
REP_RET
; void ff_avg_pixels16_sse2(uint8_t *block, const uint8_t *pixels,
; ptrdiff_t line_size, int h)
cglobal
avg_pixels16
,
4
,
5
,
4
lea
r4
,
[
r2
*
3
]
.
loop
:
movu
m0
,
[r1]
movu
m1
,
[
r1
+
r2
]
movu
m2
,
[
r1
+
r2
*
2
]
movu
m3
,
[
r1
+
r4
]
lea
r1
,
[
r1
+
r2
*
4
]
pavgb
m0
,
[r0]
pavgb
m1
,
[
r0
+
r2
]
pavgb
m2
,
[
r0
+
r2
*
2
]
pavgb
m3
,
[
r0
+
r4
]
mova
[r0],
m0
mova
[
r0
+
r2
]
,
m1
mova
[
r0
+
r2
*
2
]
,
m2
mova
[
r0
+
r4
]
,
m3
sub
r3d
,
4
lea
r0
,
[
r0
+
r2
*
4
]
jnz
.
loop
REP_RET
OP_PIXELS
put
,
16
OP_PIXELS
avg
,
16
libavcodec/x86/fpel_mmx.c
deleted
100644 → 0
View file @
19e66c72
/*
* MMX-optimized avg/put pixel routines
*
* Copyright (c) 2000, 2001 Fabrice Bellard
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stddef.h>
#include <stdint.h>
#include "config.h"
#include "fpel.h"
#include "inline_asm.h"
#if HAVE_MMX_INLINE
// in case more speed is needed - unrolling would certainly help
void
ff_avg_pixels8_mmx
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
)
{
MOVQ_BFE
(
mm6
);
JUMPALIGN
();
do
{
__asm__
volatile
(
"movq %0, %%mm0
\n\t
"
"movq %1, %%mm1
\n\t
"
PAVGB_MMX
(
%%
mm0
,
%%
mm1
,
%%
mm2
,
%%
mm6
)
"movq %%mm2, %0
\n\t
"
:
"+m"
(
*
block
)
:
"m"
(
*
pixels
)
:
"memory"
);
pixels
+=
line_size
;
block
+=
line_size
;
}
while
(
--
h
);
}
void
ff_avg_pixels16_mmx
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
)
{
MOVQ_BFE
(
mm6
);
JUMPALIGN
();
do
{
__asm__
volatile
(
"movq %0, %%mm0
\n\t
"
"movq %1, %%mm1
\n\t
"
PAVGB_MMX
(
%%
mm0
,
%%
mm1
,
%%
mm2
,
%%
mm6
)
"movq %%mm2, %0
\n\t
"
"movq 8%0, %%mm0
\n\t
"
"movq 8%1, %%mm1
\n\t
"
PAVGB_MMX
(
%%
mm0
,
%%
mm1
,
%%
mm2
,
%%
mm6
)
"movq %%mm2, 8%0
\n\t
"
:
"+m"
(
*
block
)
:
"m"
(
*
pixels
)
:
"memory"
);
pixels
+=
line_size
;
block
+=
line_size
;
}
while
(
--
h
);
}
void
ff_put_pixels8_mmx
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
)
{
__asm__
volatile
(
"lea (%3, %3), %%"
REG_a
"
\n\t
"
".p2align 3
\n\t
"
"1:
\n\t
"
"movq (%1 ), %%mm0
\n\t
"
"movq (%1, %3), %%mm1
\n\t
"
"movq %%mm0, (%2)
\n\t
"
"movq %%mm1, (%2, %3)
\n\t
"
"add %%"
REG_a
", %1
\n\t
"
"add %%"
REG_a
", %2
\n\t
"
"movq (%1 ), %%mm0
\n\t
"
"movq (%1, %3), %%mm1
\n\t
"
"movq %%mm0, (%2)
\n\t
"
"movq %%mm1, (%2, %3)
\n\t
"
"add %%"
REG_a
", %1
\n\t
"
"add %%"
REG_a
", %2
\n\t
"
"subl $4, %0
\n\t
"
"jnz 1b
\n\t
"
:
"+g"
(
h
),
"+r"
(
pixels
),
"+r"
(
block
)
:
"r"
((
x86_reg
)
line_size
)
:
"%"
REG_a
,
"memory"
);
}
void
ff_put_pixels16_mmx
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
)
{
__asm__
volatile
(
"lea (%3, %3), %%"
REG_a
"
\n\t
"
".p2align 3
\n\t
"
"1:
\n\t
"
"movq (%1 ), %%mm0
\n\t
"
"movq 8(%1 ), %%mm4
\n\t
"
"movq (%1, %3), %%mm1
\n\t
"
"movq 8(%1, %3), %%mm5
\n\t
"
"movq %%mm0, (%2)
\n\t
"
"movq %%mm4, 8(%2)
\n\t
"
"movq %%mm1, (%2, %3)
\n\t
"
"movq %%mm5, 8(%2, %3)
\n\t
"
"add %%"
REG_a
", %1
\n\t
"
"add %%"
REG_a
", %2
\n\t
"
"movq (%1 ), %%mm0
\n\t
"
"movq 8(%1 ), %%mm4
\n\t
"
"movq (%1, %3), %%mm1
\n\t
"
"movq 8(%1, %3), %%mm5
\n\t
"
"movq %%mm0, (%2)
\n\t
"
"movq %%mm4, 8(%2)
\n\t
"
"movq %%mm1, (%2, %3)
\n\t
"
"movq %%mm5, 8(%2, %3)
\n\t
"
"add %%"
REG_a
", %1
\n\t
"
"add %%"
REG_a
", %2
\n\t
"
"subl $4, %0
\n\t
"
"jnz 1b
\n\t
"
:
"+g"
(
h
),
"+r"
(
pixels
),
"+r"
(
block
)
:
"r"
((
x86_reg
)
line_size
)
:
"%"
REG_a
,
"memory"
);
}
#endif
/* HAVE_MMX_INLINE */
libavcodec/x86/h264_qpel.c
View file @
d1a32c3f
...
...
@@ -29,8 +29,8 @@
#include "fpel.h"
#if HAVE_YASM
void
ff_put_pixels4_mmx
ext
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
);
void
ff_put_pixels4_mmx
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
);
void
ff_avg_pixels4_mmxext
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
);
void
ff_put_pixels4_l2_mmxext
(
uint8_t
*
dst
,
uint8_t
*
src1
,
uint8_t
*
src2
,
...
...
@@ -49,9 +49,12 @@ void ff_avg_pixels16_l2_mmxext(uint8_t *dst, uint8_t *src1, uint8_t *src2,
#define ff_avg_pixels8_l2_sse2 ff_avg_pixels8_l2_mmxext
#define ff_put_pixels16_l2_sse2 ff_put_pixels16_l2_mmxext
#define ff_avg_pixels16_l2_sse2 ff_avg_pixels16_l2_mmxext
#define ff_put_pixels16_mmxext ff_put_pixels16_mmx
#define ff_put_pixels8_mmxext ff_put_pixels8_mmx
#define ff_put_pixels4_mmxext ff_put_pixels4_mmx
CALL_2X_PIXELS
(
ff_avg_pixels16_mmxext
,
ff_avg_pixels8_mmxext
,
8
)
CALL_2X_PIXELS
(
ff_put_pixels16_mmxext
,
ff_put_pixels8_mmxext
,
8
)
void
ff_avg_pixels16_mmxext
(
uint8_t
*
block
,
const
uint8_t
*
pixels
,
ptrdiff_t
line_size
,
int
h
);
#define DEF_QPEL(OPNAME)\
void ff_ ## OPNAME ## _h264_qpel4_h_lowpass_mmxext(uint8_t *dst, uint8_t *src, int dstStride, int srcStride);\
...
...
libavcodec/x86/hpeldsp_init.c
View file @
d1a32c3f
...
...
@@ -165,15 +165,17 @@ HPELDSP_AVG_PIXELS16(_mmxext)
#define SET_HPEL_FUNCS(PFX, IDX, SIZE, CPU) \
do { \
if (HAVE_MMX_EXTERNAL) \
c->PFX ## _pixels_tab IDX [0] = PFX ## _pixels ## SIZE ## _ ## CPU; \
if (HAVE_MMX_INLINE) { \
c->PFX ## _pixels_tab IDX [1] = PFX ## _pixels ## SIZE ## _x2_ ## CPU; \
c->PFX ## _pixels_tab IDX [2] = PFX ## _pixels ## SIZE ## _y2_ ## CPU; \
c->PFX ## _pixels_tab IDX [3] = PFX ## _pixels ## SIZE ## _xy2_ ## CPU; \
} \
} while (0)
static
void
hpeldsp_init_mmx
(
HpelDSPContext
*
c
,
int
flags
,
int
cpu_flags
)
{
#if HAVE_MMX_INLINE
SET_HPEL_FUNCS
(
put
,
[
0
],
16
,
mmx
);
SET_HPEL_FUNCS
(
put_no_rnd
,
[
0
],
16
,
mmx
);
SET_HPEL_FUNCS
(
avg
,
[
0
],
16
,
mmx
);
...
...
@@ -181,7 +183,6 @@ static void hpeldsp_init_mmx(HpelDSPContext *c, int flags, int cpu_flags)
SET_HPEL_FUNCS
(
put
,
[
1
],
8
,
mmx
);
SET_HPEL_FUNCS
(
put_no_rnd
,
[
1
],
8
,
mmx
);
SET_HPEL_FUNCS
(
avg
,
[
1
],
8
,
mmx
);
#endif
/* HAVE_MMX_INLINE */
}
static
void
hpeldsp_init_mmxext
(
HpelDSPContext
*
c
,
int
flags
,
int
cpu_flags
)
...
...
libavcodec/x86/vc1dsp_mmx.c
View file @
d1a32c3f
...
...
@@ -728,6 +728,7 @@ static void vc1_inv_trans_8x8_dc_mmxext(uint8_t *dest, int linesize,
);
}
#if HAVE_MMX_EXTERNAL
static
void
put_vc1_mspel_mc00_mmx
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
ptrdiff_t
stride
,
int
rnd
)
{
...
...
@@ -748,6 +749,7 @@ static void avg_vc1_mspel_mc00_16_mmx(uint8_t *dst, const uint8_t *src,
{
ff_avg_pixels16_mmx
(
dst
,
src
,
stride
,
16
);
}
#endif
#define FN_ASSIGN(OP, X, Y, INSN) \
dsp->OP##vc1_mspel_pixels_tab[1][X+4*Y] = OP##vc1_mspel_mc##X##Y##INSN; \
...
...
@@ -755,7 +757,10 @@ static void avg_vc1_mspel_mc00_16_mmx(uint8_t *dst, const uint8_t *src,
av_cold
void
ff_vc1dsp_init_mmx
(
VC1DSPContext
*
dsp
)
{
#if HAVE_MMX_EXTERNAL
FN_ASSIGN
(
put_
,
0
,
0
,
_mmx
);
FN_ASSIGN
(
avg_
,
0
,
0
,
_mmx
);
#endif
FN_ASSIGN
(
put_
,
0
,
1
,
_mmx
);
FN_ASSIGN
(
put_
,
0
,
2
,
_mmx
);
FN_ASSIGN
(
put_
,
0
,
3
,
_mmx
);
...
...
@@ -774,8 +779,6 @@ av_cold void ff_vc1dsp_init_mmx(VC1DSPContext *dsp)
FN_ASSIGN
(
put_
,
3
,
1
,
_mmx
);
FN_ASSIGN
(
put_
,
3
,
2
,
_mmx
);
FN_ASSIGN
(
put_
,
3
,
3
,
_mmx
);
FN_ASSIGN
(
avg_
,
0
,
0
,
_mmx
);
}
av_cold
void
ff_vc1dsp_init_mmxext
(
VC1DSPContext
*
dsp
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment