Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
58672313
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
9 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
提交
58672313
编写于
5月 12, 2009
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
x86cpuid.pl: sync OPENSSL_ia32_cpuid with x86_64cpuid.pl.
上级
5cd91b50
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
2 deletion
+29
-2
crypto/x86cpuid.pl
crypto/x86cpuid.pl
+29
-2
未找到文件。
crypto/x86cpuid.pl
浏览文件 @
58672313
...
...
@@ -32,7 +32,33 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
&or
("
ebp
","
eax
");
&cmp
("
ecx
",
0x6c65746e
);
# "ntel"
&setne
(
&LB
("
eax
"));
&or
("
ebp
","
eax
");
&or
("
ebp
","
eax
");
# 0 indicates Intel CPU
&mov
("
esi
",
1
);
# "number of [AMD] cores"
&jz
(
&label
("
intel
"));
&cmp
("
ebx
",
0x68747541
);
# "Auth"
&setne
(
&LB
("
eax
"));
&mov
("
esi
","
eax
");
&cmp
("
edx
",
0x69746E65
);
# "enti"
&setne
(
&LB
("
eax
"));
&or
("
esi
","
eax
");
&cmp
("
ecx
",
0x444D4163
);
# "cAMD"
&setne
(
&LB
("
eax
"));
&or
("
esi
","
eax
");
# 0 indicates AMD CPU
&jnz
(
&label
("
intel
"));
&mov
("
eax
",
0x80000000
);
&cpuid
();
&cmp
("
eax
",
0x80000008
);
&mov
("
esi
",
1
);
# "number of [AMD] cores"
&jb
(
&label
("
intel
"));
&mov
("
eax
",
0x80000008
);
&cpuid
();
&movz
("
esi
",
&LB
("
ecx
"));
# number of cores - 1
&inc
("
esi
");
# number of cores
&set_label
("
intel
");
&mov
("
eax
",
1
);
&cpuid
();
&cmp
("
ebp
",
0
);
...
...
@@ -45,7 +71,8 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
&bt
("
edx
",
28
);
# test hyper-threading bit
&jnc
(
&label
("
done
"));
&shr
("
ebx
",
16
);
&cmp
(
&LB
("
ebx
"),
1
);
# see if cache is shared(*)
&and
("
ebx
",
0xff
);
&cmp
("
ebx
","
esi
");
# see if cache is shared(*)
&ja
(
&label
("
done
"));
&and
("
edx
",
0xefffffff
);
# clear hyper-threading bit if not
&set_label
("
done
");
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录