Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
0fcb905b
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看板
提交
0fcb905b
编写于
12月 29, 2007
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ppc-xlate.pl update.
上级
4be63cfb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
2 deletion
+23
-2
crypto/perlasm/ppc-xlate.pl
crypto/perlasm/ppc-xlate.pl
+23
-2
未找到文件。
crypto/perlasm/ppc-xlate.pl
浏览文件 @
0fcb905b
...
...
@@ -84,8 +84,29 @@ my $cmplw = sub {
};
my
$bdnz
=
sub
{
my
$f
=
shift
;
my
$bo
=
$f
=~
/[\+\-]/
?
1
7
:
16
;
my
$bo
=
$f
=~
/[\+\-]/
?
1
6
+
9
:
16
;
# optional "to be taken" hint
"
bc
$bo
,0,
"
.
shift
;
}
if
(
$flavour
!~
/linux/
);
my
$bltlr
=
sub
{
my
$f
=
shift
;
my
$bo
=
$f
=~
/\-/
?
12
+
2
:
12
;
# optional "not to be taken" hint
(
$flavour
=~
/linux/
)
?
# GNU as doesn't allow most recent hints
"
.long
"
.
sprintf
"
0x%x
",
19
<<
26
|
$bo
<<
21
|
16
<<
1
:
"
bclr
$bo
,0
";
};
my
$bnelr
=
sub
{
my
$f
=
shift
;
my
$bo
=
$f
=~
/\-/
?
4
+
2
:
4
;
# optional "not to be taken" hint
(
$flavour
=~
/linux/
)
?
# GNU as doesn't allow most recent hints
"
.long
"
.
sprintf
"
0x%x
",
19
<<
26
|
$bo
<<
21
|
2
<<
16
|
16
<<
1
:
"
bclr
$bo
,2
";
};
# GNU assembler can't handle extrdi rA,rS,16,48, or when sum of last two
# arguments is 64, with "operand out of range" error.
my
$extrdi
=
sub
{
my
(
$f
,
$ra
,
$rs
,
$n
,
$b
)
=
@_
;
$b
=
(
$b
+
$n
)
&
63
;
$n
=
64
-
$n
;
"
rldicl
$ra
,
$rs
,
$b
,
$n
";
};
while
(
$line
=<>
)
{
...
...
@@ -112,7 +133,7 @@ while($line=<>) {
my
$mnemonic
=
$
2
;
my
$f
=
$
3
;
my
$opcode
=
eval
("
\$
$mnemonic
");
$line
=~
s|\bc?
r
([0-9]+)\b|$1|g
if
(
$c
ne
"
.
"
and
$flavour
!~
/osx/
);
$line
=~
s|\bc?
[rf]
([0-9]+)\b|$1|g
if
(
$c
ne
"
.
"
and
$flavour
!~
/osx/
);
if
(
ref
(
$opcode
)
eq
'
CODE
')
{
$line
=
&$opcode
(
$f
,
split
('
,
',
$line
));
}
elsif
(
$mnemonic
)
{
$line
=
$c
.
$mnemonic
.
$f
.
"
\t
"
.
$line
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录