Mercurial > hg > truffle
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; |