787 // Get the constant klass we are comparing to. |
787 // Get the constant klass we are comparing to. |
788 ciKlass* superklass = t2->klass(); |
788 ciKlass* superklass = t2->klass(); |
789 |
789 |
790 // Now check for LoadKlass on left. |
790 // Now check for LoadKlass on left. |
791 Node* ldk1 = in(1); |
791 Node* ldk1 = in(1); |
792 if (ldk1->is_DecodeN()) { |
792 if (ldk1->is_DecodeNKlass()) { |
793 ldk1 = ldk1->in(1); |
793 ldk1 = ldk1->in(1); |
794 if (ldk1->Opcode() != Op_LoadNKlass ) |
794 if (ldk1->Opcode() != Op_LoadNKlass ) |
795 return NULL; |
795 return NULL; |
796 } else if (ldk1->Opcode() != Op_LoadKlass ) |
796 } else if (ldk1->Opcode() != Op_LoadKlass ) |
797 return NULL; |
797 return NULL; |
812 } |
812 } |
813 } |
813 } |
814 |
814 |
815 // Check for a LoadKlass from primary supertype array. |
815 // Check for a LoadKlass from primary supertype array. |
816 // Any nested loadklass from loadklass+con must be from the p.s. array. |
816 // Any nested loadklass from loadklass+con must be from the p.s. array. |
817 if (ldk2->is_DecodeN()) { |
817 if (ldk2->is_DecodeNKlass()) { |
818 // Keep ldk2 as DecodeN since it could be used in CmpP below. |
818 // Keep ldk2 as DecodeN since it could be used in CmpP below. |
819 if (ldk2->in(1)->Opcode() != Op_LoadNKlass ) |
819 if (ldk2->in(1)->Opcode() != Op_LoadNKlass ) |
820 return NULL; |
820 return NULL; |
821 } else if (ldk2->Opcode() != Op_LoadKlass) |
821 } else if (ldk2->Opcode() != Op_LoadKlass) |
822 return NULL; |
822 return NULL; |