Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
92e4a79b
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看板
提交
92e4a79b
编写于
4月 02, 2012
作者:
N
never
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7157141: crash in 64 bit with corrupted oops
Reviewed-by: kvn, iveresov
上级
9fc44e39
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
20 addition
and
21 deletion
+20
-21
src/cpu/x86/vm/assembler_x86.cpp
src/cpu/x86/vm/assembler_x86.cpp
+4
-2
src/cpu/x86/vm/x86_64.ad
src/cpu/x86/vm/x86_64.ad
+0
-19
src/share/vm/memory/barrierSet.hpp
src/share/vm/memory/barrierSet.hpp
+2
-0
src/share/vm/memory/cardTableModRefBS.cpp
src/share/vm/memory/cardTableModRefBS.cpp
+5
-0
src/share/vm/memory/cardTableModRefBS.hpp
src/share/vm/memory/cardTableModRefBS.hpp
+3
-0
src/share/vm/utilities/vmError.cpp
src/share/vm/utilities/vmError.cpp
+6
-0
未找到文件。
src/cpu/x86/vm/assembler_x86.cpp
浏览文件 @
92e4a79b
...
@@ -528,10 +528,12 @@ address Assembler::locate_operand(address inst, WhichOperand which) {
...
@@ -528,10 +528,12 @@ address Assembler::locate_operand(address inst, WhichOperand which) {
if
(
which
==
end_pc_operand
)
return
ip
+
(
is_64bit
?
8
:
4
);
if
(
which
==
end_pc_operand
)
return
ip
+
(
is_64bit
?
8
:
4
);
// these asserts are somewhat nonsensical
// these asserts are somewhat nonsensical
#ifndef _LP64
#ifndef _LP64
assert
(
which
==
imm_operand
||
which
==
disp32_operand
,
""
);
assert
(
which
==
imm_operand
||
which
==
disp32_operand
,
err_msg
(
"which %d is_64_bit %d ip "
INTPTR_FORMAT
,
which
,
is_64bit
,
ip
));
#else
#else
assert
((
which
==
call32_operand
||
which
==
imm_operand
)
&&
is_64bit
||
assert
((
which
==
call32_operand
||
which
==
imm_operand
)
&&
is_64bit
||
which
==
narrow_oop_operand
&&
!
is_64bit
,
""
);
which
==
narrow_oop_operand
&&
!
is_64bit
,
err_msg
(
"which %d is_64_bit %d ip "
INTPTR_FORMAT
,
which
,
is_64bit
,
ip
));
#endif // _LP64
#endif // _LP64
return
ip
;
return
ip
;
...
...
src/cpu/x86/vm/x86_64.ad
浏览文件 @
92e4a79b
...
@@ -3369,15 +3369,6 @@ operand immP0()
...
@@ -3369,15 +3369,6 @@ operand immP0()
interface(CONST_INTER);
interface(CONST_INTER);
%}
%}
operand immP_poll() %{
predicate(n->get_ptr() != 0 && n->get_ptr() == (intptr_t)os::get_polling_page());
match(ConP);
// formats are generated automatically for constants and base registers
format %{ %}
interface(CONST_INTER);
%}
// Pointer Immediate
// Pointer Immediate
operand immN() %{
operand immN() %{
match(ConN);
match(ConN);
...
@@ -5726,16 +5717,6 @@ instruct loadConP0(rRegP dst, immP0 src, rFlagsReg cr)
...
@@ -5726,16 +5717,6 @@ instruct loadConP0(rRegP dst, immP0 src, rFlagsReg cr)
ins_pipe(ialu_reg);
ins_pipe(ialu_reg);
%}
%}
instruct loadConP_poll(rRegP dst, immP_poll src) %{
match(Set dst src);
format %{ "movq $dst, $src\t!ptr" %}
ins_encode %{
AddressLiteral polling_page(os::get_polling_page(), relocInfo::poll_type);
__ lea($dst$$Register, polling_page);
%}
ins_pipe(ialu_reg_fat);
%}
instruct loadConP31(rRegP dst, immP31 src, rFlagsReg cr)
instruct loadConP31(rRegP dst, immP31 src, rFlagsReg cr)
%{
%{
match(Set dst src);
match(Set dst src);
...
...
src/share/vm/memory/barrierSet.hpp
浏览文件 @
92e4a79b
...
@@ -181,6 +181,8 @@ public:
...
@@ -181,6 +181,8 @@ public:
// within the heap, this function tells whether they are met.
// within the heap, this function tells whether they are met.
virtual
bool
is_aligned
(
HeapWord
*
addr
)
=
0
;
virtual
bool
is_aligned
(
HeapWord
*
addr
)
=
0
;
// Print a description of the memory for the barrier set
virtual
void
print_on
(
outputStream
*
st
)
const
=
0
;
};
};
#endif // SHARE_VM_MEMORY_BARRIERSET_HPP
#endif // SHARE_VM_MEMORY_BARRIERSET_HPP
src/share/vm/memory/cardTableModRefBS.cpp
浏览文件 @
92e4a79b
...
@@ -711,6 +711,11 @@ void CardTableModRefBS::verify_dirty_region(MemRegion mr) {
...
@@ -711,6 +711,11 @@ void CardTableModRefBS::verify_dirty_region(MemRegion mr) {
}
}
#endif
#endif
void
CardTableModRefBS
::
print_on
(
outputStream
*
st
)
const
{
st
->
print_cr
(
"Card table byte_map: ["
INTPTR_FORMAT
","
INTPTR_FORMAT
"] byte_map_base: "
INTPTR_FORMAT
,
_byte_map
,
_byte_map
+
_byte_map_size
,
byte_map_base
);
}
bool
CardTableModRefBSForCTRS
::
card_will_be_scanned
(
jbyte
cv
)
{
bool
CardTableModRefBSForCTRS
::
card_will_be_scanned
(
jbyte
cv
)
{
return
return
CardTableModRefBS
::
card_will_be_scanned
(
cv
)
||
CardTableModRefBS
::
card_will_be_scanned
(
cv
)
||
...
...
src/share/vm/memory/cardTableModRefBS.hpp
浏览文件 @
92e4a79b
...
@@ -472,6 +472,9 @@ public:
...
@@ -472,6 +472,9 @@ public:
return
_byte_map
+
card_index
;
return
_byte_map
+
card_index
;
}
}
// Print a description of the memory for the barrier set
virtual
void
print_on
(
outputStream
*
st
)
const
;
void
verify
();
void
verify
();
void
verify_guard
();
void
verify_guard
();
...
...
src/share/vm/utilities/vmError.cpp
浏览文件 @
92e4a79b
...
@@ -685,6 +685,12 @@ void VMError::report(outputStream* st) {
...
@@ -685,6 +685,12 @@ void VMError::report(outputStream* st) {
// extended (i.e., more detailed) version.
// extended (i.e., more detailed) version.
Universe
::
print_on
(
st
,
true
/* extended */
);
Universe
::
print_on
(
st
,
true
/* extended */
);
st
->
cr
();
st
->
cr
();
Universe
::
heap
()
->
barrier_set
()
->
print_on
(
st
);
st
->
cr
();
st
->
print_cr
(
"Polling page: "
INTPTR_FORMAT
,
os
::
get_polling_page
());
st
->
cr
();
}
}
STEP
(
195
,
"(printing code cache information)"
)
STEP
(
195
,
"(printing code cache information)"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录