Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/opto/callGenerator.hpp
          +++ new/src/share/vm/opto/callGenerator.hpp
↓ open down ↓ 100 lines elided ↑ open up ↑
 101  101    // to handle the given call, and another CallGenerator should be consulted.
 102  102    virtual JVMState* generate(JVMState* jvms) = 0;
 103  103  
 104  104    // How to generate a call site that is inlined:
 105  105    static CallGenerator* for_inline(ciMethod* m, float expected_uses = -1);
 106  106    // How to generate code for an on-stack replacement handler.
 107  107    static CallGenerator* for_osr(ciMethod* m, int osr_bci);
 108  108  
 109  109    // How to generate vanilla out-of-line call sites:
 110  110    static CallGenerator* for_direct_call(ciMethod* m, bool separate_io_projs = false);   // static, special
 111      -  static CallGenerator* for_dynamic_call(ciMethod* m);   // invokedynamic
 112  111    static CallGenerator* for_virtual_call(ciMethod* m, int vtable_index);  // virtual, interface
      112 +  static CallGenerator* for_dynamic_call(ciMethod* m);   // invokedynamic
      113 +
      114 +  static CallGenerator* for_method_handle_call(Node* method_handle, JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
      115 +  static CallGenerator* for_invokedynamic_call(                     JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
 113  116  
 114  117    static CallGenerator* for_method_handle_inline(Node* method_handle,   JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
 115  118    static CallGenerator* for_invokedynamic_inline(ciCallSite* call_site, JVMState* jvms, ciMethod* caller, ciMethod* callee, ciCallProfile profile);
 116  119  
 117  120    // How to generate a replace a direct call with an inline version
 118  121    static CallGenerator* for_late_inline(ciMethod* m, CallGenerator* inline_cg);
 119  122  
 120  123    // How to make a call but defer the decision whether to inline or not.
 121  124    static CallGenerator* for_warm_call(WarmCallInfo* ci,
 122  125                                        CallGenerator* if_cold,
↓ open down ↓ 186 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX