Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
cb6ef5af
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看板
提交
cb6ef5af
编写于
9月 13, 2013
作者:
G
goetz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8024469: PPC64 (part 202): cppInterpreter: support for OSR.
Summary: Call OSR migration with last java frame. Reviewed-by: kvn
上级
5bff05b0
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
12 addition
and
6 deletion
+12
-6
src/share/vm/interpreter/bytecodeInterpreter.cpp
src/share/vm/interpreter/bytecodeInterpreter.cpp
+12
-6
未找到文件。
src/share/vm/interpreter/bytecodeInterpreter.cpp
浏览文件 @
cb6ef5af
...
...
@@ -345,7 +345,9 @@
nmethod* osr_nmethod; \
OSR_REQUEST(osr_nmethod, branch_pc); \
if (osr_nmethod != NULL && osr_nmethod->osr_entry_bci() != InvalidOSREntryBci) { \
intptr_t* buf = SharedRuntime::OSR_migration_begin(THREAD); \
intptr_t* buf; \
/* Call OSR migration with last java frame only, no checks. */
\
CALL_VM_NAKED_LJF(buf=SharedRuntime::OSR_migration_begin(THREAD)); \
istate->set_msg(do_osr); \
istate->set_osr_buf((address)buf); \
istate->set_osr_entry(osr_nmethod->osr_entry()); \
...
...
@@ -418,13 +420,17 @@
CACHE_CP(); \
CACHE_LOCALS();
// Call the VM
don't check for pending exceptions
#define CALL_VM_N
OCHECK(func)
\
// Call the VM
with last java frame only.
#define CALL_VM_N
AKED_LJF(func)
\
DECACHE_STATE(); \
SET_LAST_JAVA_FRAME(); \
func; \
RESET_LAST_JAVA_FRAME(); \
CACHE_STATE(); \
CACHE_STATE();
// Call the VM. Don't check for pending exceptions.
#define CALL_VM_NOCHECK(func) \
CALL_VM_NAKED_LJF(func) \
if (THREAD->pop_frame_pending() && \
!THREAD->pop_frame_in_process()) { \
goto handle_Pop_Frame; \
...
...
@@ -2702,7 +2708,7 @@ run:
tty
->
print_cr
(
"Exception <%s> ("
INTPTR_FORMAT
")"
,
except_oop
->
print_value_string
(),
except_oop
());
tty
->
print_cr
(
" thrown in interpreter method <%s>"
,
METHOD
->
print_value_string
());
tty
->
print_cr
(
" at bci %d, continuing at %d for thread "
INTPTR_FORMAT
,
pc
-
(
intptr_t
)
METHOD
->
code_base
(),
istate
->
bcp
()
-
(
intptr_t
)
METHOD
->
code_base
(),
continuation_bci
,
THREAD
);
}
// for AbortVMOnException flag
...
...
@@ -2715,7 +2721,7 @@ run:
tty
->
print_cr
(
"Exception <%s> ("
INTPTR_FORMAT
")"
,
except_oop
->
print_value_string
(),
except_oop
());
tty
->
print_cr
(
" thrown in interpreter method <%s>"
,
METHOD
->
print_value_string
());
tty
->
print_cr
(
" at bci %d, unwinding for thread "
INTPTR_FORMAT
,
pc
-
(
intptr_t
)
METHOD
->
code_base
(),
istate
->
bcp
()
-
(
intptr_t
)
METHOD
->
code_base
(),
THREAD
);
}
// for AbortVMOnException flag
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录