Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
f9a152bd
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
10 个月 前同步成功
通知
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 搜索 >>
提交
f9a152bd
编写于
6月 01, 2010
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
x86_64-xlate.pl: refine mingw support and regexps, update commentary.
上级
af9fafdb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
4 deletion
+9
-4
crypto/perlasm/x86_64-xlate.pl
crypto/perlasm/x86_64-xlate.pl
+9
-4
未找到文件。
crypto/perlasm/x86_64-xlate.pl
浏览文件 @
f9a152bd
...
...
@@ -55,6 +55,8 @@
# Win64 prologue copies %rsp value to %rax. For further details
# see SEH paragraph at the end.
# 9. .init segment is allowed to contain calls to functions only.
# a. If function accepts more than 4 arguments *and* >4th argument
# is declared as non 64-bit value, do clear its upper part.
my
$flavour
=
shift
;
my
$output
=
shift
;
...
...
@@ -80,7 +82,10 @@ my $PTR=" PTR";
my
$nasmref
=
2.03
;
my
$nasm
=
0
;
if
(
$flavour
eq
"
mingw64
")
{
$gas
=
1
;
$elf
=
0
;
$win64
=
1
;
$prefix
=
"
_
";
}
if
(
$flavour
eq
"
mingw64
")
{
$gas
=
1
;
$elf
=
0
;
$win64
=
1
;
$prefix
=
`
echo __USER_LABEL_PREFIX__ |
$ENV
{CC} -E -P -
`;
chomp
(
$prefix
);
}
elsif
(
$flavour
eq
"
macosx
")
{
$gas
=
1
;
$elf
=
0
;
$prefix
=
"
_
";
$decor
=
"
L
\$
";
}
elsif
(
$flavour
eq
"
masm
")
{
$gas
=
0
;
$elf
=
0
;
$masm
=
$masmref
;
$win64
=
1
;
$decor
=
"
\$
L
\$
";
}
elsif
(
$flavour
eq
"
nasm
")
{
$gas
=
0
;
$elf
=
0
;
$nasm
=
$nasmref
;
$win64
=
1
;
$decor
=
"
\$
L
\$
";
$PTR
=
"";
}
...
...
@@ -193,7 +198,7 @@ my %globals;
if
(
$gas
)
{
# Solaris /usr/ccs/bin/as can't handle multiplications
# in $self->{value}
$self
->
{
value
}
=~
s/(?<
=[\b\+\-\/\*\%])(0[x
0-9a-f]+)/oct($1)/
egi
;
$self
->
{
value
}
=~
s/(?<
![\w\$\.])(0x?[
0-9a-f]+)/oct($1)/
egi
;
$self
->
{
value
}
=~
s/([0-9]+\s*[\*\/\%]\s*[0-9]+)/eval($1)/
eg
;
sprintf
"
\$
%s
",
$self
->
{
value
};
}
else
{
...
...
@@ -245,7 +250,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/(?<
=[\b\+\-\/\*\%])(0[xb]*
[0-9a-f]+)/oct($1)/
egi
;
$self
->
{
label
}
=~
s/(?<
![\w\$\.])(0x?
[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
");
...
...
@@ -262,7 +267,7 @@ my %globals;
q
=>
"
QWORD
$PTR
",
o
=>
"
OWORD
$PTR
"
);
$self
->
{
label
}
=~
s/\./\$/g
;
$self
->
{
label
}
=~
s/(?<
=[\b\+\-\/\*\%
])0x([0-9a-f]+)/0$1h/ig
;
$self
->
{
label
}
=~
s/(?<
![\w\$\.
])0x([0-9a-f]+)/0$1h/ig
;
$self
->
{
label
}
=
"
(
$self
->{label})
"
if
(
$self
->
{
label
}
=~
/[\*\+\-\/]/
);
$sz
=
"
q
"
if
(
$self
->
{
asterisk
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录