2192 |
2192 |
2193 // Special-case a fresh allocation to avoid building nodes: |
2193 // Special-case a fresh allocation to avoid building nodes: |
2194 Node* klass_node = AllocateNode::Ideal_klass(obj, &_igvn); |
2194 Node* klass_node = AllocateNode::Ideal_klass(obj, &_igvn); |
2195 if (klass_node == NULL) { |
2195 if (klass_node == NULL) { |
2196 Node* k_adr = basic_plus_adr(obj, oopDesc::klass_offset_in_bytes()); |
2196 Node* k_adr = basic_plus_adr(obj, oopDesc::klass_offset_in_bytes()); |
2197 klass_node = transform_later( LoadKlassNode::make(_igvn, mem, k_adr, _igvn.type(k_adr)->is_ptr()) ); |
2197 klass_node = transform_later(LoadKlassNode::make(_igvn, NULL, mem, k_adr, _igvn.type(k_adr)->is_ptr())); |
2198 #ifdef _LP64 |
2198 #ifdef _LP64 |
2199 if (UseCompressedClassPointers && klass_node->is_DecodeNKlass()) { |
2199 if (UseCompressedClassPointers && klass_node->is_DecodeNKlass()) { |
2200 assert(klass_node->in(1)->Opcode() == Op_LoadNKlass, "sanity"); |
2200 assert(klass_node->in(1)->Opcode() == Op_LoadNKlass, "sanity"); |
2201 klass_node->in(1)->init_req(0, ctrl); |
2201 klass_node->in(1)->init_req(0, ctrl); |
2202 } else |
2202 } else |