mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
8145221: Use trampolines for i2i and i2c entries in Methods that are stored in CDS archive
This optimization reduces the size of the RW region of the CDS archive. It also reduces the amount of pages in the RW region that are actually written into during runtime. Co-authored-by: Ioi Lam <ioi.lam@oracle.com> Co-authored-by: Goetz Lindenmaier <goetz.lindenmaier@sap.com> Reviewed-by: dlong, iklam, jiangli
This commit is contained in:
parent
2d2abce433
commit
28edd79d64
27 changed files with 408 additions and 47 deletions
|
@ -107,6 +107,8 @@ public:
|
|||
int _narrow_klass_shift; // save narrow klass base and shift
|
||||
address _narrow_klass_base;
|
||||
char* _misc_data_patching_start;
|
||||
address _cds_i2i_entry_code_buffers;
|
||||
size_t _cds_i2i_entry_code_buffers_size;
|
||||
|
||||
struct space_info {
|
||||
int _crc; // crc checksum of the current space
|
||||
|
@ -195,6 +197,19 @@ public:
|
|||
char* misc_data_patching_start() { return _header->_misc_data_patching_start; }
|
||||
void set_misc_data_patching_start(char* p) { _header->_misc_data_patching_start = p; }
|
||||
|
||||
address cds_i2i_entry_code_buffers() {
|
||||
return _header->_cds_i2i_entry_code_buffers;
|
||||
}
|
||||
void set_cds_i2i_entry_code_buffers(address addr) {
|
||||
_header->_cds_i2i_entry_code_buffers = addr;
|
||||
}
|
||||
size_t cds_i2i_entry_code_buffers_size() {
|
||||
return _header->_cds_i2i_entry_code_buffers_size;
|
||||
}
|
||||
void set_cds_i2i_entry_code_buffers_size(size_t s) {
|
||||
_header->_cds_i2i_entry_code_buffers_size = s;
|
||||
}
|
||||
|
||||
static FileMapInfo* current_info() {
|
||||
CDS_ONLY(return _current_info;)
|
||||
NOT_CDS(return NULL;)
|
||||
|
@ -234,6 +249,7 @@ public:
|
|||
|
||||
// Return true if given address is in the mapped shared space.
|
||||
bool is_in_shared_space(const void* p) NOT_CDS_RETURN_(false);
|
||||
bool is_in_shared_region(const void* p, int idx) NOT_CDS_RETURN_(false);
|
||||
void print_shared_spaces() NOT_CDS_RETURN;
|
||||
|
||||
static size_t shared_spaces_size() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue