Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
046ea308
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看板
提交
046ea308
编写于
5月 13, 2010
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
x86_64-xlate.pl: refine some regexp's and add support for OWORD/QWORD PTR.
上级
3efe51a4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
5 deletion
+10
-5
crypto/perlasm/x86_64-xlate.pl
crypto/perlasm/x86_64-xlate.pl
+10
-5
未找到文件。
crypto/perlasm/x86_64-xlate.pl
浏览文件 @
046ea308
...
...
@@ -193,7 +193,7 @@ my %globals;
if
(
$gas
)
{
# Solaris /usr/ccs/bin/as can't handle multiplications
# in $self->{value}
$self
->
{
value
}
=~
s/(?<
![0-9a-f
])(0[x0-9a-f]+)/oct($1)/
egi
;
$self
->
{
value
}
=~
s/(?<
=[\b\+\-\/\*\%
])(0[x0-9a-f]+)/oct($1)/
egi
;
$self
->
{
value
}
=~
s/([0-9]+\s*[\*\/\%]\s*[0-9]+)/eval($1)/
eg
;
sprintf
"
\$
%s
",
$self
->
{
value
};
}
else
{
...
...
@@ -245,7 +245,7 @@ my %globals;
# Solaris /usr/ccs/bin/as can't handle multiplications
# in $self->{label}, new gas requires sign extension...
use
integer
;
$self
->
{
label
}
=~
s/(?<
![0-9a-f])(0[x
0-9a-f]+)/oct($1)/
egi
;
$self
->
{
label
}
=~
s/(?<
=[\b\+\-\/\*\%])(0[xb]*[
0-9a-f]+)/oct($1)/
egi
;
$self
->
{
label
}
=~
s/([0-9]+\s*[\*\/\%]\s*[0-9]+)/eval($1)/
eg
;
$self
->
{
label
}
=~
s/([0-9]+)/$1<<32>>32/
eg
;
$self
->
{
label
}
=~
s/^___imp_/__imp__/
if
(
$flavour
eq
"
mingw64
");
...
...
@@ -258,10 +258,11 @@ my %globals;
sprintf
"
%s%s(%%%s)
",
$self
->
{
asterisk
},
$self
->
{
label
},
$self
->
{
base
};
}
}
else
{
%szmap
=
(
b
=>
"
BYTE
$PTR
",
w
=>
"
WORD
$PTR
",
l
=>
"
DWORD
$PTR
",
q
=>
"
QWORD
$PTR
"
);
%szmap
=
(
b
=>
"
BYTE
$PTR
",
w
=>
"
WORD
$PTR
",
l
=>
"
DWORD
$PTR
",
q
=>
"
QWORD
$PTR
",
o
=>
"
OWORD
$PTR
"
);
$self
->
{
label
}
=~
s/\./\$/g
;
$self
->
{
label
}
=~
s/0x([0-9a-f]+)/0$1h/ig
;
$self
->
{
label
}
=~
s/
(?<=[\b\+\-\/\*\%])
0x([0-9a-f]+)/0$1h/ig
;
$self
->
{
label
}
=
"
(
$self
->{label})
"
if
(
$self
->
{
label
}
=~
/[\*\+\-\/]/
);
$sz
=
"
q
"
if
(
$self
->
{
asterisk
});
...
...
@@ -735,7 +736,11 @@ while($line=<>) {
else
{
printf
"
\t
%s
\t
%s
",
$insn
,
join
("
,
",
@args
);
}
}
else
{
$insn
=
$opcode
->
out
();
$insn
.=
$sz
if
(
map
(
$_
->
out
()
=~
/xmm|mmx/
,
@args
));
foreach
(
@args
)
{
my
$arg
=
$_
->
out
();
if
(
$arg
=~
/xmm/
)
{
$insn
.=
$sz
;
$sz
=
"
o
";
last
;
}
if
(
$arg
=~
/mm/
)
{
$insn
.=
$sz
;
$sz
=
"
q
";
last
;
}
}
@args
=
reverse
(
@args
);
undef
$sz
if
(
$nasm
&&
$opcode
->
mnemonic
()
eq
"
lea
");
printf
"
\t
%s
\t
%s
",
$insn
,
join
("
,
",
map
(
$_
->
out
(
$sz
),
@args
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录