195
196 { CodeletMark cm(_masm, "exception handling");
197 // (Note: this is not safepoint safe because thread may return to compiled code)
198 generate_throw_exception();
199 }
200
201 { CodeletMark cm(_masm, "throw exception entrypoints");
202 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler("java/lang/ArrayIndexOutOfBoundsException");
203 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException" );
204 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException" , "/ by zero");
205 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler();
206 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException" , NULL );
207 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler();
208 }
209
210
211
212 #define method_entry(kind) \
213 { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
214 Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
215 }
216
217 // all non-native method kinds
218 method_entry(zerolocals)
219 method_entry(zerolocals_synchronized)
220 method_entry(empty)
221 method_entry(accessor)
222 method_entry(abstract)
223 method_entry(java_lang_math_sin )
224 method_entry(java_lang_math_cos )
225 method_entry(java_lang_math_tan )
226 method_entry(java_lang_math_abs )
227 method_entry(java_lang_math_sqrt )
228 method_entry(java_lang_math_log )
229 method_entry(java_lang_math_log10)
230 method_entry(java_lang_math_exp )
231 method_entry(java_lang_math_pow )
232 method_entry(java_lang_ref_reference_get)
233
234 AbstractInterpreter::initialize_method_handle_entries();
|
195
196 { CodeletMark cm(_masm, "exception handling");
197 // (Note: this is not safepoint safe because thread may return to compiled code)
198 generate_throw_exception();
199 }
200
201 { CodeletMark cm(_masm, "throw exception entrypoints");
202 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler("java/lang/ArrayIndexOutOfBoundsException");
203 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException" );
204 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException" , "/ by zero");
205 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler();
206 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException" , NULL );
207 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler();
208 }
209
210
211
212 #define method_entry(kind) \
213 { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
214 Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
215 Interpreter::update_cds_entry_table(Interpreter::kind); \
216 }
217
218 // all non-native method kinds
219 method_entry(zerolocals)
220 method_entry(zerolocals_synchronized)
221 method_entry(empty)
222 method_entry(accessor)
223 method_entry(abstract)
224 method_entry(java_lang_math_sin )
225 method_entry(java_lang_math_cos )
226 method_entry(java_lang_math_tan )
227 method_entry(java_lang_math_abs )
228 method_entry(java_lang_math_sqrt )
229 method_entry(java_lang_math_log )
230 method_entry(java_lang_math_log10)
231 method_entry(java_lang_math_exp )
232 method_entry(java_lang_math_pow )
233 method_entry(java_lang_ref_reference_get)
234
235 AbstractInterpreter::initialize_method_handle_entries();
|