Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
362dc77f
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看板
提交
362dc77f
编写于
4月 25, 2013
作者:
B
bharadwaj
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
cfa42ff8
df2895a3
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
79 addition
and
12 deletion
+79
-12
src/cpu/x86/vm/templateInterpreter_x86_32.cpp
src/cpu/x86/vm/templateInterpreter_x86_32.cpp
+1
-1
src/cpu/x86/vm/templateInterpreter_x86_64.cpp
src/cpu/x86/vm/templateInterpreter_x86_64.cpp
+1
-1
src/cpu/x86/vm/x86_64.ad
src/cpu/x86/vm/x86_64.ad
+1
-7
src/share/vm/c1/c1_RangeCheckElimination.cpp
src/share/vm/c1/c1_RangeCheckElimination.cpp
+8
-3
test/compiler/8011901/Test8011901.java
test/compiler/8011901/Test8011901.java
+68
-0
未找到文件。
src/cpu/x86/vm/templateInterpreter_x86_32.cpp
浏览文件 @
362dc77f
...
...
@@ -360,7 +360,7 @@ void InterpreterGenerator::generate_counter_incr(Label* overflow, Label* profile
const
Address
mdo_invocation_counter
(
rax
,
in_bytes
(
MethodData
::
invocation_counter_offset
())
+
in_bytes
(
InvocationCounter
::
counter_offset
()));
__
increment_mask_and_jump
(
mdo_invocation_counter
,
increment
,
mask
,
rcx
,
false
,
Assembler
::
zero
,
overflow
);
__
jmp
b
(
done
);
__
jmp
(
done
);
}
__
bind
(
no_mdo
);
// Increment counter in MethodCounters
...
...
src/cpu/x86/vm/templateInterpreter_x86_64.cpp
浏览文件 @
362dc77f
...
...
@@ -315,7 +315,7 @@ void InterpreterGenerator::generate_counter_incr(
const
Address
mdo_invocation_counter
(
rax
,
in_bytes
(
MethodData
::
invocation_counter_offset
())
+
in_bytes
(
InvocationCounter
::
counter_offset
()));
__
increment_mask_and_jump
(
mdo_invocation_counter
,
increment
,
mask
,
rcx
,
false
,
Assembler
::
zero
,
overflow
);
__
jmp
b
(
done
);
__
jmp
(
done
);
}
__
bind
(
no_mdo
);
// Increment counter in MethodCounters
...
...
src/cpu/x86/vm/x86_64.ad
浏览文件 @
362dc77f
...
...
@@ -2222,12 +2222,6 @@ encode %{
$$$emit32$src$$constant;
%}
enc_class Con64(immL src)
%{
// Output immediate
emit_d64($src$$constant);
%}
enc_class Con32F_as_bits(immF src)
%{
// Output Float immediate bits
...
...
@@ -7608,7 +7602,7 @@ instruct xaddI( memory mem, rRegI newval, rFlagsReg cr) %{
ins_pipe( pipe_cmpxchg );
%}
instruct xaddL_no_res( memory mem, Universe dummy, immL add, rFlagsReg cr) %{
instruct xaddL_no_res( memory mem, Universe dummy, immL
32
add, rFlagsReg cr) %{
predicate(n->as_LoadStore()->result_not_used());
match(Set dummy (GetAndAddL mem add));
effect(KILL cr);
...
...
src/share/vm/c1/c1_RangeCheckElimination.cpp
浏览文件 @
362dc77f
...
...
@@ -459,7 +459,7 @@ void RangeCheckEliminator::in_block_motion(BlockBegin *block, AccessIndexedList
// Iterate over all different indices
if
(
_optimistic
)
{
for
(
int
i
=
0
;
i
<
indices
.
length
();
i
++
)
{
for
(
int
i
=
0
;
i
<
indices
.
length
();
i
++
)
{
Instruction
*
index_instruction
=
indices
.
at
(
i
);
AccessIndexedInfo
*
info
=
_access_indexed_info
[
index_instruction
->
id
()];
assert
(
info
!=
NULL
,
"Info must not be null"
);
...
...
@@ -531,9 +531,7 @@ void RangeCheckEliminator::in_block_motion(BlockBegin *block, AccessIndexedList
remove_range_check
(
ai
);
}
}
_access_indexed_info
[
index_instruction
->
id
()]
=
NULL
;
}
indices
.
clear
();
if
(
list_constant
.
length
()
>
1
)
{
AccessIndexed
*
first
=
list_constant
.
at
(
0
);
...
...
@@ -560,6 +558,13 @@ void RangeCheckEliminator::in_block_motion(BlockBegin *block, AccessIndexedList
}
}
}
// Clear data structures for next array
for
(
int
i
=
0
;
i
<
indices
.
length
();
i
++
)
{
Instruction
*
index_instruction
=
indices
.
at
(
i
);
_access_indexed_info
[
index_instruction
->
id
()]
=
NULL
;
}
indices
.
clear
();
}
}
...
...
test/compiler/8011901/Test8011901.java
0 → 100644
浏览文件 @
362dc77f
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 8011901
* @summary instruct xaddL_no_res shouldn't allow 64 bit constants.
* @run main/othervm -XX:-BackgroundCompilation Test8011901
*
*/
import
java.lang.reflect.*
;
import
sun.misc.*
;
public
class
Test8011901
{
private
long
ctl
;
private
static
final
sun
.
misc
.
Unsafe
U
;
private
static
final
long
CTL
;
static
{
try
{
Field
unsafe
=
sun
.
misc
.
Unsafe
.
class
.
getDeclaredField
(
"theUnsafe"
);
unsafe
.
setAccessible
(
true
);
U
=
(
sun
.
misc
.
Unsafe
)
unsafe
.
get
(
null
);
CTL
=
U
.
objectFieldOffset
(
Test8011901
.
class
.
getDeclaredField
(
"ctl"
));
}
catch
(
Exception
e
)
{
throw
new
Error
(
e
);
}
}
public
static
void
main
(
String
[]
args
)
{
for
(
int
c
=
0
;
c
<
20000
;
c
++)
{
new
Test8011901
().
makeTest
();
}
System
.
out
.
println
(
"Test Passed"
);
}
public
static
final
long
EXPECTED
=
1L
<<
42
;
public
void
makeTest
()
{
U
.
getAndAddLong
(
this
,
CTL
,
EXPECTED
);
if
(
ctl
!=
EXPECTED
)
{
throw
new
RuntimeException
(
"Test failed. Expected: "
+
EXPECTED
+
", but got = "
+
ctl
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录