Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
e4ccd055
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看板
提交
e4ccd055
编写于
6月 21, 2008
作者:
N
never
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
67a31c0f
05450ea2
变更
14
显示空白变更内容
内联
并排
Showing
14 changed file
with
929 addition
and
29 deletion
+929
-29
src/share/tools/MakeDeps/Database.java
src/share/tools/MakeDeps/Database.java
+12
-0
src/share/vm/adlc/formssel.cpp
src/share/vm/adlc/formssel.cpp
+1
-0
src/share/vm/opto/connode.cpp
src/share/vm/opto/connode.cpp
+12
-8
src/share/vm/opto/connode.hpp
src/share/vm/opto/connode.hpp
+15
-3
src/share/vm/opto/gcm.cpp
src/share/vm/opto/gcm.cpp
+3
-1
src/share/vm/opto/loopTransform.cpp
src/share/vm/opto/loopTransform.cpp
+3
-3
src/share/vm/opto/loopUnswitch.cpp
src/share/vm/opto/loopUnswitch.cpp
+1
-1
src/share/vm/opto/loopopts.cpp
src/share/vm/opto/loopopts.cpp
+1
-1
src/share/vm/opto/machnode.cpp
src/share/vm/opto/machnode.cpp
+10
-8
src/share/vm/opto/macro.cpp
src/share/vm/opto/macro.cpp
+8
-1
src/share/vm/opto/matcher.cpp
src/share/vm/opto/matcher.cpp
+37
-2
src/share/vm/opto/matcher.hpp
src/share/vm/opto/matcher.hpp
+2
-0
src/share/vm/opto/subnode.cpp
src/share/vm/opto/subnode.cpp
+4
-1
test/compiler/6714694/Tester.java
test/compiler/6714694/Tester.java
+820
-0
未找到文件。
src/share/tools/MakeDeps/Database.java
浏览文件 @
e4ccd055
...
...
@@ -36,6 +36,7 @@ public class Database {
private
FileList
outerFiles
;
private
FileList
indivIncludes
;
private
FileList
grandInclude
;
// the results for the grand include file
private
HashMap
<
String
,
String
>
platformDepFiles
;
private
long
threshold
;
private
int
nOuterFiles
;
private
int
nPrecompiledFiles
;
...
...
@@ -57,6 +58,7 @@ public class Database {
outerFiles
=
new
FileList
(
"outerFiles"
,
plat
);
indivIncludes
=
new
FileList
(
"IndivIncludes"
,
plat
);
grandInclude
=
new
FileList
(
plat
.
getGIFileTemplate
().
nameOfList
(),
plat
);
platformDepFiles
=
new
HashMap
<
String
,
String
>();
threshold
=
t
;
nOuterFiles
=
0
;
...
...
@@ -209,6 +211,10 @@ public class Database {
FileList
p
=
allFiles
.
listForFile
(
includer
);
p
.
setPlatformDependentInclude
(
pdName
.
dirPreStemSuff
());
// Record the implicit include of this file so that the
// dependencies for precompiled headers can mention it.
platformDepFiles
.
put
(
newIncluder
,
includer
);
// Add an implicit dependency on platform
// specific file for the generic file
...
...
@@ -408,6 +414,12 @@ public class Database {
for
(
Iterator
iter
=
grandInclude
.
iterator
();
iter
.
hasNext
();
)
{
FileList
list
=
(
FileList
)
iter
.
next
();
gd
.
println
(
list
.
getName
()
+
" \\"
);
String
platformDep
=
platformDepFiles
.
get
(
list
.
getName
());
if
(
platformDep
!=
null
)
{
// make sure changes to the platform dependent file will
// cause regeneration of the pch file.
gd
.
println
(
platformDep
+
" \\"
);
}
}
gd
.
println
();
gd
.
println
();
...
...
src/share/vm/adlc/formssel.cpp
浏览文件 @
e4ccd055
...
...
@@ -729,6 +729,7 @@ bool InstructForm::captures_bottom_type() const {
!
strcmp
(
_matrule
->
_rChild
->
_opType
,
"DecodeN"
)
||
!
strcmp
(
_matrule
->
_rChild
->
_opType
,
"EncodeP"
)
||
!
strcmp
(
_matrule
->
_rChild
->
_opType
,
"LoadN"
)
||
!
strcmp
(
_matrule
->
_rChild
->
_opType
,
"LoadNKlass"
)
||
!
strcmp
(
_matrule
->
_rChild
->
_opType
,
"CreateEx"
)
||
// type of exception
!
strcmp
(
_matrule
->
_rChild
->
_opType
,
"CheckCastPP"
))
)
return
true
;
else
if
(
is_ideal_load
()
==
Form
::
idealP
)
return
true
;
...
...
src/share/vm/opto/connode.cpp
浏览文件 @
e4ccd055
...
...
@@ -565,10 +565,12 @@ Node* DecodeNNode::Identity(PhaseTransform* phase) {
}
const
Type
*
DecodeNNode
::
Value
(
PhaseTransform
*
phase
)
const
{
if
(
phase
->
type
(
in
(
1
)
)
==
TypeNarrowOop
::
NULL_PTR
)
{
return
TypePtr
::
NULL_PTR
;
}
return
bottom_type
();
const
Type
*
t
=
phase
->
type
(
in
(
1
)
);
if
(
t
==
Type
::
TOP
)
return
Type
::
TOP
;
if
(
t
==
TypeNarrowOop
::
NULL_PTR
)
return
TypePtr
::
NULL_PTR
;
assert
(
t
->
isa_narrowoop
(),
"only narrowoop here"
);
return
t
->
is_narrowoop
()
->
make_oopptr
();
}
Node
*
DecodeNNode
::
decode
(
PhaseTransform
*
phase
,
Node
*
value
)
{
...
...
@@ -599,10 +601,12 @@ Node* EncodePNode::Identity(PhaseTransform* phase) {
}
const
Type
*
EncodePNode
::
Value
(
PhaseTransform
*
phase
)
const
{
if
(
phase
->
type
(
in
(
1
)
)
==
TypePtr
::
NULL_PTR
)
{
return
TypeNarrowOop
::
NULL_PTR
;
}
return
bottom_type
();
const
Type
*
t
=
phase
->
type
(
in
(
1
)
);
if
(
t
==
Type
::
TOP
)
return
Type
::
TOP
;
if
(
t
==
TypePtr
::
NULL_PTR
)
return
TypeNarrowOop
::
NULL_PTR
;
assert
(
t
->
isa_oopptr
(),
"only oopptr here"
);
return
t
->
is_oopptr
()
->
make_narrowoop
();
}
Node
*
EncodePNode
::
encode
(
PhaseTransform
*
phase
,
Node
*
value
)
{
...
...
src/share/vm/opto/connode.hpp
浏览文件 @
e4ccd055
...
...
@@ -549,10 +549,18 @@ class Opaque1Node : public Node {
virtual
uint
hash
()
const
;
// { return NO_HASH; }
virtual
uint
cmp
(
const
Node
&
n
)
const
;
public:
Opaque1Node
(
Node
*
n
)
:
Node
(
0
,
n
)
{}
Opaque1Node
(
Compile
*
C
,
Node
*
n
)
:
Node
(
0
,
n
)
{
// Put it on the Macro nodes list to removed during macro nodes expansion.
init_flags
(
Flag_is_macro
);
C
->
add_macro_node
(
this
);
}
// Special version for the pre-loop to hold the original loop limit
// which is consumed by range check elimination.
Opaque1Node
(
Node
*
n
,
Node
*
orig_limit
)
:
Node
(
0
,
n
,
orig_limit
)
{}
Opaque1Node
(
Compile
*
C
,
Node
*
n
,
Node
*
orig_limit
)
:
Node
(
0
,
n
,
orig_limit
)
{
// Put it on the Macro nodes list to removed during macro nodes expansion.
init_flags
(
Flag_is_macro
);
C
->
add_macro_node
(
this
);
}
Node
*
original_loop_limit
()
{
return
req
()
==
3
?
in
(
2
)
:
NULL
;
}
virtual
int
Opcode
()
const
;
virtual
const
Type
*
bottom_type
()
const
{
return
TypeInt
::
INT
;
}
...
...
@@ -572,7 +580,11 @@ class Opaque2Node : public Node {
virtual
uint
hash
()
const
;
// { return NO_HASH; }
virtual
uint
cmp
(
const
Node
&
n
)
const
;
public:
Opaque2Node
(
Node
*
n
)
:
Node
(
0
,
n
)
{}
Opaque2Node
(
Compile
*
C
,
Node
*
n
)
:
Node
(
0
,
n
)
{
// Put it on the Macro nodes list to removed during macro nodes expansion.
init_flags
(
Flag_is_macro
);
C
->
add_macro_node
(
this
);
}
virtual
int
Opcode
()
const
;
virtual
const
Type
*
bottom_type
()
const
{
return
TypeInt
::
INT
;
}
};
...
...
src/share/vm/opto/gcm.cpp
浏览文件 @
e4ccd055
...
...
@@ -307,7 +307,6 @@ static Block* raise_LCA_above_marks(Block* LCA, node_idx_t mark,
// Test and set the visited bit.
if
(
mid
->
raise_LCA_visited
()
==
mark
)
continue
;
// already visited
mid
->
set_raise_LCA_visited
(
mark
);
// Don't process the current LCA, otherwise the search may terminate early
if
(
mid
!=
LCA
&&
mid
->
raise_LCA_mark
()
==
mark
)
{
...
...
@@ -317,6 +316,8 @@ static Block* raise_LCA_above_marks(Block* LCA, node_idx_t mark,
assert
(
early
->
dominates
(
LCA
),
"early is high enough"
);
// Resume searching at that point, skipping intermediate levels.
worklist
.
push
(
LCA
);
if
(
LCA
==
mid
)
continue
;
// Don't mark as visited to avoid early termination.
}
else
{
// Keep searching through this block's predecessors.
for
(
uint
j
=
1
,
jmax
=
mid
->
num_preds
();
j
<
jmax
;
j
++
)
{
...
...
@@ -324,6 +325,7 @@ static Block* raise_LCA_above_marks(Block* LCA, node_idx_t mark,
worklist
.
push
(
mid_parent
);
}
}
mid
->
set_raise_LCA_visited
(
mark
);
}
return
LCA
;
}
...
...
src/share/vm/opto/loopTransform.cpp
浏览文件 @
e4ccd055
...
...
@@ -690,7 +690,7 @@ void PhaseIdealLoop::insert_pre_post_loops( IdealLoopTree *loop, Node_List &old_
// (the main-loop trip-counter exit value) because we will be changing
// the exit value (via unrolling) so we cannot constant-fold away the zero
// trip guard until all unrolling is done.
Node
*
zer_opaq
=
new
(
C
,
2
)
Opaque1Node
(
incr
);
Node
*
zer_opaq
=
new
(
C
,
2
)
Opaque1Node
(
C
,
incr
);
Node
*
zer_cmp
=
new
(
C
,
3
)
CmpINode
(
zer_opaq
,
limit
);
Node
*
zer_bol
=
new
(
C
,
2
)
BoolNode
(
zer_cmp
,
b_test
);
register_new_node
(
zer_opaq
,
new_main_exit
);
...
...
@@ -760,7 +760,7 @@ void PhaseIdealLoop::insert_pre_post_loops( IdealLoopTree *loop, Node_List &old_
// pre-loop, the main-loop may not execute at all. Later in life this
// zero-trip guard will become the minimum-trip guard when we unroll
// the main-loop.
Node
*
min_opaq
=
new
(
C
,
2
)
Opaque1Node
(
limit
);
Node
*
min_opaq
=
new
(
C
,
2
)
Opaque1Node
(
C
,
limit
);
Node
*
min_cmp
=
new
(
C
,
3
)
CmpINode
(
pre_incr
,
min_opaq
);
Node
*
min_bol
=
new
(
C
,
2
)
BoolNode
(
min_cmp
,
b_test
);
register_new_node
(
min_opaq
,
new_pre_exit
);
...
...
@@ -810,7 +810,7 @@ void PhaseIdealLoop::insert_pre_post_loops( IdealLoopTree *loop, Node_List &old_
// Save the original loop limit in this Opaque1 node for
// use by range check elimination.
Node
*
pre_opaq
=
new
(
C
,
3
)
Opaque1Node
(
pre_limit
,
limit
);
Node
*
pre_opaq
=
new
(
C
,
3
)
Opaque1Node
(
C
,
pre_limit
,
limit
);
register_new_node
(
pre_limit
,
pre_head
->
in
(
0
)
);
register_new_node
(
pre_opaq
,
pre_head
->
in
(
0
)
);
...
...
src/share/vm/opto/loopUnswitch.cpp
浏览文件 @
e4ccd055
...
...
@@ -205,7 +205,7 @@ ProjNode* PhaseIdealLoop::create_slow_version_of_loop(IdealLoopTree *loop,
Node
*
cont
=
_igvn
.
intcon
(
1
);
set_ctrl
(
cont
,
C
->
root
());
Node
*
opq
=
new
(
C
,
2
)
Opaque1Node
(
cont
);
Node
*
opq
=
new
(
C
,
2
)
Opaque1Node
(
C
,
cont
);
register_node
(
opq
,
outer_loop
,
entry
,
dom_depth
(
entry
));
Node
*
bol
=
new
(
C
,
2
)
Conv2BNode
(
opq
);
register_node
(
bol
,
outer_loop
,
entry
,
dom_depth
(
entry
));
...
...
src/share/vm/opto/loopopts.cpp
浏览文件 @
e4ccd055
...
...
@@ -2685,7 +2685,7 @@ void PhaseIdealLoop::reorg_offsets( IdealLoopTree *loop ) {
if
(
!
cle
->
stride_is_con
()
)
continue
;
// Hit! Refactor use to use the post-incremented tripcounter.
// Compute a post-increment tripcounter.
Node
*
opaq
=
new
(
C
,
2
)
Opaque2Node
(
cle
->
incr
()
);
Node
*
opaq
=
new
(
C
,
2
)
Opaque2Node
(
C
,
cle
->
incr
()
);
register_new_node
(
opaq
,
u_ctrl
);
Node
*
neg_stride
=
_igvn
.
intcon
(
-
cle
->
stride_con
());
set_ctrl
(
neg_stride
,
C
->
root
());
...
...
src/share/vm/opto/machnode.cpp
浏览文件 @
e4ccd055
...
...
@@ -262,14 +262,16 @@ const Node* MachNode::get_base_and_disp(intptr_t &offset, const TypePtr* &adr_ty
// Now we have collected every part of the ADLC MEMORY_INTER.
// See if it adds up to a base + offset.
if
(
index
!=
NULL
)
{
if
(
!
index
->
is_Con
())
{
const
TypeNarrowOop
*
narrowoop
=
index
->
bottom_type
()
->
isa_narrowoop
();
if
(
narrowoop
!=
NULL
)
{
if
(
narrowoop
!=
NULL
)
{
// EncodeN, LoadN, LoadConN, LoadNKlass.
// Memory references through narrow oops have a
// funny base so grab the type from the index.
adr_type
=
narrowoop
->
make_oopptr
();
// funny base so grab the type from the index:
// [R12 + narrow_oop_reg<<3 + offset]
assert
(
base
==
NULL
,
"Memory references through narrow oops have no base"
);
offset
=
disp
;
adr_type
=
narrowoop
->
make_oopptr
()
->
add_offset
(
offset
);
return
NULL
;
}
}
else
if
(
!
index
->
is_Con
())
{
disp
=
Type
::
OffsetBot
;
}
else
if
(
disp
!=
Type
::
OffsetBot
)
{
const
TypeX
*
ti
=
index
->
bottom_type
()
->
isa_intptr_t
();
...
...
src/share/vm/opto/macro.cpp
浏览文件 @
e4ccd055
...
...
@@ -1674,8 +1674,15 @@ bool PhaseMacroExpand::expand_macro_nodes() {
success
=
eliminate_locking_node
(
n
->
as_AbstractLock
());
break
;
default:
if
(
n
->
Opcode
()
==
Op_Opaque1
||
n
->
Opcode
()
==
Op_Opaque2
)
{
_igvn
.
add_users_to_worklist
(
n
);
_igvn
.
hash_delete
(
n
);
_igvn
.
subsume_node
(
n
,
n
->
in
(
1
));
success
=
true
;
}
else
{
assert
(
false
,
"unknown node type in macro list"
);
}
}
assert
(
success
==
(
C
->
macro_count
()
<
old_macro_count
),
"elimination reduces macro count"
);
progress
=
progress
||
success
;
}
...
...
src/share/vm/opto/matcher.cpp
浏览文件 @
e4ccd055
...
...
@@ -82,6 +82,7 @@ Matcher::Matcher( Node_List &proj_list ) :
idealreg2debugmask
[
Op_RegF
]
=
NULL
;
idealreg2debugmask
[
Op_RegD
]
=
NULL
;
idealreg2debugmask
[
Op_RegP
]
=
NULL
;
debug_only
(
_mem_node
=
NULL
;)
// Ideal memory node consumed by mach node
}
//------------------------------warp_incoming_stk_arg------------------------
...
...
@@ -1153,7 +1154,10 @@ MachNode *Matcher::match_tree( const Node *n ) {
// StoreNodes require their Memory input to match any LoadNodes
Node
*
mem
=
n
->
is_Store
()
?
n
->
in
(
MemNode
::
Memory
)
:
(
Node
*
)
1
;
#ifdef ASSERT
Node
*
save_mem_node
=
_mem_node
;
_mem_node
=
n
->
is_Store
()
?
(
Node
*
)
n
:
NULL
;
#endif
// State object for root node of match tree
// Allocate it on _states_arena - stack allocation can cause stack overflow.
State
*
s
=
new
(
&
_states_arena
)
State
;
...
...
@@ -1205,6 +1209,7 @@ MachNode *Matcher::match_tree( const Node *n ) {
}
}
debug_only
(
_mem_node
=
save_mem_node
;
)
return
m
;
}
...
...
@@ -1445,8 +1450,30 @@ MachNode *Matcher::ReduceInst( State *s, int rule, Node *&mem ) {
}
// If a Memory was used, insert a Memory edge
if
(
mem
!=
(
Node
*
)
1
)
if
(
mem
!=
(
Node
*
)
1
)
{
mach
->
ins_req
(
MemNode
::
Memory
,
mem
);
#ifdef ASSERT
// Verify adr type after matching memory operation
const
MachOper
*
oper
=
mach
->
memory_operand
();
if
(
oper
!=
NULL
&&
oper
!=
(
MachOper
*
)
-
1
&&
mach
->
adr_type
()
!=
TypeRawPtr
::
BOTTOM
)
{
// non-direct addressing mode
// It has a unique memory operand. Find corresponding ideal mem node.
Node
*
m
=
NULL
;
if
(
leaf
->
is_Mem
())
{
m
=
leaf
;
}
else
{
m
=
_mem_node
;
assert
(
m
!=
NULL
&&
m
->
is_Mem
(),
"expecting memory node"
);
}
if
(
m
->
adr_type
()
!=
mach
->
adr_type
())
{
m
->
dump
();
tty
->
print_cr
(
"mach:"
);
mach
->
dump
(
1
);
}
assert
(
m
->
adr_type
()
==
mach
->
adr_type
(),
"matcher should not change adr type"
);
}
#endif
}
// If the _leaf is an AddP, insert the base edge
if
(
leaf
->
is_AddP
()
)
...
...
@@ -1510,7 +1537,9 @@ void Matcher::ReduceInst_Chain_Rule( State *s, int rule, Node *&mem, MachNode *m
assert
(
newrule
>=
_LAST_MACH_OPER
,
"Do NOT chain from internal operand"
);
mach
->
_opnds
[
1
]
=
s
->
MachOperGenerator
(
_reduceOp
[
catch_op
],
C
);
Node
*
mem1
=
(
Node
*
)
1
;
debug_only
(
Node
*
save_mem_node
=
_mem_node
;)
mach
->
add_req
(
ReduceInst
(
s
,
newrule
,
mem1
)
);
debug_only
(
_mem_node
=
save_mem_node
;)
}
return
;
}
...
...
@@ -1520,6 +1549,7 @@ uint Matcher::ReduceInst_Interior( State *s, int rule, Node *&mem, MachNode *mac
if
(
s
->
_leaf
->
is_Load
()
)
{
Node
*
mem2
=
s
->
_leaf
->
in
(
MemNode
::
Memory
);
assert
(
mem
==
(
Node
*
)
1
||
mem
==
mem2
,
"multiple Memories being matched at once?"
);
debug_only
(
if
(
mem
==
(
Node
*
)
1
)
_mem_node
=
s
->
_leaf
;)
mem
=
mem2
;
}
if
(
s
->
_leaf
->
in
(
0
)
!=
NULL
&&
s
->
_leaf
->
req
()
>
1
)
{
...
...
@@ -1563,7 +1593,9 @@ uint Matcher::ReduceInst_Interior( State *s, int rule, Node *&mem, MachNode *mac
// --> ReduceInst( newrule )
mach
->
_opnds
[
num_opnds
++
]
=
s
->
MachOperGenerator
(
_reduceOp
[
catch_op
],
C
);
Node
*
mem1
=
(
Node
*
)
1
;
debug_only
(
Node
*
save_mem_node
=
_mem_node
;)
mach
->
add_req
(
ReduceInst
(
newstate
,
newrule
,
mem1
)
);
debug_only
(
_mem_node
=
save_mem_node
;)
}
}
assert
(
mach
->
_opnds
[
num_opnds
-
1
],
""
);
...
...
@@ -1594,6 +1626,7 @@ void Matcher::ReduceOper( State *s, int rule, Node *&mem, MachNode *mach ) {
if
(
s
->
_leaf
->
is_Load
()
)
{
assert
(
mem
==
(
Node
*
)
1
,
"multiple Memories being matched at once?"
);
mem
=
s
->
_leaf
->
in
(
MemNode
::
Memory
);
debug_only
(
_mem_node
=
s
->
_leaf
;)
}
if
(
s
->
_leaf
->
in
(
0
)
&&
s
->
_leaf
->
req
()
>
1
)
{
if
(
!
mach
->
in
(
0
)
)
...
...
@@ -1618,7 +1651,9 @@ void Matcher::ReduceOper( State *s, int rule, Node *&mem, MachNode *mach ) {
// Reduce the instruction, and add a direct pointer from this
// machine instruction to the newly reduced one.
Node
*
mem1
=
(
Node
*
)
1
;
debug_only
(
Node
*
save_mem_node
=
_mem_node
;)
mach
->
add_req
(
ReduceInst
(
kid
,
newrule
,
mem1
)
);
debug_only
(
_mem_node
=
save_mem_node
;)
}
}
}
...
...
src/share/vm/opto/matcher.hpp
浏览文件 @
e4ccd055
...
...
@@ -104,6 +104,8 @@ class Matcher : public PhaseTransform {
#ifdef ASSERT
// Make sure only new nodes are reachable from this node
void
verify_new_nodes_only
(
Node
*
root
);
Node
*
_mem_node
;
// Ideal memory node consumed by mach node
#endif
public:
...
...
src/share/vm/opto/subnode.cpp
浏览文件 @
e4ccd055
...
...
@@ -45,10 +45,13 @@ Node *SubNode::Identity( PhaseTransform *phase ) {
return
in
(
2
)
->
in
(
2
);
}
// Convert "(X+Y) - Y" into X
// Convert "(X+Y) - Y" into X
and "(X+Y) - X" into Y
if
(
in
(
1
)
->
Opcode
()
==
Op_AddI
)
{
if
(
phase
->
eqv
(
in
(
1
)
->
in
(
2
),
in
(
2
))
)
return
in
(
1
)
->
in
(
1
);
if
(
phase
->
eqv
(
in
(
1
)
->
in
(
1
),
in
(
2
)))
return
in
(
1
)
->
in
(
2
);
// Also catch: "(X + Opaque2(Y)) - Y". In this case, 'Y' is a loop-varying
// trip counter and X is likely to be loop-invariant (that's how O2 Nodes
// are originally used, although the optimizer sometimes jiggers things).
...
...
test/compiler/6714694/Tester.java
0 → 100644
浏览文件 @
e4ccd055
/*
* Copyright 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.
*/
/*
* @test
* @bug 6714694
* @summary assertion in 64bit server vm (store->find_edge(load) != -1,"missing precedence edge") with COOPs
* @run main/othervm -Xcomp Tester
*/
/* Complexity upper bound: 38602 ops */
interface
Tester_Interface_0
{
}
abstract
class
Tester_Class_1
implements
Tester_Interface_0
{
static
int
var_1
=
(
false
?
(
short
)
'b'
:
(
short
)-
2.4256387E38
F
)
|
(
byte
)(
'g'
*
-
7.660532860983624E307
);
float
var_2
;
byte
var_3
;
static
boolean
var_4
=
true
;
double
var_5
=
8.818325751338691E307
;
Object
var_6
;
static
short
var_7
;
final
static
char
var_8
=
'x'
;
final
static
float
var_9
=
2.2030989E38
F
;
public
Tester_Class_1
()
{
var_6
=
(
var_6
=
(
var_6
=
"xkx"
));
switch
(
var_7
=
(
var_3
=
(
byte
)
var_5
))
{
case
113
:
case
114
:
Object
var_12
;
var_4
=
4.9121917E37
F
<
1957795258
;
var_4
|=
(
var_4
^=
!
var_4
)
^
(
var_4
|=
var_4
);
var_3
=
(
var_3
=
(
var_3
=
(
byte
)+
6010964363045275648L
));
break
;
case
102
:
}
final
float
var_13
=
1.2443151E38
F
;
var_3
=
(
byte
)(
var_1
|=
(
var_7
=
(
var_3
=
(
byte
)
var_5
)));
var_2
=
(
long
)(
var_7
=
(
var_3
=
(
byte
)
var_8
))
-
(
var_7
=
(
byte
)
386742565
);
var_4
&=
var_4
;
var_2
=
(
long
)((
var_3
=
(
var_3
=
(
byte
)
var_8
))
/
((
var_4
^=
(
var_5
/=
var_9
)
<=
(
var_1
&=
var_1
))
?
(
var_7
=
(
short
)
6872886933545336832L
)
:
(
byte
)
var_8
));
var_6
=
"uqflj"
;
{
switch
(((
new
String
[
var_3
=
(
byte
)
var_5
])[
var_3
=
(
byte
)
8097442298927900672L
]).
charAt
(
1540148550
))
{
case
'l'
:
}
var_2
=
(
var_7
=
(
byte
)
2.9859440663042714E307
);
{
Object
var_14
;
}
var_3
=
(
var_3
=
(
var_3
=
(
byte
)
3.3634427195550136E307
));
var_5
+=
'_'
;
}
var_6
=
"tempfdjen"
;
var_3
=
(((
var_4
^=
new
String
(
"jmwiwmk"
).
endsWith
(
"rtlstmnuo"
))
?
!
true
:
!
false
)
?
true
:
(
var_4
=
false
))
?
(
var_3
=
(
byte
)
var_5
)
:
(
var_3
=
(
var_3
=
(
byte
)
var_5
));
var_4
^=
false
;
if
(
1.6435436003809043E307
!=
var_9
)
{
boolean
var_15
=
true
;
}
else
{
var_4
=
false
;
}
{
Object
var_16
=
((
new
Tester_Class_1
[(
byte
)
71832757
][(
byte
)
1.0694914E38
F
])[(
byte
)
1315653071
][(
byte
)(
var_7
=
(
var_7
=
(
byte
)
var_8
))]).
var_6
=
new
int
[(
byte
)
var_8
][
var_3
=
(
byte
)
1933656747
];
}
var_7
=
(
var_4
=
var_4
)
?
(
short
)
2.756967E37
F
:
(
short
)
'K'
;
byte
var_17
;
}
abstract
public
Tester_Interface_0
func_0
(
double
[][]
arg_0
,
final
Object
arg_1
);
final
double
func_0
(
final
float
arg_0
,
final
short
arg_1
,
final
boolean
arg_2
)
{
var_6
=
(
var_6
=
"lmshbl"
);
var_3
=
(
var_3
=
(
new
byte
[(
new
byte
[(
byte
)
arg_1
])[
var_3
=
(
byte
)
arg_0
]])[
var_3
=
(
var_3
=
(
byte
)(
var_1
>>>=
var_1
))]);
var_5
%=
(
var_3
=
(
byte
)
1909375874
);
var_1
/=
(
char
)(
short
)
'i'
;
{
"vgar"
.
length
();
}
int
var_10
;
{
var_3
=
(
var_4
&=
true
)
?
(
byte
)(
var_5
*=
6375499657746206720L
)
:
(
byte
)+
(
var_5
/=
var_9
);
var_7
=
(
var_4
=
true
)
?
(
byte
)(
false
?
(
short
)
749593632
:
(
byte
)
8.692758043260743E307
)
:
(
byte
)
var_1
;
((
new
Tester_Class_1
[(
byte
)
1.2890904018345944E308
])[(
byte
)
var_1
]).
var_3
=
(
var_3
=
(
byte
)
arg_0
);
var_4
=
true
^
var_4
;
}
{
var_1
^=
(
var_3
=
(
var_3
=
(
var_3
=
(
byte
)
'U'
)));
}
var_3
=
(
var_3
=
(
var_3
=
(
var_3
=
(
byte
)
arg_1
)));
char
var_11
;
var_1
+=
(
var_2
=
(
var_7
=
arg_1
));
{
var_7
=
(
var_7
=
arg_1
);
}
var_7
=
arg_1
;
var_6
=
(
new
char
[(
byte
)
1985094111797788672L
][
var_3
=
(
byte
)
3112604683090268160L
])[
var_3
=
(
byte
)~
(
var_3
=
(
byte
)(
var_5
+=
var_1
))];
var_3
=
(
var_3
=
(
var_3
=
(
var_3
=
(
byte
)
3694858000202921984L
)));
var_1
/=
~
((
byte
)
1311538336
);
(((
var_4
|=
arg_2
?
!
true
&&
arg_2
:
false
)
?
arg_2
:
arg_2
)
?
"iih"
.
substring
(~
(
var_3
=
(
byte
)
3.5401308E37
F
),
'g'
*
arg_1
)
:
"gynskmvoj"
).
trim
();
var_3
=
(
var_3
=
arg_2
?
(
byte
)+
~
5247392660383928320L
:
(
byte
)
8392160279007184896L
);
var_3
=
(
var_3
=
(
var_3
=
(
byte
)
var_8
));
return
(
var_5
+=
7.157559E37
F
)
+
(
var_11
=
'V'
);
}
public
String
toString
()
{
String
result
=
"[\n"
;
result
+=
"Tester_Class_1.var_7 = "
;
result
+=
Tester
.
Printer
.
print
(
var_7
);
result
+=
"\n"
;
result
+=
"Tester_Class_1.var_3 = "
;
result
+=
Tester
.
Printer
.
print
(
var_3
);
result
+=
"\n"
;
result
+=
"Tester_Class_1.var_8 = "
;
result
+=
Tester
.
Printer
.
print
(
var_8
);
result
+=
"\n"
;
result
+=
"Tester_Class_1.var_1 = "
;
result
+=
Tester
.
Printer
.
print
(
var_1
);
result
+=
"\n"
;
result
+=
"Tester_Class_1.var_4 = "
;
result
+=
Tester
.
Printer
.
print
(
var_4
);
result
+=
"\n"
;
result
+=
"Tester_Class_1.var_5 = "
;
result
+=
Tester
.
Printer
.
print
(
var_5
);
result
+=
"\n"
;
result
+=
"Tester_Class_1.var_2 = "
;
result
+=
Tester
.
Printer
.
print
(
var_2
);
result
+=
"\n"
;
result
+=
"Tester_Class_1.var_9 = "
;
result
+=
Tester
.
Printer
.
print
(
var_9
);
result
+=
"\n"
;
result
+=
"Tester_Class_1.var_6 = "
;
result
+=
Tester
.
Printer
.
print
(
var_6
);
result
+=
""
;
result
+=
"\n]"
;
return
result
;
}
}
class
Tester_Class_2
extends
Tester_Class_1
implements
Tester_Interface_0
{
final
static
String
var_18
=
false
|
Tester_Class_1
.
var_4
|
(
Tester_Class_1
.
var_4
&=
(
Tester_Class_1
.
var_4
|=
(
Tester_Class_1
.
var_4
=
var_4
)))
?
"tbobyhqne"
:
""
;
static
String
var_19
=
"acxfj"
;
public
Tester_Class_2
()
{
Tester_Class_1
.
var_4
=
!
Tester_Class_1
.
var_4
;
var_1
++;
var_2
=
(
byte
)
2.4009747E38
F
;
new
String
();
var_6
=
(
var_19
=
"hsshyw"
);
var_19
=
var_19
;
}
public
Tester_Interface_0
func_0
(
double
[][]
arg_0
,
final
Object
arg_1
)
{
var_5
=
4.0352057E37
F
;
(((
false
&&
!
((
Tester_Class_1
.
var_4
|=
!
true
)
^
(
Tester_Class_1
.
var_4
^
false
)))
^
(
var_4
&=
true
)
?
var_4
:
(
var_4
^=
true
))
?
"spskwj"
:
"xcqianm"
).
length
();
((
var_4
|=
(
Tester_Class_1
.
var_4
^=
Tester_Class_1
.
var_4
)
?
(
Tester_Class_1
.
var_4
&=
false
)
:
(
Tester_Class_1
.
var_4
|=
Tester_Class_1
.
var_4
))
?
(
Tester_Class_1
)(
var_6
=
new
double
[(
byte
)
6.628342687109622E307
])
:
(
Tester_Class_1
)
arg_1
).
var_6
=
arg_0
;
var_7
=
(
short
)(
byte
)(
short
)
8775325134193811456L
;
var_4
^=
(
var_4
&=
!
false
);
((
Tester_Class_1
)
arg_1
).
var_3
=
(
var_3
=
(
byte
)(
var_5
%=
8.933448E37
F
));
Tester_Class_1
var_20
=
Tester_Class_1
.
var_4
?
(
Tester_Class_1
)
arg_1
:
(
Tester_Class_1
)
arg_1
;
{
var_19
.
endsWith
(
var_19
);
var_6
=
var_20
;
(
var_20
=
(
var_20
=
var_20
)).
var_2
=
(
short
)(
'p'
<=
1986176769
%
(
int
)
2242661265280256000L
%
2664882044098145280L
?
~
(
var_3
=
(
byte
)
1.1892553447967157E308
)
&
~
1806805036550279168L
:
(
var_7
=
(
byte
)
var_8
));
}
final
boolean
var_21
=
Tester_Class_1
.
var_4
;
var_20
.
var_3
=
(
var_3
=
(
var_20
.
var_3
=
(
byte
)
't'
));
boolean
var_22
=
true
;
Tester_Class_1
.
var_4
|=
(
var_4
=
var_21
);
var_19
=
"ocn"
;
var_19
=
var_19
;
var_1
*=
Tester_Class_1
.
var_8
;
var_20
=
var_22
?
var_20
:
var_20
;
var_7
=
var_21
?
(
byte
)+
((
byte
)
var_1
)
:
((
var_20
=
(
var_20
=
var_20
)).
var_3
=
(
var_3
=
(
var_3
=
(
byte
)
'L'
)));
return
true
?
(
var_20
=
var_20
)
:
(
new
Tester_Interface_0
[(
byte
)
5618282952859970560L
])[
var_3
=
(
byte
)
Tester_Class_1
.
var_8
];
}
public
boolean
equals
(
Object
obj
)
{
Tester_Class_1
.
var_7
=
(
var_7
=
(((
Tester_Class_1
)
obj
).
var_3
=
(
byte
)
var_9
));
{
final
Tester_Class_1
var_23
=
(
Tester_Class_1
)
obj
;
}
++
Tester_Class_1
.
var_1
;
var_5
=
(
Tester_Class_1
.
var_7
=
var_4
?
(
Tester_Class_1
.
var_7
=
(((
Tester_Class_1
)
obj
).
var_3
=
(
byte
)
Tester_Class_1
.
var_8
))
:
(
var_7
=
(
byte
)
var_9
));
((
Tester_Class_1
)
obj
).
var_6
=
var_18
.
replace
(
Tester_Class_1
.
var_8
,
Tester_Class_1
.
var_8
);
((
new
Tester_Class_1
[((
Tester_Class_1
)(
obj
=
new
char
[
var_3
=
(
byte
)
Tester_Class_1
.
var_8
])).
var_3
=
(((
Tester_Class_1
)
obj
).
var_3
=
(
byte
)(
var_1
%=
787509251458841600L
))])[(
new
byte
[
var_3
=
(
byte
)
Tester_Class_1
.
var_1
])[((
Tester_Class_1
)
obj
).
var_3
=
(
byte
)
1.2382548E38
F
]]).
var_3
=
(((
Tester_Class_1
)
obj
).
var_3
=
var_4
?
(
byte
)
Tester_Class_1
.
var_8
:
(
byte
)
4.1085164E36
F
);
var_1
&=
var_8
;
var_7
=
var_4
?
(
var_3
=
(
byte
)
var_8
)
:
(
byte
)
var_5
;
var_19
=
var_18
;
(
"o"
.
compareTo
(
"kwlfk"
)
>
(
var_2
=
5289241662482067456L
)
?
(
Tester_Class_1
)
obj
:
(
Tester_Class_1
)
obj
).
var_5
-=
(((
Tester_Class_1
)
obj
).
var_3
=
(((
Tester_Class_1
)
obj
).
var_3
=
(((
Tester_Class_1
)
obj
).
var_3
=
(
byte
)
var_9
)));
return
true
;
}
public
String
toString
()
{
String
result
=
"[\n"
;
result
+=
"Tester_Class_2.var_7 = "
;
result
+=
Tester
.
Printer
.
print
(
var_7
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_8 = "
;
result
+=
Tester
.
Printer
.
print
(
var_8
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_3 = "
;
result
+=
Tester
.
Printer
.
print
(
var_3
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_18 = "
;
result
+=
Tester
.
Printer
.
print
(
var_18
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_19 = "
;
result
+=
Tester
.
Printer
.
print
(
var_19
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_1 = "
;
result
+=
Tester
.
Printer
.
print
(
var_1
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_4 = "
;
result
+=
Tester
.
Printer
.
print
(
var_4
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_5 = "
;
result
+=
Tester
.
Printer
.
print
(
var_5
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_2 = "
;
result
+=
Tester
.
Printer
.
print
(
var_2
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_9 = "
;
result
+=
Tester
.
Printer
.
print
(
var_9
);
result
+=
"\n"
;
result
+=
"Tester_Class_2.var_6 = "
;
result
+=
Tester
.
Printer
.
print
(
var_6
);
result
+=
""
;
result
+=
"\n]"
;
return
result
;
}
}
class
Tester_Class_3
extends
Tester_Class_2
implements
Tester_Interface_0
{
long
var_24
=
9026266006808413184L
;
char
var_25
;
String
var_26
=
((
var_4
^=
Tester_Class_1
.
var_4
)
?
(!
true
?
false
:
(
var_4
|=
true
))
:
(
Tester_Class_2
.
var_4
^=
var_4
))
?
"dkmhvhl"
:
(
var_19
=
(
Tester_Class_2
.
var_19
=
(
Tester_Class_2
.
var_19
=
var_18
)));
static
Tester_Class_2
var_27
;
short
var_28
=
Tester_Class_2
.
var_7
=
(
short
)(
Tester_Class_2
.
var_1
&=
(
var_3
=
(
var_3
=
(
var_3
=
(
byte
)
Tester_Class_2
.
var_9
))));
static
boolean
var_29
=
false
;
static
Object
[][]
var_30
;
int
var_31
=
750583762
;
Tester_Class_2
var_32
;
final
static
long
var_33
=
3050784555932008448L
;
public
Tester_Class_3
()
{
byte
[]
var_34
;
var_4
&=
(
Tester_Class_1
.
var_4
=
true
);
Tester_Class_1
.
var_1
--;
switch
(
var_28
>>=
~
((
byte
)
var_28
))
{
case
9
:
case
26
:
Tester_Class_1
.
var_4
^=
Tester_Class_1
.
var_4
;
(
Tester_Class_2
.
var_19
=
"pwtic"
).
indexOf
(
Tester_Class_2
.
var_18
);
var_26
.
indexOf
(
var_19
);
((
Tester_Class_1
)(
new
Tester_Interface_0
[(
byte
)
var_5
])[
var_24
<=
var_31
?
(
byte
)
'^'
:
(
byte
)
var_24
]).
var_2
=
5611775846881101824L
;
var_29
|=
(
Tester_Class_2
.
var_4
^=
var_29
);
Tester_Class_2
var_35
;
var_24
<<=
(
var_31
>>=
(
var_25
=
var_8
));
break
;
case
28
:
}
new
String
();
var_5
%=
(
var_25
=
'n'
);
((
Tester_Class_2
)(
Tester_Class_1
)(((
Tester_Class_1
)(
var_6
=
Tester_Class_2
.
var_18
)).
var_6
=
(
var_26
=
""
))).
var_2
=
var_31
;
--
var_1
;
}
public
String
toString
()
{
String
result
=
"[\n"
;
result
+=
"Tester_Class_3.var_8 = "
;
result
+=
Tester
.
Printer
.
print
(
var_8
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_25 = "
;
result
+=
Tester
.
Printer
.
print
(
var_25
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_1 = "
;
result
+=
Tester
.
Printer
.
print
(
var_1
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_31 = "
;
result
+=
Tester
.
Printer
.
print
(
var_31
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_30 = "
;
result
+=
Tester
.
Printer
.
print
(
var_30
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_24 = "
;
result
+=
Tester
.
Printer
.
print
(
var_24
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_33 = "
;
result
+=
Tester
.
Printer
.
print
(
var_33
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_5 = "
;
result
+=
Tester
.
Printer
.
print
(
var_5
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_2 = "
;
result
+=
Tester
.
Printer
.
print
(
var_2
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_9 = "
;
result
+=
Tester
.
Printer
.
print
(
var_9
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_7 = "
;
result
+=
Tester
.
Printer
.
print
(
var_7
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_28 = "
;
result
+=
Tester
.
Printer
.
print
(
var_28
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_3 = "
;
result
+=
Tester
.
Printer
.
print
(
var_3
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_18 = "
;
result
+=
Tester
.
Printer
.
print
(
var_18
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_19 = "
;
result
+=
Tester
.
Printer
.
print
(
var_19
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_26 = "
;
result
+=
Tester
.
Printer
.
print
(
var_26
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_4 = "
;
result
+=
Tester
.
Printer
.
print
(
var_4
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_29 = "
;
result
+=
Tester
.
Printer
.
print
(
var_29
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_27 = "
;
result
+=
Tester
.
Printer
.
print
(
var_27
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_32 = "
;
result
+=
Tester
.
Printer
.
print
(
var_32
);
result
+=
"\n"
;
result
+=
"Tester_Class_3.var_6 = "
;
result
+=
Tester
.
Printer
.
print
(
var_6
);
result
+=
""
;
result
+=
"\n]"
;
return
result
;
}
}
public
class
Tester
{
static
double
var_36
=
2.679028326789642E307
;
float
var_37
;
String
var_38
=
Tester_Class_2
.
var_18
;
static
Tester_Interface_0
var_39
;
static
char
var_40
=
'D'
;
Tester_Class_1
var_41
;
static
int
var_42
;
final
static
boolean
var_43
=
false
;
final
static
Tester_Class_2
func_0
(
Tester_Class_1
arg_0
,
final
Tester_Class_2
arg_1
)
{
"ooots"
.
replaceFirst
(
"rdxor"
,
((
new
Tester_Class_3
[
arg_1
.
var_3
=
(
byte
)
2.7836305E38
F
])[
arg_0
.
var_3
=
(
byte
)+
+
+
1.4958218616334936E307
]).
var_26
);
if
(
true
)
{
arg_0
=
(
Tester_Class_3
)
arg_0
;
((
Tester_Class_3
)
arg_0
).
var_25
=
var_40
;
final
Tester_Class_2
var_44
=
(
Tester_Class_2
)((
Tester_Class_3
.
var_29
|=
var_43
)
?
arg_0
:
(
arg_0
.
var_6
=
Tester_Class_3
.
var_18
));
}
else
{
var_39
=
(
Tester_Class_3
.
var_27
=
(
Tester_Class_3
)
arg_1
);
}
Tester_Class_3
.
var_19
=
"onndgsil"
;
var_39
=
arg_0
;
return
(
Tester_Class_2
.
var_4
&=
Tester_Class_2
.
var_4
^
true
)
?
(((
Tester_Class_3
)
arg_0
).
var_32
=
(
Tester_Class_3
)
arg_1
)
:
(((
Tester_Class_3
)
arg_0
).
var_32
=
(
Tester_Class_3
)
arg_1
);
}
private
final
static
float
func_1
(
final
short
arg_0
,
int
[][]
arg_1
,
final
long
arg_2
)
{
Tester_Class_2
.
var_1
*=
arg_0
;
double
var_45
=
6.841391103184752E307
;
long
var_46
;
Tester_Class_2
.
var_1
--;
--
var_40
;
++
var_40
;
++
Tester_Class_3
.
var_1
;
Tester_Class_1
.
var_4
=
false
;
var_36
%=
'X'
;
++
Tester_Class_2
.
var_1
;
Tester_Class_1
.
var_1
++;
return
3.2422038E38
F
;
}
private
final
static
char
func_2
(
double
arg_0
,
final
byte
arg_1
,
int
arg_2
)
{
--
Tester_Class_3
.
var_1
;
if
(
Tester_Class_1
.
var_4
)
{
if
(
var_43
)
{
Tester_Class_3
.
var_1
++;
}
else
{
var_40
<<=
1329560515532651520L
;
}
(
false
&
Tester_Class_2
.
var_4
?
(
new
Tester_Class_1
[
arg_1
])[
arg_1
]
:
(
new
Tester_Class_1
[
arg_1
][
arg_1
])[
arg_1
][
arg_1
]).
var_3
=
arg_1
;
Tester_Class_2
.
var_19
=
Tester_Class_3
.
var_19
;
--
var_40
;
final
long
var_47
=
~
Tester_Class_3
.
var_33
<<
var_40
--;
((
Tester_Class_3
)(
new
Tester_Class_2
[
arg_1
][
arg_1
])[
arg_1
][
arg_1
]).
var_24
*=
(
var_36
*=
(
long
)
arg_1
*
~
arg_1
);
Tester_Class_2
.
var_19
=
Tester_Class_2
.
var_19
;
++((
new
Tester_Class_3
[
arg_1
])[
arg_1
]).
var_24
;
}
else
{
var_40
++;
}
var_40
<<=
var_40
;
if
(
true
)
{
++
arg_2
;
}
else
{
Tester_Class_2
.
var_7
=
arg_1
;
}
boolean
var_48
=
true
;
var_36
/=
arg_1
;
final
short
var_49
=
15276
;
Tester_Interface_0
var_50
;
((
Tester_Class_2
.
var_19
=
(
Tester_Class_2
.
var_19
=
Tester_Class_2
.
var_19
))
+
"xhi"
).
toString
();
arg_2
++;
return
var_40
;
}
public
final
static
char
func_4
(
final
boolean
arg_0
)
{
float
var_52
=
2.8063675E38
F
;
var_40
--;
Object
var_53
;
Tester_Class_3
.
var_29
|=
(
Tester_Class_3
.
var_29
&=
true
);
if
(!
Tester_Class_1
.
var_4
)
{
--
var_40
;
}
else
{
var_52
%=
2027756834
;
}
int
var_54
=
Tester_Class_1
.
var_1
++;
var_40
--;
long
var_55
;
byte
var_56
=
97
;
var_36
*=
9.75628909363086E307
%
+
-
1.9812653793936264E306
;
int
var_57
;
boolean
var_58
=
Tester_Class_1
.
var_4
^=
var_43
;
return
'J'
;
}
static
float
func_5
(
final
Object
arg_0
,
float
arg_1
,
final
Tester_Class_2
arg_2
)
{
var_39
=
arg_2
;
Tester_Class_3
.
var_27
=
arg_2
;
arg_1
%=
1.7777554E38
F
;
var_39
=
(
Tester_Class_3
.
var_27
=
arg_2
);
Tester_Class_3
var_59
;
{
var_40
-=
arg_1
-
~
(((
Tester_Class_3
)
arg_2
).
var_3
=
(
byte
)
1455854212
);
}
Object
var_60
=
Tester_Class_1
.
var_4
?
arg_0
:
new
String
[
arg_2
.
var_3
=
(
byte
)
arg_1
][(
byte
)((
Tester_Class_3
)
arg_0
).
var_28
];
Tester_Class_3
.
var_27
=
(
Tester_Class_2
)(
var_39
=
arg_2
);
((
Tester_Class_3
.
var_4
|=
var_43
)
?
(
var_59
=
(
var_59
=
(
var_59
=
(
Tester_Class_3
)
var_60
)))
:
(
var_59
=
(
Tester_Class_3
)
arg_2
)).
var_24
^=
Tester_Class_3
.
var_1
;
return
Tester_Class_1
.
var_9
;
}
private
static
void
func_6
(
char
arg_0
,
final
Tester_Class_3
arg_1
,
String
arg_2
,
final
double
arg_3
)
{
((
new
Tester_Class_1
[(
byte
)
arg_1
.
var_28
])[(
arg_1
.
var_32
=
arg_1
).
var_3
=
(
byte
)
var_40
]).
var_2
=
Tester_Class_3
.
var_9
;
double
var_61
;
(
true
?
(
arg_1
.
var_32
=
arg_1
)
:
(
arg_1
.
var_32
=
(
Tester_Class_3
.
var_27
=
(
arg_1
.
var_32
=
arg_1
)))).
var_6
=
var_43
|
(
Tester_Class_2
.
var_4
=
!
Tester_Class_3
.
var_4
)
?
(
arg_1
.
var_26
=
arg_2
)
:
(
Tester_Class_2
.
var_19
=
Tester_Class_2
.
var_18
);
}
private
final
char
func_7
(
int
arg_0
)
{
Tester_Class_2
.
var_4
&=
var_43
;
float
var_62
=
Tester_Class_3
.
var_9
;
--
var_40
;
int
var_63
=
Tester_Class_1
.
var_1
++;
{
"nncjfoit"
.
indexOf
((
new
int
[(
byte
)
'\\'
])[(
byte
)
var_36
]);
if
(
var_43
)
{
((
new
Tester_Class_3
[(
byte
)
var_40
][(
byte
)
Tester_Class_2
.
var_1
])[(
byte
)
5046997225818337280L
][(
byte
)
var_63
]).
var_24
>>>=
var_40
;
}
else
{
--
var_40
;
}
--
Tester_Class_2
.
var_1
;
--
var_63
;
}
{
final
byte
var_64
=
Tester_Class_1
.
var_4
?
(
byte
)
'M'
:
(
byte
)(
var_62
-=
+
((
byte
)
Tester_Class_1
.
var_8
));
float
var_65
;
var_62
*=
((
Tester_Class_3
)(
new
Tester_Interface_0
[
var_64
])[
var_64
]).
var_24
++;
var_36
/=
var_64
;
{
double
var_66
;
}
var_40
+=
3500240160155094016L
;
((
new
Tester_Class_1
[
var_64
][
var_64
])[
var_64
][
var_64
]).
var_3
=
(
byte
)(
Tester_Class_2
.
var_7
=
(
Tester_Class_1
.
var_7
=
(
Tester_Class_1
.
var_7
=
(
Tester_Class_1
.
var_7
=
var_64
))));
++
Tester_Class_3
.
var_1
;
}
--
arg_0
;
{
arg_0
++;
}
Tester_Class_2
.
var_1
++;
var_40
&=
(
short
)((
byte
)
Tester_Class_2
.
var_8
>>
(((
new
Tester_Class_3
[(
byte
)
var_36
])[(
byte
)(
var_40
=
Tester_Class_3
.
var_8
)]).
var_3
=
(
byte
)((
byte
)
3.3531374E38
F
*
var_40
)));
var_36
%=
(
var_62
=
(
byte
)
900943133
);
var_36
=
Tester_Class_3
.
var_33
;
var_62
+=
(
var_40
/=
(
byte
)
6766658341842315264L
%
(
byte
)
'p'
)
*
(
short
)
2019461672
;
--
var_40
;
if
(
true
)
{
var_62
*=
365879806965555200L
;
}
else
{
var_36
-=
~
9163555887358003200L
;
}
Tester_Class_1
.
var_4
=
Tester_Class_1
.
var_4
;
{
var_40
<<=
var_63
;
}
var_40
++;
String
var_67
;
return
Tester_Class_1
.
var_8
;
}
private
final
static
Tester_Interface_0
func_8
(
char
arg_0
,
final
Tester_Class_2
arg_1
,
final
String
arg_2
)
{
((
new
Tester
[(
byte
)((
Tester_Class_3
)
arg_1
).
var_28
])[((
Tester_Class_1
)(
var_39
=
arg_1
)).
var_3
=
((
Tester_Class_3
.
var_27
=
(
Tester_Class_3
)
arg_1
).
var_3
=
(
byte
)+
-
9.9100855E36
F
)]).
var_38
=
(
var_43
?
"k"
:
Tester_Class_2
.
var_19
).
substring
(
350785312
);
return
(
new
Tester_Interface_0
[(
byte
)
'l'
])[((
Tester_Class_1
)(
var_39
=
(
Tester_Class_3
.
var_27
=
(
Tester_Class_3
)
arg_1
))).
var_3
=
((
Tester_Class_3
.
var_27
=
arg_1
).
var_3
=
(((
Tester_Class_3
)
arg_1
).
var_3
=
(
arg_1
.
var_3
=
(
arg_1
.
var_3
=
(
byte
)
'['
))))];
}
private
final
int
func_9
(
Tester_Class_3
arg_0
,
char
arg_1
)
{
final
float
var_68
=
Tester_Class_3
.
var_9
;
Tester_Class_2
.
var_18
.
toLowerCase
();
double
var_69
;
{
Tester_Class_3
.
var_29
^=
!
false
||
Tester_Class_2
.
var_4
;
}
Tester_Class_1
var_70
;
(
Tester_Class_3
.
var_27
=
(
Tester_Class_2
)(
var_70
=
arg_0
)).
var_6
=
(
Tester_Class_2
)((
var_41
=
arg_0
).
var_6
=
(
arg_0
.
var_6
=
arg_0
));
"hv"
.
codePointBefore
(--
Tester_Class_2
.
var_1
);
var_41
=
arg_0
;
return
~
(((
arg_0
=
arg_0
).
var_24
&=
arg_1
)
==
3.0764282E38
F
?
(
byte
)
457565863
:
((
arg_0
=
arg_0
).
var_3
=
(
byte
)
arg_0
.
var_28
));
}
private
static
void
func_10
(
double
arg_0
,
final
Tester_Class_3
arg_1
,
double
arg_2
)
{
arg_1
.
var_32
=
'g'
!=
1.520646515461986E307
?
(
arg_1
.
var_32
=
arg_1
)
:
arg_1
;
Tester_Class_2
.
var_19
.
startsWith
(
Tester_Class_2
.
var_19
=
Tester_Class_3
.
var_18
);
Tester_Class_1
.
var_4
^=
true
&
(
arg_1
.
var_3
=
(
arg_1
.
var_3
=
(
byte
)-
((
byte
)
1.4509185661781193E308
)))
>
(
arg_1
.
var_2
=
var_40
);
var_36
+=
Tester_Class_3
.
var_9
;
}
Tester_Interface_0
func_12
(
final
Object
arg_0
,
float
arg_1
)
{
switch
(((
Tester_Class_3
)
arg_0
).
var_3
=
(
byte
)
arg_1
)
{
case
4
:
var_41
=
(
Tester_Class_3
)(
var_39
=
(
Tester_Class_3
.
var_27
=
(
Tester_Class_3
.
var_27
=
(
Tester_Class_3
)
arg_0
)));
double
var_72
=
(
double
)
3858573493713776640L
;
byte
var_73
=
(
var_41
=
(
Tester_Class_2
)
arg_0
).
var_3
=
(((
Tester_Class_3
)
arg_0
).
var_3
=
(
byte
)
var_72
);
break
;
case
13
:
(
Tester_Class_3
.
var_27
=
(((
Tester_Class_3
)
arg_0
).
var_32
=
(
Tester_Class_3
)(
Tester_Class_2
)
arg_0
)).
var_3
=
(
Tester_Class_2
.
var_1
*=
((
Tester_Class_3
)
arg_0
).
var_24
)
==
(
byte
)
Tester_Class_3
.
var_33
?
(
byte
)
188693954866039808L
:
(
byte
)
Tester_Class_2
.
var_8
;
break
;
default
:
var_40
<<=
(
byte
)
157510337
;
break
;
case
26
:
case
122
:
}
Tester_Interface_0
var_74
;
long
var_75
;
var_41
=
(
var_41
=
(
var_41
=
(
Tester_Class_2
)
arg_0
));
arg_1
*=
1601420762
;
var_74
=
(
var_41
=
Tester_Class_1
.
var_4
?
(
Tester_Class_3
)
arg_0
:
(
Tester_Class_2
)
arg_0
);
(
Tester_Class_1
.
var_4
?
(
Tester_Class_3
)(
var_39
=
(
Tester_Class_3
)
arg_0
)
:
(
true
?
(
Tester_Class_3
)
arg_0
:
(
Tester_Class_3
)
arg_0
)).
var_28
*=
1066935145
;
var_40
>>>=
(
byte
)
6.643183E36
F
/
-
((
byte
)
1.277596E37
F
);
{
((
Tester_Class_3
)(((
Tester_Class_3
)((
Tester_Class_3
.
var_29
^=
(
Tester_Class_3
.
var_29
&=
var_43
))
?
(
Tester_Class_2
)
arg_0
:
(
Tester_Class_2
)
arg_0
)).
var_32
=
(
Tester_Class_3
.
var_27
=
(
Tester_Class_2
)
arg_0
))).
var_28
--;
}
var_38
=
"qad"
;
byte
var_76
=
((
Tester_Class_2
)(
var_39
=
(
Tester_Class_3
)
arg_0
)).
var_3
=
true
?
((
var_41
=
(
var_41
=
(
Tester_Class_3
)
arg_0
)).
var_3
=
(
byte
)
1.7128118638075888E308
)
:
(
byte
)
1.6562746603631249E308
;
return
var_39
=
(
Tester_Class_3
)((
var_41
=
(
Tester_Class_3
)
arg_0
).
var_6
=
Tester_Class_2
.
var_18
);
}
protected
final
String
func_13
()
{
float
var_77
;
var_38
=
(
Tester_Class_2
.
var_19
=
var_38
);
Tester_Class_2
.
var_4
^=
!
var_43
|
(
Tester_Class_3
.
var_29
^=
Tester_Class_1
.
var_4
);
Tester_Class_3
.
var_1
--;
Tester_Class_2
.
var_1
++;
return
Tester_Class_2
.
var_18
;
}
public
static
String
execute
()
{
try
{
Tester
t
=
new
Tester
();
try
{
t
.
test
();
}
catch
(
Throwable
e
)
{
}
try
{
return
t
.
toString
();
}
catch
(
Throwable
e
)
{
return
"Error during result conversion to String"
;
}
}
catch
(
Throwable
e
)
{
return
"Error during test execution"
;
}
}
public
static
void
main
(
String
[]
args
)
{
try
{
Tester
t
=
new
Tester
();
try
{
t
.
test
();
}
catch
(
Throwable
e
)
{
}
try
{
System
.
out
.
println
(
t
);
}
catch
(
Throwable
e
)
{
}
}
catch
(
Throwable
e
)
{
}
}
private
void
test
()
{
int
var_78
=
0
;
var_39
=
(
new
Tester_Class_1
[(
byte
)
var_40
])[(
byte
)
Tester_Class_3
.
var_33
];
while
(
var_43
&&
(
var_78
<
70
&&
true
))
{
var_40
*=
~
~
Tester_Class_3
.
var_33
%
Tester_Class_3
.
var_9
;
var_78
++;
var_39
=
new
Tester_Class_3
();
var_39
=
(
var_41
=
(
Tester_Class_3
.
var_27
=
new
Tester_Class_2
()));
}
final
Tester_Class_3
var_79
=
(
Tester_Class_1
.
var_4
?
~
Tester_Class_3
.
var_33
:
var_36
)
==
1433764895112462336L
?
new
Tester_Class_3
()
:
new
Tester_Class_3
();
Tester_Class_2
var_80
;
}
public
String
toString
()
{
String
result
=
"[\n"
;
result
+=
"Tester.var_40 = "
;
result
+=
Printer
.
print
(
var_40
);
result
+=
"\n"
;
result
+=
"Tester.var_42 = "
;
result
+=
Printer
.
print
(
var_42
);
result
+=
"\n"
;
result
+=
"Tester.var_36 = "
;
result
+=
Printer
.
print
(
var_36
);
result
+=
"\n"
;
result
+=
"Tester.var_37 = "
;
result
+=
Printer
.
print
(
var_37
);
result
+=
"\n"
;
result
+=
"Tester.var_39 = "
;
result
+=
Printer
.
print
(
var_39
);
result
+=
"\n"
;
result
+=
"Tester.var_38 = "
;
result
+=
Printer
.
print
(
var_38
);
result
+=
"\n"
;
result
+=
"Tester.var_43 = "
;
result
+=
Printer
.
print
(
var_43
);
result
+=
"\n"
;
result
+=
"Tester.var_41 = "
;
result
+=
Printer
.
print
(
var_41
);
result
+=
""
;
result
+=
"\n]"
;
return
result
;
}
static
class
Printer
{
public
static
String
print
(
boolean
arg
)
{
return
String
.
valueOf
(
arg
);
}
public
static
String
print
(
byte
arg
)
{
return
String
.
valueOf
(
arg
);
}
public
static
String
print
(
short
arg
)
{
return
String
.
valueOf
(
arg
);
}
public
static
String
print
(
char
arg
)
{
return
String
.
valueOf
((
int
)
arg
);
}
public
static
String
print
(
int
arg
)
{
return
String
.
valueOf
(
arg
);
}
public
static
String
print
(
long
arg
)
{
return
String
.
valueOf
(
arg
);
}
public
static
String
print
(
float
arg
)
{
return
String
.
valueOf
(
arg
);
}
public
static
String
print
(
double
arg
)
{
return
String
.
valueOf
(
arg
);
}
public
static
String
print
(
Object
arg
)
{
return
print_r
(
new
java
.
util
.
Stack
(),
arg
);
}
private
static
String
print_r
(
java
.
util
.
Stack
visitedObjects
,
Object
arg
)
{
String
result
=
""
;
if
(
arg
==
null
)
result
+=
"null"
;
else
if
(
arg
.
getClass
().
isArray
())
{
for
(
int
i
=
0
;
i
<
visitedObjects
.
size
();
i
++)
if
(
visitedObjects
.
elementAt
(
i
)
==
arg
)
return
"<recursive>"
;
visitedObjects
.
push
(
arg
);
final
String
delimiter
=
", "
;
result
+=
"["
;
if
(
arg
instanceof
Object
[])
{
Object
[]
array
=
(
Object
[])
arg
;
for
(
int
i
=
0
;
i
<
array
.
length
;
i
++)
{
result
+=
print_r
(
visitedObjects
,
array
[
i
]);
if
(
i
<
array
.
length
-
1
)
result
+=
delimiter
;
}
}
else
if
(
arg
instanceof
boolean
[])
{
boolean
[]
array
=
(
boolean
[])
arg
;
for
(
int
i
=
0
;
i
<
array
.
length
;
i
++)
{
result
+=
print
(
array
[
i
]);
if
(
i
<
array
.
length
-
1
)
result
+=
delimiter
;
}
}
else
if
(
arg
instanceof
byte
[])
{
byte
[]
array
=
(
byte
[])
arg
;
for
(
int
i
=
0
;
i
<
array
.
length
;
i
++)
{
result
+=
print
(
array
[
i
]);
if
(
i
<
array
.
length
-
1
)
result
+=
delimiter
;
}
}
else
if
(
arg
instanceof
short
[])
{
short
[]
array
=
(
short
[])
arg
;
for
(
int
i
=
0
;
i
<
array
.
length
;
i
++)
{
result
+=
print
(
array
[
i
]);
if
(
i
<
array
.
length
-
1
)
result
+=
delimiter
;
}
}
else
if
(
arg
instanceof
char
[])
{
char
[]
array
=
(
char
[])
arg
;
for
(
int
i
=
0
;
i
<
array
.
length
;
i
++)
{
result
+=
print
(
array
[
i
]);
if
(
i
<
array
.
length
-
1
)
result
+=
delimiter
;
}
}
else
if
(
arg
instanceof
int
[])
{
int
[]
array
=
(
int
[])
arg
;
for
(
int
i
=
0
;
i
<
array
.
length
;
i
++)
{
result
+=
print
(
array
[
i
]);
if
(
i
<
array
.
length
-
1
)
result
+=
delimiter
;
}
}
else
if
(
arg
instanceof
long
[])
{
long
[]
array
=
(
long
[])
arg
;
for
(
int
i
=
0
;
i
<
array
.
length
;
i
++)
{
result
+=
print
(
array
[
i
]);
if
(
i
<
array
.
length
-
1
)
result
+=
delimiter
;
}
}
else
if
(
arg
instanceof
float
[])
{
float
[]
array
=
(
float
[])
arg
;
for
(
int
i
=
0
;
i
<
array
.
length
;
i
++)
{
result
+=
print
(
array
[
i
]);
if
(
i
<
array
.
length
-
1
)
result
+=
delimiter
;
}
}
else
if
(
arg
instanceof
double
[])
{
double
[]
array
=
(
double
[])
arg
;
for
(
int
i
=
0
;
i
<
array
.
length
;
i
++)
{
result
+=
print
(
array
[
i
]);
if
(
i
<
array
.
length
-
1
)
result
+=
delimiter
;
}
}
result
+=
"]"
;
visitedObjects
.
pop
();
}
else
{
result
+=
arg
.
toString
();
}
return
result
;
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录