Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
4b450519
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
大约 1 年 前同步成功
通知
9
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看板
提交
4b450519
编写于
5月 03, 2005
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
x86_64 assembler translator update.
上级
9e5790ce
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
10 deletion
+19
-10
crypto/perlasm/x86_64-xlate.pl
crypto/perlasm/x86_64-xlate.pl
+19
-10
未找到文件。
crypto/perlasm/x86_64-xlate.pl
浏览文件 @
4b450519
...
...
@@ -30,15 +30,18 @@
# stack frame allocation. If volatile storage is actually required
# that is. If not, just leave the stack as is.
# 3. Functions tagged with ".type name,@function" get crafted with
# unified Win
dows
prologue and epilogue automatically. If you want
# unified Win
64
prologue and epilogue automatically. If you want
# to take care of ABI differences yourself, tag functions as
# ".type name,@abi-omnipotent."
# 4. As minor optimization you can specify number of input arguments
# as ".type name,@function,N." Keep in mind that if N is larger
# than 6, then you *have to* write "abi-omnipotent" code, because
# it can't be resolved with unified prologue.
# 5. Name local labels as .L*.
# 6. Don't use repret, it's generated automatically.
# ".type name,@abi-omnipotent" instead.
# 4. To optimize the Win64 prologue you can specify number of input
# arguments as ".type name,@function,N." Keep in mind that if N is
# larger than 6, then you *have to* write "abi-omnipotent" code,
# because >6 cases can't be addressed with unified prologue.
# 5. Name local labels as .L*, do *not* use dynamic labels such as 1:
# (sorry about latter).
# 6. Don't use [or hand-code with .byte] "rep ret." "ret" mnemonic is
# required to identify the spots, where to inject Win64 epilogue!
# But on the pros, it's then prefixed with rep automatically:-)
my
$output
=
shift
;
open
STDOUT
,"
>
$output
"
||
die
"
can't open
$output
: $!
";
...
...
@@ -143,6 +146,11 @@ my $current_function;
my
$sz
=
shift
;
if
(
!
$masm
)
{
# elder GNU assembler insists on 64-bit EAs:-(
# on pros side, this results in more compact code:-)
$self
->
{
index
}
=~
s/^[er](.?[0-9xp])[d]?$/r\1/
;
$self
->
{
base
}
=~
s/^[er](.?[0-9xp])[d]?$/r\1/
;
if
(
defined
(
$self
->
{
index
}))
{
sprintf
"
%s(%%%s,%%%s,%d)
",
$self
->
{
label
},
$self
->
{
base
},
$self
->
{
index
},
$self
->
{
scale
};
...
...
@@ -340,8 +348,9 @@ while($line=<>) {
chomp
(
$line
);
$line
=~
s/\[#!].*$//
;
# get rid of comments...
$line
=~
s/^\s+//
;
# ... and skip white spaces
$line
=~
s|[#!].*$||
;
# get rid of asm-style comments...
$line
=~
s|/\*.*\*/||
;
# ... and C-style comments...
$line
=~
s|^\s+||
;
# ... and skip white spaces in beginning
undef
$label
;
undef
$opcode
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录