Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
fc0503a2
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
1 年多 前同步成功
通知
10
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看板
提交
fc0503a2
编写于
12月 18, 2013
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sha1-x86_64.pl: harmonize Win64 SE handlers for SIMD code pathes.
(and ensure stack alignment in the process)
上级
e9c80e04
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
77 addition
and
57 deletion
+77
-57
crypto/sha/asm/sha1-x86_64.pl
crypto/sha/asm/sha1-x86_64.pl
+77
-57
未找到文件。
crypto/sha/asm/sha1-x86_64.pl
浏览文件 @
fc0503a2
...
...
@@ -344,21 +344,26 @@ $code.=<<___;
.align 16
sha1_block_data_order_ssse3:
_ssse3_shortcut:
mov %rsp,%rax
push %rbx
push %rbp
push %r12
push %r13 # redundant, done to share Win64 SE handler
push %r14
lea `-64-($win64?6*16:0)`(%rsp),%rsp
___
$code
.=<<
___
if
(
$win64
);
movaps
%xmm6
,
64
+
0
(
%rsp
)
movaps
%xmm7
,
64
+
16
(
%rsp
)
movaps
%xmm8
,
64
+
32
(
%rsp
)
movaps
%xmm9
,
64
+
48
(
%rsp
)
movaps
%xmm10
,
64
+
64
(
%rsp
)
movaps
%xmm11
,
64
+
80
(
%rsp
)
movaps
%xmm6
,
-
40
-
6
*
16
(
%rax
)
movaps
%xmm7
,
-
40
-
5
*
16
(
%rax
)
movaps
%xmm8
,
-
40
-
4
*
16
(
%rax
)
movaps
%xmm9
,
-
40
-
3
*
16
(
%rax
)
movaps
%xmm10
,
-
40
-
2
*
16
(
%rax
)
movaps
%xmm11
,
-
40
-
1
*
16
(
%rax
)
.
Lprologue_ssse3:
___
$code
.=
<<___;
mov %rax,%r14 # original %rsp
and \$-64,%rsp
mov %rdi,$ctx # reassigned argument
mov %rsi,$inp # reassigned argument
mov %rdx,$num # reassigned argument
...
...
@@ -753,19 +758,21 @@ $code.=<<___;
mov $E,16($ctx)
___
$code
.=<<
___
if
(
$win64
);
movaps
64
+
0
(
%rsp
),
%xmm6
movaps
64
+
16
(
%rsp
),
%xmm7
movaps
64
+
32
(
%rsp
),
%xmm8
movaps
64
+
48
(
%rsp
),
%xmm9
movaps
64
+
64
(
%rsp
),
%xmm10
movaps
64
+
80
(
%rsp
),
%xmm11
movaps
-
40
-
6
*
16
(
%r14
),
%xmm6
movaps
-
40
-
5
*
16
(
%r14
),
%xmm7
movaps
-
40
-
4
*
16
(
%r14
),
%xmm8
movaps
-
40
-
3
*
16
(
%r14
),
%xmm9
movaps
-
40
-
2
*
16
(
%r14
),
%xmm10
movaps
-
40
-
1
*
16
(
%r14
),
%xmm11
___
$code
.=
<<___;
lea `64+($win64?6*16:0)`(%rsp),%rsi
mov 0(%rsi),%r12
mov 8(%rsi),%rbp
mov 16(%rsi),%rbx
lea 24(%rsi),%rsp
lea (%r14),%rsi
mov -40(%rsi),%r14
mov -32(%rsi),%r13
mov -24(%rsi),%r12
mov -16(%rsi),%rbp
mov -8(%rsi),%rbx
lea (%rsi),%rsp
.Lepilogue_ssse3:
ret
.size sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
...
...
@@ -788,25 +795,30 @@ $code.=<<___;
.align 16
sha1_block_data_order_avx:
_avx_shortcut:
mov %rsp,%rax
push %rbx
push %rbp
push %r12
push %r13 # redundant, done to share Win64 SE handler
push %r14
lea `-64-($win64?6*16:0)`(%rsp),%rsp
vzeroupper
___
$code
.=<<
___
if
(
$win64
);
movaps
%xmm6
,
64
+
0
(
%rsp
)
movaps
%xmm7
,
64
+
16
(
%rsp
)
movaps
%xmm8
,
64
+
32
(
%rsp
)
movaps
%xmm9
,
64
+
48
(
%rsp
)
movaps
%xmm10
,
64
+
64
(
%rsp
)
movaps
%xmm11
,
64
+
80
(
%rsp
)
vmovaps
%xmm6
,
-
40
-
6
*
16
(
%rax
)
vmovaps
%xmm7
,
-
40
-
5
*
16
(
%rax
)
vmovaps
%xmm8
,
-
40
-
4
*
16
(
%rax
)
vmovaps
%xmm9
,
-
40
-
3
*
16
(
%rax
)
vmovaps
%xmm10
,
-
40
-
2
*
16
(
%rax
)
vmovaps
%xmm11
,
-
40
-
1
*
16
(
%rax
)
.
Lprologue_avx:
___
$code
.=
<<___;
mov %rax,%r14 # original %rsp
and \$-64,%rsp
mov %rdi,$ctx # reassigned argument
mov %rsi,$inp # reassigned argument
mov %rdx,$num # reassigned argument
vzeroupper
shl \$6,$num
add $inp,$num
...
...
@@ -1110,19 +1122,21 @@ $code.=<<___;
mov $E,16($ctx)
___
$code
.=<<
___
if
(
$win64
);
movaps
64
+
0
(
%rsp
),
%xmm6
movaps
64
+
16
(
%rsp
),
%xmm7
movaps
64
+
32
(
%rsp
),
%xmm8
movaps
64
+
48
(
%rsp
),
%xmm9
movaps
64
+
64
(
%rsp
),
%xmm10
movaps
64
+
80
(
%rsp
),
%xmm11
movaps
-
40
-
6
*
16
(
%r14
),
%xmm6
movaps
-
40
-
5
*
16
(
%r14
),
%xmm7
movaps
-
40
-
4
*
16
(
%r14
),
%xmm8
movaps
-
40
-
3
*
16
(
%r14
),
%xmm9
movaps
-
40
-
2
*
16
(
%r14
),
%xmm10
movaps
-
40
-
1
*
16
(
%r14
),
%xmm11
___
$code
.=
<<___;
lea `64+($win64?6*16:0)`(%rsp),%rsi
mov 0(%rsi),%r12
mov 8(%rsi),%rbp
mov 16(%rsi),%rbx
lea 24(%rsi),%rsp
lea (%r14),%rsi
mov -40(%rsi),%r14
mov -32(%rsi),%r13
mov -24(%rsi),%r12
mov -16(%rsi),%rbp
mov -8(%rsi),%rbx
lea (%rsi),%rsp
.Lepilogue_avx:
ret
.size sha1_block_data_order_avx,.-sha1_block_data_order_avx
...
...
@@ -1148,28 +1162,29 @@ $code.=<<___;
.align 16
sha1_block_data_order_avx2:
_avx2_shortcut:
mov %rsp,%rax
push %rbx
push %rbp
push %r12
push %r13
push %r14
lea (%rsp),%r14
vzeroupper
___
$code
.=<<
___
if
(
$win64
);
lea
-
6
*
16
(
%rsp
),
%rsp
movaps
%xmm6
,
-
6
*
16
(
%r14
)
movaps
%xmm7
,
-
5
*
16
(
%r14
)
movaps
%xmm8
,
-
4
*
16
(
%r14
)
movaps
%xmm9
,
-
3
*
16
(
%r14
)
movaps
%xmm10
,
-
2
*
16
(
%r14
)
movaps
%xmm11
,
-
1
*
16
(
%r14
)
vmovaps
%xmm6
,
-
40
-
6
*
16
(
%rax
)
vmovaps
%xmm7
,
-
40
-
5
*
16
(
%rax
)
vmovaps
%xmm8
,
-
40
-
4
*
16
(
%rax
)
vmovaps
%xmm9
,
-
40
-
3
*
16
(
%rax
)
vmovaps
%xmm10
,
-
40
-
2
*
16
(
%rax
)
vmovaps
%xmm11
,
-
40
-
1
*
16
(
%rax
)
.
Lprologue_avx2:
___
$code
.=
<<___;
mov %rax,%r14 # original %rsp
mov %rdi,$ctx # reassigned argument
mov %rsi,$inp # reassigned argument
mov %rdx,$num # reassigned argument
vzeroupper
lea -640(%rsp),%rsp
shl \$6,$num
...
...
@@ -1586,21 +1601,21 @@ $code.=<<___;
vzeroupper
___
$code
.=<<
___
if
(
$win64
);
movaps
-
6
*
16
(
%r14
),
%xmm6
movaps
-
5
*
16
(
%r14
),
%xmm7
movaps
-
4
*
16
(
%r14
),
%xmm8
movaps
-
3
*
16
(
%r14
),
%xmm9
movaps
-
2
*
16
(
%r14
),
%xmm10
movaps
-
1
*
16
(
%r14
),
%xmm11
movaps
-
40
-
6
*
16
(
%r14
),
%xmm6
movaps
-
40
-
5
*
16
(
%r14
),
%xmm7
movaps
-
4
0
-
4
*
16
(
%r14
),
%xmm8
movaps
-
40
-
3
*
16
(
%r14
),
%xmm9
movaps
-
40
-
2
*
16
(
%r14
),
%xmm10
movaps
-
40
-
1
*
16
(
%r14
),
%xmm11
___
$code
.=
<<___;
lea (%r14),%rsi
mov 0(%rsi),%r14
mov
8
(%rsi),%r13
mov
16
(%rsi),%r12
mov
24
(%rsi),%rbp
mov
32
(%rsi),%rbx
lea
40
(%rsi),%rsp
mov
-4
0(%rsi),%r14
mov
-32
(%rsi),%r13
mov
-24
(%rsi),%r12
mov
-16
(%rsi),%rbp
mov
-8
(%rsi),%rbx
lea (%rsi),%rsp
.Lepilogue_avx2:
ret
.size sha1_block_data_order_avx2,.-sha1_block_data_order_avx2
...
...
@@ -1711,18 +1726,23 @@ ssse3_handler:
cmp %r10,%rbx # context->Rip>=epilogue label
jae .Lcommon_seh_tail
lea 64(%rax),%rsi
mov 232($context),%rax # pull context->R14
lea -40-6*16(%rax),%rsi
lea 512($context),%rdi # &context.Xmm6
mov \$12,%ecx
.long 0xa548f3fc # cld; rep movsq
lea `24+64+6*16`(%rax),%rax # adjust stack pointer
mov -8(%rax),%rbx
mov -16(%rax),%rbp
mov -24(%rax),%r12
mov -32(%rax),%r13
mov -40(%rax),%r14
mov %rbx,144($context) # restore context->Rbx
mov %rbp,160($context) # restore context->Rbp
mov %r12,216($context) # restore cotnext->R12
mov %r13,224($context) # restore cotnext->R13
mov %r14,232($context) # restore cotnext->R14
.Lcommon_seh_tail:
mov 8(%rax),%rdi
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录