Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell11
提交
41f1e091
D
dragonwell11
项目概览
openanolis
/
dragonwell11
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell11
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
41f1e091
编写于
7月 16, 2012
作者:
T
twisti
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7087357: JSR 292: remove obsolete code after 7085860
Reviewed-by: kvn, never
上级
13caf43b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
13 addition
and
61 deletion
+13
-61
hotspot/src/share/vm/classfile/javaClasses.cpp
hotspot/src/share/vm/classfile/javaClasses.cpp
+0
-11
hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
+0
-17
hotspot/src/share/vm/prims/methodHandles.cpp
hotspot/src/share/vm/prims/methodHandles.cpp
+3
-5
hotspot/src/share/vm/prims/unsafe.cpp
hotspot/src/share/vm/prims/unsafe.cpp
+10
-28
未找到文件。
hotspot/src/share/vm/classfile/javaClasses.cpp
浏览文件 @
41f1e091
...
...
@@ -2738,17 +2738,6 @@ void java_lang_invoke_CallSite::compute_offsets() {
if
(
k
!=
NULL
)
{
compute_offset
(
_target_offset
,
k
,
vmSymbols
::
target_name
(),
vmSymbols
::
java_lang_invoke_MethodHandle_signature
());
}
// Disallow compilation of CallSite.setTargetNormal and CallSite.setTargetVolatile
// (For C2: keep this until we have throttling logic for uncommon traps.)
if
(
k
!=
NULL
)
{
instanceKlass
*
ik
=
instanceKlass
::
cast
(
k
);
methodOop
m_normal
=
ik
->
lookup_method
(
vmSymbols
::
setTargetNormal_name
(),
vmSymbols
::
setTarget_signature
());
methodOop
m_volatile
=
ik
->
lookup_method
(
vmSymbols
::
setTargetVolatile_name
(),
vmSymbols
::
setTarget_signature
());
guarantee
(
m_normal
!=
NULL
&&
m_volatile
!=
NULL
,
"must exist"
);
m_normal
->
set_not_compilable_quietly
();
m_volatile
->
set_not_compilable_quietly
();
}
}
...
...
hotspot/src/share/vm/interpreter/interpreterRuntime.cpp
浏览文件 @
41f1e091
...
...
@@ -547,23 +547,6 @@ IRT_ENTRY(void, InterpreterRuntime::resolve_get_put(JavaThread* thread, Bytecode
}
}
if
(
is_put
&&
!
is_static
&&
klass
->
is_subclass_of
(
SystemDictionary
::
CallSite_klass
())
&&
(
info
.
name
()
==
vmSymbols
::
target_name
()))
{
const
jint
direction
=
frame
::
interpreter_frame_expression_stack_direction
();
Handle
call_site
(
THREAD
,
*
((
oop
*
)
thread
->
last_frame
().
interpreter_frame_tos_at
(
-
1
*
direction
)));
Handle
method_handle
(
THREAD
,
*
((
oop
*
)
thread
->
last_frame
().
interpreter_frame_tos_at
(
0
*
direction
)));
assert
(
call_site
->
is_a
(
SystemDictionary
::
CallSite_klass
()),
"must be"
);
assert
(
method_handle
->
is_a
(
SystemDictionary
::
MethodHandle_klass
()),
"must be"
);
{
// Walk all nmethods depending on this call site.
MutexLocker
mu
(
Compile_lock
,
thread
);
Universe
::
flush_dependents_on
(
call_site
,
method_handle
);
}
// Don't allow fast path for setting CallSite.target and sub-classes.
put_code
=
(
Bytecodes
::
Code
)
0
;
}
cache_entry
(
thread
)
->
set_field
(
get_code
,
put_code
,
...
...
hotspot/src/share/vm/prims/methodHandles.cpp
浏览文件 @
41f1e091
...
...
@@ -3180,17 +3180,15 @@ JVM_ENTRY(void, JVM_RegisterMethodHandleMethods(JNIEnv *env, jclass MHN_class))
jclass
MH_class
=
env
->
FindClass
(
MH_name
);
status
=
env
->
RegisterNatives
(
MH_class
,
invoke_methods
,
sizeof
(
invoke_methods
)
/
sizeof
(
JNINativeMethod
));
}
if
(
!
env
->
ExceptionOccurred
())
{
status
=
env
->
RegisterNatives
(
MHN_class
,
call_site_methods
,
sizeof
(
call_site_methods
)
/
sizeof
(
JNINativeMethod
));
}
if
(
env
->
ExceptionOccurred
())
{
warning
(
"JSR 292 method handle code is mismatched to this JVM. Disabling support."
);
enable_MH
=
false
;
env
->
ExceptionClear
();
}
status
=
env
->
RegisterNatives
(
MHN_class
,
call_site_methods
,
sizeof
(
call_site_methods
)
/
sizeof
(
JNINativeMethod
));
if
(
env
->
ExceptionOccurred
())
{
// Exception is okay until 7087357
env
->
ExceptionClear
();
}
}
if
(
enable_MH
)
{
...
...
hotspot/src/share/vm/prims/unsafe.cpp
浏览文件 @
41f1e091
...
...
@@ -178,17 +178,6 @@ jint Unsafe_invocation_key_to_method_slot(jint key) {
v = *(oop*)index_oop_from_field_offset_long(p, offset); \
}
#define GET_OOP_FIELD_VOLATILE(obj, offset, v) \
oop p = JNIHandles::resolve(obj); \
volatile oop v; \
if (UseCompressedOops) { \
volatile narrowOop n = *(volatile narrowOop*)index_oop_from_field_offset_long(p, offset); \
v = oopDesc::decode_heap_oop(n); \
} else { \
v = *(volatile oop*)index_oop_from_field_offset_long(p, offset); \
} \
OrderAccess::acquire();
// Get/SetObject must be special-cased, since it works with handles.
...
...
@@ -296,28 +285,21 @@ UNSAFE_END
UNSAFE_ENTRY
(
jobject
,
Unsafe_GetObjectVolatile
(
JNIEnv
*
env
,
jobject
unsafe
,
jobject
obj
,
jlong
offset
))
UnsafeWrapper
(
"Unsafe_GetObjectVolatile"
);
GET_OOP_FIELD_VOLATILE
(
obj
,
offset
,
v
)
oop
p
=
JNIHandles
::
resolve
(
obj
);
void
*
addr
=
index_oop_from_field_offset_long
(
p
,
offset
);
volatile
oop
v
;
if
(
UseCompressedOops
)
{
volatile
narrowOop
n
=
*
(
volatile
narrowOop
*
)
addr
;
v
=
oopDesc
::
decode_heap_oop
(
n
);
}
else
{
v
=
*
(
volatile
oop
*
)
addr
;
}
OrderAccess
::
acquire
();
return
JNIHandles
::
make_local
(
env
,
v
);
UNSAFE_END
UNSAFE_ENTRY
(
void
,
Unsafe_SetObjectVolatile
(
JNIEnv
*
env
,
jobject
unsafe
,
jobject
obj
,
jlong
offset
,
jobject
x_h
))
UnsafeWrapper
(
"Unsafe_SetObjectVolatile"
);
{
// Catch VolatileCallSite.target stores (via
// CallSite.setTargetVolatile) and check call site dependencies.
oop
p
=
JNIHandles
::
resolve
(
obj
);
if
((
offset
==
java_lang_invoke_CallSite
::
target_offset_in_bytes
())
&&
p
->
is_a
(
SystemDictionary
::
CallSite_klass
()))
{
Handle
call_site
(
THREAD
,
p
);
Handle
method_handle
(
THREAD
,
JNIHandles
::
resolve
(
x_h
));
assert
(
call_site
->
is_a
(
SystemDictionary
::
CallSite_klass
()),
"must be"
);
assert
(
method_handle
->
is_a
(
SystemDictionary
::
MethodHandle_klass
()),
"must be"
);
{
// Walk all nmethods depending on this call site.
MutexLocker
mu
(
Compile_lock
,
thread
);
Universe
::
flush_dependents_on
(
call_site
(),
method_handle
());
}
}
}
oop
x
=
JNIHandles
::
resolve
(
x_h
);
oop
p
=
JNIHandles
::
resolve
(
obj
);
void
*
addr
=
index_oop_from_field_offset_long
(
p
,
offset
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录