--- old/src/share/vm/opto/doCall.cpp 2016-12-13 09:36:29.212552555 +0100 +++ new/src/share/vm/opto/doCall.cpp 2016-12-13 09:36:29.145552725 +0100 @@ -562,7 +562,7 @@ // Speculative type of the receiver if any ciKlass* speculative_receiver_type = NULL; - if (is_virtual_or_interface || is_direct) { + if (is_virtual_or_interface) { Node* receiver_node = stack(sp() - nargs); const TypeOopPtr* receiver_type = _gvn.type(receiver_node)->isa_oopptr(); // call_does_dispatch and vtable_index are out-parameters. They might be changed. @@ -1023,9 +1023,9 @@ } } else if (is_inline) { switch (bc()) { - case Bytecodes::_invokedirect: case Bytecodes::_invokevirtual: increment_counter(SharedRuntime::nof_inlined_calls_addr()); break; case Bytecodes::_invokeinterface: increment_counter(SharedRuntime::nof_inlined_interface_calls_addr()); break; + case Bytecodes::_invokedirect: case Bytecodes::_invokestatic: case Bytecodes::_invokedynamic: case Bytecodes::_invokespecial: increment_counter(SharedRuntime::nof_inlined_static_calls_addr()); break; @@ -1033,9 +1033,9 @@ } } else { switch (bc()) { - case Bytecodes::_invokedirect: case Bytecodes::_invokevirtual: increment_counter(SharedRuntime::nof_normal_calls_addr()); break; case Bytecodes::_invokeinterface: increment_counter(SharedRuntime::nof_interface_calls_addr()); break; + case Bytecodes::_invokedirect: case Bytecodes::_invokestatic: case Bytecodes::_invokedynamic: case Bytecodes::_invokespecial: increment_counter(SharedRuntime::nof_static_calls_addr()); break;