Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
0fbcc6a6
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看板
提交
0fbcc6a6
编写于
9月 10, 2014
作者:
D
drchase
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
01d76091
b43de781
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
16 addition
and
6 deletion
+16
-6
src/share/vm/opto/machnode.cpp
src/share/vm/opto/machnode.cpp
+9
-2
src/share/vm/opto/machnode.hpp
src/share/vm/opto/machnode.hpp
+5
-1
src/share/vm/opto/output.cpp
src/share/vm/opto/output.cpp
+2
-3
未找到文件。
src/share/vm/opto/machnode.cpp
浏览文件 @
0fbcc6a6
/*
/*
* Copyright (c) 1997, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -639,7 +639,6 @@ void MachCallNode::dump_spec(outputStream *st) const {
...
@@ -639,7 +639,6 @@ void MachCallNode::dump_spec(outputStream *st) const {
}
}
#endif
#endif
bool
MachCallNode
::
return_value_is_used
()
const
{
bool
MachCallNode
::
return_value_is_used
()
const
{
if
(
tf
()
->
range
()
->
cnt
()
==
TypeFunc
::
Parms
)
{
if
(
tf
()
->
range
()
->
cnt
()
==
TypeFunc
::
Parms
)
{
// void return
// void return
...
@@ -657,6 +656,14 @@ bool MachCallNode::return_value_is_used() const {
...
@@ -657,6 +656,14 @@ bool MachCallNode::return_value_is_used() const {
return
false
;
return
false
;
}
}
// Similar to cousin class CallNode::returns_pointer
// Because this is used in deoptimization, we want the type info, not the data
// flow info; the interpreter will "use" things that are dead to the optimizer.
bool
MachCallNode
::
returns_pointer
()
const
{
const
TypeTuple
*
r
=
tf
()
->
range
();
return
(
r
->
cnt
()
>
TypeFunc
::
Parms
&&
r
->
field_at
(
TypeFunc
::
Parms
)
->
isa_ptr
());
}
//------------------------------Registers--------------------------------------
//------------------------------Registers--------------------------------------
const
RegMask
&
MachCallNode
::
in_RegMask
(
uint
idx
)
const
{
const
RegMask
&
MachCallNode
::
in_RegMask
(
uint
idx
)
const
{
...
...
src/share/vm/opto/machnode.hpp
浏览文件 @
0fbcc6a6
/*
/*
* Copyright (c) 1997, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -784,6 +784,10 @@ public:
...
@@ -784,6 +784,10 @@ public:
bool
returns_long
()
const
{
return
tf
()
->
return_type
()
==
T_LONG
;
}
bool
returns_long
()
const
{
return
tf
()
->
return_type
()
==
T_LONG
;
}
bool
return_value_is_used
()
const
;
bool
return_value_is_used
()
const
;
// Similar to cousin class CallNode::returns_pointer
bool
returns_pointer
()
const
;
#ifndef PRODUCT
#ifndef PRODUCT
virtual
void
dump_spec
(
outputStream
*
st
)
const
;
virtual
void
dump_spec
(
outputStream
*
st
)
const
;
#endif
#endif
...
...
src/share/vm/opto/output.cpp
浏览文件 @
0fbcc6a6
/*
/*
* Copyright (c) 1998, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -856,8 +856,7 @@ void Compile::Process_OopMap_Node(MachNode *mach, int current_offset) {
...
@@ -856,8 +856,7 @@ void Compile::Process_OopMap_Node(MachNode *mach, int current_offset) {
}
}
// Check if a call returns an object.
// Check if a call returns an object.
if
(
mcall
->
return_value_is_used
()
&&
if
(
mcall
->
returns_pointer
())
{
mcall
->
tf
()
->
range
()
->
field_at
(
TypeFunc
::
Parms
)
->
isa_ptr
())
{
return_oop
=
true
;
return_oop
=
true
;
}
}
safepoint_pc_offset
+=
mcall
->
ret_addr_offset
();
safepoint_pc_offset
+=
mcall
->
ret_addr_offset
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录