< prev index next >

src/hotspot/share/opto/callnode.cpp

Print this page




1004 bool CallNode::is_call_to_arraycopystub() const {
1005   if (_name != NULL && strstr(_name, "arraycopy") != 0) {
1006     return true;
1007   }
1008   return false;
1009 }
1010 
1011 //=============================================================================
1012 uint CallJavaNode::size_of() const { return sizeof(*this); }
1013 bool CallJavaNode::cmp( const Node &n ) const {
1014   CallJavaNode &call = (CallJavaNode&)n;
1015   return CallNode::cmp(call) && _method == call._method &&
1016          _override_symbolic_info == call._override_symbolic_info;
1017 }
1018 #ifdef ASSERT
1019 bool CallJavaNode::validate_symbolic_info() const {
1020   if (method() == NULL) {
1021     return true; // call into runtime or uncommon trap
1022   }
1023   Bytecodes::Code bc = jvms()->method()->java_code_at_bci(_bci);
1024   if (ACmpOnValues == 3 && (bc == Bytecodes::_if_acmpeq || bc == Bytecodes::_if_acmpne)) {
1025     return true;
1026   }
1027   ciMethod* symbolic_info = jvms()->method()->get_method_at_bci(_bci);
1028   ciMethod* callee = method();
1029   if (symbolic_info->is_method_handle_intrinsic() && !callee->is_method_handle_intrinsic()) {
1030     assert(override_symbolic_info(), "should be set");
1031   }
1032   assert(ciMethod::is_consistent_info(symbolic_info, callee), "inconsistent info");
1033   return true;
1034 }
1035 #endif
1036 
1037 #ifndef PRODUCT
1038 void CallJavaNode::dump_spec(outputStream *st) const {
1039   if( _method ) _method->print_short_name(st);
1040   CallNode::dump_spec(st);
1041 }
1042 
1043 void CallJavaNode::dump_compact_spec(outputStream* st) const {
1044   if (_method) {




1004 bool CallNode::is_call_to_arraycopystub() const {
1005   if (_name != NULL && strstr(_name, "arraycopy") != 0) {
1006     return true;
1007   }
1008   return false;
1009 }
1010 
1011 //=============================================================================
1012 uint CallJavaNode::size_of() const { return sizeof(*this); }
1013 bool CallJavaNode::cmp( const Node &n ) const {
1014   CallJavaNode &call = (CallJavaNode&)n;
1015   return CallNode::cmp(call) && _method == call._method &&
1016          _override_symbolic_info == call._override_symbolic_info;
1017 }
1018 #ifdef ASSERT
1019 bool CallJavaNode::validate_symbolic_info() const {
1020   if (method() == NULL) {
1021     return true; // call into runtime or uncommon trap
1022   }
1023   Bytecodes::Code bc = jvms()->method()->java_code_at_bci(_bci);
1024   if (EnableValhalla && (bc == Bytecodes::_if_acmpeq || bc == Bytecodes::_if_acmpne)) {
1025     return true;
1026   }
1027   ciMethod* symbolic_info = jvms()->method()->get_method_at_bci(_bci);
1028   ciMethod* callee = method();
1029   if (symbolic_info->is_method_handle_intrinsic() && !callee->is_method_handle_intrinsic()) {
1030     assert(override_symbolic_info(), "should be set");
1031   }
1032   assert(ciMethod::is_consistent_info(symbolic_info, callee), "inconsistent info");
1033   return true;
1034 }
1035 #endif
1036 
1037 #ifndef PRODUCT
1038 void CallJavaNode::dump_spec(outputStream *st) const {
1039   if( _method ) _method->print_short_name(st);
1040   CallNode::dump_spec(st);
1041 }
1042 
1043 void CallJavaNode::dump_compact_spec(outputStream* st) const {
1044   if (_method) {


< prev index next >