hotspot/src/share/vm/ci/ciTypeFlow.cpp
changeset 4566 b363f6ef4068
parent 3910 67050ceda719
child 5688 9052dc91ea67
child 5547 f4b087cbb361
equal deleted inserted replaced
4565:cbb3fed38514 4566:b363f6ef4068
   633                                         bool has_receiver) {
   633                                         bool has_receiver) {
   634   bool will_link;
   634   bool will_link;
   635   ciMethod* method = str->get_method(will_link);
   635   ciMethod* method = str->get_method(will_link);
   636   if (!will_link) {
   636   if (!will_link) {
   637     // We weren't able to find the method.
   637     // We weren't able to find the method.
   638     ciKlass* unloaded_holder = method->holder();
   638     if (str->cur_bc() == Bytecodes::_invokedynamic) {
   639     trap(str, unloaded_holder, str->get_method_holder_index());
   639       trap(str, NULL,
       
   640            Deoptimization::make_trap_request
       
   641            (Deoptimization::Reason_uninitialized,
       
   642             Deoptimization::Action_reinterpret));
       
   643     } else {
       
   644       ciKlass* unloaded_holder = method->holder();
       
   645       trap(str, unloaded_holder, str->get_method_holder_index());
       
   646     }
   640   } else {
   647   } else {
   641     ciSignature* signature = method->signature();
   648     ciSignature* signature = method->signature();
   642     ciSignatureStream sigstr(signature);
   649     ciSignatureStream sigstr(signature);
   643     int arg_size = signature->size();
   650     int arg_size = signature->size();
   644     int stack_base = stack_size() - arg_size;
   651     int stack_base = stack_size() - arg_size;
  1290       break;
  1297       break;
  1291     }
  1298     }
  1292   case Bytecodes::_invokeinterface: do_invoke(str, true);           break;
  1299   case Bytecodes::_invokeinterface: do_invoke(str, true);           break;
  1293   case Bytecodes::_invokespecial:   do_invoke(str, true);           break;
  1300   case Bytecodes::_invokespecial:   do_invoke(str, true);           break;
  1294   case Bytecodes::_invokestatic:    do_invoke(str, false);          break;
  1301   case Bytecodes::_invokestatic:    do_invoke(str, false);          break;
  1295 
       
  1296   case Bytecodes::_invokevirtual:   do_invoke(str, true);           break;
  1302   case Bytecodes::_invokevirtual:   do_invoke(str, true);           break;
       
  1303   case Bytecodes::_invokedynamic:   do_invoke(str, false);          break;
  1297 
  1304 
  1298   case Bytecodes::_istore:   store_local_int(str->get_index());     break;
  1305   case Bytecodes::_istore:   store_local_int(str->get_index());     break;
  1299   case Bytecodes::_istore_0: store_local_int(0);                    break;
  1306   case Bytecodes::_istore_0: store_local_int(0);                    break;
  1300   case Bytecodes::_istore_1: store_local_int(1);                    break;
  1307   case Bytecodes::_istore_1: store_local_int(1);                    break;
  1301   case Bytecodes::_istore_2: store_local_int(2);                    break;
  1308   case Bytecodes::_istore_2: store_local_int(2);                    break;