Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
84b62679
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看板
提交
84b62679
编写于
1月 19, 2012
作者:
J
jrose
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7111138: delete the obsolete flag -XX:+UseRicochetFrames
Reviewed-by: dholmes, bdelsart, kvn, twisti
上级
40b1343a
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
6 addition
and
144 deletion
+6
-144
src/cpu/sparc/vm/methodHandles_sparc.cpp
src/cpu/sparc/vm/methodHandles_sparc.cpp
+1
-1
src/cpu/x86/vm/methodHandles_x86.cpp
src/cpu/x86/vm/methodHandles_x86.cpp
+2
-2
src/cpu/zero/vm/methodHandles_zero.hpp
src/cpu/zero/vm/methodHandles_zero.hpp
+0
-40
src/share/vm/prims/methodHandles.cpp
src/share/vm/prims/methodHandles.cpp
+3
-55
src/share/vm/prims/methodHandles.hpp
src/share/vm/prims/methodHandles.hpp
+0
-40
src/share/vm/runtime/globals.hpp
src/share/vm/runtime/globals.hpp
+0
-4
src/share/vm/runtime/sharedRuntime.cpp
src/share/vm/runtime/sharedRuntime.cpp
+0
-2
未找到文件。
src/cpu/sparc/vm/methodHandles_sparc.cpp
浏览文件 @
84b62679
...
...
@@ -1045,7 +1045,7 @@ int MethodHandles::adapter_conversion_ops_supported_mask() {
|
(
1
<<
java_lang_invoke_AdapterMethodHandle
::
OP_DROP_ARGS
)
// OP_COLLECT_ARGS is below...
|
(
1
<<
java_lang_invoke_AdapterMethodHandle
::
OP_SPREAD_ARGS
)
|
(
!
UseRicochetFrames
?
0
:
|
(
java_lang_invoke_MethodTypeForm
::
vmlayout_offset_in_bytes
()
<=
0
?
0
:
((
1
<<
java_lang_invoke_AdapterMethodHandle
::
OP_PRIM_TO_REF
)
|
(
1
<<
java_lang_invoke_AdapterMethodHandle
::
OP_COLLECT_ARGS
)
...
...
src/cpu/x86/vm/methodHandles_x86.cpp
浏览文件 @
84b62679
...
...
@@ -1005,7 +1005,7 @@ void trace_method_handle_stub(const char* adaptername,
intptr_t
*
base_sp
=
last_sp
;
typedef
MethodHandles
::
RicochetFrame
RicochetFrame
;
RicochetFrame
*
rfp
=
(
RicochetFrame
*
)((
address
)
saved_bp
-
RicochetFrame
::
sender_link_offset_in_bytes
());
if
(
!
UseRicochetFrames
||
Universe
::
heap
()
->
is_in
((
address
)
rfp
->
saved_args_base
()))
{
if
(
Universe
::
heap
()
->
is_in
((
address
)
rfp
->
saved_args_base
()))
{
// Probably an interpreter frame.
base_sp
=
(
intptr_t
*
)
saved_bp
[
frame
::
interpreter_frame_monitor_block_top_offset
];
}
...
...
@@ -1104,7 +1104,7 @@ int MethodHandles::adapter_conversion_ops_supported_mask() {
|
(
1
<<
java_lang_invoke_AdapterMethodHandle
::
OP_DROP_ARGS
)
//OP_COLLECT_ARGS is below...
|
(
1
<<
java_lang_invoke_AdapterMethodHandle
::
OP_SPREAD_ARGS
)
|
(
!
UseRicochetFrames
?
0
:
|
(
java_lang_invoke_MethodTypeForm
::
vmlayout_offset_in_bytes
()
<=
0
?
0
:
((
1
<<
java_lang_invoke_AdapterMethodHandle
::
OP_PRIM_TO_REF
)
|
(
1
<<
java_lang_invoke_AdapterMethodHandle
::
OP_COLLECT_ARGS
)
...
...
src/cpu/zero/vm/methodHandles_zero.hpp
浏览文件 @
84b62679
...
...
@@ -29,43 +29,3 @@ enum /* platform_dependent_constants */ {
adapter_code_size
=
0
};
#define TARGET_ARCH_NYI_6939861 1
// ..#ifdef TARGET_ARCH_NYI_6939861
// .. // Here are some backward compatible declarations until the 6939861 ports are updated.
// .. #define _adapter_flyby (_EK_LIMIT + 10)
// .. #define _adapter_ricochet (_EK_LIMIT + 11)
// .. #define _adapter_opt_spread_1 _adapter_opt_spread_1_ref
// .. #define _adapter_opt_spread_more _adapter_opt_spread_ref
// .. enum {
// .. _INSERT_NO_MASK = -1,
// .. _INSERT_REF_MASK = 0,
// .. _INSERT_INT_MASK = 1,
// .. _INSERT_LONG_MASK = 3
// .. };
// .. static void get_ek_bound_mh_info(EntryKind ek, BasicType& arg_type, int& arg_mask, int& arg_slots) {
// .. arg_type = ek_bound_mh_arg_type(ek);
// .. arg_mask = 0;
// .. arg_slots = type2size[arg_type];;
// .. }
// .. static void get_ek_adapter_opt_swap_rot_info(EntryKind ek, int& swap_bytes, int& rotate) {
// .. int swap_slots = ek_adapter_opt_swap_slots(ek);
// .. rotate = ek_adapter_opt_swap_mode(ek);
// .. swap_bytes = swap_slots * Interpreter::stackElementSize;
// .. }
// .. static int get_ek_adapter_opt_spread_info(EntryKind ek) {
// .. return ek_adapter_opt_spread_count(ek);
// .. }
// ..
// .. static void insert_arg_slots(MacroAssembler* _masm,
// .. RegisterOrConstant arg_slots,
// .. int arg_mask,
// .. Register argslot_reg,
// .. Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
// ..
// .. static void remove_arg_slots(MacroAssembler* _masm,
// .. RegisterOrConstant arg_slots,
// .. Register argslot_reg,
// .. Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
// ..
// .. static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN;
// ..#endif //TARGET_ARCH_NYI_6939861
src/share/vm/prims/methodHandles.cpp
浏览文件 @
84b62679
...
...
@@ -194,9 +194,6 @@ bool MethodHandles::spot_check_entry_names() {
// MethodHandles::generate_adapters
//
void
MethodHandles
::
generate_adapters
()
{
#ifdef TARGET_ARCH_NYI_6939861
if
(
FLAG_IS_DEFAULT
(
UseRicochetFrames
))
UseRicochetFrames
=
false
;
#endif
if
(
!
EnableInvokeDynamic
||
SystemDictionary
::
MethodHandle_klass
()
==
NULL
)
return
;
assert
(
_adapter_code
==
NULL
,
"generate only once"
);
...
...
@@ -230,18 +227,6 @@ void MethodHandlesAdapterGenerator::generate() {
}
#ifdef TARGET_ARCH_NYI_6939861
// these defs belong in methodHandles_<arch>.cpp
frame
MethodHandles
::
ricochet_frame_sender
(
const
frame
&
fr
,
RegisterMap
*
map
)
{
ShouldNotCallThis
();
return
fr
;
}
void
MethodHandles
::
ricochet_frame_oops_do
(
const
frame
&
fr
,
OopClosure
*
f
,
const
RegisterMap
*
reg_map
)
{
ShouldNotCallThis
();
}
#endif //TARGET_ARCH_NYI_6939861
//------------------------------------------------------------------------------
// MethodHandles::ek_supported
//
...
...
@@ -251,28 +236,11 @@ bool MethodHandles::ek_supported(MethodHandles::EntryKind ek) {
case
_adapter_unused_13
:
return
false
;
// not defined yet
case
_adapter_prim_to_ref
:
return
UseRicochetFrames
&&
conv_op_supported
(
java_lang_invoke_AdapterMethodHandle
::
OP_PRIM_TO_REF
);
return
conv_op_supported
(
java_lang_invoke_AdapterMethodHandle
::
OP_PRIM_TO_REF
);
case
_adapter_collect_args
:
return
UseRicochetFrames
&&
conv_op_supported
(
java_lang_invoke_AdapterMethodHandle
::
OP_COLLECT_ARGS
);
return
conv_op_supported
(
java_lang_invoke_AdapterMethodHandle
::
OP_COLLECT_ARGS
);
case
_adapter_fold_args
:
return
UseRicochetFrames
&&
conv_op_supported
(
java_lang_invoke_AdapterMethodHandle
::
OP_FOLD_ARGS
);
case
_adapter_opt_return_any
:
return
UseRicochetFrames
;
#ifdef TARGET_ARCH_NYI_6939861
// ports before 6939861 supported only three kinds of spread ops
case
_adapter_spread_args
:
// restrict spreads to three kinds:
switch
(
ek
)
{
case
_adapter_opt_spread_0
:
case
_adapter_opt_spread_1
:
case
_adapter_opt_spread_more
:
break
;
default:
return
false
;
break
;
}
break
;
#endif //TARGET_ARCH_NYI_6939861
return
conv_op_supported
(
java_lang_invoke_AdapterMethodHandle
::
OP_FOLD_ARGS
);
}
return
true
;
}
...
...
@@ -1988,9 +1956,6 @@ void MethodHandles::verify_AdapterMethodHandle(Handle mh, int argnum, TRAPS) {
case
_adapter_prim_to_ref
:
// boxer MH to use
case
_adapter_collect_args
:
// method handle which collects the args
case
_adapter_fold_args
:
// method handle which collects the args
if
(
!
UseRicochetFrames
)
{
{
err
=
"box/collect/fold operators are not supported"
;
break
;
}
}
if
(
!
java_lang_invoke_MethodHandle
::
is_instance
(
argument
()))
{
err
=
"MethodHandle adapter argument required"
;
break
;
}
arg_mtype
=
Handle
(
THREAD
,
java_lang_invoke_MethodHandle
::
type
(
argument
()));
...
...
@@ -2370,7 +2335,6 @@ void MethodHandles::init_AdapterMethodHandle(Handle mh, Handle target, int argnu
case
_adapter_prim_to_ref
:
{
assert
(
UseRicochetFrames
,
"else don't come here"
);
// vminfo will be the location to insert the return value
vminfo
=
argslot
;
ek_opt
=
_adapter_opt_collect_ref
;
...
...
@@ -2436,20 +2400,6 @@ void MethodHandles::init_AdapterMethodHandle(Handle mh, Handle target, int argnu
case
_adapter_spread_args
:
{
#ifdef TARGET_ARCH_NYI_6939861
// ports before 6939861 supported only three kinds of spread ops
if
(
!
UseRicochetFrames
)
{
int
array_size
=
slots_pushed
+
1
;
assert
(
array_size
>=
0
,
""
);
vminfo
=
array_size
;
switch
(
array_size
)
{
case
0
:
ek_opt
=
_adapter_opt_spread_0
;
break
;
case
1
:
ek_opt
=
_adapter_opt_spread_1
;
break
;
default:
ek_opt
=
_adapter_opt_spread_more
;
break
;
}
break
;
}
#endif //TARGET_ARCH_NYI_6939861
// vminfo will be the required length of the array
int
array_size
=
(
slots_pushed
+
1
)
/
(
type2size
[
dest
]
==
2
?
2
:
1
);
vminfo
=
array_size
;
...
...
@@ -2494,7 +2444,6 @@ void MethodHandles::init_AdapterMethodHandle(Handle mh, Handle target, int argnu
case
_adapter_collect_args
:
{
assert
(
UseRicochetFrames
,
"else don't come here"
);
int
elem_slots
=
argument_slot_count
(
java_lang_invoke_MethodHandle
::
type
(
argument
()));
// vminfo will be the location to insert the return value
vminfo
=
argslot
;
...
...
@@ -2563,7 +2512,6 @@ void MethodHandles::init_AdapterMethodHandle(Handle mh, Handle target, int argnu
case
_adapter_fold_args
:
{
assert
(
UseRicochetFrames
,
"else don't come here"
);
int
elem_slots
=
argument_slot_count
(
java_lang_invoke_MethodHandle
::
type
(
argument
()));
// vminfo will be the location to insert the return value
vminfo
=
argslot
+
elem_slots
;
...
...
src/share/vm/prims/methodHandles.hpp
浏览文件 @
84b62679
...
...
@@ -738,46 +738,6 @@ public:
#ifdef TARGET_ARCH_ppc
# include "methodHandles_ppc.hpp"
#endif
#ifdef TARGET_ARCH_NYI_6939861
// Here are some backward compatible declarations until the 6939861 ports are updated.
#define _adapter_flyby (_EK_LIMIT + 10)
#define _adapter_ricochet (_EK_LIMIT + 11)
#define _adapter_opt_spread_1 _adapter_opt_spread_1_ref
#define _adapter_opt_spread_more _adapter_opt_spread_ref
enum
{
_INSERT_NO_MASK
=
-
1
,
_INSERT_REF_MASK
=
0
,
_INSERT_INT_MASK
=
1
,
_INSERT_LONG_MASK
=
3
};
static
void
get_ek_bound_mh_info
(
EntryKind
ek
,
BasicType
&
arg_type
,
int
&
arg_mask
,
int
&
arg_slots
)
{
arg_type
=
ek_bound_mh_arg_type
(
ek
);
arg_mask
=
0
;
arg_slots
=
type2size
[
arg_type
];;
}
static
void
get_ek_adapter_opt_swap_rot_info
(
EntryKind
ek
,
int
&
swap_bytes
,
int
&
rotate
)
{
int
swap_slots
=
ek_adapter_opt_swap_slots
(
ek
);
rotate
=
ek_adapter_opt_swap_mode
(
ek
);
swap_bytes
=
swap_slots
*
Interpreter
::
stackElementSize
;
}
static
int
get_ek_adapter_opt_spread_info
(
EntryKind
ek
)
{
return
ek_adapter_opt_spread_count
(
ek
);
}
static
void
insert_arg_slots
(
MacroAssembler
*
_masm
,
RegisterOrConstant
arg_slots
,
int
arg_mask
,
Register
argslot_reg
,
Register
temp_reg
,
Register
temp2_reg
,
Register
temp3_reg
=
noreg
);
static
void
remove_arg_slots
(
MacroAssembler
*
_masm
,
RegisterOrConstant
arg_slots
,
Register
argslot_reg
,
Register
temp_reg
,
Register
temp2_reg
,
Register
temp3_reg
=
noreg
);
static
void
trace_method_handle
(
MacroAssembler
*
_masm
,
const
char
*
adaptername
)
PRODUCT_RETURN
;
#endif //TARGET_ARCH_NYI_6939861
};
...
...
src/share/vm/runtime/globals.hpp
浏览文件 @
84b62679
...
...
@@ -3826,10 +3826,6 @@ class CommandLineFlags {
develop(bool, StressMethodHandleWalk, false, \
"Process all method handles with MethodHandleWalk") \
\
diagnostic(bool, UseRicochetFrames, true, \
"use ricochet stack frames for method handle combination, " \
"if the platform supports them") \
\
experimental(bool, TrustFinalNonStaticFields, false, \
"trust final non-static declarations for constant folding") \
\
...
...
src/share/vm/runtime/sharedRuntime.cpp
浏览文件 @
84b62679
...
...
@@ -121,7 +121,6 @@ void SharedRuntime::generate_stubs() {
void
SharedRuntime
::
generate_ricochet_blob
()
{
if
(
!
EnableInvokeDynamic
)
return
;
// leave it as a null
#ifndef TARGET_ARCH_NYI_6939861
// allocate space for the code
ResourceMark
rm
;
// setup code generation tools
...
...
@@ -142,7 +141,6 @@ void SharedRuntime::generate_ricochet_blob() {
}
_ricochet_blob
=
RicochetBlob
::
create
(
&
buffer
,
bounce_offset
,
exception_offset
,
frame_size_in_words
);
#endif
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录