Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
d2da833b
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看板
提交
d2da833b
编写于
1月 11, 2011
作者:
P
phh
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
61c15a46
ff522846
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
14 addition
and
15 deletion
+14
-15
src/cpu/sparc/vm/assembler_sparc.cpp
src/cpu/sparc/vm/assembler_sparc.cpp
+5
-10
src/cpu/sparc/vm/assembler_sparc.hpp
src/cpu/sparc/vm/assembler_sparc.hpp
+2
-1
src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp
src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp
+3
-1
src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
+2
-2
src/cpu/sparc/vm/templateTable_sparc.cpp
src/cpu/sparc/vm/templateTable_sparc.cpp
+2
-1
未找到文件。
src/cpu/sparc/vm/assembler_sparc.cpp
浏览文件 @
d2da833b
...
...
@@ -4104,7 +4104,7 @@ void MacroAssembler::tlab_refill(Label& retry, Label& try_eden, Label& slow_case
ld_ptr
(
G2_thread
,
in_bytes
(
JavaThread
::
tlab_start_offset
()),
t1
);
sub
(
top
,
t1
,
t1
);
// size of tlab's allocated portion
incr_allocated_bytes
(
t1
,
0
,
t2
);
incr_allocated_bytes
(
t1
,
t2
,
t3
);
// refill the tlab with an eden allocation
bind
(
do_refill
);
...
...
@@ -4138,19 +4138,14 @@ void MacroAssembler::tlab_refill(Label& retry, Label& try_eden, Label& slow_case
delayed
()
->
nop
();
}
void
MacroAssembler
::
incr_allocated_bytes
(
Register
var_size_in_bytes
,
int
con_size_in_bytes
,
Register
t1
)
{
void
MacroAssembler
::
incr_allocated_bytes
(
RegisterOrConstant
size_in_bytes
,
Register
t1
,
Register
t2
)
{
// Bump total bytes allocated by this thread
assert
(
t1
->
is_global
(),
"must be global reg"
);
// so all 64 bits are saved on a context switch
assert_different_registers
(
var_size_in_bytes
,
t1
);
assert_different_registers
(
size_in_bytes
.
register_or_noreg
(),
t1
,
t2
);
// v8 support has gone the way of the dodo
ldx
(
G2_thread
,
in_bytes
(
JavaThread
::
allocated_bytes_offset
()),
t1
);
if
(
var_size_in_bytes
->
is_valid
())
{
add
(
t1
,
var_size_in_bytes
,
t1
);
}
else
{
add
(
t1
,
con_size_in_bytes
,
t1
);
}
add
(
t1
,
ensure_simm13_or_reg
(
size_in_bytes
,
t2
),
t1
);
stx
(
t1
,
G2_thread
,
in_bytes
(
JavaThread
::
allocated_bytes_offset
()));
}
...
...
src/cpu/sparc/vm/assembler_sparc.hpp
浏览文件 @
d2da833b
...
...
@@ -2389,7 +2389,8 @@ public:
Label
&
slow_case
// continuation point if fast allocation fails
);
void
tlab_refill
(
Label
&
retry_tlab
,
Label
&
try_eden
,
Label
&
slow_case
);
void
incr_allocated_bytes
(
Register
var_size_in_bytes
,
int
con_size_in_bytes
,
Register
t1
);
void
incr_allocated_bytes
(
RegisterOrConstant
size_in_bytes
,
Register
t1
,
Register
t2
);
// interface method calling
void
lookup_interface_method
(
Register
recv_klass
,
...
...
src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp
浏览文件 @
d2da833b
...
...
@@ -170,11 +170,13 @@ void C1_MacroAssembler::try_allocate(
Register
t2
,
// temp register
Label
&
slow_case
// continuation point if fast allocation fails
)
{
RegisterOrConstant
size_in_bytes
=
var_size_in_bytes
->
is_valid
()
?
RegisterOrConstant
(
var_size_in_bytes
)
:
RegisterOrConstant
(
con_size_in_bytes
);
if
(
UseTLAB
)
{
tlab_allocate
(
obj
,
var_size_in_bytes
,
con_size_in_bytes
,
t1
,
slow_case
);
}
else
{
eden_allocate
(
obj
,
var_size_in_bytes
,
con_size_in_bytes
,
t1
,
t2
,
slow_case
);
incr_allocated_bytes
(
var_size_in_bytes
,
con_size_in_bytes
,
t1
);
incr_allocated_bytes
(
size_in_bytes
,
t1
,
t2
);
}
}
...
...
src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
浏览文件 @
d2da833b
...
...
@@ -461,7 +461,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
// get the instance size
__
ld
(
G5_klass
,
klassOopDesc
::
header_size
()
*
HeapWordSize
+
Klass
::
layout_helper_offset_in_bytes
(),
G1_obj_size
);
__
eden_allocate
(
O0_obj
,
G1_obj_size
,
0
,
G3_t1
,
G4_t2
,
slow_path
);
__
incr_allocated_bytes
(
G1_obj_size
,
0
,
G3_t1
);
__
incr_allocated_bytes
(
G1_obj_size
,
G3_t1
,
G4_t2
);
__
initialize_object
(
O0_obj
,
G5_klass
,
G1_obj_size
,
0
,
G3_t1
,
G4_t2
);
__
verify_oop
(
O0_obj
);
...
...
@@ -577,7 +577,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
__
and3
(
G1_arr_size
,
~
MinObjAlignmentInBytesMask
,
G1_arr_size
);
__
eden_allocate
(
O0_obj
,
G1_arr_size
,
0
,
G3_t1
,
O1_t2
,
slow_path
);
// preserves G1_arr_size
__
incr_allocated_bytes
(
G1_arr_size
,
0
,
G3_t1
);
__
incr_allocated_bytes
(
G1_arr_size
,
G3_t1
,
O1_t2
);
__
initialize_header
(
O0_obj
,
G5_klass
,
G4_length
,
G3_t1
,
O1_t2
);
__
ldub
(
klass_lh
,
G3_t1
,
klass_lh_header_size_offset
);
...
...
src/cpu/sparc/vm/templateTable_sparc.cpp
浏览文件 @
d2da833b
...
...
@@ -3447,7 +3447,8 @@ void TemplateTable::_new() {
__
delayed
()
->
nop
();
// bump total bytes allocated by this thread
__
incr_allocated_bytes
(
Roffset
,
0
,
G1_scratch
);
// RoldTopValue and RtopAddr are dead, so can use G1 and G3
__
incr_allocated_bytes
(
Roffset
,
G1_scratch
,
G3_scratch
);
}
if
(
UseTLAB
||
Universe
::
heap
()
->
supports_inline_contig_alloc
())
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录