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 } |