mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
This commit is contained in:
parent
680ecf1611
commit
4a831d45f0
273 changed files with 6585 additions and 2993 deletions
|
@ -135,7 +135,10 @@ intptr_t jfieldIDWorkaround::encode_klass_hash(klassOop k, intptr_t offset) {
|
|||
if (offset <= small_offset_mask) {
|
||||
klassOop field_klass = k;
|
||||
klassOop super_klass = Klass::cast(field_klass)->super();
|
||||
while (instanceKlass::cast(super_klass)->contains_field_offset(offset)) {
|
||||
// With compressed oops the most super class with nonstatic fields would
|
||||
// be the owner of fields embedded in the header.
|
||||
while (instanceKlass::cast(super_klass)->has_nonstatic_fields() &&
|
||||
instanceKlass::cast(super_klass)->contains_field_offset(offset)) {
|
||||
field_klass = super_klass; // super contains the field also
|
||||
super_klass = Klass::cast(field_klass)->super();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue