src/share/vm/opto/subnode.cpp

Print this page
rev 3688 : 7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by:

*** 787,797 **** // Get the constant klass we are comparing to. ciKlass* superklass = t2->klass(); // Now check for LoadKlass on left. Node* ldk1 = in(1); ! if (ldk1->is_DecodeN()) { ldk1 = ldk1->in(1); if (ldk1->Opcode() != Op_LoadNKlass ) return NULL; } else if (ldk1->Opcode() != Op_LoadKlass ) return NULL; --- 787,797 ---- // Get the constant klass we are comparing to. ciKlass* superklass = t2->klass(); // Now check for LoadKlass on left. Node* ldk1 = in(1); ! if (ldk1->is_DecodeNKlass()) { ldk1 = ldk1->in(1); if (ldk1->Opcode() != Op_LoadNKlass ) return NULL; } else if (ldk1->Opcode() != Op_LoadKlass ) return NULL;
*** 812,822 **** } } // Check for a LoadKlass from primary supertype array. // Any nested loadklass from loadklass+con must be from the p.s. array. ! if (ldk2->is_DecodeN()) { // Keep ldk2 as DecodeN since it could be used in CmpP below. if (ldk2->in(1)->Opcode() != Op_LoadNKlass ) return NULL; } else if (ldk2->Opcode() != Op_LoadKlass) return NULL; --- 812,822 ---- } } // Check for a LoadKlass from primary supertype array. // Any nested loadklass from loadklass+con must be from the p.s. array. ! if (ldk2->is_DecodeNKlass()) { // Keep ldk2 as DecodeN since it could be used in CmpP below. if (ldk2->in(1)->Opcode() != Op_LoadNKlass ) return NULL; } else if (ldk2->Opcode() != Op_LoadKlass) return NULL;