Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
00c6ab47
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
00c6ab47
编写于
6月 11, 2012
作者:
T
twisti
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7063674: Wrong results from basic comparisons after calls to Long.bitCount(long)
Reviewed-by: kvn
上级
9e24ba9c
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
20 addition
and
11 deletion
+20
-11
src/cpu/x86/vm/x86_32.ad
src/cpu/x86/vm/x86_32.ad
+8
-4
src/cpu/x86/vm/x86_64.ad
src/cpu/x86/vm/x86_64.ad
+12
-7
未找到文件。
src/cpu/x86/vm/x86_32.ad
浏览文件 @
00c6ab47
...
...
@@ -5555,8 +5555,9 @@ instruct bytes_reverse_long(eRegL dst) %{
ins_pipe( ialu_reg_reg);
%}
instruct bytes_reverse_unsigned_short(eRegI dst) %{
instruct bytes_reverse_unsigned_short(eRegI dst
, eFlagsReg cr
) %{
match(Set dst (ReverseBytesUS dst));
effect(KILL cr);
format %{ "BSWAP $dst\n\t"
"SHR $dst,16\n\t" %}
...
...
@@ -5567,8 +5568,9 @@ instruct bytes_reverse_unsigned_short(eRegI dst) %{
ins_pipe( ialu_reg );
%}
instruct bytes_reverse_short(eRegI dst) %{
instruct bytes_reverse_short(eRegI dst
, eFlagsReg cr
) %{
match(Set dst (ReverseBytesS dst));
effect(KILL cr);
format %{ "BSWAP $dst\n\t"
"SAR $dst,16\n\t" %}
...
...
@@ -5729,9 +5731,10 @@ instruct countTrailingZerosL(eRegI dst, eRegL src, eFlagsReg cr) %{
//---------- Population Count Instructions -------------------------------------
instruct popCountI(eRegI dst, eRegI src) %{
instruct popCountI(eRegI dst, eRegI src
, eFlagsReg cr
) %{
predicate(UsePopCountInstruction);
match(Set dst (PopCountI src));
effect(KILL cr);
format %{ "POPCNT $dst, $src" %}
ins_encode %{
...
...
@@ -5740,9 +5743,10 @@ instruct popCountI(eRegI dst, eRegI src) %{
ins_pipe(ialu_reg);
%}
instruct popCountI_mem(eRegI dst, memory mem) %{
instruct popCountI_mem(eRegI dst, memory mem
, eFlagsReg cr
) %{
predicate(UsePopCountInstruction);
match(Set dst (PopCountI (LoadI mem)));
effect(KILL cr);
format %{ "POPCNT $dst, $mem" %}
ins_encode %{
...
...
src/cpu/x86/vm/x86_64.ad
浏览文件 @
00c6ab47
...
...
@@ -6417,14 +6417,14 @@ instruct bytes_reverse_long(rRegL dst) %{
match(Set dst (ReverseBytesL dst));
format %{ "bswapq $dst" %}
opcode(0x0F, 0xC8); /* Opcode 0F /C8 */
ins_encode( REX_reg_wide(dst), OpcP, opc2_reg(dst) );
ins_pipe( ialu_reg);
%}
instruct bytes_reverse_unsigned_short(rRegI dst) %{
instruct bytes_reverse_unsigned_short(rRegI dst
, rFlagsReg cr
) %{
match(Set dst (ReverseBytesUS dst));
effect(KILL cr);
format %{ "bswapl $dst\n\t"
"shrl $dst,16\n\t" %}
...
...
@@ -6435,8 +6435,9 @@ instruct bytes_reverse_unsigned_short(rRegI dst) %{
ins_pipe( ialu_reg );
%}
instruct bytes_reverse_short(rRegI dst) %{
instruct bytes_reverse_short(rRegI dst
, rFlagsReg cr
) %{
match(Set dst (ReverseBytesS dst));
effect(KILL cr);
format %{ "bswapl $dst\n\t"
"sar $dst,16\n\t" %}
...
...
@@ -6564,9 +6565,10 @@ instruct countTrailingZerosL(rRegI dst, rRegL src, rFlagsReg cr) %{
//---------- Population Count Instructions -------------------------------------
instruct popCountI(rRegI dst, rRegI src) %{
instruct popCountI(rRegI dst, rRegI src
, rFlagsReg cr
) %{
predicate(UsePopCountInstruction);
match(Set dst (PopCountI src));
effect(KILL cr);
format %{ "popcnt $dst, $src" %}
ins_encode %{
...
...
@@ -6575,9 +6577,10 @@ instruct popCountI(rRegI dst, rRegI src) %{
ins_pipe(ialu_reg);
%}
instruct popCountI_mem(rRegI dst, memory mem) %{
instruct popCountI_mem(rRegI dst, memory mem
, rFlagsReg cr
) %{
predicate(UsePopCountInstruction);
match(Set dst (PopCountI (LoadI mem)));
effect(KILL cr);
format %{ "popcnt $dst, $mem" %}
ins_encode %{
...
...
@@ -6587,9 +6590,10 @@ instruct popCountI_mem(rRegI dst, memory mem) %{
%}
// Note: Long.bitCount(long) returns an int.
instruct popCountL(rRegI dst, rRegL src) %{
instruct popCountL(rRegI dst, rRegL src
, rFlagsReg cr
) %{
predicate(UsePopCountInstruction);
match(Set dst (PopCountL src));
effect(KILL cr);
format %{ "popcnt $dst, $src" %}
ins_encode %{
...
...
@@ -6599,9 +6603,10 @@ instruct popCountL(rRegI dst, rRegL src) %{
%}
// Note: Long.bitCount(long) returns an int.
instruct popCountL_mem(rRegI dst, memory mem) %{
instruct popCountL_mem(rRegI dst, memory mem
, rFlagsReg cr
) %{
predicate(UsePopCountInstruction);
match(Set dst (PopCountL (LoadL mem)));
effect(KILL cr);
format %{ "popcnt $dst, $mem" %}
ins_encode %{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录