#include <stubRoutines.hpp>
Inheritance diagram for StubRoutines:
Static Public Member Functions | |
static char * | ic_normal_lookup_entry () |
static char * | ic_super_lookup_entry () |
static char * | zombie_nmethod_entry () |
static char * | zombie_block_nmethod_entry () |
static char * | megamorphic_ic_entry () |
static char * | compile_block_entry () |
static char * | continue_NLR_entry () |
static char * | call_DLL_entry (bool async) |
static char * | lookup_DLL_entry (bool async) |
static char * | recompile_stub_entry () |
static char * | used_uncommon_trap_entry () |
static char * | unused_uncommon_trap_entry () |
static char * | verify_context_chain () |
static char * | deoptimize_block_entry () |
static char * | call_inspector_entry () |
static char * | PIC_stub_entry (int pic_size) |
static char * | allocate_entry (int size) |
static bool | contains (char *pc) |
static void | init () |
Private Types | |
_code_size = 2000 | |
enum | { _code_size = 2000 } |
Static Private Member Functions | |
static void | trace_DLL_call_1 (dll_func function, oop *last_argument, int nof_arguments) |
static void | trace_DLL_call_2 (int result) |
static void | wrong_DLL_call () |
static char * | generate_ic_lookup (MacroAssembler *masm, char *lookup_routine_entry) |
static char * | generate_call_DLL (MacroAssembler *masm, bool async) |
static char * | generate_lookup_DLL (MacroAssembler *masm, bool async) |
static char * | generate_ic_normal_lookup (MacroAssembler *masm) |
static char * | generate_ic_super_lookup (MacroAssembler *masm) |
static char * | generate_zombie_nmethod (MacroAssembler *masm) |
static char * | generate_zombie_block_nmethod (MacroAssembler *masm) |
static char * | generate_megamorphic_ic (MacroAssembler *masm) |
static char * | generate_compile_block (MacroAssembler *masm) |
static char * | generate_continue_NLR (MacroAssembler *masm) |
static char * | generate_call_sync_DLL (MacroAssembler *masm) |
static char * | generate_call_async_DLL (MacroAssembler *masm) |
static char * | generate_lookup_sync_DLL (MacroAssembler *masm) |
static char * | generate_lookup_async_DLL (MacroAssembler *masm) |
static char * | generate_recompile_stub (MacroAssembler *masm) |
static char * | generate_uncommon_trap (MacroAssembler *masm) |
static char * | generate_verify_context_chain (MacroAssembler *masm) |
static char * | generate_deoptimize_block (MacroAssembler *masm) |
static char * | generate_call_inspector (MacroAssembler *masm) |
static char * | generate_PIC_stub (MacroAssembler *masm, int pic_size) |
static char * | generate_allocate (MacroAssembler *masm, int size) |
static char * | generate (MacroAssembler *masm, char *title, char *gen(MacroAssembler *)) |
static char * | generate (MacroAssembler *masm, char *title, char *gen(MacroAssembler *, int argument), int argument) |
Static Private Attributes | |
static bool | _is_initialized = false |
static char | _code [_code_size] |
static char * | _ic_normal_lookup_entry = NULL |
static char * | _ic_super_lookup_entry = NULL |
static char * | _zombie_nmethod_entry = NULL |
static char * | _zombie_block_nmethod_entry = NULL |
static char * | _megamorphic_ic_entry = NULL |
static char * | _compile_block_entry = NULL |
static char * | _continue_NLR_entry = NULL |
static char * | _call_sync_DLL_entry = NULL |
static char * | _call_async_DLL_entry = NULL |
static char * | _lookup_sync_DLL_entry = NULL |
static char * | _lookup_async_DLL_entry = NULL |
static char * | _recompile_stub_entry = NULL |
static char * | _used_uncommon_trap_entry = NULL |
static char * | _unused_uncommon_trap_entry = NULL |
static char * | _verify_context_chain_entry = NULL |
static char * | _deoptimize_block_entry = NULL |
static char * | _call_inspector_entry = NULL |
static char * | _PIC_stub_entries [] |
static char * | _allocate_entries [] |
Definition at line 37 of file stubRoutines.hpp.
anonymous enum [private] |
char * StubRoutines::allocate_entry | ( | int | size | ) | [static] |
Definition at line 829 of file stubRoutines.cpp.
References _allocate_entries, _is_initialized, assert, and max_fast_allocate_size.
static char* StubRoutines::call_DLL_entry | ( | bool | async | ) | [inline, static] |
Definition at line 111 of file stubRoutines.hpp.
References _call_async_DLL_entry, and _call_sync_DLL_entry.
Referenced by CompiledDLL_Cache::async(), generate_lookup_DLL(), DLLs::lookup_and_patch_CompiledDLL_Cache(), and CompiledDLL_Cache::verify().
static char* StubRoutines::call_inspector_entry | ( | ) | [inline, static] |
Definition at line 118 of file stubRoutines.hpp.
References _call_inspector_entry.
Referenced by MacroAssembler::inspect().
static char* StubRoutines::compile_block_entry | ( | ) | [inline, static] |
static bool StubRoutines::contains | ( | char * | pc | ) | [inline, static] |
Definition at line 124 of file stubRoutines.hpp.
References _code, and _code_size.
Referenced by FlatProfiler::record_tick_for_calling_frame(), FlatProfiler::record_tick_for_running_frame(), and SystemAverageTask::task().
static char* StubRoutines::continue_NLR_entry | ( | ) | [inline, static] |
static char* StubRoutines::deoptimize_block_entry | ( | ) | [inline, static] |
char * StubRoutines::generate | ( | MacroAssembler * | masm, | |
char * | title, | |||
char * | gen(MacroAssembler *, int argument), | |||
int | argument | |||
) | [static, private] |
Definition at line 855 of file stubRoutines.cpp.
References Assembler::code(), outputStream::cr(), Disclaimer::is_product(), Assembler::pc(), outputStream::print(), and std.
Here is the call graph for this function:
char * StubRoutines::generate | ( | MacroAssembler * | masm, | |
char * | title, | |||
char * | gen(MacroAssembler *) | |||
) | [static, private] |
Definition at line 841 of file stubRoutines.cpp.
References Assembler::code(), outputStream::cr(), Disclaimer::is_product(), Assembler::pc(), outputStream::print(), and std.
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_allocate | ( | MacroAssembler * | masm, | |
int | size | |||
) | [static, private] |
Definition at line 813 of file stubRoutines.cpp.
References Assembler::hlt(), and Assembler::pc().
Referenced by init().
Here is the call graph for this function:
static char* StubRoutines::generate_call_async_DLL | ( | MacroAssembler * | masm | ) | [inline, static, private] |
Definition at line 85 of file stubRoutines.hpp.
References generate_call_DLL().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_call_DLL | ( | MacroAssembler * | masm, | |
bool | async | |||
) | [static, private] |
Definition at line 445 of file stubRoutines.cpp.
References Assembler::addl(), Assembler::bind(), Assembler::call(), Assembler::cmpl(), Assembler::decl(), eax, ebx, ecx, edx, DLLs::enter_async_call(), esi, esp, DLLs::exit_async_call(), DLLs::exit_sync_call(), Assembler::hlt(), Assembler::jcc(), Assembler::jmp(), Mem_Tag, Assembler::movl(), Assembler::notEqual, Assembler::notZero, oopSize, Assembler::pc(), pointer_offset, Assembler::popl(), Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), Assembler::ret(), Assembler::sarl(), MacroAssembler::set_last_Delta_frame_after_call(), Tag_Size, Assembler::testb(), Assembler::testl(), trace_DLL_call_1(), trace_DLL_call_2(), wrong_DLL_call(), and Assembler::zero.
Referenced by generate_call_async_DLL(), and generate_call_sync_DLL().
Here is the call graph for this function:
char * StubRoutines::generate_call_inspector | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 736 of file stubRoutines.cpp.
References Assembler::call(), MacroAssembler::inspector(), Assembler::pc(), Assembler::popad(), Assembler::pushad(), MacroAssembler::reset_last_Delta_frame(), Assembler::ret(), and MacroAssembler::set_last_Delta_frame_after_call().
Referenced by init().
Here is the call graph for this function:
static char* StubRoutines::generate_call_sync_DLL | ( | MacroAssembler * | masm | ) | [inline, static, private] |
Definition at line 84 of file stubRoutines.hpp.
References generate_call_DLL().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_compile_block | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 400 of file stubRoutines.cpp.
References Assembler::call(), eax, ebx, Assembler::jmp(), Assembler::movl(), Assembler::pc(), Assembler::popl(), Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), and MacroAssembler::set_last_Delta_frame_after_call().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_continue_NLR | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 425 of file stubRoutines.cpp.
References Assembler::addl(), IC_Info::info_offset, Assembler::jmp(), MacroAssembler::leave(), Assembler::movl(), IC_Info::number_of_flags, Assembler::pc(), Assembler::popl(), and Assembler::sarl().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_deoptimize_block | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 714 of file stubRoutines.cpp.
References Assembler::call(), deoptimize_block(), ebx, Assembler::jmp(), Assembler::pc(), Assembler::popl(), Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), restart_primitiveValue(), and MacroAssembler::set_last_Delta_frame_after_call().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_ic_lookup | ( | MacroAssembler * | masm, | |
char * | lookup_routine_entry | |||
) | [static, private] |
Definition at line 109 of file stubRoutines.cpp.
References Assembler::call(), eax, ebx, esp, Assembler::jmp(), Assembler::movl(), Assembler::pc(), Assembler::popl(), Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), and MacroAssembler::set_last_Delta_frame_after_call().
Referenced by generate_ic_normal_lookup(), and generate_ic_super_lookup().
Here is the call graph for this function:
char * StubRoutines::generate_ic_normal_lookup | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 143 of file stubRoutines.cpp.
References generate_ic_lookup(), and icNormalLookup().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_ic_super_lookup | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 148 of file stubRoutines.cpp.
References generate_ic_lookup(), and icSuperLookup().
Referenced by init().
Here is the call graph for this function:
static char* StubRoutines::generate_lookup_async_DLL | ( | MacroAssembler * | masm | ) | [inline, static, private] |
Definition at line 87 of file stubRoutines.hpp.
References generate_lookup_DLL().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_lookup_DLL | ( | MacroAssembler * | masm, | |
bool | async | |||
) | [static, private] |
Definition at line 565 of file stubRoutines.cpp.
References assert, Assembler::call(), call_DLL_entry(), eax, ebx, ecx, edx, Assembler::jmp(), DLLs::lookup_and_patch_CompiledDLL_Cache(), Assembler::movl(), Assembler::pc(), Assembler::popl(), Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), and MacroAssembler::set_last_Delta_frame_after_call().
Referenced by generate_lookup_async_DLL(), and generate_lookup_sync_DLL().
Here is the call graph for this function:
static char* StubRoutines::generate_lookup_sync_DLL | ( | MacroAssembler * | masm | ) | [inline, static, private] |
Definition at line 86 of file stubRoutines.hpp.
References generate_lookup_DLL().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_megamorphic_ic | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 277 of file stubRoutines.cpp.
References Assembler::andl(), Assembler::bind(), Assembler::call(), Assembler::cmpl(), eax, ebx, ecx, edi, edx, Assembler::hlt(), Assembler::jcc(), Assembler::jmp(), memOopDesc::klass_byte_offset(), Mem_Tag, method_entry_point, Assembler::movl(), lookupCache::normal_lookup(), Assembler::notEqual, Assembler::notZero, oopSize, Assembler::pc(), Assembler::popl(), lookupCache::primary_cache_address(), primary_cache_size, Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), lookupCache::secondary_cache_address(), secondary_cache_size, MacroAssembler::set_last_Delta_frame_after_call(), smiKlassObj, MacroAssembler::test(), Assembler::testl(), Assembler::xorl(), and Assembler::zero.
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_PIC_stub | ( | MacroAssembler * | masm, | |
int | pic_size | |||
) | [static, private] |
Definition at line 749 of file stubRoutines.cpp.
References assert, Assembler::bind(), Assembler::cmpl(), eax, ebx, ecx, edx, Assembler::equal, ic_normal_lookup_entry(), Assembler::jcc(), Assembler::jmp(), memOopDesc::klass_byte_offset(), Mem_Tag, method_entry_point, Assembler::movl(), Assembler::pc(), Assembler::popl(), smiKlassObj, MacroAssembler::test(), Assembler::xorl(), and Assembler::zero.
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_recompile_stub | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 588 of file stubRoutines.cpp.
References Assembler::call(), eax, ebx, ecx, esp, Assembler::jmp(), MacroAssembler::leave(), Assembler::movl(), Assembler::pc(), Assembler::popl(), Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), SavedRegisters::save_registers(), and MacroAssembler::set_last_Delta_frame_after_call().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_uncommon_trap | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 638 of file stubRoutines.cpp.
References Assembler::call(), Assembler::pc(), MacroAssembler::reset_last_Delta_frame(), Assembler::ret(), SavedRegisters::save_registers(), and MacroAssembler::set_last_Delta_frame_after_call().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_verify_context_chain | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 650 of file stubRoutines.cpp.
References Assembler::addl(), Assembler::bind(), Assembler::call(), eax, ebx, esp, Assembler::jcc(), Assembler::jmp(), Assembler::movl(), Assembler::pc(), Assembler::popl(), Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), restart_primitiveValue(), Assembler::ret(), MacroAssembler::set_last_Delta_frame_after_call(), Assembler::testl(), validateContextChain(), and Assembler::zero.
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_zombie_block_nmethod | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 252 of file stubRoutines.cpp.
References Assembler::addl(), Assembler::call(), deoptimize_context_and_patch_block(), eax, ebx, esp, Assembler::jmp(), Assembler::movl(), Assembler::pc(), Assembler::popl(), Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), restart_primitiveValue(), and MacroAssembler::set_last_Delta_frame_after_call().
Referenced by init().
Here is the call graph for this function:
char * StubRoutines::generate_zombie_nmethod | ( | MacroAssembler * | masm | ) | [static, private] |
Definition at line 153 of file stubRoutines.cpp.
References Assembler::call(), eax, ebx, ecx, esp, Assembler::jmp(), Assembler::movl(), Assembler::pc(), Assembler::popl(), Assembler::pushl(), MacroAssembler::reset_last_Delta_frame(), MacroAssembler::set_last_Delta_frame_after_call(), and zombie_nmethod().
Referenced by init().
Here is the call graph for this function:
static char* StubRoutines::ic_normal_lookup_entry | ( | ) | [inline, static] |
Definition at line 104 of file stubRoutines.hpp.
References _ic_normal_lookup_entry.
Referenced by generate_PIC_stub().
static char* StubRoutines::ic_super_lookup_entry | ( | ) | [inline, static] |
void StubRoutines::init | ( | ) | [static] |
Definition at line 869 of file stubRoutines.cpp.
References _allocate_entries, _call_async_DLL_entry, _call_inspector_entry, _call_sync_DLL_entry, _code, _code_size, _compile_block_entry, _continue_NLR_entry, _deoptimize_block_entry, _ic_normal_lookup_entry, _ic_super_lookup_entry, _is_initialized, _lookup_async_DLL_entry, _lookup_sync_DLL_entry, _megamorphic_ic_entry, _PIC_stub_entries, _recompile_stub_entry, _unused_uncommon_trap_entry, _used_uncommon_trap_entry, _verify_context_chain_entry, _zombie_block_nmethod_entry, _zombie_nmethod_entry, Assembler::finalize(), generate(), generate_allocate(), generate_call_async_DLL(), generate_call_inspector(), generate_call_sync_DLL(), generate_compile_block(), generate_continue_NLR(), generate_deoptimize_block(), generate_ic_normal_lookup(), generate_ic_super_lookup(), generate_lookup_async_DLL(), generate_lookup_sync_DLL(), generate_megamorphic_ic(), generate_PIC_stub(), generate_recompile_stub(), generate_uncommon_trap(), generate_verify_context_chain(), generate_zombie_block_nmethod(), generate_zombie_nmethod(), Disclaimer::is_product(), max_fast_allocate_size, Assembler::offset(), outputStream::print(), and std.
Referenced by stubRoutines_init().
Here is the call graph for this function:
static char* StubRoutines::lookup_DLL_entry | ( | bool | async | ) | [inline, static] |
Definition at line 112 of file stubRoutines.hpp.
References _lookup_async_DLL_entry, and _lookup_sync_DLL_entry.
Referenced by CompiledDLL_Cache::async(), and CompiledDLL_Cache::verify().
static char* StubRoutines::megamorphic_ic_entry | ( | ) | [inline, static] |
char * StubRoutines::PIC_stub_entry | ( | int | pic_size | ) | [static] |
Definition at line 822 of file stubRoutines.cpp.
References _is_initialized, _PIC_stub_entries, and assert.
static char* StubRoutines::recompile_stub_entry | ( | ) | [inline, static] |
void StubRoutines::trace_DLL_call_1 | ( | dll_func | function, | |
oop * | last_argument, | |||
int | nof_arguments | |||
) | [static, private] |
Definition at line 55 of file stubRoutines.cpp.
References DeltaProcess::active(), assert, compiledDLL_Cache_from_return_address(), CodeIterator::dll_cache(), CompiledDLL_Cache::entry_point(), InterpretedDLL_Cache::entry_point(), frame::hp(), frame::is_interpreted_frame(), DeltaProcess::last_frame(), frame::method(), InterpretedDLL_Cache::number_of_arguments(), frame::pc(), outputStream::print(), CompiledDLL_Cache::print(), InterpretedDLL_Cache::print(), and std.
Referenced by generate_call_DLL().
Here is the call graph for this function:
void StubRoutines::trace_DLL_call_2 | ( | int | result | ) | [static, private] |
Definition at line 87 of file stubRoutines.cpp.
References outputStream::print(), and std.
Referenced by generate_call_DLL().
Here is the call graph for this function:
static char* StubRoutines::unused_uncommon_trap_entry | ( | ) | [inline, static] |
static char* StubRoutines::used_uncommon_trap_entry | ( | ) | [inline, static] |
static char* StubRoutines::verify_context_chain | ( | ) | [inline, static] |
void StubRoutines::wrong_DLL_call | ( | ) | [static, private] |
Definition at line 93 of file stubRoutines.cpp.
References DeltaProcess::active(), DLL_lookup_error, fatal, outputStream::print(), ShouldNotReachHere, std, DeltaProcess::suspend(), and DeltaProcess::trace_stack().
Referenced by generate_call_DLL().
Here is the call graph for this function:
static char* StubRoutines::zombie_block_nmethod_entry | ( | ) | [inline, static] |
static char* StubRoutines::zombie_nmethod_entry | ( | ) | [inline, static] |
char * StubRoutines::_allocate_entries [static, private] |
char * StubRoutines::_call_async_DLL_entry = NULL [static, private] |
char * StubRoutines::_call_inspector_entry = NULL [static, private] |
char * StubRoutines::_call_sync_DLL_entry = NULL [static, private] |
char StubRoutines::_code [static, private] |
char * StubRoutines::_compile_block_entry = NULL [static, private] |
char * StubRoutines::_continue_NLR_entry = NULL [static, private] |
char * StubRoutines::_deoptimize_block_entry = NULL [static, private] |
char * StubRoutines::_ic_normal_lookup_entry = NULL [static, private] |
char * StubRoutines::_ic_super_lookup_entry = NULL [static, private] |
bool StubRoutines::_is_initialized = false [static, private] |
Definition at line 40 of file stubRoutines.hpp.
Referenced by allocate_entry(), init(), and PIC_stub_entry().
char * StubRoutines::_lookup_async_DLL_entry = NULL [static, private] |
char * StubRoutines::_lookup_sync_DLL_entry = NULL [static, private] |
char * StubRoutines::_megamorphic_ic_entry = NULL [static, private] |
char * StubRoutines::_PIC_stub_entries [static, private] |
char * StubRoutines::_recompile_stub_entry = NULL [static, private] |
char * StubRoutines::_unused_uncommon_trap_entry = NULL [static, private] |
Definition at line 57 of file stubRoutines.hpp.
Referenced by init(), and unused_uncommon_trap_entry().
char * StubRoutines::_used_uncommon_trap_entry = NULL [static, private] |
Definition at line 56 of file stubRoutines.hpp.
Referenced by init(), and used_uncommon_trap_entry().
char * StubRoutines::_verify_context_chain_entry = NULL [static, private] |
char * StubRoutines::_zombie_block_nmethod_entry = NULL [static, private] |
Definition at line 47 of file stubRoutines.hpp.
Referenced by init(), and zombie_block_nmethod_entry().
char * StubRoutines::_zombie_nmethod_entry = NULL [static, private] |