Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
4bb90087
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看板
提交
4bb90087
编写于
5月 27, 2011
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
x86[_64]cpuid.pl: harmonize usage of reserved bits #20 and #30.
上级
67150340
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
17 addition
and
17 deletion
+17
-17
crypto/rc4/asm/rc4-x86_64.pl
crypto/rc4/asm/rc4-x86_64.pl
+5
-7
crypto/x86_64cpuid.pl
crypto/x86_64cpuid.pl
+4
-3
crypto/x86cpuid.pl
crypto/x86cpuid.pl
+6
-4
doc/crypto/OPENSSL_ia32cap.pod
doc/crypto/OPENSSL_ia32cap.pod
+2
-3
未找到文件。
crypto/rc4/asm/rc4-x86_64.pl
浏览文件 @
4bb90087
...
...
@@ -159,8 +159,8 @@ $code.=<<___;
movl ($dat,$XX[0],4),$TX[0]#d
test \$-16,$len
jz .Lloop1
bt \$30,%r8d # Intel CPU
Family 6
jc .L
16x
bt \$30,%r8d # Intel CPU
?
jc .L
intel
and \$7,$TX[1]
lea 1($XX[0]),$XX[1]
jz .Loop8
...
...
@@ -217,7 +217,7 @@ $code.=<<___;
jmp .Lexit
.align 16
.L
16x
:
.L
intel
:
test \$-32,$len
jz .Lloop1
and \$15,$TX[1]
...
...
@@ -438,10 +438,8 @@ RC4_set_key:
xor %r11,%r11
mov OPENSSL_ia32cap_P(%rip),$idx#d
bt \$20,$idx#d # Intel CPU
jnc .Lw1stloop
bt \$30,$idx#d # Intel CPU Family 6
jnc .Lc1stloop
bt \$20,$idx#d # RC4_CHAR?
jc .Lc1stloop
jmp .Lw1stloop
.align 16
...
...
crypto/x86_64cpuid.pl
浏览文件 @
4bb90087
...
...
@@ -124,13 +124,14 @@ OPENSSL_ia32_cpuid:
.Lnocacheinfo:
mov \$1,%eax
cpuid
and \$0xbfefffff,%edx # force reserved bits to 0
cmp \$0,%r9d
jne .Lnotintel
or \$0x
00100000,%edx # use reserved 20th bit to engage RC4_CHAR
or \$0x
40000000,%edx # set reserved bit#30 on Intel CPUs
and \$15,%ah
cmp \$15,%ah # examine Family ID
je .Lnotintel
or \$0x
40000000,%edx # use reserved bit to skip unrolled loop
j
n
e .Lnotintel
or \$0x
00100000,%edx # set reserved bit#20 to engage RC4_CHAR
.Lnotintel:
bt \$28,%edx # test hyper-threading bit
jnc .Lgeneric
...
...
crypto/x86cpuid.pl
浏览文件 @
4bb90087
...
...
@@ -92,13 +92,15 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
&set_label
("
nocacheinfo
");
&mov
("
eax
",
1
);
&cpuid
();
&and
("
edx
",
~
(
1
<<
20
|
1
<<
30
));
# force reserved bits to 0
&cmp
("
ebp
",
0
);
&jne
(
&label
("
notP4
"));
&jne
(
&label
("
notintel
"));
&or
("
edx
",
1
<<
30
);
# set reserved bit#30 on Intel CPUs
&and
(
&HB
("
eax
"),
15
);
# familiy ID
&cmp
(
&HB
("
eax
"),
15
);
# P4?
&jne
(
&label
("
not
P4
"));
&or
("
edx
",
1
<<
20
);
#
use reserved bit
to engage RC4_CHAR
&set_label
("
not
P4
");
&jne
(
&label
("
not
intel
"));
&or
("
edx
",
1
<<
20
);
#
set reserved bit#20
to engage RC4_CHAR
&set_label
("
not
intel
");
&bt
("
edx
",
28
);
# test hyper-threading bit
&jnc
(
&label
("
generic
"));
&and
("
edx
",
0xefffffff
);
...
...
doc/crypto/OPENSSL_ia32cap.pod
浏览文件 @
4bb90087
...
...
@@ -37,14 +37,13 @@ moment of this writing following bits are significant:
=item bit #28 denoting Hyperthreading, which is used to distiguish
cores with shared cache;
=item bit #30, reserved by Intel, is used to choose among RC4 code
paths;
=item bit #30, reserved by Intel, denotes specifically Intel CPUs;
=item bit #33 denoting availability of PCLMULQDQ instruction;
=item bit #41 denoting SSSE3, Supplemental SSE3, support;
=item bit #43 denoting AMD XOP support (forced to zero on
Intel
);
=item bit #43 denoting AMD XOP support (forced to zero on
non-AMD CPUs
);
=item bit #57 denoting AES-NI instruction set extension;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录