353
354 #define method_entry(kind) \
355 { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
356 Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
357 }
358
359 // all non-native method kinds
360 method_entry(zerolocals)
361 method_entry(zerolocals_synchronized)
362 method_entry(empty)
363 method_entry(accessor)
364 method_entry(abstract)
365 method_entry(method_handle)
366 method_entry(java_lang_math_sin )
367 method_entry(java_lang_math_cos )
368 method_entry(java_lang_math_tan )
369 method_entry(java_lang_math_abs )
370 method_entry(java_lang_math_sqrt )
371 method_entry(java_lang_math_log )
372 method_entry(java_lang_math_log10)
373 method_entry(java_lang_ref_reference_get)
374
375 // all native method kinds (must be one contiguous block)
376 Interpreter::_native_entry_begin = Interpreter::code()->code_end();
377 method_entry(native)
378 method_entry(native_synchronized)
379 Interpreter::_native_entry_end = Interpreter::code()->code_end();
380
381 #undef method_entry
382
383 // Bytecodes
384 set_entry_points_for_all_bytes();
385 set_safepoints_for_all_bytes();
386 }
387
388 //------------------------------------------------------------------------------------------------------------------------
389
390 address TemplateInterpreterGenerator::generate_error_exit(const char* msg) {
391 address entry = __ pc();
392 __ stop(msg);
|
353
354 #define method_entry(kind) \
355 { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
356 Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
357 }
358
359 // all non-native method kinds
360 method_entry(zerolocals)
361 method_entry(zerolocals_synchronized)
362 method_entry(empty)
363 method_entry(accessor)
364 method_entry(abstract)
365 method_entry(method_handle)
366 method_entry(java_lang_math_sin )
367 method_entry(java_lang_math_cos )
368 method_entry(java_lang_math_tan )
369 method_entry(java_lang_math_abs )
370 method_entry(java_lang_math_sqrt )
371 method_entry(java_lang_math_log )
372 method_entry(java_lang_math_log10)
373 method_entry(java_lang_math_exp )
374 method_entry(java_lang_math_pow )
375 method_entry(java_lang_ref_reference_get)
376
377 // all native method kinds (must be one contiguous block)
378 Interpreter::_native_entry_begin = Interpreter::code()->code_end();
379 method_entry(native)
380 method_entry(native_synchronized)
381 Interpreter::_native_entry_end = Interpreter::code()->code_end();
382
383 #undef method_entry
384
385 // Bytecodes
386 set_entry_points_for_all_bytes();
387 set_safepoints_for_all_bytes();
388 }
389
390 //------------------------------------------------------------------------------------------------------------------------
391
392 address TemplateInterpreterGenerator::generate_error_exit(const char* msg) {
393 address entry = __ pc();
394 __ stop(msg);
|