src/share/vm/interpreter/templateInterpreter.hpp

changeset 6039
bd3237e0e18d
parent 4037
da91efe96a93
child 6198
55fb97c4c58d
     1.1 --- a/src/share/vm/interpreter/templateInterpreter.hpp	Wed Oct 23 19:22:28 2013 +0000
     1.2 +++ b/src/share/vm/interpreter/templateInterpreter.hpp	Thu Oct 24 16:23:07 2013 -0700
     1.3 @@ -120,8 +120,9 @@
     1.4    static EntryPoint _continuation_entry;
     1.5    static EntryPoint _safept_entry;
     1.6  
     1.7 -  static address    _return_3_addrs_by_index[number_of_return_addrs];     // for invokevirtual   return entries
     1.8 -  static address    _return_5_addrs_by_index[number_of_return_addrs];     // for invokeinterface return entries
     1.9 +  static address _invoke_return_entry[number_of_return_addrs];           // for invokestatic, invokespecial, invokevirtual return entries
    1.10 +  static address _invokeinterface_return_entry[number_of_return_addrs];  // for invokeinterface return entries
    1.11 +  static address _invokedynamic_return_entry[number_of_return_addrs];    // for invokedynamic return entries
    1.12  
    1.13    static DispatchTable _active_table;                           // the active    dispatch table (used by the interpreter for dispatch)
    1.14    static DispatchTable _normal_table;                           // the normal    dispatch table (used to set the active table in normal mode)
    1.15 @@ -161,12 +162,15 @@
    1.16    static address*   normal_table()                              { return _normal_table.table_for(); }
    1.17  
    1.18    // Support for invokes
    1.19 -  static address*   return_3_addrs_by_index_table()             { return _return_3_addrs_by_index; }
    1.20 -  static address*   return_5_addrs_by_index_table()             { return _return_5_addrs_by_index; }
    1.21 -  static int        TosState_as_index(TosState state);          // computes index into return_3_entry_by_index table
    1.22 +  static address*   invoke_return_entry_table()                 { return _invoke_return_entry; }
    1.23 +  static address*   invokeinterface_return_entry_table()        { return _invokeinterface_return_entry; }
    1.24 +  static address*   invokedynamic_return_entry_table()          { return _invokedynamic_return_entry; }
    1.25 +  static int        TosState_as_index(TosState state);
    1.26  
    1.27 -  static address    return_entry  (TosState state, int length);
    1.28 -  static address    deopt_entry   (TosState state, int length);
    1.29 +  static address* invoke_return_entry_table_for(Bytecodes::Code code);
    1.30 +
    1.31 +  static address deopt_entry(TosState state, int length);
    1.32 +  static address return_entry(TosState state, int length, Bytecodes::Code code);
    1.33  
    1.34    // Safepoint support
    1.35    static void       notice_safepoints();                        // stops the thread when reaching a safepoint

mercurial