Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
a7bd8797
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a7bd8797
编写于
5月 17, 2002
作者:
M
Michael Niedermayer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
shared lib support (req by kabi) ...
Originally committed as revision 510 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
96c7b535
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
7 deletion
+14
-7
libavcodec/i386/dsputil_mmx.c
libavcodec/i386/dsputil_mmx.c
+10
-3
libavcodec/i386/dsputil_mmx_avg.h
libavcodec/i386/dsputil_mmx_avg.h
+4
-4
未找到文件。
libavcodec/i386/dsputil_mmx.c
浏览文件 @
a7bd8797
...
...
@@ -50,9 +50,9 @@ void ff_mmx_idct(DCTELEM *block);
void
ff_mmxext_idct
(
DCTELEM
*
block
);
/* pixel operations */
static
const
u
nsigned
long
long
int
mm_bone
__attribute__
((
aligned
(
8
)))
=
0x0101010101010101
LL
;
static
const
u
nsigned
long
long
int
mm_wone
__attribute__
((
aligned
(
8
)))
=
0x0001000100010001
LL
;
static
const
u
nsigned
long
long
int
mm_wtwo
__attribute__
((
aligned
(
8
)))
=
0x0002000200020002
LL
;
static
const
u
int64_t
mm_bone
__attribute__
((
aligned
(
8
)))
=
0x0101010101010101U
LL
;
static
const
u
int64_t
mm_wone
__attribute__
((
aligned
(
8
)))
=
0x0001000100010001U
LL
;
static
const
u
int64_t
mm_wtwo
__attribute__
((
aligned
(
8
)))
=
0x0002000200020002U
LL
;
//static const unsigned short mm_wone[4] __attribute__ ((aligned(8))) = { 0x1, 0x1, 0x1, 0x1 };
//static const unsigned short mm_wtwo[4] __attribute__ ((aligned(8))) = { 0x2, 0x2, 0x2, 0x2 };
...
...
@@ -62,6 +62,7 @@ static const unsigned long long int mm_wtwo __attribute__ ((aligned(8))) = 0x000
#ifndef PIC
#define MOVQ_WONE(regd) __asm __volatile ("movq %0, %%" #regd " \n\t" ::"m"(mm_wone))
#define MOVQ_WTWO(regd) __asm __volatile ("movq %0, %%" #regd " \n\t" ::"m"(mm_wtwo))
#define MOVQ_BONE(regd) "movq "MANGLE(mm_bone)", "#regd" \n\t"
#else
// for shared library it's better to use this way for accessing constants
// pcmpeqd -> -1
...
...
@@ -75,8 +76,14 @@ static const unsigned long long int mm_wtwo __attribute__ ((aligned(8))) = 0x000
"pcmpeqd %%" #regd ", %%" #regd " \n\t" \
"psrlw $15, %%" #regd " \n\t" \
"psllw $1, %%" #regd ::)
#define MOVQ_BONE(regd) \
"pcmpeqd " #regd ", " #regd " \n\t" \
"psrlw $15, " #regd " \n\t"\
"packuswb " #regd ", " #regd " \n\t"
#endif
/***********************************/
/* 3Dnow specific */
...
...
libavcodec/i386/dsputil_mmx_avg.h
浏览文件 @
a7bd8797
...
...
@@ -20,7 +20,7 @@
* MMX optimization by Nick Kurshev <nickols_k@mail.ru>
* mostly rewritten by Michael Niedermayer <michaelni@gmx.at>
*/
static
void
DEF
(
put_pixels_x2
)(
UINT8
*
block
,
const
UINT8
*
pixels
,
int
line_size
,
int
h
)
{
__asm
__volatile
(
...
...
@@ -57,7 +57,7 @@ static void DEF(put_no_rnd_pixels_x2)(UINT8 *block, const UINT8 *pixels, int lin
{
__asm
__volatile
(
"xorl %%eax, %%eax
\n\t
"
"movq "
MANGLE
(
mm_bone
)
", %%mm7
\n\t
"
MOVQ_BONE
(
%%
mm7
)
".balign 16
\n\t
"
"1:
\n\t
"
"movq (%1, %%eax), %%mm0
\n\t
"
...
...
@@ -122,7 +122,7 @@ static void DEF(put_pixels_y2)(UINT8 *block, const UINT8 *pixels, int line_size,
static
void
DEF
(
put_no_rnd_pixels_y2
)(
UINT8
*
block
,
const
UINT8
*
pixels
,
int
line_size
,
int
h
)
{
__asm
__volatile
(
"movq "
MANGLE
(
mm_bone
)
", %%mm7
\n\t
"
MOVQ_BONE
(
%%
mm7
)
"xorl %%eax, %%eax
\n\t
"
"movq (%1), %%mm0
\n\t
"
".balign 16
\n\t
"
...
...
@@ -264,7 +264,7 @@ static void DEF(avg_pixels_y2)(UINT8 *block, const UINT8 *pixels, int line_size,
static
void
DEF
(
avg_pixels_xy2
)(
UINT8
*
block
,
const
UINT8
*
pixels
,
int
line_size
,
int
h
)
{
__asm
__volatile
(
"movq "
MANGLE
(
mm_bone
)
", %%mm7
\n\t
"
MOVQ_BONE
(
%%
mm7
)
"xorl %%eax, %%eax
\n\t
"
"movq (%1), %%mm0
\n\t
"
"movq 1(%1), %%mm1
\n\t
"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录