Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
9a94d408
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看板
提交
9a94d408
编写于
9月 19, 2011
作者:
I
iveresov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7091764: Tiered: enable aastore profiling
Summary: Turn on aastore profiling Reviewed-by: jrose, twisti
上级
0f3635ab
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
16 addition
and
7 deletion
+16
-7
src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
+3
-2
src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
+3
-2
src/share/vm/c1/c1_LIR.cpp
src/share/vm/c1/c1_LIR.cpp
+9
-2
src/share/vm/c1/c1_LIR.hpp
src/share/vm/c1/c1_LIR.hpp
+1
-1
未找到文件。
src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
浏览文件 @
9a94d408
...
@@ -328,7 +328,8 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
...
@@ -328,7 +328,8 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
bool
use_length
=
x
->
length
()
!=
NULL
;
bool
use_length
=
x
->
length
()
!=
NULL
;
bool
obj_store
=
x
->
elt_type
()
==
T_ARRAY
||
x
->
elt_type
()
==
T_OBJECT
;
bool
obj_store
=
x
->
elt_type
()
==
T_ARRAY
||
x
->
elt_type
()
==
T_OBJECT
;
bool
needs_store_check
=
obj_store
&&
(
x
->
value
()
->
as_Constant
()
==
NULL
||
bool
needs_store_check
=
obj_store
&&
(
x
->
value
()
->
as_Constant
()
==
NULL
||
!
get_jobject_constant
(
x
->
value
())
->
is_null_object
());
!
get_jobject_constant
(
x
->
value
())
->
is_null_object
()
||
x
->
should_profile
());
LIRItem
array
(
x
->
array
(),
this
);
LIRItem
array
(
x
->
array
(),
this
);
LIRItem
index
(
x
->
index
(),
this
);
LIRItem
index
(
x
->
index
(),
this
);
...
@@ -382,7 +383,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
...
@@ -382,7 +383,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
LIR_Opr
tmp3
=
FrameMap
::
G5_opr
;
LIR_Opr
tmp3
=
FrameMap
::
G5_opr
;
CodeEmitInfo
*
store_check_info
=
new
CodeEmitInfo
(
range_check_info
);
CodeEmitInfo
*
store_check_info
=
new
CodeEmitInfo
(
range_check_info
);
__
store_check
(
value
.
result
(),
array
.
result
(),
tmp1
,
tmp2
,
tmp3
,
store_check_info
);
__
store_check
(
value
.
result
(),
array
.
result
(),
tmp1
,
tmp2
,
tmp3
,
store_check_info
,
x
->
profiled_method
(),
x
->
profiled_bci
()
);
}
}
if
(
obj_store
)
{
if
(
obj_store
)
{
...
...
src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
浏览文件 @
9a94d408
...
@@ -267,7 +267,8 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
...
@@ -267,7 +267,8 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
bool
use_length
=
x
->
length
()
!=
NULL
;
bool
use_length
=
x
->
length
()
!=
NULL
;
bool
obj_store
=
x
->
elt_type
()
==
T_ARRAY
||
x
->
elt_type
()
==
T_OBJECT
;
bool
obj_store
=
x
->
elt_type
()
==
T_ARRAY
||
x
->
elt_type
()
==
T_OBJECT
;
bool
needs_store_check
=
obj_store
&&
(
x
->
value
()
->
as_Constant
()
==
NULL
||
bool
needs_store_check
=
obj_store
&&
(
x
->
value
()
->
as_Constant
()
==
NULL
||
!
get_jobject_constant
(
x
->
value
())
->
is_null_object
());
!
get_jobject_constant
(
x
->
value
())
->
is_null_object
()
||
x
->
should_profile
());
LIRItem
array
(
x
->
array
(),
this
);
LIRItem
array
(
x
->
array
(),
this
);
LIRItem
index
(
x
->
index
(),
this
);
LIRItem
index
(
x
->
index
(),
this
);
...
@@ -321,7 +322,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
...
@@ -321,7 +322,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
LIR_Opr
tmp3
=
new_register
(
objectType
);
LIR_Opr
tmp3
=
new_register
(
objectType
);
CodeEmitInfo
*
store_check_info
=
new
CodeEmitInfo
(
range_check_info
);
CodeEmitInfo
*
store_check_info
=
new
CodeEmitInfo
(
range_check_info
);
__
store_check
(
value
.
result
(),
array
.
result
(),
tmp1
,
tmp2
,
tmp3
,
store_check_info
);
__
store_check
(
value
.
result
(),
array
.
result
(),
tmp1
,
tmp2
,
tmp3
,
store_check_info
,
x
->
profiled_method
(),
x
->
profiled_bci
()
);
}
}
if
(
obj_store
)
{
if
(
obj_store
)
{
...
...
src/share/vm/c1/c1_LIR.cpp
浏览文件 @
9a94d408
...
@@ -1394,8 +1394,15 @@ void LIR_List::instanceof(LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Op
...
@@ -1394,8 +1394,15 @@ void LIR_List::instanceof(LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Op
}
}
void
LIR_List
::
store_check
(
LIR_Opr
object
,
LIR_Opr
array
,
LIR_Opr
tmp1
,
LIR_Opr
tmp2
,
LIR_Opr
tmp3
,
CodeEmitInfo
*
info_for_exception
)
{
void
LIR_List
::
store_check
(
LIR_Opr
object
,
LIR_Opr
array
,
LIR_Opr
tmp1
,
LIR_Opr
tmp2
,
LIR_Opr
tmp3
,
append
(
new
LIR_OpTypeCheck
(
lir_store_check
,
object
,
array
,
tmp1
,
tmp2
,
tmp3
,
info_for_exception
));
CodeEmitInfo
*
info_for_exception
,
ciMethod
*
profiled_method
,
int
profiled_bci
)
{
LIR_OpTypeCheck
*
c
=
new
LIR_OpTypeCheck
(
lir_store_check
,
object
,
array
,
tmp1
,
tmp2
,
tmp3
,
info_for_exception
);
if
(
profiled_method
!=
NULL
)
{
c
->
set_profiled_method
(
profiled_method
);
c
->
set_profiled_bci
(
profiled_bci
);
c
->
set_should_profile
(
true
);
}
append
(
c
);
}
}
...
...
src/share/vm/c1/c1_LIR.hpp
浏览文件 @
9a94d408
...
@@ -2100,7 +2100,7 @@ class LIR_List: public CompilationResourceObj {
...
@@ -2100,7 +2100,7 @@ class LIR_List: public CompilationResourceObj {
void
fpop_raw
()
{
append
(
new
LIR_Op0
(
lir_fpop_raw
));
}
void
fpop_raw
()
{
append
(
new
LIR_Op0
(
lir_fpop_raw
));
}
void
instanceof
(
LIR_Opr
result
,
LIR_Opr
object
,
ciKlass
*
klass
,
LIR_Opr
tmp1
,
LIR_Opr
tmp2
,
LIR_Opr
tmp3
,
bool
fast_check
,
CodeEmitInfo
*
info_for_patch
,
ciMethod
*
profiled_method
,
int
profiled_bci
);
void
instanceof
(
LIR_Opr
result
,
LIR_Opr
object
,
ciKlass
*
klass
,
LIR_Opr
tmp1
,
LIR_Opr
tmp2
,
LIR_Opr
tmp3
,
bool
fast_check
,
CodeEmitInfo
*
info_for_patch
,
ciMethod
*
profiled_method
,
int
profiled_bci
);
void
store_check
(
LIR_Opr
object
,
LIR_Opr
array
,
LIR_Opr
tmp1
,
LIR_Opr
tmp2
,
LIR_Opr
tmp3
,
CodeEmitInfo
*
info_for_exception
);
void
store_check
(
LIR_Opr
object
,
LIR_Opr
array
,
LIR_Opr
tmp1
,
LIR_Opr
tmp2
,
LIR_Opr
tmp3
,
CodeEmitInfo
*
info_for_exception
,
ciMethod
*
profiled_method
,
int
profiled_bci
);
void
checkcast
(
LIR_Opr
result
,
LIR_Opr
object
,
ciKlass
*
klass
,
void
checkcast
(
LIR_Opr
result
,
LIR_Opr
object
,
ciKlass
*
klass
,
LIR_Opr
tmp1
,
LIR_Opr
tmp2
,
LIR_Opr
tmp3
,
bool
fast_check
,
LIR_Opr
tmp1
,
LIR_Opr
tmp2
,
LIR_Opr
tmp3
,
bool
fast_check
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录