< prev index next >
src/hotspot/share/code/relocInfo.hpp
virtual address value();
// all relocations are able to reassert their values
virtual void set_value(address x);
! virtual void clear_inline_cache() { }
// This method assumes that all virtual/static (inline) caches are cleared (since for static_call_type and
// ic_call_type is not always posisition dependent (depending on the state of the cache)). However, this is
// probably a reasonable assumption, since empty caches simplifies code reloacation.
virtual void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) { }
virtual address value();
// all relocations are able to reassert their values
virtual void set_value(address x);
! virtual bool clear_inline_cache() { return true; }
// This method assumes that all virtual/static (inline) caches are cleared (since for static_call_type and
// ic_call_type is not always posisition dependent (depending on the state of the cache)). However, this is
// probably a reasonable assumption, since empty caches simplifies code reloacation.
virtual void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) { }
***************
// When unpacking, a zero oop_limit is taken to refer to the end of the call.
// (This has the effect of bringing in the call's delay slot on SPARC.)
void pack_data_to(CodeSection* dest);
void unpack_data();
! void clear_inline_cache();
};
class opt_virtual_call_Relocation : public CallRelocation {
relocInfo::relocType type() { return relocInfo::opt_virtual_call_type; }
// When unpacking, a zero oop_limit is taken to refer to the end of the call.
// (This has the effect of bringing in the call's delay slot on SPARC.)
void pack_data_to(CodeSection* dest);
void unpack_data();
! bool clear_inline_cache();
};
class opt_virtual_call_Relocation : public CallRelocation {
relocInfo::relocType type() { return relocInfo::opt_virtual_call_type; }
***************
Method* method_value();
void pack_data_to(CodeSection* dest);
void unpack_data();
! void clear_inline_cache();
// find the matching static_stub
address static_stub(bool is_aot);
};
Method* method_value();
void pack_data_to(CodeSection* dest);
void unpack_data();
! bool clear_inline_cache();
// find the matching static_stub
address static_stub(bool is_aot);
};
***************
Method* method_value();
void pack_data_to(CodeSection* dest);
void unpack_data();
! void clear_inline_cache();
// find the matching static_stub
address static_stub(bool is_aot);
};
Method* method_value();
void pack_data_to(CodeSection* dest);
void unpack_data();
! bool clear_inline_cache();
// find the matching static_stub
address static_stub(bool is_aot);
};
***************
friend class RelocIterator;
static_stub_Relocation() { }
public:
! void clear_inline_cache();
address static_call() { return _static_call; }
bool is_aot() { return _is_aot; }
// data is packed as a scaled offset in "1_int" format: [c] or [Cc]
friend class RelocIterator;
static_stub_Relocation() { }
public:
! bool clear_inline_cache();
address static_call() { return _static_call; }
bool is_aot() { return _is_aot; }
// data is packed as a scaled offset in "1_int" format: [c] or [Cc]
< prev index next >