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
652f5185
Commit
652f5185
authored
Jul 08, 2012
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x86: mmx2 ---> mmxext in comments and messages
parent
04581c8c
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
24 additions
and
24 deletions
+24
-24
optimization.txt
doc/optimization.txt
+1
-1
swscale.txt
doc/swscale.txt
+1
-1
dsputil_avg_template.c
libavcodec/x86/dsputil_avg_template.c
+1
-1
dsputil_mmx.c
libavcodec/x86/dsputil_mmx.c
+2
-2
rgb2rgb.c
libswscale/rgb2rgb.c
+1
-1
rgb2rgb_template.c
libswscale/rgb2rgb_template.c
+1
-1
swscale_internal.h
libswscale/swscale_internal.h
+4
-4
utils.c
libswscale/utils.c
+3
-3
output.asm
libswscale/x86/output.asm
+2
-2
rgb2rgb.c
libswscale/x86/rgb2rgb.c
+3
-3
rgb2rgb_template.c
libswscale/x86/rgb2rgb_template.c
+1
-1
swscale.c
libswscale/x86/swscale.c
+1
-1
swscale_template.c
libswscale/x86/swscale_template.c
+1
-1
yuv2rgb.c
libswscale/x86/yuv2rgb.c
+2
-2
No files found.
doc/optimization.txt
View file @
652f5185
...
@@ -253,7 +253,7 @@ Optimization guide for ARM11 (used in Nokia N800 Internet Tablet):
...
@@ -253,7 +253,7 @@ Optimization guide for ARM11 (used in Nokia N800 Internet Tablet):
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0211j/DDI0211J_arm1136_r1p5_trm.pdf
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0211j/DDI0211J_arm1136_r1p5_trm.pdf
Optimization guide for Intel XScale (used in Sharp Zaurus PDA):
Optimization guide for Intel XScale (used in Sharp Zaurus PDA):
http://download.intel.com/design/intelxscale/27347302.pdf
http://download.intel.com/design/intelxscale/27347302.pdf
Intel Wireless MMX2 Coprocessor: Programmers Reference Manual
Intel Wireless MMX
2 Coprocessor: Programmers Reference Manual
http://download.intel.com/design/intelxscale/31451001.pdf
http://download.intel.com/design/intelxscale/31451001.pdf
PowerPC-specific:
PowerPC-specific:
...
...
doc/swscale.txt
View file @
652f5185
...
@@ -58,7 +58,7 @@ Input to YUV Converter
...
@@ -58,7 +58,7 @@ Input to YUV Converter
Horizontal scaler
Horizontal scaler
There are several horizontal scalers. A special case worth mentioning is
There are several horizontal scalers. A special case worth mentioning is
the fast bilinear scaler that is made of runtime-generated MMX
2
code
the fast bilinear scaler that is made of runtime-generated MMX
EXT
code
using specially tuned pshufw instructions.
using specially tuned pshufw instructions.
The remaining scalers are specially-tuned for various filter lengths.
The remaining scalers are specially-tuned for various filter lengths.
They scale 8-bit unsigned planar data to 16-bit signed planar data.
They scale 8-bit unsigned planar data to 16-bit signed planar data.
...
...
libavcodec/x86/dsputil_avg_template.c
View file @
652f5185
/*
/*
* DSP utils : average functions are compiled twice for 3dnow/mmx
2
* DSP utils : average functions are compiled twice for 3dnow/mmx
ext
* Copyright (c) 2000, 2001 Fabrice Bellard
* Copyright (c) 2000, 2001 Fabrice Bellard
* Copyright (c) 2002-2004 Michael Niedermayer
* Copyright (c) 2002-2004 Michael Niedermayer
*
*
...
...
libavcodec/x86/dsputil_mmx.c
View file @
652f5185
...
@@ -205,11 +205,11 @@ DECLARE_ALIGNED(16, const double, ff_pd_2)[2] = { 2.0, 2.0 };
...
@@ -205,11 +205,11 @@ DECLARE_ALIGNED(16, const double, ff_pd_2)[2] = { 2.0, 2.0 };
#undef OP_AVG
#undef OP_AVG
/***********************************/
/***********************************/
/* MMX
2
specific */
/* MMX
EXT
specific */
#define DEF(x) x ## _mmx2
#define DEF(x) x ## _mmx2
/* Introduced only in MMX
2
set */
/* Introduced only in MMX
EXT
set */
#define PAVGB "pavgb"
#define PAVGB "pavgb"
#define OP_AVG PAVGB
#define OP_AVG PAVGB
...
...
libswscale/rgb2rgb.c
View file @
652f5185
...
@@ -122,7 +122,7 @@ void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
...
@@ -122,7 +122,7 @@ void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
/*
/*
* RGB15->RGB16 original by Strepto/Astral
* RGB15->RGB16 original by Strepto/Astral
* ported to gcc & bugfixed : A'rpi
* ported to gcc & bugfixed : A'rpi
* MMX
2
, 3DNOW optimization by Nick Kurshev
* MMX
EXT
, 3DNOW optimization by Nick Kurshev
* 32-bit C version, and and&add trick by Michael Niedermayer
* 32-bit C version, and and&add trick by Michael Niedermayer
*/
*/
...
...
libswscale/rgb2rgb_template.c
View file @
652f5185
...
@@ -77,7 +77,7 @@ static inline void rgb32tobgr24_c(const uint8_t *src, uint8_t *dst,
...
@@ -77,7 +77,7 @@ static inline void rgb32tobgr24_c(const uint8_t *src, uint8_t *dst,
/*
/*
* original by Strepto/Astral
* original by Strepto/Astral
* ported to gcc & bugfixed: A'rpi
* ported to gcc & bugfixed: A'rpi
* MMX
2
, 3DNOW optimization by Nick Kurshev
* MMX
EXT
, 3DNOW optimization by Nick Kurshev
* 32-bit C version, and and&add trick by Michael Niedermayer
* 32-bit C version, and and&add trick by Michael Niedermayer
*/
*/
static
inline
void
rgb15to16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
static
inline
void
rgb15to16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
...
...
libswscale/swscale_internal.h
View file @
652f5185
...
@@ -307,10 +307,10 @@ typedef struct SwsContext {
...
@@ -307,10 +307,10 @@ typedef struct SwsContext {
int
vChrFilterSize
;
///< Vertical filter size for chroma pixels.
int
vChrFilterSize
;
///< Vertical filter size for chroma pixels.
//@}
//@}
int
lumMmx2FilterCodeSize
;
///< Runtime-generated MMX
2
horizontal fast bilinear scaler code size for luma/alpha planes.
int
lumMmx2FilterCodeSize
;
///< Runtime-generated MMX
EXT
horizontal fast bilinear scaler code size for luma/alpha planes.
int
chrMmx2FilterCodeSize
;
///< Runtime-generated MMX
2 horizontal fast bilinear scaler code size for chroma
planes.
int
chrMmx2FilterCodeSize
;
///< Runtime-generated MMX
EXT horizontal fast bilinear scaler code size for chroma
planes.
uint8_t
*
lumMmx2FilterCode
;
///< Runtime-generated MMX
2
horizontal fast bilinear scaler code for luma/alpha planes.
uint8_t
*
lumMmx2FilterCode
;
///< Runtime-generated MMX
EXT
horizontal fast bilinear scaler code for luma/alpha planes.
uint8_t
*
chrMmx2FilterCode
;
///< Runtime-generated MMX
2 horizontal fast bilinear scaler code for chroma
planes.
uint8_t
*
chrMmx2FilterCode
;
///< Runtime-generated MMX
EXT horizontal fast bilinear scaler code for chroma
planes.
int
canMMX2BeUsed
;
int
canMMX2BeUsed
;
...
...
libswscale/utils.c
View file @
652f5185
...
@@ -616,7 +616,7 @@ static int initMMX2HScaler(int dstW, int xInc, uint8_t *filterCode,
...
@@ -616,7 +616,7 @@ static int initMMX2HScaler(int dstW, int xInc, uint8_t *filterCode,
int
xpos
,
i
;
int
xpos
,
i
;
// create an optimized horizontal scaling routine
// create an optimized horizontal scaling routine
/* This scaler is made of runtime-generated MMX
2
code using specially tuned
/* This scaler is made of runtime-generated MMX
EXT
code using specially tuned
* pshufw instructions. For every four output pixels, if four input pixels
* pshufw instructions. For every four output pixels, if four input pixels
* are enough for the fast bilinear scaling, then a chunk of fragmentB is
* are enough for the fast bilinear scaling, then a chunk of fragmentB is
* used. If five input pixels are needed, then a chunk of fragmentA is used.
* used. If five input pixels are needed, then a chunk of fragmentA is used.
...
@@ -1007,7 +1007,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
...
@@ -1007,7 +1007,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
&&
(
flags
&
SWS_FAST_BILINEAR
))
{
&&
(
flags
&
SWS_FAST_BILINEAR
))
{
if
(
flags
&
SWS_PRINT_INFO
)
if
(
flags
&
SWS_PRINT_INFO
)
av_log
(
c
,
AV_LOG_INFO
,
av_log
(
c
,
AV_LOG_INFO
,
"output width is not a multiple of 32 -> no MMX
2
scaler
\n
"
);
"output width is not a multiple of 32 -> no MMX
EXT
scaler
\n
"
);
}
}
if
(
usesHFilter
)
if
(
usesHFilter
)
c
->
canMMX2BeUsed
=
0
;
c
->
canMMX2BeUsed
=
0
;
...
@@ -1237,7 +1237,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
...
@@ -1237,7 +1237,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
sws_format_name
(
dstFormat
));
sws_format_name
(
dstFormat
));
if
(
INLINE_MMXEXT
(
cpu_flags
))
if
(
INLINE_MMXEXT
(
cpu_flags
))
av_log
(
c
,
AV_LOG_INFO
,
"using MMX
2
\n
"
);
av_log
(
c
,
AV_LOG_INFO
,
"using MMX
EXT
\n
"
);
else
if
(
INLINE_AMD3DNOW
(
cpu_flags
))
else
if
(
INLINE_AMD3DNOW
(
cpu_flags
))
av_log
(
c
,
AV_LOG_INFO
,
"using 3DNOW
\n
"
);
av_log
(
c
,
AV_LOG_INFO
,
"using 3DNOW
\n
"
);
else
if
(
INLINE_MMX
(
cpu_flags
))
else
if
(
INLINE_MMX
(
cpu_flags
))
...
...
libswscale/x86/output.asm
View file @
652f5185
...
@@ -218,10 +218,10 @@ cglobal yuv2planeX_%1, %3, 8, %2, filter, fltsize, src, dst, w, dither, offset
...
@@ -218,10 +218,10 @@ cglobal yuv2planeX_%1, %3, 8, %2, filter, fltsize, src, dst, w, dither, offset
%else
; %1 == 9/10
%else
; %1 == 9/10
%if
cpuflag
(
sse4
)
%if
cpuflag
(
sse4
)
packusdw
m2
,
m1
packusdw
m2
,
m1
%else
; mmx
2
/sse2
%else
; mmx
ext
/sse2
packssdw
m2
,
m1
packssdw
m2
,
m1
pmaxsw
m2
,
m6
pmaxsw
m2
,
m6
%endif
; mmx
2
/sse2/sse4/avx
%endif
; mmx
ext
/sse2/sse4/avx
pminsw
m2
,
[
yuv2yuvX_
%1
_upper
]
pminsw
m2
,
[
yuv2yuvX_
%1
_upper
]
%endif
; %1 == 9/10/16
%endif
; %1 == 9/10/16
mova
[
dstq
+
r5
*
2
]
,
m2
mova
[
dstq
+
r5
*
2
]
,
m2
...
...
libswscale/x86/rgb2rgb.c
View file @
652f5185
...
@@ -84,7 +84,7 @@ DECLARE_ASM_CONST(8, uint64_t, blue_15mask) = 0x0000001f0000001fULL;
...
@@ -84,7 +84,7 @@ DECLARE_ASM_CONST(8, uint64_t, blue_15mask) = 0x0000001f0000001fULL;
#define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5))
#define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5))
#define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5))
#define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5))
//
Note: We have C, MMX, MMX2, 3DNOW versions, there is no 3DNOW + MMX2
one.
//
Note: We have C, MMX, MMXEXT, 3DNOW versions, there is no 3DNOW + MMXEXT
one.
#define COMPILE_TEMPLATE_MMXEXT 0
#define COMPILE_TEMPLATE_MMXEXT 0
#define COMPILE_TEMPLATE_AMD3DNOW 0
#define COMPILE_TEMPLATE_AMD3DNOW 0
...
@@ -95,7 +95,7 @@ DECLARE_ASM_CONST(8, uint64_t, blue_15mask) = 0x0000001f0000001fULL;
...
@@ -95,7 +95,7 @@ DECLARE_ASM_CONST(8, uint64_t, blue_15mask) = 0x0000001f0000001fULL;
#define RENAME(a) a ## _MMX
#define RENAME(a) a ## _MMX
#include "rgb2rgb_template.c"
#include "rgb2rgb_template.c"
//
MMX2
versions
//
MMXEXT
versions
#undef RENAME
#undef RENAME
#undef COMPILE_TEMPLATE_MMXEXT
#undef COMPILE_TEMPLATE_MMXEXT
#define COMPILE_TEMPLATE_MMXEXT 1
#define COMPILE_TEMPLATE_MMXEXT 1
...
@@ -123,7 +123,7 @@ DECLARE_ASM_CONST(8, uint64_t, blue_15mask) = 0x0000001f0000001fULL;
...
@@ -123,7 +123,7 @@ DECLARE_ASM_CONST(8, uint64_t, blue_15mask) = 0x0000001f0000001fULL;
/*
/*
RGB15->RGB16 original by Strepto/Astral
RGB15->RGB16 original by Strepto/Astral
ported to gcc & bugfixed : A'rpi
ported to gcc & bugfixed : A'rpi
MMX
2
, 3DNOW optimization by Nick Kurshev
MMX
EXT
, 3DNOW optimization by Nick Kurshev
32-bit C version, and and&add trick by Michael Niedermayer
32-bit C version, and and&add trick by Michael Niedermayer
*/
*/
...
...
libswscale/x86/rgb2rgb_template.c
View file @
652f5185
...
@@ -181,7 +181,7 @@ static inline void RENAME(rgb32tobgr24)(const uint8_t *src, uint8_t *dst, int sr
...
@@ -181,7 +181,7 @@ static inline void RENAME(rgb32tobgr24)(const uint8_t *src, uint8_t *dst, int sr
/*
/*
original by Strepto/Astral
original by Strepto/Astral
ported to gcc & bugfixed: A'rpi
ported to gcc & bugfixed: A'rpi
MMX
2
, 3DNOW optimization by Nick Kurshev
MMX
EXT
, 3DNOW optimization by Nick Kurshev
32-bit C version, and and&add trick by Michael Niedermayer
32-bit C version, and and&add trick by Michael Niedermayer
*/
*/
static
inline
void
RENAME
(
rgb15to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
static
inline
void
RENAME
(
rgb15to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
...
...
libswscale/x86/swscale.c
View file @
652f5185
...
@@ -78,7 +78,7 @@ DECLARE_ALIGNED(8, const uint64_t, ff_w1111) = 0x0001000100010001ULL;
...
@@ -78,7 +78,7 @@ DECLARE_ALIGNED(8, const uint64_t, ff_w1111) = 0x0001000100010001ULL;
#include "swscale_template.c"
#include "swscale_template.c"
#endif
#endif
//
MMX2
versions
//
MMXEXT
versions
#if HAVE_MMXEXT_INLINE
#if HAVE_MMXEXT_INLINE
#undef RENAME
#undef RENAME
#undef COMPILE_TEMPLATE_MMXEXT
#undef COMPILE_TEMPLATE_MMXEXT
...
...
libswscale/x86/swscale_template.c
View file @
652f5185
...
@@ -1615,7 +1615,7 @@ static av_cold void RENAME(sws_init_swScale)(SwsContext *c)
...
@@ -1615,7 +1615,7 @@ static av_cold void RENAME(sws_init_swScale)(SwsContext *c)
}
}
if
(
c
->
srcBpc
==
8
&&
c
->
dstBpc
<=
10
)
{
if
(
c
->
srcBpc
==
8
&&
c
->
dstBpc
<=
10
)
{
// Use the new MMX scaler if the MMX
2
one can't be used (it is faster than the x86 ASM one).
// Use the new MMX scaler if the MMX
EXT
one can't be used (it is faster than the x86 ASM one).
#if COMPILE_TEMPLATE_MMXEXT
#if COMPILE_TEMPLATE_MMXEXT
if
(
c
->
flags
&
SWS_FAST_BILINEAR
&&
c
->
canMMX2BeUsed
)
if
(
c
->
flags
&
SWS_FAST_BILINEAR
&&
c
->
canMMX2BeUsed
)
{
{
...
...
libswscale/x86/yuv2rgb.c
View file @
652f5185
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
*
*
* Copyright (C) 2009 Konstantin Shishkov
* Copyright (C) 2009 Konstantin Shishkov
*
*
* MMX/MMX
2
template stuff (needed for fast movntq support),
* MMX/MMX
EXT
template stuff (needed for fast movntq support),
* 1,4,8bpp support and context / deglobalize stuff
* 1,4,8bpp support and context / deglobalize stuff
* by Michael Niedermayer (michaelni@gmx.at)
* by Michael Niedermayer (michaelni@gmx.at)
*
*
...
@@ -58,7 +58,7 @@ DECLARE_ASM_CONST(8, uint64_t, pb_07) = 0x0707070707070707ULL;
...
@@ -58,7 +58,7 @@ DECLARE_ASM_CONST(8, uint64_t, pb_07) = 0x0707070707070707ULL;
#include "yuv2rgb_template.c"
#include "yuv2rgb_template.c"
#endif
/* HAVE_MMX_INLINE */
#endif
/* HAVE_MMX_INLINE */
//
MMX2
versions
//
MMXEXT
versions
#if HAVE_MMXEXT_INLINE
#if HAVE_MMXEXT_INLINE
#undef RENAME
#undef RENAME
#undef COMPILE_TEMPLATE_MMXEXT
#undef COMPILE_TEMPLATE_MMXEXT
...
...
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