Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
50ebd6d5
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看板
提交
50ebd6d5
编写于
10月 06, 2010
作者:
K
kvn
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
b3f0ab02
0f19c10a
变更
52
展开全部
隐藏空白更改
内联
并排
Showing
52 changed file
with
1034 addition
and
4854 deletion
+1034
-4854
make/linux/adlc_updater
make/linux/adlc_updater
+2
-1
make/solaris/adlc_updater
make/solaris/adlc_updater
+2
-1
make/solaris/makefiles/amd64.make
make/solaris/makefiles/amd64.make
+2
-1
make/solaris/makefiles/reorder_COMPILER1_i486
make/solaris/makefiles/reorder_COMPILER1_i486
+0
-166
make/solaris/makefiles/reorder_COMPILER1_sparc
make/solaris/makefiles/reorder_COMPILER1_sparc
+0
-105
make/solaris/makefiles/reorder_TIERED_amd64
make/solaris/makefiles/reorder_TIERED_amd64
+0
-2738
make/solaris/makefiles/reorder_TIERED_i486
make/solaris/makefiles/reorder_TIERED_i486
+0
-249
make/solaris/makefiles/reorder_TIERED_sparc
make/solaris/makefiles/reorder_TIERED_sparc
+0
-119
make/solaris/makefiles/reorder_TIERED_sparcv9
make/solaris/makefiles/reorder_TIERED_sparcv9
+0
-270
src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
+1
-0
src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
+2
-1
src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
+8
-7
src/cpu/x86/vm/c1_CodeStubs_x86.cpp
src/cpu/x86/vm/c1_CodeStubs_x86.cpp
+2
-1
src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
+3
-1
src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
+9
-7
src/cpu/x86/vm/methodHandles_x86.cpp
src/cpu/x86/vm/methodHandles_x86.cpp
+1
-1
src/cpu/x86/vm/x86_64.ad
src/cpu/x86/vm/x86_64.ad
+0
-37
src/share/vm/c1/c1_CFGPrinter.cpp
src/share/vm/c1/c1_CFGPrinter.cpp
+30
-27
src/share/vm/c1/c1_Canonicalizer.cpp
src/share/vm/c1/c1_Canonicalizer.cpp
+4
-4
src/share/vm/c1/c1_Compilation.hpp
src/share/vm/c1/c1_Compilation.hpp
+0
-1
src/share/vm/c1/c1_GraphBuilder.cpp
src/share/vm/c1/c1_GraphBuilder.cpp
+216
-274
src/share/vm/c1/c1_GraphBuilder.hpp
src/share/vm/c1/c1_GraphBuilder.hpp
+25
-21
src/share/vm/c1/c1_IR.cpp
src/share/vm/c1/c1_IR.cpp
+5
-68
src/share/vm/c1/c1_IR.hpp
src/share/vm/c1/c1_IR.hpp
+2
-50
src/share/vm/c1/c1_Instruction.cpp
src/share/vm/c1/c1_Instruction.cpp
+33
-110
src/share/vm/c1/c1_Instruction.hpp
src/share/vm/c1/c1_Instruction.hpp
+134
-194
src/share/vm/c1/c1_InstructionPrinter.cpp
src/share/vm/c1/c1_InstructionPrinter.cpp
+2
-2
src/share/vm/c1/c1_LIR.cpp
src/share/vm/c1/c1_LIR.cpp
+5
-4
src/share/vm/c1/c1_LIR.hpp
src/share/vm/c1/c1_LIR.hpp
+37
-3
src/share/vm/c1/c1_LIRAssembler.cpp
src/share/vm/c1/c1_LIRAssembler.cpp
+7
-8
src/share/vm/c1/c1_LIRGenerator.cpp
src/share/vm/c1/c1_LIRGenerator.cpp
+40
-36
src/share/vm/c1/c1_LinearScan.cpp
src/share/vm/c1/c1_LinearScan.cpp
+34
-41
src/share/vm/c1/c1_LinearScan.hpp
src/share/vm/c1/c1_LinearScan.hpp
+1
-1
src/share/vm/c1/c1_Optimizer.cpp
src/share/vm/c1/c1_Optimizer.cpp
+16
-16
src/share/vm/c1/c1_ValueStack.cpp
src/share/vm/c1/c1_ValueStack.cpp
+109
-112
src/share/vm/c1/c1_ValueStack.hpp
src/share/vm/c1/c1_ValueStack.hpp
+62
-83
src/share/vm/c1/c1_globals.hpp
src/share/vm/c1/c1_globals.hpp
+0
-3
src/share/vm/ci/ciMethod.cpp
src/share/vm/ci/ciMethod.cpp
+6
-2
src/share/vm/includeDB_compiler1
src/share/vm/includeDB_compiler1
+4
-0
src/share/vm/opto/doCall.cpp
src/share/vm/opto/doCall.cpp
+54
-51
src/share/vm/opto/escape.cpp
src/share/vm/opto/escape.cpp
+13
-12
src/share/vm/opto/loopTransform.cpp
src/share/vm/opto/loopTransform.cpp
+12
-1
src/share/vm/opto/memnode.cpp
src/share/vm/opto/memnode.cpp
+8
-6
src/share/vm/opto/phaseX.cpp
src/share/vm/opto/phaseX.cpp
+23
-0
src/share/vm/opto/stringopts.cpp
src/share/vm/opto/stringopts.cpp
+9
-9
src/share/vm/runtime/arguments.cpp
src/share/vm/runtime/arguments.cpp
+20
-2
src/share/vm/runtime/compilationPolicy.cpp
src/share/vm/runtime/compilationPolicy.cpp
+19
-4
src/share/vm/runtime/deoptimization.cpp
src/share/vm/runtime/deoptimization.cpp
+4
-0
src/share/vm/runtime/thread.cpp
src/share/vm/runtime/thread.cpp
+1
-0
src/share/vm/runtime/thread.hpp
src/share/vm/runtime/thread.hpp
+4
-1
src/share/vm/runtime/vframeArray.cpp
src/share/vm/runtime/vframeArray.cpp
+5
-3
test/compiler/6968348/Test6968348.java
test/compiler/6968348/Test6968348.java
+58
-0
未找到文件。
make/linux/adlc_updater
浏览文件 @
50ebd6d5
...
@@ -15,5 +15,6 @@ fix_lines() {
...
@@ -15,5 +15,6 @@ fix_lines() {
'
F2
=
$2
'
F2
=
$2
mv
$1
+
$1
mv
$1
+
$1
}
}
[
-f
$3
/
$1
]
&&
(
fix_lines
$2
/
$1
$3
/
$1
;
cmp
-s
$2
/
$1
$3
/
$1
)
||
\
fix_lines
$2
/
$1
$3
/
$1
[
-f
$3
/
$1
]
&&
cmp
-s
$2
/
$1
$3
/
$1
||
\
(
[
-f
$3
/
$1
]
&&
echo
Updating
$3
/
$1
;
touch
$2
/made-change
;
mv
$2
/
$1
$3
/
$1
)
(
[
-f
$3
/
$1
]
&&
echo
Updating
$3
/
$1
;
touch
$2
/made-change
;
mv
$2
/
$1
$3
/
$1
)
make/solaris/adlc_updater
浏览文件 @
50ebd6d5
...
@@ -15,5 +15,6 @@ fix_lines() {
...
@@ -15,5 +15,6 @@ fix_lines() {
'
F2
=
$2
'
F2
=
$2
mv
$1
+
$1
mv
$1
+
$1
}
}
[
-f
$3
/
$1
]
&&
(
fix_lines
$2
/
$1
$3
/
$1
;
cmp
-s
$2
/
$1
$3
/
$1
)
||
\
fix_lines
$2
/
$1
$3
/
$1
[
-f
$3
/
$1
]
&&
cmp
-s
$2
/
$1
$3
/
$1
||
\
(
[
-f
$3
/
$1
]
&&
echo
Updating
$3
/
$1
;
touch
$2
/made-change
;
mv
$2
/
$1
$3
/
$1
)
(
[
-f
$3
/
$1
]
&&
echo
Updating
$3
/
$1
;
touch
$2
/made-change
;
mv
$2
/
$1
$3
/
$1
)
make/solaris/makefiles/amd64.make
浏览文件 @
50ebd6d5
...
@@ -35,7 +35,8 @@ ifeq ("${Platform_compiler}", "sparcWorks")
...
@@ -35,7 +35,8 @@ ifeq ("${Platform_compiler}", "sparcWorks")
# Temporary until SS10 C++ compiler is fixed
# Temporary until SS10 C++ compiler is fixed
OPT_CFLAGS/
generateOptoStub.o
=
-xO2
OPT_CFLAGS/
generateOptoStub.o
=
-xO2
# Temporary util SS12u1 C++ compiler is fixed
OPT_CFLAGS/
c1_LinearScan.o
=
-xO2
else
else
ifeq
("${Platform_compiler}", "gcc")
ifeq
("${Platform_compiler}", "gcc")
...
...
make/solaris/makefiles/reorder_COMPILER1_i486
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
make/solaris/makefiles/reorder_COMPILER1_sparc
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
make/solaris/makefiles/reorder_TIERED_amd64
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
make/solaris/makefiles/reorder_TIERED_i486
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
make/solaris/makefiles/reorder_TIERED_sparc
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
make/solaris/makefiles/reorder_TIERED_sparcv9
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
浏览文件 @
50ebd6d5
...
@@ -32,6 +32,7 @@ RangeCheckStub::RangeCheckStub(CodeEmitInfo* info, LIR_Opr index,
...
@@ -32,6 +32,7 @@ RangeCheckStub::RangeCheckStub(CodeEmitInfo* info, LIR_Opr index,
:
_throw_index_out_of_bounds_exception
(
throw_index_out_of_bounds_exception
)
:
_throw_index_out_of_bounds_exception
(
throw_index_out_of_bounds_exception
)
,
_index
(
index
)
,
_index
(
index
)
{
{
assert
(
info
!=
NULL
,
"must have info"
);
_info
=
new
CodeEmitInfo
(
info
);
_info
=
new
CodeEmitInfo
(
info
);
}
}
...
...
src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
浏览文件 @
50ebd6d5
...
@@ -420,7 +420,8 @@ int LIR_Assembler::emit_unwind_handler() {
...
@@ -420,7 +420,8 @@ int LIR_Assembler::emit_unwind_handler() {
}
}
if
(
compilation
()
->
env
()
->
dtrace_method_probes
())
{
if
(
compilation
()
->
env
()
->
dtrace_method_probes
())
{
jobject2reg
(
method
()
->
constant_encoding
(),
O0
);
__
mov
(
G2_thread
,
O0
);
jobject2reg
(
method
()
->
constant_encoding
(),
O1
);
__
call
(
CAST_FROM_FN_PTR
(
address
,
SharedRuntime
::
dtrace_method_exit
),
relocInfo
::
runtime_call_type
);
__
call
(
CAST_FROM_FN_PTR
(
address
,
SharedRuntime
::
dtrace_method_exit
),
relocInfo
::
runtime_call_type
);
__
delayed
()
->
nop
();
__
delayed
()
->
nop
();
}
}
...
...
src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
浏览文件 @
50ebd6d5
...
@@ -311,7 +311,7 @@ void LIRGenerator::store_stack_parameter (LIR_Opr item, ByteSize offset_from_sp)
...
@@ -311,7 +311,7 @@ void LIRGenerator::store_stack_parameter (LIR_Opr item, ByteSize offset_from_sp)
void
LIRGenerator
::
do_StoreIndexed
(
StoreIndexed
*
x
)
{
void
LIRGenerator
::
do_StoreIndexed
(
StoreIndexed
*
x
)
{
assert
(
x
->
is_
root
(),
""
);
assert
(
x
->
is_
pinned
(),
""
);
bool
needs_range_check
=
true
;
bool
needs_range_check
=
true
;
bool
use_length
=
x
->
length
()
!=
NULL
;
bool
use_length
=
x
->
length
()
!=
NULL
;
bool
obj_store
=
x
->
elt_type
()
==
T_ARRAY
||
x
->
elt_type
()
==
T_OBJECT
;
bool
obj_store
=
x
->
elt_type
()
==
T_ARRAY
||
x
->
elt_type
()
==
T_OBJECT
;
...
@@ -386,7 +386,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
...
@@ -386,7 +386,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
void
LIRGenerator
::
do_MonitorEnter
(
MonitorEnter
*
x
)
{
void
LIRGenerator
::
do_MonitorEnter
(
MonitorEnter
*
x
)
{
assert
(
x
->
is_
root
(),
""
);
assert
(
x
->
is_
pinned
(),
""
);
LIRItem
obj
(
x
->
obj
(),
this
);
LIRItem
obj
(
x
->
obj
(),
this
);
obj
.
load_item
();
obj
.
load_item
();
...
@@ -398,7 +398,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
...
@@ -398,7 +398,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
CodeEmitInfo
*
info_for_exception
=
NULL
;
CodeEmitInfo
*
info_for_exception
=
NULL
;
if
(
x
->
needs_null_check
())
{
if
(
x
->
needs_null_check
())
{
info_for_exception
=
state_for
(
x
,
x
->
lock_stack_before
()
);
info_for_exception
=
state_for
(
x
);
}
}
// this CodeEmitInfo must not have the xhandlers because here the
// this CodeEmitInfo must not have the xhandlers because here the
...
@@ -409,7 +409,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
...
@@ -409,7 +409,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
void
LIRGenerator
::
do_MonitorExit
(
MonitorExit
*
x
)
{
void
LIRGenerator
::
do_MonitorExit
(
MonitorExit
*
x
)
{
assert
(
x
->
is_
root
(),
""
);
assert
(
x
->
is_
pinned
(),
""
);
LIRItem
obj
(
x
->
obj
(),
this
);
LIRItem
obj
(
x
->
obj
(),
this
);
obj
.
dont_load_item
();
obj
.
dont_load_item
();
...
@@ -871,10 +871,11 @@ void LIRGenerator::do_NewInstance(NewInstance* x) {
...
@@ -871,10 +871,11 @@ void LIRGenerator::do_NewInstance(NewInstance* x) {
// This instruction can be deoptimized in the slow path : use
// This instruction can be deoptimized in the slow path : use
// O0 as result register.
// O0 as result register.
const
LIR_Opr
reg
=
result_register_for
(
x
->
type
());
const
LIR_Opr
reg
=
result_register_for
(
x
->
type
());
#ifndef PRODUCT
if
(
PrintNotLoaded
&&
!
x
->
klass
()
->
is_loaded
())
{
if
(
PrintNotLoaded
&&
!
x
->
klass
()
->
is_loaded
())
{
tty
->
print_cr
(
" ###class not loaded at new bci %d"
,
x
->
bci
());
tty
->
print_cr
(
" ###class not loaded at new bci %d"
,
x
->
printable_
bci
());
}
}
#endif
CodeEmitInfo
*
info
=
state_for
(
x
,
x
->
state
());
CodeEmitInfo
*
info
=
state_for
(
x
,
x
->
state
());
LIR_Opr
tmp1
=
FrameMap
::
G1_oop_opr
;
LIR_Opr
tmp1
=
FrameMap
::
G1_oop_opr
;
LIR_Opr
tmp2
=
FrameMap
::
G3_oop_opr
;
LIR_Opr
tmp2
=
FrameMap
::
G3_oop_opr
;
...
@@ -1018,7 +1019,7 @@ void LIRGenerator::do_CheckCast(CheckCast* x) {
...
@@ -1018,7 +1019,7 @@ void LIRGenerator::do_CheckCast(CheckCast* x) {
obj
.
load_item
();
obj
.
load_item
();
LIR_Opr
out_reg
=
rlock_result
(
x
);
LIR_Opr
out_reg
=
rlock_result
(
x
);
CodeStub
*
stub
;
CodeStub
*
stub
;
CodeEmitInfo
*
info_for_exception
=
state_for
(
x
,
x
->
state
()
->
copy_locks
()
);
CodeEmitInfo
*
info_for_exception
=
state_for
(
x
);
if
(
x
->
is_incompatible_class_change_check
())
{
if
(
x
->
is_incompatible_class_change_check
())
{
assert
(
patching_info
==
NULL
,
"can't patch this"
);
assert
(
patching_info
==
NULL
,
"can't patch this"
);
...
...
src/cpu/x86/vm/c1_CodeStubs_x86.cpp
浏览文件 @
50ebd6d5
...
@@ -83,7 +83,8 @@ RangeCheckStub::RangeCheckStub(CodeEmitInfo* info, LIR_Opr index,
...
@@ -83,7 +83,8 @@ RangeCheckStub::RangeCheckStub(CodeEmitInfo* info, LIR_Opr index,
:
_throw_index_out_of_bounds_exception
(
throw_index_out_of_bounds_exception
)
:
_throw_index_out_of_bounds_exception
(
throw_index_out_of_bounds_exception
)
,
_index
(
index
)
,
_index
(
index
)
{
{
_info
=
info
==
NULL
?
NULL
:
new
CodeEmitInfo
(
info
);
assert
(
info
!=
NULL
,
"must have info"
);
_info
=
new
CodeEmitInfo
(
info
);
}
}
...
...
src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
浏览文件 @
50ebd6d5
...
@@ -488,7 +488,9 @@ int LIR_Assembler::emit_unwind_handler() {
...
@@ -488,7 +488,9 @@ int LIR_Assembler::emit_unwind_handler() {
}
}
if
(
compilation
()
->
env
()
->
dtrace_method_probes
())
{
if
(
compilation
()
->
env
()
->
dtrace_method_probes
())
{
__
movoop
(
Address
(
rsp
,
0
),
method
()
->
constant_encoding
());
__
get_thread
(
rax
);
__
movptr
(
Address
(
rsp
,
0
),
rax
);
__
movoop
(
Address
(
rsp
,
sizeof
(
void
*
)),
method
()
->
constant_encoding
());
__
call
(
RuntimeAddress
(
CAST_FROM_FN_PTR
(
address
,
SharedRuntime
::
dtrace_method_exit
)));
__
call
(
RuntimeAddress
(
CAST_FROM_FN_PTR
(
address
,
SharedRuntime
::
dtrace_method_exit
)));
}
}
...
...
src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
浏览文件 @
50ebd6d5
...
@@ -107,7 +107,7 @@ bool LIRGenerator::can_store_as_constant(Value v, BasicType type) const {
...
@@ -107,7 +107,7 @@ bool LIRGenerator::can_store_as_constant(Value v, BasicType type) const {
return
false
;
return
false
;
}
}
Constant
*
c
=
v
->
as_Constant
();
Constant
*
c
=
v
->
as_Constant
();
if
(
c
&&
c
->
state
()
==
NULL
)
{
if
(
c
&&
c
->
state
_before
()
==
NULL
)
{
// constants of any type can be stored directly, except for
// constants of any type can be stored directly, except for
// unloaded object constants.
// unloaded object constants.
return
true
;
return
true
;
...
@@ -250,7 +250,7 @@ void LIRGenerator::store_stack_parameter (LIR_Opr item, ByteSize offset_from_sp)
...
@@ -250,7 +250,7 @@ void LIRGenerator::store_stack_parameter (LIR_Opr item, ByteSize offset_from_sp)
void
LIRGenerator
::
do_StoreIndexed
(
StoreIndexed
*
x
)
{
void
LIRGenerator
::
do_StoreIndexed
(
StoreIndexed
*
x
)
{
assert
(
x
->
is_
root
(),
""
);
assert
(
x
->
is_
pinned
(),
""
);
bool
needs_range_check
=
true
;
bool
needs_range_check
=
true
;
bool
use_length
=
x
->
length
()
!=
NULL
;
bool
use_length
=
x
->
length
()
!=
NULL
;
bool
obj_store
=
x
->
elt_type
()
==
T_ARRAY
||
x
->
elt_type
()
==
T_OBJECT
;
bool
obj_store
=
x
->
elt_type
()
==
T_ARRAY
||
x
->
elt_type
()
==
T_OBJECT
;
...
@@ -325,7 +325,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
...
@@ -325,7 +325,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
void
LIRGenerator
::
do_MonitorEnter
(
MonitorEnter
*
x
)
{
void
LIRGenerator
::
do_MonitorEnter
(
MonitorEnter
*
x
)
{
assert
(
x
->
is_
root
(),
""
);
assert
(
x
->
is_
pinned
(),
""
);
LIRItem
obj
(
x
->
obj
(),
this
);
LIRItem
obj
(
x
->
obj
(),
this
);
obj
.
load_item
();
obj
.
load_item
();
...
@@ -341,7 +341,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
...
@@ -341,7 +341,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
CodeEmitInfo
*
info_for_exception
=
NULL
;
CodeEmitInfo
*
info_for_exception
=
NULL
;
if
(
x
->
needs_null_check
())
{
if
(
x
->
needs_null_check
())
{
info_for_exception
=
state_for
(
x
,
x
->
lock_stack_before
()
);
info_for_exception
=
state_for
(
x
);
}
}
// this CodeEmitInfo must not have the xhandlers because here the
// this CodeEmitInfo must not have the xhandlers because here the
// object is already locked (xhandlers expect object to be unlocked)
// object is already locked (xhandlers expect object to be unlocked)
...
@@ -352,7 +352,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
...
@@ -352,7 +352,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
void
LIRGenerator
::
do_MonitorExit
(
MonitorExit
*
x
)
{
void
LIRGenerator
::
do_MonitorExit
(
MonitorExit
*
x
)
{
assert
(
x
->
is_
root
(),
""
);
assert
(
x
->
is_
pinned
(),
""
);
LIRItem
obj
(
x
->
obj
(),
this
);
LIRItem
obj
(
x
->
obj
(),
this
);
obj
.
dont_load_item
();
obj
.
dont_load_item
();
...
@@ -984,9 +984,11 @@ void LIRGenerator::do_Convert(Convert* x) {
...
@@ -984,9 +984,11 @@ void LIRGenerator::do_Convert(Convert* x) {
void
LIRGenerator
::
do_NewInstance
(
NewInstance
*
x
)
{
void
LIRGenerator
::
do_NewInstance
(
NewInstance
*
x
)
{
#ifndef PRODUCT
if
(
PrintNotLoaded
&&
!
x
->
klass
()
->
is_loaded
())
{
if
(
PrintNotLoaded
&&
!
x
->
klass
()
->
is_loaded
())
{
tty
->
print_cr
(
" ###class not loaded at new bci %d"
,
x
->
bci
());
tty
->
print_cr
(
" ###class not loaded at new bci %d"
,
x
->
printable_
bci
());
}
}
#endif
CodeEmitInfo
*
info
=
state_for
(
x
,
x
->
state
());
CodeEmitInfo
*
info
=
state_for
(
x
,
x
->
state
());
LIR_Opr
reg
=
result_register_for
(
x
->
type
());
LIR_Opr
reg
=
result_register_for
(
x
->
type
());
LIR_Opr
klass_reg
=
new_register
(
objectType
);
LIR_Opr
klass_reg
=
new_register
(
objectType
);
...
@@ -1127,7 +1129,7 @@ void LIRGenerator::do_CheckCast(CheckCast* x) {
...
@@ -1127,7 +1129,7 @@ void LIRGenerator::do_CheckCast(CheckCast* x) {
obj
.
load_item
();
obj
.
load_item
();
// info for exceptions
// info for exceptions
CodeEmitInfo
*
info_for_exception
=
state_for
(
x
,
x
->
state
()
->
copy_locks
()
);
CodeEmitInfo
*
info_for_exception
=
state_for
(
x
);
CodeStub
*
stub
;
CodeStub
*
stub
;
if
(
x
->
is_incompatible_class_change_check
())
{
if
(
x
->
is_incompatible_class_change_check
())
{
...
...
src/cpu/x86/vm/methodHandles_x86.cpp
浏览文件 @
50ebd6d5
...
@@ -346,7 +346,7 @@ void trace_method_handle_stub(const char* adaptername,
...
@@ -346,7 +346,7 @@ void trace_method_handle_stub(const char* adaptername,
if
(
stack_dump_count
>
64
)
stack_dump_count
=
48
;
if
(
stack_dump_count
>
64
)
stack_dump_count
=
48
;
for
(
i
=
0
;
i
<
stack_dump_count
;
i
+=
4
)
{
for
(
i
=
0
;
i
<
stack_dump_count
;
i
+=
4
)
{
printf
(
" dump at SP[%d] "
INTPTR_FORMAT
": "
INTPTR_FORMAT
" "
INTPTR_FORMAT
" "
INTPTR_FORMAT
" "
INTPTR_FORMAT
"
\n
"
,
printf
(
" dump at SP[%d] "
INTPTR_FORMAT
": "
INTPTR_FORMAT
" "
INTPTR_FORMAT
" "
INTPTR_FORMAT
" "
INTPTR_FORMAT
"
\n
"
,
i
,
&
entry_sp
[
i
+
0
],
entry_sp
[
i
+
0
],
entry_sp
[
i
+
1
],
entry_sp
[
i
+
2
],
entry_sp
[
i
+
3
]);
i
,
(
intptr_t
)
&
entry_sp
[
i
+
0
],
entry_sp
[
i
+
0
],
entry_sp
[
i
+
1
],
entry_sp
[
i
+
2
],
entry_sp
[
i
+
3
]);
}
}
print_method_handle
(
mh
);
print_method_handle
(
mh
);
}
}
...
...
src/cpu/x86/vm/x86_64.ad
浏览文件 @
50ebd6d5
...
@@ -7349,43 +7349,6 @@ instruct bytes_reverse_short(rRegI dst) %{
...
@@ -7349,43 +7349,6 @@ instruct bytes_reverse_short(rRegI dst) %{
ins_pipe( ialu_reg );
ins_pipe( ialu_reg );
%}
%}
instruct loadI_reversed(rRegI dst, memory src) %{
match(Set dst (ReverseBytesI (LoadI src)));
format %{ "bswap_movl $dst, $src" %}
opcode(0x8B, 0x0F, 0xC8); /* Opcode 8B 0F C8 */
ins_encode(REX_reg_mem(dst, src), OpcP, reg_mem(dst, src), REX_reg(dst), OpcS, opc3_reg(dst));
ins_pipe( ialu_reg_mem );
%}
instruct loadL_reversed(rRegL dst, memory src) %{
match(Set dst (ReverseBytesL (LoadL src)));
format %{ "bswap_movq $dst, $src" %}
opcode(0x8B, 0x0F, 0xC8); /* Opcode 8B 0F C8 */
ins_encode(REX_reg_mem_wide(dst, src), OpcP, reg_mem(dst, src), REX_reg_wide(dst), OpcS, opc3_reg(dst));
ins_pipe( ialu_reg_mem );
%}
instruct storeI_reversed(memory dst, rRegI src) %{
match(Set dst (StoreI dst (ReverseBytesI src)));
format %{ "movl_bswap $dst, $src" %}
opcode(0x0F, 0xC8, 0x89); /* Opcode 0F C8 89 */
ins_encode( REX_reg(src), OpcP, opc2_reg(src), REX_reg_mem(src, dst), OpcT, reg_mem(src, dst) );
ins_pipe( ialu_mem_reg );
%}
instruct storeL_reversed(memory dst, rRegL src) %{
match(Set dst (StoreL dst (ReverseBytesL src)));
format %{ "movq_bswap $dst, $src" %}
opcode(0x0F, 0xC8, 0x89); /* Opcode 0F C8 89 */
ins_encode( REX_reg_wide(src), OpcP, opc2_reg(src), REX_reg_mem_wide(src, dst), OpcT, reg_mem(src, dst) );
ins_pipe( ialu_mem_reg );
%}
//---------- Zeros Count Instructions ------------------------------------------
//---------- Zeros Count Instructions ------------------------------------------
instruct countLeadingZerosI(rRegI dst, rRegI src, rFlagsReg cr) %{
instruct countLeadingZerosI(rRegI dst, rRegI src, rFlagsReg cr) %{
...
...
src/share/vm/c1/c1_CFGPrinter.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_Canonicalizer.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_Compilation.hpp
浏览文件 @
50ebd6d5
...
@@ -22,7 +22,6 @@
...
@@ -22,7 +22,6 @@
*
*
*/
*/
class
BlockBegin
;
class
CompilationResourceObj
;
class
CompilationResourceObj
;
class
XHandlers
;
class
XHandlers
;
class
ExceptionInfo
;
class
ExceptionInfo
;
...
...
src/share/vm/c1/c1_GraphBuilder.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_GraphBuilder.hpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_IR.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_IR.hpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_Instruction.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_Instruction.hpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_InstructionPrinter.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_LIR.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_LIR.hpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_LIRAssembler.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_LIRGenerator.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_LinearScan.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_LinearScan.hpp
浏览文件 @
50ebd6d5
...
@@ -346,7 +346,7 @@ class LinearScan : public CompilationResourceObj {
...
@@ -346,7 +346,7 @@ class LinearScan : public CompilationResourceObj {
int
append_scope_value_for_operand
(
LIR_Opr
opr
,
GrowableArray
<
ScopeValue
*>*
scope_values
);
int
append_scope_value_for_operand
(
LIR_Opr
opr
,
GrowableArray
<
ScopeValue
*>*
scope_values
);
int
append_scope_value
(
int
op_id
,
Value
value
,
GrowableArray
<
ScopeValue
*>*
scope_values
);
int
append_scope_value
(
int
op_id
,
Value
value
,
GrowableArray
<
ScopeValue
*>*
scope_values
);
IRScopeDebugInfo
*
compute_debug_info_for_scope
(
int
op_id
,
IRScope
*
cur_scope
,
ValueStack
*
cur_state
,
ValueStack
*
innermost_state
,
int
cur_bci
,
int
stack_end
,
int
locks_end
);
IRScopeDebugInfo
*
compute_debug_info_for_scope
(
int
op_id
,
IRScope
*
cur_scope
,
ValueStack
*
cur_state
,
ValueStack
*
innermost_state
);
void
compute_debug_info
(
CodeEmitInfo
*
info
,
int
op_id
);
void
compute_debug_info
(
CodeEmitInfo
*
info
,
int
op_id
);
void
assign_reg_num
(
LIR_OpList
*
instructions
,
IntervalWalker
*
iw
);
void
assign_reg_num
(
LIR_OpList
*
instructions
,
IntervalWalker
*
iw
);
...
...
src/share/vm/c1/c1_Optimizer.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_ValueStack.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_ValueStack.hpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/c1/c1_globals.hpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/ci/ciMethod.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/includeDB_compiler1
浏览文件 @
50ebd6d5
...
@@ -448,3 +448,7 @@ thread.cpp c1_Compiler.hpp
...
@@ -448,3 +448,7 @@ thread.cpp c1_Compiler.hpp
top.hpp c1_globals.hpp
top.hpp c1_globals.hpp
vmStructs.hpp c1_Runtime1.hpp
vmStructs.hpp c1_Runtime1.hpp
c1_Canonicalizer.cpp c1_ValueStack.hpp
c1_LIR.cpp c1_ValueStack.hpp
src/share/vm/opto/doCall.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/opto/escape.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/opto/loopTransform.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/opto/memnode.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/opto/phaseX.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/opto/stringopts.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/runtime/arguments.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/runtime/compilationPolicy.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/runtime/deoptimization.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/runtime/thread.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/runtime/thread.hpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
src/share/vm/runtime/vframeArray.cpp
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
test/compiler/6968348/Test6968348.java
0 → 100644
浏览文件 @
50ebd6d5
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录