Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
c7b903e0
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看板
提交
c7b903e0
编写于
5月 18, 2011
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
x86_64-xlate.pl: add inter-register movq and make x86_64-gfm.s compile on
Solaris, MacOS X, elderly gas...
上级
ddc20d4d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
0 deletion
+24
-0
crypto/perlasm/x86_64-xlate.pl
crypto/perlasm/x86_64-xlate.pl
+24
-0
未找到文件。
crypto/perlasm/x86_64-xlate.pl
浏览文件 @
c7b903e0
...
...
@@ -123,6 +123,8 @@ my %globals;
$self
->
{
sz
}
=
"";
}
elsif
(
$self
->
{
op
}
=~
/^p/
&&
$'
!~
/^(ush|op|insrw)/
)
{
# SSEn
$self
->
{
sz
}
=
"";
}
elsif
(
$self
->
{
op
}
=~
/movq/
&&
$line
=~
/%xmm/
)
{
$self
->
{
sz
}
=
"";
}
elsif
(
$self
->
{
op
}
=~
/([a-z]{3,})([qlwb])$/
)
{
$self
->
{
op
}
=
$
1
;
$self
->
{
sz
}
=
$
2
;
...
...
@@ -658,6 +660,28 @@ sub rex {
my
%regrm
=
(
"
%eax
"
=>
0
,
"
%ecx
"
=>
1
,
"
%edx
"
=>
2
,
"
%ebx
"
=>
3
,
"
%esp
"
=>
4
,
"
%ebp
"
=>
5
,
"
%esi
"
=>
6
,
"
%edi
"
=>
7
);
my
$movq
=
sub
{
# elderly gas can't handle inter-register movq
my
$arg
=
shift
;
my
@opcode
=
(
0x66
);
if
(
$arg
=~
/%xmm([0-9]+),%r(\w+)/
)
{
my
(
$src
,
$dst
)
=
(
$
1
,
$
2
);
if
(
$dst
!~
/[0-9]+/
)
{
$dst
=
$regrm
{"
%e
$dst
"};
}
rex
(
\
@opcode
,
$src
,
$dst
,
0x8
);
push
@opcode
,
0x0f
,
0x7e
;
push
@opcode
,
0xc0
|
((
$src
&
7
)
<<
3
)
|
(
$dst
&
7
);
# ModR/M
@opcode
;
}
elsif
(
$arg
=~
/%r(\w+),%xmm([0-9]+)/
)
{
my
(
$src
,
$dst
)
=
(
$
2
,
$
1
);
if
(
$dst
!~
/[0-9]+/
)
{
$dst
=
$regrm
{"
%e
$dst
"};
}
rex
(
\
@opcode
,
$src
,
$dst
,
0x8
);
push
@opcode
,
0x0f
,
0x6e
;
push
@opcode
,
0xc0
|
((
$src
&
7
)
<<
3
)
|
(
$dst
&
7
);
# ModR/M
@opcode
;
}
else
{
();
}
};
my
$pextrd
=
sub
{
if
(
shift
=~
/\$([0-9]+),%xmm([0-9]+),(%\w+)/
)
{
my
@opcode
=
(
0x66
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录