mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8151956: Support non-continuous CodeBlobs in HotSpot
Reviewed-by: iveresov, thartmann, simonis
This commit is contained in:
parent
67ff4391ec
commit
b853eb7f5c
100 changed files with 2486 additions and 1868 deletions
|
@ -58,6 +58,7 @@ class MethodCounters;
|
|||
class ConstMethod;
|
||||
class InlineTableSizes;
|
||||
class KlassSizeStats;
|
||||
class CompiledMethod;
|
||||
|
||||
class Method : public Metadata {
|
||||
friend class VMStructs;
|
||||
|
@ -101,7 +102,7 @@ class Method : public Metadata {
|
|||
// field can come and go. It can transition from NULL to not-null at any
|
||||
// time (whenever a compile completes). It can transition from not-null to
|
||||
// NULL only at safepoints (because of a de-opt).
|
||||
nmethod* volatile _code; // Points to the corresponding piece of native code
|
||||
CompiledMethod* volatile _code; // Points to the corresponding piece of native code
|
||||
volatile address _from_interpreted_entry; // Cache of _code ? _adapter->i2c_entry() : _i2i_entry
|
||||
|
||||
// Constructor
|
||||
|
@ -431,9 +432,9 @@ class Method : public Metadata {
|
|||
// nmethod/verified compiler entry
|
||||
address verified_code_entry();
|
||||
bool check_code() const; // Not inline to avoid circular ref
|
||||
nmethod* volatile code() const { assert( check_code(), "" ); return (nmethod *)OrderAccess::load_ptr_acquire(&_code); }
|
||||
CompiledMethod* volatile code() const { assert( check_code(), "" ); return (CompiledMethod *)OrderAccess::load_ptr_acquire(&_code); }
|
||||
void clear_code(); // Clear out any compiled code
|
||||
static void set_code(methodHandle mh, nmethod* code);
|
||||
static void set_code(methodHandle mh, CompiledMethod* code);
|
||||
void set_adapter_entry(AdapterHandlerEntry* adapter) {
|
||||
constMethod()->set_adapter_entry(adapter);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue