hotspot/src/share/vm/interpreter/linkResolver.cpp
changeset 46630 75aa3e39d02c
parent 46560 388aa8d67c80
child 46701 f559541c0daa
equal deleted inserted replaced
46629:8eeacdc76bf2 46630:75aa3e39d02c
   217 #endif //ASSERT
   217 #endif //ASSERT
   218 
   218 
   219 #ifndef PRODUCT
   219 #ifndef PRODUCT
   220 void CallInfo::print() {
   220 void CallInfo::print() {
   221   ResourceMark rm;
   221   ResourceMark rm;
   222   const char* kindstr = "unknown";
   222   const char* kindstr;
   223   switch (_call_kind) {
   223   switch (_call_kind) {
   224   case direct_call: kindstr = "direct"; break;
   224   case direct_call: kindstr = "direct";  break;
   225   case vtable_call: kindstr = "vtable"; break;
   225   case vtable_call: kindstr = "vtable";  break;
   226   case itable_call: kindstr = "itable"; break;
   226   case itable_call: kindstr = "itable";  break;
       
   227   default         : kindstr = "unknown"; break;
   227   }
   228   }
   228   tty->print_cr("Call %s@%d %s", kindstr, _call_index,
   229   tty->print_cr("Call %s@%d %s", kindstr, _call_index,
   229                 _resolved_method.is_null() ? "(none)" : _resolved_method->name_and_sig_as_C_string());
   230                 _resolved_method.is_null() ? "(none)" : _resolved_method->name_and_sig_as_C_string());
   230 }
   231 }
   231 #endif
   232 #endif
  1568     case Bytecodes::_invokespecial  : resolve_invokespecial  (result, recv, pool, index, CHECK); break;
  1569     case Bytecodes::_invokespecial  : resolve_invokespecial  (result, recv, pool, index, CHECK); break;
  1569     case Bytecodes::_invokevirtual  : resolve_invokevirtual  (result, recv, pool, index, CHECK); break;
  1570     case Bytecodes::_invokevirtual  : resolve_invokevirtual  (result, recv, pool, index, CHECK); break;
  1570     case Bytecodes::_invokehandle   : resolve_invokehandle   (result,       pool, index, CHECK); break;
  1571     case Bytecodes::_invokehandle   : resolve_invokehandle   (result,       pool, index, CHECK); break;
  1571     case Bytecodes::_invokedynamic  : resolve_invokedynamic  (result,       pool, index, CHECK); break;
  1572     case Bytecodes::_invokedynamic  : resolve_invokedynamic  (result,       pool, index, CHECK); break;
  1572     case Bytecodes::_invokeinterface: resolve_invokeinterface(result, recv, pool, index, CHECK); break;
  1573     case Bytecodes::_invokeinterface: resolve_invokeinterface(result, recv, pool, index, CHECK); break;
       
  1574     default                         :                                                            break;
  1573   }
  1575   }
  1574   return;
  1576   return;
  1575 }
  1577 }
  1576 
  1578 
  1577 void LinkResolver::resolve_invoke(CallInfo& result, Handle& recv,
  1579 void LinkResolver::resolve_invoke(CallInfo& result, Handle& recv,
  1596     case Bytecodes::_invokespecial:
  1598     case Bytecodes::_invokespecial:
  1597       resolve_special_call(result, recv, link_info, CHECK);
  1599       resolve_special_call(result, recv, link_info, CHECK);
  1598       break;
  1600       break;
  1599     default:
  1601     default:
  1600       fatal("bad call: %s", Bytecodes::name(byte));
  1602       fatal("bad call: %s", Bytecodes::name(byte));
       
  1603       break;
  1601   }
  1604   }
  1602 }
  1605 }
  1603 
  1606 
  1604 void LinkResolver::resolve_invokestatic(CallInfo& result, const constantPoolHandle& pool, int index, TRAPS) {
  1607 void LinkResolver::resolve_invokestatic(CallInfo& result, const constantPoolHandle& pool, int index, TRAPS) {
  1605   LinkInfo link_info(pool, index, CHECK);
  1608   LinkInfo link_info(pool, index, CHECK);