comparison src/share/vm/oops/methodDataOop.cpp @ 726:be93aad57795

6655646: dynamic languages need dynamically linked call sites Summary: invokedynamic instruction (JSR 292 RI) Reviewed-by: twisti, never
author jrose
date Tue, 21 Apr 2009 23:21:04 -0700
parents d1605aabd0a1
children bd02caa94611
comparison
equal deleted inserted replaced
725:928912ce8438 726:be93aad57795
440 case Bytecodes::_jsr_w: 440 case Bytecodes::_jsr_w:
441 return JumpData::static_cell_count(); 441 return JumpData::static_cell_count();
442 case Bytecodes::_invokevirtual: 442 case Bytecodes::_invokevirtual:
443 case Bytecodes::_invokeinterface: 443 case Bytecodes::_invokeinterface:
444 return VirtualCallData::static_cell_count(); 444 return VirtualCallData::static_cell_count();
445 case Bytecodes::_invokedynamic:
446 return CounterData::static_cell_count();
445 case Bytecodes::_ret: 447 case Bytecodes::_ret:
446 return RetData::static_cell_count(); 448 return RetData::static_cell_count();
447 case Bytecodes::_ifeq: 449 case Bytecodes::_ifeq:
448 case Bytecodes::_ifne: 450 case Bytecodes::_ifne:
449 case Bytecodes::_iflt: 451 case Bytecodes::_iflt:
567 break; 569 break;
568 case Bytecodes::_invokevirtual: 570 case Bytecodes::_invokevirtual:
569 case Bytecodes::_invokeinterface: 571 case Bytecodes::_invokeinterface:
570 cell_count = VirtualCallData::static_cell_count(); 572 cell_count = VirtualCallData::static_cell_count();
571 tag = DataLayout::virtual_call_data_tag; 573 tag = DataLayout::virtual_call_data_tag;
574 break;
575 case Bytecodes::_invokedynamic:
576 // %%% should make a type profile for any invokedynamic that takes a ref argument
577 cell_count = CounterData::static_cell_count();
578 tag = DataLayout::counter_data_tag;
572 break; 579 break;
573 case Bytecodes::_ret: 580 case Bytecodes::_ret:
574 cell_count = RetData::static_cell_count(); 581 cell_count = RetData::static_cell_count();
575 tag = DataLayout::ret_data_tag; 582 tag = DataLayout::ret_data_tag;
576 break; 583 break;