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