< prev index next > src/hotspot/share/oops/method.hpp
Print this page
class MethodTrainingData;
class ConstMethod;
class InlineTableSizes;
class nmethod;
class InterpreterOopMap;
+ class AOTCodeEntry;
class Method : public Metadata {
friend class VMStructs;
friend class JVMCIVMStructs;
friend class MethodTest;
// 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
volatile address _from_interpreted_entry; // Cache of _code ? _adapter->i2c_entry() : _i2i_entry
+ nmethod* _preload_code; // preloaded AOT code
+ AOTCodeEntry* _aot_code_entry; // AOT Code Cache entry for pre-loading code
+
// Constructor
Method(ConstMethod* xconst, AccessFlags access_flags, Symbol* name);
public:
static Method* allocate(ClassLoaderData* loader_data,
}
void set_from_compiled_entry(address entry) {
_from_compiled_entry = entry;
}
+ void set_preload_code(nmethod* code) {
+ _preload_code = code;
+ }
+ void set_aot_code_entry(AOTCodeEntry* entry) {
+ _aot_code_entry = entry;
+ }
+ AOTCodeEntry* aot_code_entry() const {
+ return _aot_code_entry;
+ }
+
address get_i2c_entry();
address get_c2i_entry();
address get_c2i_unverified_entry();
address get_c2i_no_clinit_check_entry();
AdapterHandlerEntry* adapter() const {
// NOTE: code() is inherently racy as deopt can be clearing code
// simultaneously. Use with caution.
bool has_compiled_code() const;
bool needs_clinit_barrier() const;
+ bool code_has_clinit_barriers() const;
// sizing
static int header_size() {
return align_up((int)sizeof(Method), wordSize) / wordSize;
}
< prev index next >