Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
05f7efeb
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看板
提交
05f7efeb
编写于
6月 06, 2008
作者:
K
kamg
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
10b35a70
a71954d9
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
149 addition
and
108 deletion
+149
-108
src/cpu/sparc/vm/assembler_sparc.cpp
src/cpu/sparc/vm/assembler_sparc.cpp
+6
-0
src/cpu/sparc/vm/sharedRuntime_sparc.cpp
src/cpu/sparc/vm/sharedRuntime_sparc.cpp
+2
-1
src/cpu/x86/vm/assembler_x86_64.cpp
src/cpu/x86/vm/assembler_x86_64.cpp
+2
-0
src/cpu/x86/vm/interp_masm_x86_64.cpp
src/cpu/x86/vm/interp_masm_x86_64.cpp
+8
-6
src/share/vm/classfile/classFileParser.cpp
src/share/vm/classfile/classFileParser.cpp
+5
-2
src/share/vm/interpreter/bytecodeInterpreterWithChecks.xml
src/share/vm/interpreter/bytecodeInterpreterWithChecks.xml
+16
-16
src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl
src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl
+20
-20
src/share/vm/runtime/java.hpp
src/share/vm/runtime/java.hpp
+30
-6
test/compiler/6659207/Test.java
test/compiler/6659207/Test.java
+20
-19
test/compiler/6661247/Test.java
test/compiler/6661247/Test.java
+20
-19
test/compiler/6663621/IVTest.java
test/compiler/6663621/IVTest.java
+20
-19
未找到文件。
src/cpu/sparc/vm/assembler_sparc.cpp
浏览文件 @
05f7efeb
...
...
@@ -3643,6 +3643,7 @@ void MacroAssembler::store_heap_oop(Register d, const Address& a, int offset) {
void
MacroAssembler
::
encode_heap_oop
(
Register
src
,
Register
dst
)
{
assert
(
UseCompressedOops
,
"must be compressed"
);
verify_oop
(
src
);
Label
done
;
if
(
src
==
dst
)
{
// optimize for frequent case src == dst
...
...
@@ -3664,12 +3665,14 @@ void MacroAssembler::encode_heap_oop(Register src, Register dst) {
void
MacroAssembler
::
encode_heap_oop_not_null
(
Register
r
)
{
assert
(
UseCompressedOops
,
"must be compressed"
);
verify_oop
(
r
);
sub
(
r
,
G6_heapbase
,
r
);
srlx
(
r
,
LogMinObjAlignmentInBytes
,
r
);
}
void
MacroAssembler
::
encode_heap_oop_not_null
(
Register
src
,
Register
dst
)
{
assert
(
UseCompressedOops
,
"must be compressed"
);
verify_oop
(
src
);
sub
(
src
,
G6_heapbase
,
dst
);
srlx
(
dst
,
LogMinObjAlignmentInBytes
,
dst
);
}
...
...
@@ -3682,11 +3685,13 @@ void MacroAssembler::decode_heap_oop(Register src, Register dst) {
bpr
(
rc_nz
,
true
,
Assembler
::
pt
,
dst
,
done
);
delayed
()
->
add
(
dst
,
G6_heapbase
,
dst
);
// annuled if not taken
bind
(
done
);
verify_oop
(
dst
);
}
void
MacroAssembler
::
decode_heap_oop_not_null
(
Register
r
)
{
// Do not add assert code to this unless you change vtableStubs_sparc.cpp
// pd_code_size_limit.
// Also do not verify_oop as this is called by verify_oop.
assert
(
UseCompressedOops
,
"must be compressed"
);
sllx
(
r
,
LogMinObjAlignmentInBytes
,
r
);
add
(
r
,
G6_heapbase
,
r
);
...
...
@@ -3695,6 +3700,7 @@ void MacroAssembler::decode_heap_oop_not_null(Register r) {
void
MacroAssembler
::
decode_heap_oop_not_null
(
Register
src
,
Register
dst
)
{
// Do not add assert code to this unless you change vtableStubs_sparc.cpp
// pd_code_size_limit.
// Also do not verify_oop as this is called by verify_oop.
assert
(
UseCompressedOops
,
"must be compressed"
);
sllx
(
src
,
LogMinObjAlignmentInBytes
,
dst
);
add
(
dst
,
G6_heapbase
,
dst
);
...
...
src/cpu/sparc/vm/sharedRuntime_sparc.cpp
浏览文件 @
05f7efeb
...
...
@@ -2720,7 +2720,8 @@ nmethod *SharedRuntime::generate_dtrace_nmethod(
#endif
/* ASSERT */
VMRegPair
zero
;
zero
.
set2
(
G0
->
as_VMReg
());
const
Register
g0
=
G0
;
// without this we get a compiler warning (why??)
zero
.
set2
(
g0
->
as_VMReg
());
int
c_arg
,
j_arg
;
...
...
src/cpu/x86/vm/assembler_x86_64.cpp
浏览文件 @
05f7efeb
...
...
@@ -5282,6 +5282,7 @@ void MacroAssembler::decode_heap_oop_not_null(Register r) {
assert
(
UseCompressedOops
,
"should only be used for compressed headers"
);
// Cannot assert, unverified entry point counts instructions (see .ad file)
// vtableStubs also counts instructions in pd_code_size_limit.
// Also do not verify_oop as this is called by verify_oop.
assert
(
Address
::
times_8
==
LogMinObjAlignmentInBytes
,
"decode alg wrong"
);
leaq
(
r
,
Address
(
r12_heapbase
,
r
,
Address
::
times_8
,
0
));
}
...
...
@@ -5290,6 +5291,7 @@ void MacroAssembler::decode_heap_oop_not_null(Register dst, Register src) {
assert
(
UseCompressedOops
,
"should only be used for compressed headers"
);
// Cannot assert, unverified entry point counts instructions (see .ad file)
// vtableStubs also counts instructions in pd_code_size_limit.
// Also do not verify_oop as this is called by verify_oop.
assert
(
Address
::
times_8
==
LogMinObjAlignmentInBytes
,
"decode alg wrong"
);
leaq
(
dst
,
Address
(
r12_heapbase
,
src
,
Address
::
times_8
,
0
));
}
...
...
src/cpu/x86/vm/interp_masm_x86_64.cpp
浏览文件 @
05f7efeb
...
...
@@ -233,7 +233,7 @@ void InterpreterMacroAssembler::gen_subtype_check(Register Rsub_klass,
assert
(
Rsub_klass
!=
rcx
,
"rcx holds 2ndary super array length"
);
assert
(
Rsub_klass
!=
rdi
,
"rdi holds 2ndary super array scan ptr"
);
Label
not_subtype
,
loop
;
Label
not_subtype
,
not_subtype_pop
,
loop
;
// Profile the not-null value's klass.
profile_typecheck
(
rcx
,
Rsub_klass
,
rdi
);
// blows rcx, rdi
...
...
@@ -272,12 +272,13 @@ void InterpreterMacroAssembler::gen_subtype_check(Register Rsub_klass,
// and we store values in objArrays always encoded, thus we need to encode value
// before repne
if
(
UseCompressedOops
)
{
pushq
(
rax
);
encode_heap_oop
(
rax
);
repne_scanl
();
// Not equal?
jcc
(
Assembler
::
notEqual
,
not_subtype
);
//
decod
e heap oop here for movq
decode_heap_oop
(
rax
);
jcc
(
Assembler
::
notEqual
,
not_subtype
_pop
);
//
restor
e heap oop here for movq
popq
(
rax
);
}
else
{
repne_scanq
();
jcc
(
Assembler
::
notEqual
,
not_subtype
);
...
...
@@ -287,9 +288,10 @@ void InterpreterMacroAssembler::gen_subtype_check(Register Rsub_klass,
Klass
::
secondary_super_cache_offset_in_bytes
()),
rax
);
jmp
(
ok_is_subtype
);
bind
(
not_subtype_pop
);
// restore heap oop here for miss
if
(
UseCompressedOops
)
popq
(
rax
);
bind
(
not_subtype
);
// decode heap oop here for miss
if
(
UseCompressedOops
)
decode_heap_oop
(
rax
);
profile_typecheck_failed
(
rcx
);
// blows rcx
}
...
...
src/share/vm/classfile/classFileParser.cpp
浏览文件 @
05f7efeb
...
...
@@ -44,6 +44,7 @@
// Used for backward compatibility reasons:
// - to check for javac bug fixes that happened after 1.5
// - also used as the max version when running in jdk6
#define JAVA_6_VERSION 50
...
...
@@ -3507,9 +3508,11 @@ bool ClassFileParser::has_illegal_visibility(jint flags) {
}
bool
ClassFileParser
::
is_supported_version
(
u2
major
,
u2
minor
)
{
u2
max_version
=
JDK_Version
::
is_gte_jdk17x_version
()
?
JAVA_MAX_SUPPORTED_VERSION
:
JAVA_6_VERSION
;
return
(
major
>=
JAVA_MIN_SUPPORTED_VERSION
)
&&
(
major
<=
JAVA_MAX_SUPPORTED_VERSION
)
&&
((
major
!=
JAVA_MAX_SUPPORTED_VERSION
)
||
(
major
<=
max_version
)
&&
((
major
!=
max_version
)
||
(
minor
<=
JAVA_MAX_SUPPORTED_MINOR_VERSION
));
}
...
...
src/share/vm/interpreter/bytecodeInterpreterWithChecks.xml
浏览文件 @
05f7efeb
<?xml version="1.0"?>
<!--
6opyright 2006-2008
Sun Microsystems, Inc. All Rights Reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
Copyright 1997-2000
Sun Microsystems, Inc. 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
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.
This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.
This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).
This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).
You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
CA 95054 USA or visit www.sun.com if you need additional information or
have any questions.
Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
CA 95054 USA or visit www.sun.com if you need additional information or
have any questions.
-->
<!DOCTYPE processcode [
<!ELEMENT processcode ANY>
...
...
src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl
浏览文件 @
05f7efeb
<?xml version="1.0"?>
<!--
Copyright 2006-2008
Sun Microsystems, Inc. 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
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.
This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).
You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
CA 95054 USA or visit www.sun.com if you need additional information or
have any questions.
Copyright 1997-2000
Sun Microsystems, Inc. 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
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.
This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).
You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
CA 95054 USA or visit www.sun.com if you need additional information or
have any questions.
-->
<xsl:stylesheet
xmlns:xsl=
"http://www.w3.org/1999/XSL/Transform"
version=
"1.0"
>
...
...
src/share/vm/runtime/java.hpp
浏览文件 @
05f7efeb
...
...
@@ -68,8 +68,24 @@ class JDK_Version : AllStatic {
static
bool
is_jdk13x_version
()
{
assert
(
is_jdk_version_initialized
(),
"must have been initialized"
);
return
_jdk_version
==
3
;
}
static
bool
is_jdk14x_version
()
{
assert
(
is_jdk_version_initialized
(),
"must have been initialized"
);
return
_jdk_version
==
4
;
}
static
bool
is_jdk15x_version
()
{
assert
(
is_jdk_version_initialized
(),
"must have been initialized"
);
return
_jdk_version
==
5
;
}
static
bool
is_jdk16x_version
()
{
assert
(
is_jdk_version_initialized
(),
"must have been initialized"
);
return
_jdk_version
==
6
;
}
static
bool
is_jdk17x_version
()
{
assert
(
is_jdk_version_initialized
(),
"must have been initialized"
);
return
_jdk_version
==
7
;
}
static
bool
is_jdk16x_version
()
{
if
(
is_jdk_version_initialized
())
{
return
_jdk_version
==
6
;
}
else
{
assert
(
is_pre_jdk16_version
(),
"must have been initialized"
);
return
false
;
}
}
static
bool
is_jdk17x_version
()
{
if
(
is_jdk_version_initialized
())
{
return
_jdk_version
==
7
;
}
else
{
assert
(
is_pre_jdk16_version
(),
"must have been initialized"
);
return
false
;
}
}
static
bool
supports_thread_park_blocker
()
{
return
_version_info
.
thread_park_blocker
;
}
...
...
@@ -85,14 +101,22 @@ class JDK_Version : AllStatic {
}
static
bool
is_gte_jdk16x_version
()
{
// Keep the semantics of this that the version number is >= 1.6
assert
(
is_jdk_version_initialized
(),
"Not initialized"
);
return
_jdk_version
>=
6
;
if
(
is_jdk_version_initialized
())
{
return
_jdk_version
>=
6
;
}
else
{
assert
(
is_pre_jdk16_version
(),
"Not initialized"
);
return
false
;
}
}
static
bool
is_gte_jdk17x_version
()
{
// Keep the semantics of this that the version number is >= 1.7
assert
(
is_jdk_version_initialized
(),
"Not initialized"
);
return
_jdk_version
>=
7
;
if
(
is_jdk_version_initialized
())
{
return
_jdk_version
>=
7
;
}
else
{
assert
(
is_pre_jdk16_version
(),
"Not initialized"
);
return
false
;
}
}
static
bool
is_jdk_version_initialized
()
{
...
...
test/compiler/6659207/Test.java
浏览文件 @
05f7efeb
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* Copyright 1997-2002 Sun Microsystems, Inc. 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*
*/
...
...
test/compiler/6661247/Test.java
浏览文件 @
05f7efeb
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* Copyright 1997-2002 Sun Microsystems, Inc. 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*
*/
...
...
test/compiler/6663621/IVTest.java
浏览文件 @
05f7efeb
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* Copyright 1997-2002 Sun Microsystems, Inc. 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录