2015 Node* r = C->root(); |
2015 Node* r = C->root(); |
2016 uint cnt = r->outcnt(); |
2016 uint cnt = r->outcnt(); |
2017 for (uint i = 0; i < cnt; i++) { |
2017 for (uint i = 0; i < cnt; i++) { |
2018 Node* m = r->raw_out(i); |
2018 Node* m = r->raw_out(i); |
2019 if (m!= NULL && m->Opcode() == Op_ConN && |
2019 if (m!= NULL && m->Opcode() == Op_ConN && |
2020 m->bottom_type()->is_narrowoop()->make_oopptr() == t) { |
2020 m->bottom_type()->make_ptr() == t) { |
2021 nn = m; |
2021 nn = m; |
2022 break; |
2022 break; |
2023 } |
2023 } |
2024 } |
2024 } |
2025 if (nn != NULL) { |
2025 if (nn != NULL) { |
2068 if (i >= in1->outcnt()) { |
2068 if (i >= in1->outcnt()) { |
2069 in2 = ConNode::make(C, TypeNarrowOop::NULL_PTR); |
2069 in2 = ConNode::make(C, TypeNarrowOop::NULL_PTR); |
2070 } |
2070 } |
2071 } |
2071 } |
2072 } else if (t->isa_oopptr()) { |
2072 } else if (t->isa_oopptr()) { |
2073 in2 = ConNode::make(C, t->is_oopptr()->make_narrowoop()); |
2073 in2 = ConNode::make(C, t->make_narrowoop()); |
2074 } |
2074 } |
2075 } |
2075 } |
2076 if( in2 != NULL ) { |
2076 if( in2 != NULL ) { |
2077 Node* cmpN = new (C, 3) CmpNNode(n->in(1)->in(1), in2); |
2077 Node* cmpN = new (C, 3) CmpNNode(n->in(1)->in(1), in2); |
2078 n->subsume_by( cmpN ); |
2078 n->subsume_by( cmpN ); |