Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
e715e53b
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看板
提交
e715e53b
编写于
2月 10, 2012
作者:
B
bpittore
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
0f222ff2
52374d26
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
15 addition
and
10 deletion
+15
-10
src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
+1
-1
src/cpu/x86/vm/c1_CodeStubs_x86.cpp
src/cpu/x86/vm/c1_CodeStubs_x86.cpp
+1
-1
src/share/vm/oops/instanceKlass.hpp
src/share/vm/oops/instanceKlass.hpp
+7
-3
src/share/vm/opto/library_call.cpp
src/share/vm/opto/library_call.cpp
+1
-3
src/share/vm/runtime/vmStructs.cpp
src/share/vm/runtime/vmStructs.cpp
+1
-1
src/share/vm/utilities/xmlstream.cpp
src/share/vm/utilities/xmlstream.cpp
+4
-1
未找到文件。
src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
浏览文件 @
e715e53b
...
...
@@ -472,7 +472,7 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) {
__
load_klass
(
src_reg
,
tmp_reg
);
Address
ref_type_adr
(
tmp_reg
,
instanceKlass
::
reference_type_offset
());
__
ld
(
ref_type_adr
,
tmp_reg
);
__
ld
ub
(
ref_type_adr
,
tmp_reg
);
// _reference_type field is of type ReferenceType (enum)
assert
(
REF_NONE
==
0
,
"check this code"
);
...
...
src/cpu/x86/vm/c1_CodeStubs_x86.cpp
浏览文件 @
e715e53b
...
...
@@ -520,7 +520,7 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) {
__
load_klass
(
tmp_reg
,
src_reg
);
Address
ref_type_adr
(
tmp_reg
,
instanceKlass
::
reference_type_offset
());
__
cmp
l
(
ref_type_adr
,
REF_NONE
);
__
cmp
b
(
ref_type_adr
,
REF_NONE
);
__
jcc
(
Assembler
::
equal
,
_continuation
);
// Is marking active?
...
...
src/share/vm/oops/instanceKlass.hpp
浏览文件 @
e715e53b
...
...
@@ -240,7 +240,6 @@ class instanceKlass: public Klass {
Thread
*
_init_thread
;
// Pointer to current thread doing initialization (to handle recusive initialization)
int
_vtable_len
;
// length of Java vtable (in words)
int
_itable_len
;
// length of Java itable (in words)
ReferenceType
_reference_type
;
// reference type
OopMapCache
*
volatile
_oop_map_cache
;
// OopMapCache for all methods in the klass (allocated lazily)
JNIid
*
_jni_ids
;
// First JNI identifier for static fields in this class
jmethodID
*
_methods_jmethod_ids
;
// jmethodIDs corresponding to method_idnum, or NULL if none
...
...
@@ -265,6 +264,8 @@ class instanceKlass: public Klass {
// _idnum_allocated_count.
u1
_init_state
;
// state of class
u1
_reference_type
;
// reference type
// embedded Java vtable follows here
// embedded Java itables follows here
// embedded static fields follows here
...
...
@@ -407,8 +408,11 @@ class instanceKlass: public Klass {
void
eager_initialize
(
Thread
*
thread
);
// reference type
ReferenceType
reference_type
()
const
{
return
_reference_type
;
}
void
set_reference_type
(
ReferenceType
t
)
{
_reference_type
=
t
;
}
ReferenceType
reference_type
()
const
{
return
(
ReferenceType
)
_reference_type
;
}
void
set_reference_type
(
ReferenceType
t
)
{
assert
(
t
==
(
u1
)
t
,
"overflow"
);
_reference_type
=
(
u1
)
t
;
}
static
ByteSize
reference_type_offset
()
{
return
in_ByteSize
(
sizeof
(
klassOopDesc
)
+
offset_of
(
instanceKlass
,
_reference_type
));
}
...
...
src/share/vm/opto/library_call.cpp
浏览文件 @
e715e53b
...
...
@@ -2153,7 +2153,7 @@ void LibraryCallKit::insert_g1_pre_barrier(Node* base_oop, Node* offset, Node* p
//
// if (offset == java_lang_ref_Reference::_reference_offset) {
// if (base != null) {
// if (
klass(base)->reference_type() != REF_NONE
)) {
// if (
instance_of(base, java.lang.ref.Reference
)) {
// pre_barrier(_, pre_val, ...);
// }
// }
...
...
@@ -2165,8 +2165,6 @@ void LibraryCallKit::insert_g1_pre_barrier(Node* base_oop, Node* offset, Node* p
IdealKit
ideal
(
this
);
#define __ ideal.
const
int
reference_type_offset
=
in_bytes
(
instanceKlass
::
reference_type_offset
());
Node
*
referent_off
=
__
ConX
(
java_lang_ref_Reference
::
referent_offset
);
__
if_then
(
offset
,
BoolTest
::
eq
,
referent_off
,
unlikely
);
{
...
...
src/share/vm/runtime/vmStructs.cpp
浏览文件 @
e715e53b
...
...
@@ -314,7 +314,7 @@ static inline uint64_t cast_uint64_t(size_t x)
nonstatic_field(instanceKlass, _init_thread, Thread*) \
nonstatic_field(instanceKlass, _vtable_len, int) \
nonstatic_field(instanceKlass, _itable_len, int) \
nonstatic_field(instanceKlass, _reference_type,
ReferenceType)
\
nonstatic_field(instanceKlass, _reference_type,
u1)
\
volatile_nonstatic_field(instanceKlass, _oop_map_cache, OopMapCache*) \
nonstatic_field(instanceKlass, _jni_ids, JNIid*) \
nonstatic_field(instanceKlass, _osr_nmethods_head, nmethod*) \
...
...
src/share/vm/utilities/xmlstream.cpp
浏览文件 @
e715e53b
...
...
@@ -192,8 +192,11 @@ void xmlStream::pop_tag(const char* tag) {
_element_close_stack_ptr
=
cur_tag
+
strlen
(
cur_tag
)
+
1
;
_element_depth
-=
1
;
}
if
(
bad_tag
&&
!
VMThread
::
should_terminate
()
&&
!
is_error_reported
())
if
(
bad_tag
&&
!
VMThread
::
should_terminate
()
&&
!
VM_Exit
::
vm_exited
()
&&
!
is_error_reported
())
{
assert
(
false
,
"bad tag in log"
);
}
}
#endif
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录