2079 break; |
2079 break; |
2080 } |
2080 } |
2081 |
2081 |
2082 #ifdef _LP64 |
2082 #ifdef _LP64 |
2083 case Op_CastPP: |
2083 case Op_CastPP: |
2084 if (n->in(1)->is_DecodeN() && UseImplicitNullCheckForNarrowOop) { |
2084 if (n->in(1)->is_DecodeN() && Universe::narrow_oop_use_implicit_null_checks()) { |
2085 Compile* C = Compile::current(); |
2085 Compile* C = Compile::current(); |
2086 Node* in1 = n->in(1); |
2086 Node* in1 = n->in(1); |
2087 const Type* t = n->bottom_type(); |
2087 const Type* t = n->bottom_type(); |
2088 Node* new_in1 = in1->clone(); |
2088 Node* new_in1 = in1->clone(); |
2089 new_in1->as_DecodeN()->set_type(t); |
2089 new_in1->as_DecodeN()->set_type(t); |
2134 Node* new_in2 = NULL; |
2134 Node* new_in2 = NULL; |
2135 if (in2->is_DecodeN()) { |
2135 if (in2->is_DecodeN()) { |
2136 new_in2 = in2->in(1); |
2136 new_in2 = in2->in(1); |
2137 } else if (in2->Opcode() == Op_ConP) { |
2137 } else if (in2->Opcode() == Op_ConP) { |
2138 const Type* t = in2->bottom_type(); |
2138 const Type* t = in2->bottom_type(); |
2139 if (t == TypePtr::NULL_PTR && UseImplicitNullCheckForNarrowOop) { |
2139 if (t == TypePtr::NULL_PTR && Universe::narrow_oop_use_implicit_null_checks()) { |
2140 new_in2 = ConNode::make(C, TypeNarrowOop::NULL_PTR); |
2140 new_in2 = ConNode::make(C, TypeNarrowOop::NULL_PTR); |
2141 // |
2141 // |
2142 // This transformation together with CastPP transformation above |
2142 // This transformation together with CastPP transformation above |
2143 // will generated code for implicit NULL checks for compressed oops. |
2143 // will generated code for implicit NULL checks for compressed oops. |
2144 // |
2144 // |