1018 // Their children, the incoming arguments, match normally. |
1018 // Their children, the incoming arguments, match normally. |
1019 m = n->is_SafePoint() ? match_sfpt(n->as_SafePoint()):match_tree(n); |
1019 m = n->is_SafePoint() ? match_sfpt(n->as_SafePoint()):match_tree(n); |
1020 if (C->failing()) return NULL; |
1020 if (C->failing()) return NULL; |
1021 if (m == NULL) { Matcher::soft_match_failure(); return NULL; } |
1021 if (m == NULL) { Matcher::soft_match_failure(); return NULL; } |
1022 } else { // Nothing the matcher cares about |
1022 } else { // Nothing the matcher cares about |
1023 if( n->is_Proj() && n->in(0)->is_Multi()) { // Projections? |
1023 if (n->is_Proj() && n->in(0) != NULL && n->in(0)->is_Multi()) { // Projections? |
1024 // Convert to machine-dependent projection |
1024 // Convert to machine-dependent projection |
1025 m = n->in(0)->as_Multi()->match( n->as_Proj(), this ); |
1025 m = n->in(0)->as_Multi()->match( n->as_Proj(), this ); |
1026 #ifdef ASSERT |
1026 #ifdef ASSERT |
1027 _new2old_map.map(m->_idx, n); |
1027 _new2old_map.map(m->_idx, n); |
1028 #endif |
1028 #endif |