Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
dfbd571a
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看板
提交
dfbd571a
编写于
1月 24, 2011
作者:
N
never
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7008809: should report the class in ArrayStoreExceptions from compiled code
Reviewed-by: iveresov, twisti
上级
7e1332b2
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
16 addition
and
55 deletion
+16
-55
src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
+1
-22
src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
+1
-1
src/cpu/x86/vm/c1_CodeStubs_x86.cpp
src/cpu/x86/vm/c1_CodeStubs_x86.cpp
+1
-15
src/cpu/x86/vm/c1_Runtime1_x86.cpp
src/cpu/x86/vm/c1_Runtime1_x86.cpp
+1
-1
src/share/vm/c1/c1_CodeStubs.hpp
src/share/vm/c1/c1_CodeStubs.hpp
+3
-9
src/share/vm/c1/c1_LIR.cpp
src/share/vm/c1/c1_LIR.cpp
+2
-2
src/share/vm/c1/c1_Runtime1.cpp
src/share/vm/c1/c1_Runtime1.cpp
+4
-2
src/share/vm/c1/c1_Runtime1.hpp
src/share/vm/c1/c1_Runtime1.hpp
+3
-3
未找到文件。
src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
浏览文件 @
dfbd571a
/*
* Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -129,27 +129,6 @@ void SimpleExceptionStub::emit_code(LIR_Assembler* ce) {
}
// Implementation of ArrayStoreExceptionStub
ArrayStoreExceptionStub
::
ArrayStoreExceptionStub
(
CodeEmitInfo
*
info
)
:
_info
(
info
)
{
}
void
ArrayStoreExceptionStub
::
emit_code
(
LIR_Assembler
*
ce
)
{
__
bind
(
_entry
);
__
call
(
Runtime1
::
entry_for
(
Runtime1
::
throw_array_store_exception_id
),
relocInfo
::
runtime_call_type
);
__
delayed
()
->
nop
();
ce
->
add_call_info_here
(
_info
);
ce
->
verify_oop_map
(
_info
);
#ifdef ASSERT
__
should_not_reach_here
();
#endif
}
// Implementation of NewInstanceStub
NewInstanceStub
::
NewInstanceStub
(
LIR_Opr
klass_reg
,
LIR_Opr
result
,
ciInstanceKlass
*
klass
,
CodeEmitInfo
*
info
,
Runtime1
::
StubID
stub_id
)
{
...
...
src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
浏览文件 @
dfbd571a
...
...
@@ -709,7 +709,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
case
throw_array_store_exception_id
:
{
__
set_info
(
"throw_array_store_exception"
,
dont_gc_arguments
);
oop_maps
=
generate_exception_throw
(
sasm
,
CAST_FROM_FN_PTR
(
address
,
throw_array_store_exception
),
fals
e
);
oop_maps
=
generate_exception_throw
(
sasm
,
CAST_FROM_FN_PTR
(
address
,
throw_array_store_exception
),
tru
e
);
}
break
;
...
...
src/cpu/x86/vm/c1_CodeStubs_x86.cpp
浏览文件 @
dfbd571a
/*
* Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -411,20 +411,6 @@ void SimpleExceptionStub::emit_code(LIR_Assembler* ce) {
}
ArrayStoreExceptionStub
::
ArrayStoreExceptionStub
(
CodeEmitInfo
*
info
)
:
_info
(
info
)
{
}
void
ArrayStoreExceptionStub
::
emit_code
(
LIR_Assembler
*
ce
)
{
assert
(
__
rsp_offset
()
==
0
,
"frame size should be fixed"
);
__
bind
(
_entry
);
__
call
(
RuntimeAddress
(
Runtime1
::
entry_for
(
Runtime1
::
throw_array_store_exception_id
)));
ce
->
add_call_info_here
(
_info
);
debug_only
(
__
should_not_reach_here
());
}
void
ArrayCopyStub
::
emit_code
(
LIR_Assembler
*
ce
)
{
//---------------slow case: call to native-----------------
__
bind
(
_entry
);
...
...
src/cpu/x86/vm/c1_Runtime1_x86.cpp
浏览文件 @
dfbd571a
...
...
@@ -1337,7 +1337,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
{
StubFrame
f
(
sasm
,
"throw_array_store_exception"
,
dont_gc_arguments
);
// tos + 0: link
// + 1: return address
oop_maps
=
generate_exception_throw
(
sasm
,
CAST_FROM_FN_PTR
(
address
,
throw_array_store_exception
),
fals
e
);
oop_maps
=
generate_exception_throw
(
sasm
,
CAST_FROM_FN_PTR
(
address
,
throw_array_store_exception
),
tru
e
);
}
break
;
...
...
src/share/vm/c1/c1_CodeStubs.hpp
浏览文件 @
dfbd571a
/*
* Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -476,18 +476,12 @@ class SimpleExceptionStub: public CodeStub {
class
ArrayStoreExceptionStub
:
public
Code
Stub
{
class
ArrayStoreExceptionStub
:
public
SimpleException
Stub
{
private:
CodeEmitInfo
*
_info
;
public:
ArrayStoreExceptionStub
(
CodeEmitInfo
*
info
);
virtual
void
emit_code
(
LIR_Assembler
*
emit
);
virtual
CodeEmitInfo
*
info
()
const
{
return
_info
;
}
virtual
bool
is_exception_throw_stub
()
const
{
return
true
;
}
virtual
void
visit
(
LIR_OpVisitState
*
visitor
)
{
visitor
->
do_slow_case
(
_info
);
}
ArrayStoreExceptionStub
(
LIR_Opr
obj
,
CodeEmitInfo
*
info
)
:
SimpleExceptionStub
(
Runtime1
::
throw_array_store_exception_id
,
obj
,
info
)
{}
#ifndef PRODUCT
virtual
void
print_name
(
outputStream
*
out
)
const
{
out
->
print
(
"ArrayStoreExceptionStub"
);
}
#endif // PRODUCT
...
...
src/share/vm/c1/c1_LIR.cpp
浏览文件 @
dfbd571a
/*
* Copyright (c) 2000, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -396,7 +396,7 @@ LIR_OpTypeCheck::LIR_OpTypeCheck(LIR_Code code, LIR_Opr object, LIR_Opr array, L
,
_should_profile
(
false
)
{
if
(
code
==
lir_store_check
)
{
_stub
=
new
ArrayStoreExceptionStub
(
info_for_exception
);
_stub
=
new
ArrayStoreExceptionStub
(
object
,
info_for_exception
);
assert
(
info_for_exception
!=
NULL
,
"store_check throws exceptions"
);
}
else
{
ShouldNotReachHere
();
...
...
src/share/vm/c1/c1_Runtime1.cpp
浏览文件 @
dfbd571a
...
...
@@ -339,8 +339,10 @@ JRT_ENTRY(void, Runtime1::unimplemented_entry(JavaThread* thread, StubID id))
JRT_END
JRT_ENTRY
(
void
,
Runtime1
::
throw_array_store_exception
(
JavaThread
*
thread
))
THROW
(
vmSymbolHandles
::
java_lang_ArrayStoreException
());
JRT_ENTRY
(
void
,
Runtime1
::
throw_array_store_exception
(
JavaThread
*
thread
,
oopDesc
*
obj
))
ResourceMark
rm
(
thread
);
const
char
*
klass_name
=
Klass
::
cast
(
obj
->
klass
())
->
external_name
();
SharedRuntime
::
throw_and_post_jvmti_exception
(
thread
,
vmSymbols
::
java_lang_ArrayStoreException
(),
klass_name
);
JRT_END
...
...
src/share/vm/c1/c1_Runtime1.hpp
浏览文件 @
dfbd571a
/*
* Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -143,9 +143,9 @@ class Runtime1: public AllStatic {
static
void
throw_index_exception
(
JavaThread
*
thread
,
int
index
);
static
void
throw_div0_exception
(
JavaThread
*
thread
);
static
void
throw_null_pointer_exception
(
JavaThread
*
thread
);
static
void
throw_class_cast_exception
(
JavaThread
*
thread
,
oopDesc
*
obect
);
static
void
throw_class_cast_exception
(
JavaThread
*
thread
,
oopDesc
*
ob
j
ect
);
static
void
throw_incompatible_class_change_error
(
JavaThread
*
thread
);
static
void
throw_array_store_exception
(
JavaThread
*
thread
);
static
void
throw_array_store_exception
(
JavaThread
*
thread
,
oopDesc
*
object
);
static
void
monitorenter
(
JavaThread
*
thread
,
oopDesc
*
obj
,
BasicObjectLock
*
lock
);
static
void
monitorexit
(
JavaThread
*
thread
,
BasicObjectLock
*
lock
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录