Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
c29ef588
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
12 个月 前同步成功
通知
8
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c29ef588
编写于
9月 27, 2004
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SHA1 asm Pentium tune-up. Performance loss is not as bad anymore.
上级
968c31bd
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
37 addition
and
32 deletion
+37
-32
crypto/sha/asm/sha1-586.pl
crypto/sha/asm/sha1-586.pl
+37
-32
未找到文件。
crypto/sha/asm/sha1-586.pl
浏览文件 @
c29ef588
...
...
@@ -9,7 +9,7 @@
#
# compared with original compared with Intel cc
# assembler impl. generated code
# Pentium -
25% +37
%
# Pentium -
16% +48
%
# PIII/AMD +8% +16%
# P4 +85%(!) +45%
#
...
...
@@ -104,19 +104,21 @@ sub BODY_00_15
&comment
("
00_15
$n
");
&mov
(
$tmp1
,
$a
);
&mov
(
$f
,
$c
);
# f to hold F_00_19(b,c,d)
&mov
(
$f
,
$c
);
# f to hold F_00_19(b,c,d)
if
(
$n
==
0
)
{
&mov
(
$tmp1
,
$a
);
}
else
{
&mov
(
$a
,
$tmp1
);
}
&rotl
(
$tmp1
,
5
);
# tmp1=ROTATE(a,5)
&xor
(
$f
,
$d
);
&and
(
$f
,
$b
);
&rotr
(
$b
,
2
);
# b=ROTATE(b,30)
&add
(
$tmp1
,
$e
);
# tmp1+=e;
&mov
(
$e
,
&swtmp
(
$n
));
# e becomes volatile and
&add
(
$tmp1
,
$e
);
# tmp1+=e;
&mov
(
$e
,
&swtmp
(
$n
));
# e becomes volatile and
# is loaded with xi
&xor
(
$f
,
$d
);
# f holds F_00_19(b,c,d)
&xor
(
$f
,
$d
);
# f holds F_00_19(b,c,d)
&rotr
(
$b
,
2
);
# b=ROTATE(b,30)
&lea
(
$tmp1
,
&DWP
(
$K
,
$tmp1
,
$e
,
1
));
# tmp1+=K_00_19+xi
&add
(
$f
,
$tmp1
);
# f+=tmp1
if
(
$n
==
15
)
{
&add
(
$f
,
$tmp1
);
}
# f+=tmp1
else
{
&add
(
$tmp1
,
$f
);
}
}
sub
BODY_16_19
...
...
@@ -132,15 +134,15 @@ sub BODY_16_19
&xor
(
$tmp1
,
$d
);
&xor
(
$f
,
&swtmp
(
$n2
));
&and
(
$tmp1
,
$b
);
# tmp1 holds F_00_19(b,c,d)
&
xor
(
$f
,
&swtmp
(
$n3
));
# f holds xa^xb^xc^xd
&
rotr
(
$b
,
2
);
# b=ROTATE(b,30)
&
xor
(
$tmp1
,
$d
);
# tmp1=F_00_19(b,c,d
)
&
rotl
(
$f
,
1
);
# f=ROATE(f,1
)
&
rotr
(
$b
,
2
);
# b=ROTATE(b,30)
&
xor
(
$f
,
&swtmp
(
$n3
));
# f holds xa^xb^xc^xd
&
rotl
(
$f
,
1
);
# f=ROATE(f,1
)
&
xor
(
$tmp1
,
$d
);
# tmp1=F_00_19(b,c,d
)
&mov
(
&swtmp
(
$n0
),
$f
);
# xi=f
&lea
(
$f
,
&DWP
(
$K
,
$f
,
$e
,
1
));
# f+=K_00_19+e
&mov
(
$e
,
$a
);
# e becomes volatile
&
add
(
$f
,
$tmp1
);
# f+=F_00_19(b,c,d
)
&
rotl
(
$e
,
5
);
# e=ROTATE(a,5
)
&
rotl
(
$e
,
5
);
# e=ROTATE(a,5
)
&
add
(
$f
,
$tmp1
);
# f+=F_00_19(b,c,d
)
&add
(
$f
,
$e
);
# f+=ROTATE(a,5)
}
...
...
@@ -151,20 +153,20 @@ sub BODY_20_39
&comment
("
20_39
$n
");
local
(
$n0
,
$n1
,
$n2
,
$n3
,
$np
)
=
&Na
(
$n
);
&mov
(
$
f
,
&swtmp
(
$n0
));
# f to hold Xupdate(xi,xa,xb,xc,x
d)
&mov
(
$
tmp1
,
$b
);
# tmp1 to hold F_20_39(b,c,
d)
&
xor
(
$f
,
&swtmp
(
$n1
));
&
rotr
(
$b
,
2
);
# b=ROTATE(b,30)
&xor
(
$
f
,
&swtmp
(
$n2
)
);
&xor
(
$
tmp1
,
$c
);
&xor
(
$
f
,
&swtmp
(
$n3
));
# f holds xa^xb^xc^xd
&xor
(
$
tmp1
,
$d
);
# tmp1 holds F_20_39(b,c,d)
&mov
(
$
tmp1
,
$b
);
# tmp1 to hold F_20_39(b,c,
d)
&mov
(
$
f
,
&swtmp
(
$n0
));
# f to hold Xupdate(xi,xa,xb,xc,x
d)
&
rotr
(
$b
,
2
);
# b=ROTATE(b,30)
&
xor
(
$f
,
&swtmp
(
$n1
));
&xor
(
$
tmp1
,
$c
);
&xor
(
$
f
,
&swtmp
(
$n2
)
);
&xor
(
$
tmp1
,
$d
);
# tmp1 holds F_20_39(b,c,d)
&xor
(
$
f
,
&swtmp
(
$n3
));
# f holds xa^xb^xc^xd
&rotl
(
$f
,
1
);
# f=ROTATE(f,1)
&add
(
$tmp1
,
$e
);
&mov
(
&swtmp
(
$n0
),
$f
);
# xi=f
&lea
(
$f
,
&DWP
(
$K
,
$f
,
$e
,
1
));
# f+=K_20_39+e
&mov
(
$e
,
$a
);
# e becomes volatile
&rotl
(
$e
,
5
);
# e=ROTATE(a,5)
&
add
(
$f
,
$tmp1
);
# f+=F_20_39(b,c,d)
&
lea
(
$f
,
&DWP
(
$K
,
$f
,
$tmp1
,
1
));
# f+=K_20_39+e
&add
(
$f
,
$e
);
# f+=ROTATE(a,5)
}
...
...
@@ -176,14 +178,17 @@ sub BODY_40_59
local
(
$n0
,
$n1
,
$n2
,
$n3
,
$np
)
=
&Na
(
$n
);
&mov
(
$f
,
&swtmp
(
$n0
));
# f to hold Xupdate(xi,xa,xb,xc,xd)
&mov
(
$tmp1
,
&swtmp
(
$n1
));
&xor
(
$f
,
$tmp1
);
&mov
(
$tmp1
,
&swtmp
(
$n2
));
&xor
(
$f
,
$tmp1
);
&mov
(
$tmp1
,
&swtmp
(
$n3
));
&xor
(
$f
,
$tmp1
);
# f holds xa^xb^xc^xd
&mov
(
$tmp1
,
$b
);
# tmp1 to hold F_40_59(b,c,d)
&xor
(
$f
,
&swtmp
(
$n1
));
&or
(
$tmp1
,
$c
);
&xor
(
$f
,
&swtmp
(
$n2
));
&and
(
$tmp1
,
$d
);
&xor
(
$f
,
&swtmp
(
$n3
));
# f holds xa^xb^xc^xd
&rotl
(
$f
,
1
);
# f=ROTATE(f,1)
&or
(
$tmp1
,
$c
);
&mov
(
&swtmp
(
$n0
),
$f
);
# xi=f
&and
(
$tmp1
,
$d
);
&lea
(
$f
,
&DWP
(
$K
,
$f
,
$e
,
1
));
# f+=K_40_59+e
&mov
(
$e
,
$b
);
# e becomes volatile and is used
# to calculate F_40_59(b,c,d)
...
...
@@ -192,8 +197,8 @@ sub BODY_40_59
&or
(
$tmp1
,
$e
);
# tmp1 holds F_40_59(b,c,d)
&mov
(
$e
,
$a
);
&rotl
(
$e
,
5
);
# e=ROTATE(a,5)
&add
(
$tmp1
,
$e
);
# tmp1+=ROTATE(a,5)
&add
(
$f
,
$
tmp1
);
# f+=tmp1;
&add
(
$f
,
$tmp1
);
# f+=tmp1;
&add
(
$f
,
$
e
);
# f+=ROTATE(a,5)
}
sub
BODY_60_79
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录