hotspot/src/share/vm/opto/doCall.cpp
changeset 2570 ecc7862946d4
parent 1399 9648dfd4ce09
child 2867 69187054225f
equal deleted inserted replaced
2569:9e8daec25638 2570:ecc7862946d4
   246     uncommon_trap(Deoptimization::Reason_uninitialized,
   246     uncommon_trap(Deoptimization::Reason_uninitialized,
   247                   Deoptimization::Action_reinterpret,
   247                   Deoptimization::Action_reinterpret,
   248                   holder_klass);
   248                   holder_klass);
   249     return true;
   249     return true;
   250   }
   250   }
       
   251   if (dest_method->is_method_handle_invoke()
       
   252       && holder_klass->name() == ciSymbol::java_dyn_Dynamic()) {
       
   253     // FIXME: NYI
       
   254     uncommon_trap(Deoptimization::Reason_unhandled,
       
   255                   Deoptimization::Action_none,
       
   256                   holder_klass);
       
   257     return true;
       
   258   }
   251 
   259 
   252   assert(dest_method->will_link(method()->holder(), klass, bc()), "dest_method: typeflow responsibility");
   260   assert(dest_method->will_link(method()->holder(), klass, bc()), "dest_method: typeflow responsibility");
   253   return false;
   261   return false;
   254 }
   262 }
   255 
   263 
   746     } else if (is_inline) {
   754     } else if (is_inline) {
   747       switch (bc()) {
   755       switch (bc()) {
   748       case Bytecodes::_invokevirtual:   increment_counter(SharedRuntime::nof_inlined_calls_addr()); break;
   756       case Bytecodes::_invokevirtual:   increment_counter(SharedRuntime::nof_inlined_calls_addr()); break;
   749       case Bytecodes::_invokeinterface: increment_counter(SharedRuntime::nof_inlined_interface_calls_addr()); break;
   757       case Bytecodes::_invokeinterface: increment_counter(SharedRuntime::nof_inlined_interface_calls_addr()); break;
   750       case Bytecodes::_invokestatic:
   758       case Bytecodes::_invokestatic:
       
   759       case Bytecodes::_invokedynamic:
   751       case Bytecodes::_invokespecial:   increment_counter(SharedRuntime::nof_inlined_static_calls_addr()); break;
   760       case Bytecodes::_invokespecial:   increment_counter(SharedRuntime::nof_inlined_static_calls_addr()); break;
   752       default: fatal("unexpected call bytecode");
   761       default: fatal("unexpected call bytecode");
   753       }
   762       }
   754     } else {
   763     } else {
   755       switch (bc()) {
   764       switch (bc()) {
   756       case Bytecodes::_invokevirtual:   increment_counter(SharedRuntime::nof_normal_calls_addr()); break;
   765       case Bytecodes::_invokevirtual:   increment_counter(SharedRuntime::nof_normal_calls_addr()); break;
   757       case Bytecodes::_invokeinterface: increment_counter(SharedRuntime::nof_interface_calls_addr()); break;
   766       case Bytecodes::_invokeinterface: increment_counter(SharedRuntime::nof_interface_calls_addr()); break;
   758       case Bytecodes::_invokestatic:
   767       case Bytecodes::_invokestatic:
       
   768       case Bytecodes::_invokedynamic:
   759       case Bytecodes::_invokespecial:   increment_counter(SharedRuntime::nof_static_calls_addr()); break;
   769       case Bytecodes::_invokespecial:   increment_counter(SharedRuntime::nof_static_calls_addr()); break;
   760       default: fatal("unexpected call bytecode");
   770       default: fatal("unexpected call bytecode");
   761       }
   771       }
   762     }
   772     }
   763   }
   773   }