< prev index next >

src/hotspot/share/opto/matcher.cpp

Print this page

2246     case Op_Jump:
2247       mstack.push(n->in(1), Pre_Visit);     // Switch Value (could be shared)
2248       mstack.push(n->in(0), Pre_Visit);     // Visit Control input
2249       return true;                             // while (mstack.is_nonempty())
2250     case Op_StrComp:
2251     case Op_StrEquals:
2252     case Op_StrIndexOf:
2253     case Op_StrIndexOfChar:
2254     case Op_AryEq:
2255     case Op_CountPositives:
2256     case Op_StrInflatedCopy:
2257     case Op_StrCompressedCopy:
2258     case Op_EncodeISOArray:
2259     case Op_FmaD:
2260     case Op_FmaF:
2261     case Op_FmaVD:
2262     case Op_FmaVF:
2263     case Op_MacroLogicV:
2264     case Op_LoadVectorMasked:
2265     case Op_VectorCmpMasked:



2266     case Op_VectorLoadMask:
2267       set_shared(n); // Force result into register (it will be anyways)
2268       break;
2269     case Op_ConP: {  // Convert pointers above the centerline to NUL
2270       TypeNode *tn = n->as_Type(); // Constants derive from type nodes
2271       const TypePtr* tp = tn->type()->is_ptr();
2272       if (tp->_ptr == TypePtr::AnyNull) {
2273         tn->set_type(TypePtr::NULL_PTR);
2274       }
2275       break;
2276     }
2277     case Op_ConN: {  // Convert narrow pointers above the centerline to NUL
2278       TypeNode *tn = n->as_Type(); // Constants derive from type nodes
2279       const TypePtr* tp = tn->type()->make_ptr();
2280       if (tp && tp->_ptr == TypePtr::AnyNull) {
2281         tn->set_type(TypeNarrowOop::NULL_PTR);
2282       }
2283       break;
2284     }
2285     case Op_Binary:         // These are introduced in the Post_Visit state.

2246     case Op_Jump:
2247       mstack.push(n->in(1), Pre_Visit);     // Switch Value (could be shared)
2248       mstack.push(n->in(0), Pre_Visit);     // Visit Control input
2249       return true;                             // while (mstack.is_nonempty())
2250     case Op_StrComp:
2251     case Op_StrEquals:
2252     case Op_StrIndexOf:
2253     case Op_StrIndexOfChar:
2254     case Op_AryEq:
2255     case Op_CountPositives:
2256     case Op_StrInflatedCopy:
2257     case Op_StrCompressedCopy:
2258     case Op_EncodeISOArray:
2259     case Op_FmaD:
2260     case Op_FmaF:
2261     case Op_FmaVD:
2262     case Op_FmaVF:
2263     case Op_MacroLogicV:
2264     case Op_LoadVectorMasked:
2265     case Op_VectorCmpMasked:
2266     case Op_CompressV:
2267     case Op_CompressM:
2268     case Op_ExpandV:
2269     case Op_VectorLoadMask:
2270       set_shared(n); // Force result into register (it will be anyways)
2271       break;
2272     case Op_ConP: {  // Convert pointers above the centerline to NUL
2273       TypeNode *tn = n->as_Type(); // Constants derive from type nodes
2274       const TypePtr* tp = tn->type()->is_ptr();
2275       if (tp->_ptr == TypePtr::AnyNull) {
2276         tn->set_type(TypePtr::NULL_PTR);
2277       }
2278       break;
2279     }
2280     case Op_ConN: {  // Convert narrow pointers above the centerline to NUL
2281       TypeNode *tn = n->as_Type(); // Constants derive from type nodes
2282       const TypePtr* tp = tn->type()->make_ptr();
2283       if (tp && tp->_ptr == TypePtr::AnyNull) {
2284         tn->set_type(TypeNarrowOop::NULL_PTR);
2285       }
2286       break;
2287     }
2288     case Op_Binary:         // These are introduced in the Post_Visit state.
< prev index next >