Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
c3544ce3
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看板
提交
c3544ce3
编写于
10月 29, 2016
作者:
P
poonam
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8140584: nmethod::oops_do_marking_epilogue always runs verification code
Reviewed-by: stefank
上级
ed613285
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
13 addition
and
13 deletion
+13
-13
src/cpu/ppc/vm/relocInfo_ppc.cpp
src/cpu/ppc/vm/relocInfo_ppc.cpp
+1
-1
src/cpu/sparc/vm/nativeInst_sparc.cpp
src/cpu/sparc/vm/nativeInst_sparc.cpp
+1
-1
src/cpu/sparc/vm/relocInfo_sparc.cpp
src/cpu/sparc/vm/relocInfo_sparc.cpp
+5
-5
src/cpu/x86/vm/relocInfo_x86.cpp
src/cpu/x86/vm/relocInfo_x86.cpp
+5
-5
src/share/vm/code/nmethod.cpp
src/share/vm/code/nmethod.cpp
+1
-1
未找到文件。
src/cpu/ppc/vm/relocInfo_ppc.cpp
浏览文件 @
c3544ce3
...
...
@@ -62,7 +62,7 @@ void Relocation::pd_set_data_value(address x, intptr_t o, bool verify_only) {
nativeMovConstReg_at
(
addr
())
->
set_narrow_oop
(
no
,
code
());
}
}
else
{
assert
((
address
)
(
nativeMovConstReg_at
(
addr
())
->
data
())
==
x
,
"data must match"
);
guarantee
((
address
)
(
nativeMovConstReg_at
(
addr
())
->
data
())
==
x
,
"data must match"
);
}
}
...
...
src/cpu/sparc/vm/nativeInst_sparc.cpp
浏览文件 @
c3544ce3
...
...
@@ -64,7 +64,7 @@ void NativeInstruction::verify_data64_sethi(address instaddr, intptr_t x) {
masm
.
patchable_sethi
(
x
,
destreg
);
int
len
=
buffer
-
masm
.
pc
();
for
(
int
i
=
0
;
i
<
len
;
i
++
)
{
assert
(
instaddr
[
i
]
==
buffer
[
i
],
"instructions must match"
);
guarantee
(
instaddr
[
i
]
==
buffer
[
i
],
"instructions must match"
);
}
}
...
...
src/cpu/sparc/vm/relocInfo_sparc.cpp
浏览文件 @
c3544ce3
...
...
@@ -83,7 +83,7 @@ void Relocation::pd_set_data_value(address x, intptr_t o, bool verify_only) {
inst
&=
~
Assembler
::
simm
(
-
1
,
13
);
inst
|=
Assembler
::
simm
(
simm13
,
13
);
if
(
verify_only
)
{
assert
(
ip
->
long_at
(
0
)
==
inst
,
"instructions must match"
);
guarantee
(
ip
->
long_at
(
0
)
==
inst
,
"instructions must match"
);
}
else
{
ip
->
set_long_at
(
0
,
inst
);
}
...
...
@@ -101,15 +101,15 @@ void Relocation::pd_set_data_value(address x, intptr_t o, bool verify_only) {
inst
&=
~
Assembler
::
hi22
(
-
1
);
inst
|=
Assembler
::
hi22
((
intptr_t
)
np
);
if
(
verify_only
)
{
assert
(
ip
->
long_at
(
0
)
==
inst
,
"instructions must match"
);
guarantee
(
ip
->
long_at
(
0
)
==
inst
,
"instructions must match"
);
}
else
{
ip
->
set_long_at
(
0
,
inst
);
}
inst2
=
ip
->
long_at
(
NativeInstruction
::
nop_instruction_size
);
guarantee
(
Assembler
::
inv_op
(
inst2
)
==
Assembler
::
arith_op
,
"arith op"
);
if
(
verify_only
)
{
assert
(
ip
->
long_at
(
NativeInstruction
::
nop_instruction_size
)
==
NativeInstruction
::
set_data32_simm13
(
inst2
,
(
intptr_t
)
np
),
"instructions must match"
);
guarantee
(
ip
->
long_at
(
NativeInstruction
::
nop_instruction_size
)
==
NativeInstruction
::
set_data32_simm13
(
inst2
,
(
intptr_t
)
np
),
"instructions must match"
);
}
else
{
ip
->
set_long_at
(
NativeInstruction
::
nop_instruction_size
,
NativeInstruction
::
set_data32_simm13
(
inst2
,
(
intptr_t
)
np
));
}
...
...
@@ -126,7 +126,7 @@ void Relocation::pd_set_data_value(address x, intptr_t o, bool verify_only) {
inst
|=
Assembler
::
hi22
((
intptr_t
)
x
);
// (ignore offset; it doesn't play into the sethi)
if
(
verify_only
)
{
assert
(
ip
->
long_at
(
0
)
==
inst
,
"instructions must match"
);
guarantee
(
ip
->
long_at
(
0
)
==
inst
,
"instructions must match"
);
}
else
{
ip
->
set_long_at
(
0
,
inst
);
}
...
...
src/cpu/x86/vm/relocInfo_x86.cpp
浏览文件 @
c3544ce3
...
...
@@ -40,7 +40,7 @@ void Relocation::pd_set_data_value(address x, intptr_t o, bool verify_only) {
which
==
Assembler
::
imm_operand
,
"format unpacks ok"
);
if
(
which
==
Assembler
::
imm_operand
)
{
if
(
verify_only
)
{
assert
(
*
pd_address_in_code
()
==
x
,
"instructions must match"
);
guarantee
(
*
pd_address_in_code
()
==
x
,
"instructions must match"
);
}
else
{
*
pd_address_in_code
()
=
x
;
}
...
...
@@ -49,13 +49,13 @@ void Relocation::pd_set_data_value(address x, intptr_t o, bool verify_only) {
// both compressed oops and compressed classes look the same
if
(
Universe
::
heap
()
->
is_in_reserved
((
oop
)
x
))
{
if
(
verify_only
)
{
assert
(
*
(
uint32_t
*
)
disp
==
oopDesc
::
encode_heap_oop
((
oop
)
x
),
"instructions must match"
);
guarantee
(
*
(
uint32_t
*
)
disp
==
oopDesc
::
encode_heap_oop
((
oop
)
x
),
"instructions must match"
);
}
else
{
*
(
int32_t
*
)
disp
=
oopDesc
::
encode_heap_oop
((
oop
)
x
);
}
}
else
{
if
(
verify_only
)
{
assert
(
*
(
uint32_t
*
)
disp
==
Klass
::
encode_klass
((
Klass
*
)
x
),
"instructions must match"
);
guarantee
(
*
(
uint32_t
*
)
disp
==
Klass
::
encode_klass
((
Klass
*
)
x
),
"instructions must match"
);
}
else
{
*
(
int32_t
*
)
disp
=
Klass
::
encode_klass
((
Klass
*
)
x
);
}
...
...
@@ -66,14 +66,14 @@ void Relocation::pd_set_data_value(address x, intptr_t o, bool verify_only) {
address
disp
=
Assembler
::
locate_operand
(
ip
,
which
);
address
next_ip
=
Assembler
::
locate_next_instruction
(
ip
);
if
(
verify_only
)
{
assert
(
*
(
int32_t
*
)
disp
==
(
x
-
next_ip
),
"instructions must match"
);
guarantee
(
*
(
int32_t
*
)
disp
==
(
x
-
next_ip
),
"instructions must match"
);
}
else
{
*
(
int32_t
*
)
disp
=
x
-
next_ip
;
}
}
#else
if
(
verify_only
)
{
assert
(
*
pd_address_in_code
()
==
(
x
+
o
),
"instructions must match"
);
guarantee
(
*
pd_address_in_code
()
==
(
x
+
o
),
"instructions must match"
);
}
else
{
*
pd_address_in_code
()
=
x
+
o
;
}
...
...
src/share/vm/code/nmethod.cpp
浏览文件 @
c3544ce3
...
...
@@ -2290,7 +2290,7 @@ void nmethod::oops_do_marking_epilogue() {
assert
(
cur
!=
NULL
,
"not NULL-terminated"
);
nmethod
*
next
=
cur
->
_oops_do_mark_link
;
cur
->
_oops_do_mark_link
=
NULL
;
cur
->
verify_oop_relocations
(
);
DEBUG_ONLY
(
cur
->
verify_oop_relocations
()
);
NOT_PRODUCT
(
if
(
TraceScavenge
)
cur
->
print_on
(
tty
,
"oops_do, unmark"
));
cur
=
next
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录