Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
3b29cd98
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看板
提交
3b29cd98
编写于
5月 10, 2010
作者:
N
never
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6951190: assert(!klass_is_exact(),"only non-exact klass") while building JDK
Reviewed-by: kvn
上级
15a2ac9a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
9 deletion
+8
-9
src/share/vm/opto/library_call.cpp
src/share/vm/opto/library_call.cpp
+8
-9
未找到文件。
src/share/vm/opto/library_call.cpp
浏览文件 @
3b29cd98
...
@@ -809,8 +809,7 @@ Node* LibraryCallKit::make_string_method_node(int opcode, Node* str1, Node* cnt1
...
@@ -809,8 +809,7 @@ Node* LibraryCallKit::make_string_method_node(int opcode, Node* str1, Node* cnt1
Node
*
no_ctrl
=
NULL
;
Node
*
no_ctrl
=
NULL
;
ciInstanceKlass
*
klass
=
env
()
->
String_klass
();
ciInstanceKlass
*
klass
=
env
()
->
String_klass
();
const
TypeInstPtr
*
string_type
=
const
TypeOopPtr
*
string_type
=
TypeOopPtr
::
make_from_klass
(
klass
);
TypeInstPtr
::
make
(
TypePtr
::
BotPTR
,
klass
,
false
,
NULL
,
0
);
const
TypeAryPtr
*
value_type
=
const
TypeAryPtr
*
value_type
=
TypeAryPtr
::
make
(
TypePtr
::
NotNull
,
TypeAryPtr
::
make
(
TypePtr
::
NotNull
,
...
@@ -883,8 +882,7 @@ bool LibraryCallKit::inline_string_compareTo() {
...
@@ -883,8 +882,7 @@ bool LibraryCallKit::inline_string_compareTo() {
}
}
ciInstanceKlass
*
klass
=
env
()
->
String_klass
();
ciInstanceKlass
*
klass
=
env
()
->
String_klass
();
const
TypeInstPtr
*
string_type
=
const
TypeOopPtr
*
string_type
=
TypeOopPtr
::
make_from_klass
(
klass
);
TypeInstPtr
::
make
(
TypePtr
::
BotPTR
,
klass
,
false
,
NULL
,
0
);
Node
*
no_ctrl
=
NULL
;
Node
*
no_ctrl
=
NULL
;
// Get counts for string and argument
// Get counts for string and argument
...
@@ -958,14 +956,16 @@ bool LibraryCallKit::inline_string_equals() {
...
@@ -958,14 +956,16 @@ bool LibraryCallKit::inline_string_equals() {
}
}
}
}
const
TypeInstPtr
*
string_type
=
const
TypeOopPtr
*
string_type
=
TypeOopPtr
::
make_from_klass
(
klass
);
TypeInstPtr
::
make
(
TypePtr
::
BotPTR
,
klass
,
false
,
NULL
,
0
);
Node
*
no_ctrl
=
NULL
;
Node
*
no_ctrl
=
NULL
;
Node
*
receiver_cnt
;
Node
*
receiver_cnt
;
Node
*
argument_cnt
;
Node
*
argument_cnt
;
if
(
!
stopped
())
{
if
(
!
stopped
())
{
// Properly cast the argument to String
argument
=
_gvn
.
transform
(
new
(
C
,
2
)
CheckCastPPNode
(
control
(),
argument
,
string_type
));
// Get counts for string and argument
// Get counts for string and argument
Node
*
receiver_cnta
=
basic_plus_adr
(
receiver
,
receiver
,
count_offset
);
Node
*
receiver_cnta
=
basic_plus_adr
(
receiver
,
receiver
,
count_offset
);
receiver_cnt
=
make_load
(
no_ctrl
,
receiver_cnta
,
TypeInt
::
INT
,
T_INT
,
string_type
->
add_offset
(
count_offset
));
receiver_cnt
=
make_load
(
no_ctrl
,
receiver_cnta
,
TypeInt
::
INT
,
T_INT
,
string_type
->
add_offset
(
count_offset
));
...
@@ -1090,7 +1090,7 @@ Node* LibraryCallKit::string_indexOf(Node* string_object, ciTypeArray* target_ar
...
@@ -1090,7 +1090,7 @@ Node* LibraryCallKit::string_indexOf(Node* string_object, ciTypeArray* target_ar
const
int
offset_offset
=
java_lang_String
::
offset_offset_in_bytes
();
const
int
offset_offset
=
java_lang_String
::
offset_offset_in_bytes
();
ciInstanceKlass
*
klass
=
env
()
->
String_klass
();
ciInstanceKlass
*
klass
=
env
()
->
String_klass
();
const
Type
InstPtr
*
string_type
=
TypeInstPtr
::
make
(
TypePtr
::
BotPTR
,
klass
,
false
,
NULL
,
0
);
const
Type
OopPtr
*
string_type
=
TypeOopPtr
::
make_from_klass
(
klass
);
const
TypeAryPtr
*
source_type
=
TypeAryPtr
::
make
(
TypePtr
::
NotNull
,
TypeAry
::
make
(
TypeInt
::
CHAR
,
TypeInt
::
POS
),
ciTypeArrayKlass
::
make
(
T_CHAR
),
true
,
0
);
const
TypeAryPtr
*
source_type
=
TypeAryPtr
::
make
(
TypePtr
::
NotNull
,
TypeAry
::
make
(
TypeInt
::
CHAR
,
TypeInt
::
POS
),
ciTypeArrayKlass
::
make
(
T_CHAR
),
true
,
0
);
Node
*
sourceOffseta
=
basic_plus_adr
(
string_object
,
string_object
,
offset_offset
);
Node
*
sourceOffseta
=
basic_plus_adr
(
string_object
,
string_object
,
offset_offset
);
...
@@ -1199,8 +1199,7 @@ bool LibraryCallKit::inline_string_indexOf() {
...
@@ -1199,8 +1199,7 @@ bool LibraryCallKit::inline_string_indexOf() {
Node
*
no_ctrl
=
NULL
;
Node
*
no_ctrl
=
NULL
;
ciInstanceKlass
*
klass
=
env
()
->
String_klass
();
ciInstanceKlass
*
klass
=
env
()
->
String_klass
();
const
TypeInstPtr
*
string_type
=
const
TypeOopPtr
*
string_type
=
TypeOopPtr
::
make_from_klass
(
klass
);
TypeInstPtr
::
make
(
TypePtr
::
BotPTR
,
klass
,
false
,
NULL
,
0
);
// Get counts for string and substr
// Get counts for string and substr
Node
*
source_cnta
=
basic_plus_adr
(
receiver
,
receiver
,
count_offset
);
Node
*
source_cnta
=
basic_plus_adr
(
receiver
,
receiver
,
count_offset
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录