154 static address* dispatch_table() { return _active_table.table_for(); } 155 static int distance_from_dispatch_table(TosState state){ return _active_table.distance_from(state); } 156 static address* normal_table(TosState state) { return _normal_table.table_for(state); } 157 static address* normal_table() { return _normal_table.table_for(); } 158 159 // Support for invokes 160 static address* return_3_addrs_by_index_table() { return _return_3_addrs_by_index; } 161 static address* return_5_addrs_by_index_table() { return _return_5_addrs_by_index; } 162 static address* return_5_unbox_addrs_by_index_table() { return _return_5_unbox_addrs_by_index; } 163 static int TosState_as_index(TosState state); // computes index into return_3_entry_by_index table 164 165 static address return_entry (TosState state, int length); 166 static address deopt_entry (TosState state, int length); 167 static address return_unbox_entry(TosState state, int length); 168 169 // Safepoint support 170 static void notice_safepoints(); // stops the thread when reaching a safepoint 171 static void ignore_safepoints(); // ignores safepoints 172 173 // Deoptimization support 174 static address continuation_for(methodOop method, 175 address bcp, 176 int callee_parameters, 177 bool is_top_frame, 178 bool& use_next_mdp); 179 180 #include "incls/_templateInterpreter_pd.hpp.incl" 181 182 }; 183 184 #endif // !CC_INTERP | 154 static address* dispatch_table() { return _active_table.table_for(); } 155 static int distance_from_dispatch_table(TosState state){ return _active_table.distance_from(state); } 156 static address* normal_table(TosState state) { return _normal_table.table_for(state); } 157 static address* normal_table() { return _normal_table.table_for(); } 158 159 // Support for invokes 160 static address* return_3_addrs_by_index_table() { return _return_3_addrs_by_index; } 161 static address* return_5_addrs_by_index_table() { return _return_5_addrs_by_index; } 162 static address* return_5_unbox_addrs_by_index_table() { return _return_5_unbox_addrs_by_index; } 163 static int TosState_as_index(TosState state); // computes index into return_3_entry_by_index table 164 165 static address return_entry (TosState state, int length); 166 static address deopt_entry (TosState state, int length); 167 static address return_unbox_entry(TosState state, int length); 168 169 // Safepoint support 170 static void notice_safepoints(); // stops the thread when reaching a safepoint 171 static void ignore_safepoints(); // ignores safepoints 172 173 // Deoptimization support 174 // Compute the entry address for continuation after 175 static address deopt_continue_after_entry(methodOop method, 176 address bcp, 177 int callee_parameters, 178 bool is_top_frame); 179 // Deoptimization should reexecute this bytecode 180 static bool bytecode_should_reexecute(Bytecodes::Code code); 181 // Compute the address for reexecution 182 static address deopt_reexecute_entry(methodOop method, address bcp); 183 184 #include "incls/_templateInterpreter_pd.hpp.incl" 185 186 }; 187 188 #endif // !CC_INTERP |