Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
45a96486
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看板
提交
45a96486
编写于
1月 27, 2010
作者:
I
iveresov
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
8dd94360
46406465
变更
10
展开全部
隐藏空白更改
内联
并排
Showing
10 changed file
with
393 addition
and
131 deletion
+393
-131
src/cpu/sparc/vm/sharedRuntime_sparc.cpp
src/cpu/sparc/vm/sharedRuntime_sparc.cpp
+4
-3
src/cpu/x86/vm/sharedRuntime_x86_32.cpp
src/cpu/x86/vm/sharedRuntime_x86_32.cpp
+4
-3
src/cpu/x86/vm/sharedRuntime_x86_64.cpp
src/cpu/x86/vm/sharedRuntime_x86_64.cpp
+4
-3
src/share/vm/classfile/classLoader.cpp
src/share/vm/classfile/classLoader.cpp
+8
-0
src/share/vm/includeDB_core
src/share/vm/includeDB_core
+4
-0
src/share/vm/oops/methodOop.cpp
src/share/vm/oops/methodOop.cpp
+1
-1
src/share/vm/runtime/arguments.cpp
src/share/vm/runtime/arguments.cpp
+9
-0
src/share/vm/runtime/globals.hpp
src/share/vm/runtime/globals.hpp
+3
-0
src/share/vm/runtime/sharedRuntime.cpp
src/share/vm/runtime/sharedRuntime.cpp
+322
-92
src/share/vm/runtime/sharedRuntime.hpp
src/share/vm/runtime/sharedRuntime.hpp
+34
-29
未找到文件。
src/cpu/sparc/vm/sharedRuntime_sparc.cpp
浏览文件 @
45a96486
/*
* Copyright 2003-20
09
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-20
10
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
...
...
@@ -1189,7 +1189,8 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm
// VMReg max_arg,
int
comp_args_on_stack
,
// VMRegStackSlots
const
BasicType
*
sig_bt
,
const
VMRegPair
*
regs
)
{
const
VMRegPair
*
regs
,
AdapterFingerPrint
*
fingerprint
)
{
address
i2c_entry
=
__
pc
();
AdapterGenerator
agen
(
masm
);
...
...
@@ -1258,7 +1259,7 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm
agen
.
gen_c2i_adapter
(
total_args_passed
,
comp_args_on_stack
,
sig_bt
,
regs
,
skip_fixup
);
__
flush
();
return
new
AdapterHandlerEntry
(
i2c_entry
,
c2i_entry
,
c2i_unverified_entry
);
return
AdapterHandlerLibrary
::
new_entry
(
fingerprint
,
i2c_entry
,
c2i_entry
,
c2i_unverified_entry
);
}
...
...
src/cpu/x86/vm/sharedRuntime_x86_32.cpp
浏览文件 @
45a96486
/*
* Copyright 2003-20
09
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-20
10
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
...
...
@@ -907,7 +907,8 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm
int
total_args_passed
,
int
comp_args_on_stack
,
const
BasicType
*
sig_bt
,
const
VMRegPair
*
regs
)
{
const
VMRegPair
*
regs
,
AdapterFingerPrint
*
fingerprint
)
{
address
i2c_entry
=
__
pc
();
gen_i2c_adapter
(
masm
,
total_args_passed
,
comp_args_on_stack
,
sig_bt
,
regs
);
...
...
@@ -954,7 +955,7 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm
gen_c2i_adapter
(
masm
,
total_args_passed
,
comp_args_on_stack
,
sig_bt
,
regs
,
skip_fixup
);
__
flush
();
return
new
AdapterHandlerEntry
(
i2c_entry
,
c2i_entry
,
c2i_unverified_entry
);
return
AdapterHandlerLibrary
::
new_entry
(
fingerprint
,
i2c_entry
,
c2i_entry
,
c2i_unverified_entry
);
}
int
SharedRuntime
::
c_calling_convention
(
const
BasicType
*
sig_bt
,
...
...
src/cpu/x86/vm/sharedRuntime_x86_64.cpp
浏览文件 @
45a96486
/*
* Copyright 2003-20
09
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2003-20
10
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
...
...
@@ -778,7 +778,8 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm
int
total_args_passed
,
int
comp_args_on_stack
,
const
BasicType
*
sig_bt
,
const
VMRegPair
*
regs
)
{
const
VMRegPair
*
regs
,
AdapterFingerPrint
*
fingerprint
)
{
address
i2c_entry
=
__
pc
();
gen_i2c_adapter
(
masm
,
total_args_passed
,
comp_args_on_stack
,
sig_bt
,
regs
);
...
...
@@ -824,7 +825,7 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm
gen_c2i_adapter
(
masm
,
total_args_passed
,
comp_args_on_stack
,
sig_bt
,
regs
,
skip_fixup
);
__
flush
();
return
new
AdapterHandlerEntry
(
i2c_entry
,
c2i_entry
,
c2i_unverified_entry
);
return
AdapterHandlerLibrary
::
new_entry
(
fingerprint
,
i2c_entry
,
c2i_entry
,
c2i_unverified_entry
);
}
int
SharedRuntime
::
c_calling_convention
(
const
BasicType
*
sig_bt
,
...
...
src/share/vm/classfile/classLoader.cpp
浏览文件 @
45a96486
...
...
@@ -1249,6 +1249,7 @@ void ClassLoader::compile_the_world() {
}
int
ClassLoader
::
_compile_the_world_counter
=
0
;
static
int
_codecache_sweep_counter
=
0
;
void
ClassLoader
::
compile_the_world_in
(
char
*
name
,
Handle
loader
,
TRAPS
)
{
int
len
=
(
int
)
strlen
(
name
);
...
...
@@ -1293,6 +1294,13 @@ void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) {
for
(
int
n
=
0
;
n
<
k
->
methods
()
->
length
();
n
++
)
{
methodHandle
m
(
THREAD
,
methodOop
(
k
->
methods
()
->
obj_at
(
n
)));
if
(
CompilationPolicy
::
canBeCompiled
(
m
))
{
if
(
++
_codecache_sweep_counter
==
CompileTheWorldSafepointInterval
)
{
// Give sweeper a chance to keep up with CTW
VM_ForceSafepoint
op
;
VMThread
::
execute
(
&
op
);
_codecache_sweep_counter
=
0
;
}
// Force compilation
CompileBroker
::
compile_method
(
m
,
InvocationEntryBci
,
methodHandle
(),
0
,
"CTW"
,
THREAD
);
...
...
src/share/vm/includeDB_core
浏览文件 @
45a96486
...
...
@@ -921,6 +921,7 @@ classFileStream.hpp top.hpp
classLoader.cpp allocation.inline.hpp
classLoader.cpp arguments.hpp
classLoader.cpp bytecodeStream.hpp
classLoader.cpp classFileParser.hpp
classLoader.cpp classFileStream.hpp
classLoader.cpp classLoader.hpp
...
...
@@ -948,6 +949,7 @@ classLoader.cpp jvm_misc.hpp
classLoader.cpp management.hpp
classLoader.cpp oop.inline.hpp
classLoader.cpp oopFactory.hpp
classLoader.cpp oopMapCache.hpp
classLoader.cpp os_<os_family>.inline.hpp
classLoader.cpp symbolOop.hpp
classLoader.cpp systemDictionary.hpp
...
...
@@ -3725,6 +3727,7 @@ sharedRuntime.cpp events.hpp
sharedRuntime.cpp forte.hpp
sharedRuntime.cpp gcLocker.inline.hpp
sharedRuntime.cpp handles.inline.hpp
sharedRuntime.cpp hashtable.inline.hpp
sharedRuntime.cpp init.hpp
sharedRuntime.cpp interfaceSupport.hpp
sharedRuntime.cpp interpreterRuntime.hpp
...
...
@@ -3752,6 +3755,7 @@ sharedRuntime.cpp xmlstream.hpp
sharedRuntime.hpp allocation.hpp
sharedRuntime.hpp bytecodeHistogram.hpp
sharedRuntime.hpp bytecodeTracer.hpp
sharedRuntime.hpp hashtable.hpp
sharedRuntime.hpp linkResolver.hpp
sharedRuntime.hpp resourceArea.hpp
sharedRuntime.hpp threadLocalStorage.hpp
...
...
src/share/vm/oops/methodOop.cpp
浏览文件 @
45a96486
...
...
@@ -688,7 +688,7 @@ address methodOopDesc::make_adapters(methodHandle mh, TRAPS) {
// so making them eagerly shouldn't be too expensive.
AdapterHandlerEntry
*
adapter
=
AdapterHandlerLibrary
::
get_adapter
(
mh
);
if
(
adapter
==
NULL
)
{
THROW_
0
(
vmSymbols
::
java_lang_OutOfMemoryError
()
);
THROW_
MSG_NULL
(
vmSymbols
::
java_lang_VirtualMachineError
(),
"out of space in CodeCache for adapters"
);
}
mh
->
set_adapter_entry
(
adapter
);
...
...
src/share/vm/runtime/arguments.cpp
浏览文件 @
45a96486
...
...
@@ -2815,6 +2815,15 @@ jint Arguments::parse(const JavaVMInitArgs* args) {
DebugNonSafepoints
=
true
;
}
#ifndef PRODUCT
if
(
CompileTheWorld
)
{
// Force NmethodSweeper to sweep whole CodeCache each time.
if
(
FLAG_IS_DEFAULT
(
NmethodSweepFraction
))
{
NmethodSweepFraction
=
1
;
}
}
#endif
if
(
PrintCommandLineFlags
)
{
CommandLineFlags
::
printSetFlags
();
}
...
...
src/share/vm/runtime/globals.hpp
浏览文件 @
45a96486
...
...
@@ -2447,6 +2447,9 @@ class CommandLineFlags {
notproduct(bool, CompileTheWorldIgnoreInitErrors, false, \
"Compile all methods although class initializer failed") \
\
notproduct(intx, CompileTheWorldSafepointInterval, 100, \
"Force a safepoint every n compiles so sweeper can keep up") \
\
develop(bool, TraceIterativeGVN, false, \
"Print progress during Iterative Global Value Numbering") \
\
...
...
src/share/vm/runtime/sharedRuntime.cpp
浏览文件 @
45a96486
此差异已折叠。
点击以展开。
src/share/vm/runtime/sharedRuntime.hpp
浏览文件 @
45a96486
/*
* Copyright 1997-20
09
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-20
10
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
...
...
@@ -23,6 +23,8 @@
*/
class
AdapterHandlerEntry
;
class
AdapterHandlerTable
;
class
AdapterFingerPrint
;
class
vframeStream
;
// Runtime is the base class for various runtime interfaces
...
...
@@ -337,7 +339,8 @@ class SharedRuntime: AllStatic {
int
total_args_passed
,
int
max_arg
,
const
BasicType
*
sig_bt
,
const
VMRegPair
*
regs
);
const
VMRegPair
*
regs
,
AdapterFingerPrint
*
fingerprint
);
// OSR support
...
...
@@ -528,28 +531,41 @@ class SharedRuntime: AllStatic {
// used by the adapters. The code generation happens here because it's very
// similar to what the adapters have to do.
class
AdapterHandlerEntry
:
public
CHeapObj
{
class
AdapterHandlerEntry
:
public
BasicHashtableEntry
{
friend
class
AdapterHandlerTable
;
private:
AdapterFingerPrint
*
_fingerprint
;
address
_i2c_entry
;
address
_c2i_entry
;
address
_c2i_unverified_entry
;
public:
void
init
(
AdapterFingerPrint
*
fingerprint
,
address
i2c_entry
,
address
c2i_entry
,
address
c2i_unverified_entry
)
{
_fingerprint
=
fingerprint
;
_i2c_entry
=
i2c_entry
;
_c2i_entry
=
c2i_entry
;
_c2i_unverified_entry
=
c2i_unverified_entry
;
}
// should never be used
AdapterHandlerEntry
();
public:
// The name we give all buffer blobs
static
const
char
*
name
;
AdapterHandlerEntry
(
address
i2c_entry
,
address
c2i_entry
,
address
c2i_unverified_entry
)
:
_i2c_entry
(
i2c_entry
),
_c2i_entry
(
c2i_entry
),
_c2i_unverified_entry
(
c2i_unverified_entry
)
{
}
address
get_i2c_entry
()
{
return
_i2c_entry
;
}
address
get_c2i_entry
()
{
return
_c2i_entry
;
}
address
get_c2i_unverified_entry
()
{
return
_c2i_unverified_entry
;
}
void
relocate
(
address
new_base
);
AdapterFingerPrint
*
fingerprint
()
{
return
_fingerprint
;
}
AdapterHandlerEntry
*
next
()
{
return
(
AdapterHandlerEntry
*
)
BasicHashtableEntry
::
next
();
}
#ifndef PRODUCT
void
print
();
#endif
/* PRODUCT */
...
...
@@ -558,30 +574,18 @@ class AdapterHandlerEntry : public CHeapObj {
class
AdapterHandlerLibrary
:
public
AllStatic
{
private:
static
BufferBlob
*
_buffer
;
// the temporary code buffer in CodeCache
static
GrowableArray
<
uint64_t
>*
_fingerprints
;
// the fingerprint collection
static
GrowableArray
<
AdapterHandlerEntry
*>
*
_handlers
;
// the corresponding handlers
enum
{
AbstractMethodHandler
=
1
// special handler for abstract methods
};
static
AdapterHandlerTable
*
_adapters
;
static
AdapterHandlerEntry
*
_abstract_method_handler
;
static
BufferBlob
*
buffer_blob
();
static
void
initialize
();
static
int
get_create_adapter_index
(
methodHandle
method
);
static
address
get_i2c_entry
(
int
index
)
{
return
get_entry
(
index
)
->
get_i2c_entry
();
}
static
address
get_c2i_entry
(
int
index
)
{
return
get_entry
(
index
)
->
get_c2i_entry
();
}
static
address
get_c2i_unverified_entry
(
int
index
)
{
return
get_entry
(
index
)
->
get_c2i_unverified_entry
();
}
public:
static
AdapterHandlerEntry
*
get_entry
(
int
index
)
{
return
_handlers
->
at
(
index
);
}
static
AdapterHandlerEntry
*
new_entry
(
AdapterFingerPrint
*
fingerprint
,
address
i2c_entry
,
address
c2i_entry
,
address
c2i_unverified_entry
);
static
nmethod
*
create_native_wrapper
(
methodHandle
method
);
static
AdapterHandlerEntry
*
get_adapter
(
methodHandle
method
)
{
return
get_entry
(
get_create_adapter_index
(
method
));
}
static
AdapterHandlerEntry
*
get_adapter
(
methodHandle
method
);
#ifdef HAVE_DTRACE_H
static
nmethod
*
create_dtrace_nmethod
(
methodHandle
method
);
#endif // HAVE_DTRACE_H
...
...
@@ -589,6 +593,7 @@ class AdapterHandlerLibrary: public AllStatic {
#ifndef PRODUCT
static
void
print_handler
(
CodeBlob
*
b
);
static
bool
contains
(
CodeBlob
*
b
);
static
void
print_statistics
();
#endif
/* PRODUCT */
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录