diff -r 9e8daec25638 -r ecc7862946d4 hotspot/src/share/vm/oops/methodDataOop.cpp --- a/hotspot/src/share/vm/oops/methodDataOop.cpp Mon Apr 20 14:48:03 2009 -0700 +++ b/hotspot/src/share/vm/oops/methodDataOop.cpp Tue Apr 21 23:21:04 2009 -0700 @@ -442,6 +442,8 @@ case Bytecodes::_invokevirtual: case Bytecodes::_invokeinterface: return VirtualCallData::static_cell_count(); + case Bytecodes::_invokedynamic: + return CounterData::static_cell_count(); case Bytecodes::_ret: return RetData::static_cell_count(); case Bytecodes::_ifeq: @@ -570,6 +572,11 @@ cell_count = VirtualCallData::static_cell_count(); tag = DataLayout::virtual_call_data_tag; break; + case Bytecodes::_invokedynamic: + // %%% should make a type profile for any invokedynamic that takes a ref argument + cell_count = CounterData::static_cell_count(); + tag = DataLayout::counter_data_tag; + break; case Bytecodes::_ret: cell_count = RetData::static_cell_count(); tag = DataLayout::ret_data_tag;