Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
526ab896
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
526ab896
编写于
12月 14, 2016
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
perlasm/x86_64-xlate.pl: add support for AVX512 OPMASK-ing.
Reviewed-by:
N
Richard Levitte
<
levitte@openssl.org
>
上级
569204be
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
13 deletion
+23
-13
crypto/perlasm/x86_64-xlate.pl
crypto/perlasm/x86_64-xlate.pl
+23
-13
未找到文件。
crypto/perlasm/x86_64-xlate.pl
浏览文件 @
526ab896
...
...
@@ -130,7 +130,7 @@ my %globals;
$self
->
{
sz
}
=
"";
}
elsif
(
$self
->
{
op
}
=~
/^p/
&&
$'
!~
/^(ush|op|insrw)/
)
{
# SSEn
$self
->
{
sz
}
=
"";
}
elsif
(
$self
->
{
op
}
=~
/^
v/
)
{
# VEX
}
elsif
(
$self
->
{
op
}
=~
/^
[vk]/
)
{
# VEX or k* such as kmov
$self
->
{
sz
}
=
"";
}
elsif
(
$self
->
{
op
}
=~
/mov[dq]/
&&
$$line
=~
/%xmm/
)
{
$self
->
{
sz
}
=
"";
...
...
@@ -229,12 +229,13 @@ my %globals;
my
$ret
;
# optional * ----vvv--- appears in indirect jmp/call
if
(
$$line
=~
/^(\*?)([^\(,]*)\(([%\w,]+)\)/
)
{
if
(
$$line
=~
/^(\*?)([^\(,]*)\(([%\w,]+)\)
((?:{[^}]+})*)
/
)
{
bless
$self
,
$class
;
$self
->
{
asterisk
}
=
$
1
;
$self
->
{
label
}
=
$
2
;
(
$self
->
{
base
},
$self
->
{
index
},
$self
->
{
scale
})
=
split
(
/,/
,
$
3
);
$self
->
{
scale
}
=
1
if
(
!
defined
(
$self
->
{
scale
}));
$self
->
{
pred
}
=
$
4
;
$ret
=
$self
;
$$line
=
substr
(
$$line
,
@
+
[
0
]);
$$line
=~
s/^\s+//
;
...
...
@@ -284,12 +285,14 @@ my %globals;
$self
->
{
label
}
=~
s/^___imp_/__imp__/
if
(
$flavour
eq
"
mingw64
");
if
(
defined
(
$self
->
{
index
}))
{
sprintf
"
%s%s(%s,%%%s,%d)
",
$self
->
{
asterisk
}
,
$self
->
{
label
},
sprintf
"
%s%s(%s,%%%s,%d)
%s
"
,
$self
->
{
asterisk
},
$self
->
{
label
},
$self
->
{
base
}?"
%
$self
->{base}
":"",
$self
->
{
index
},
$self
->
{
scale
};
$self
->
{
index
},
$self
->
{
scale
},
$self
->
{
pred
};
}
else
{
sprintf
"
%s%s(%%%s)
",
$self
->
{
asterisk
},
$self
->
{
label
},
$self
->
{
base
};
sprintf
"
%s%s(%%%s)%s
",
$self
->
{
asterisk
},
$self
->
{
label
},
$self
->
{
base
},
$self
->
{
pred
};
}
}
else
{
my
%szmap
=
(
b
=>
"
BYTE
$PTR
",
w
=>
"
WORD
$PTR
",
...
...
@@ -308,17 +311,20 @@ my %globals;
(
$mnemonic
=~
/^vpbroadcast([qdwb])$/
)
&&
(
$sz
=
$
1
)
||
(
$mnemonic
=~
/^v(?!perm)[a-z]+[fi]128$/
)
&&
(
$sz
=
"
x
");
$self
->
{
pred
}
=~
s/%(k[0-7])/$1/
;
if
(
defined
(
$self
->
{
index
}))
{
sprintf
"
%s[%s%s*%d%s]
",
$szmap
{
$sz
},
sprintf
"
%s[%s%s*%d%s]
%s
",
$szmap
{
$sz
},
$self
->
{
label
}?"
$self
->{label}+
":"",
$self
->
{
index
},
$self
->
{
scale
},
$self
->
{
base
}?"
+
$self
->{base}
":"";
$self
->
{
base
}?"
+
$self
->{base}
":"",
$self
->
{
pred
};
}
elsif
(
$self
->
{
base
}
eq
"
rip
")
{
sprintf
"
%s[%s]
",
$szmap
{
$sz
},
$self
->
{
label
};
}
else
{
sprintf
"
%s[%s%s]
",
$szmap
{
$sz
},
sprintf
"
%s[%s%s]
%s
",
$szmap
{
$sz
},
$self
->
{
label
}?"
$self
->{label}+
":"",
$self
->
{
base
};
$self
->
{
base
}
,
$self
->
{
pred
}
;
}
}
}
...
...
@@ -330,10 +336,11 @@ my %globals;
my
$ret
;
# optional * ----vvv--- appears in indirect jmp/call
if
(
$$line
=~
/^(\*?)%(\w+)/
)
{
if
(
$$line
=~
/^(\*?)%(\w+)
((?:{[^}]+})*)
/
)
{
bless
$self
,
$class
;
$self
->
{
asterisk
}
=
$
1
;
$self
->
{
value
}
=
$
2
;
$self
->
{
pred
}
=
$
3
;
$opcode
->
size
(
$self
->
size
());
$ret
=
$self
;
$$line
=
substr
(
$$line
,
@
+
[
0
]);
$$line
=~
s/^\s+//
;
...
...
@@ -357,8 +364,11 @@ my %globals;
}
sub
out
{
my
$self
=
shift
;
if
(
$gas
)
{
sprintf
"
%s%%%s
",
$self
->
{
asterisk
},
$self
->
{
value
};
}
else
{
$self
->
{
value
};
}
if
(
$gas
)
{
sprintf
"
%s%%%s%s
",
$self
->
{
asterisk
},
$self
->
{
value
},
$self
->
{
pred
};
}
else
{
$self
->
{
pred
}
=~
s/%(k[0-7])/$1/
;
$self
->
{
value
}
.
$self
->
{
pred
};
}
}
}
{
package
label
;
# pick up labels, which end with :
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录