#include <bytecodes.hpp>
Inheritance diagram for Bytecodes:
Definition at line 54 of file bytecodes.hpp.
recv_0_args | |
recv_1_args | |
recv_2_args | |
recv_n_args | |
args_only | |
no_args | |
number_of_argument_specs |
Definition at line 102 of file bytecodes.hpp.
enum Bytecodes::Code |
Definition at line 134 of file bytecodes.hpp.
enum Bytecodes::CodeType |
Definition at line 83 of file bytecodes.hpp.
enum Bytecodes::Format |
B | |
BB | |
BBB | |
BBBB | |
BBO | |
BBL | |
BO | |
BOO | |
BLO | |
BOL | |
BLL | |
BL | |
BLB | |
BBOO | |
BBLO | |
BOOLB | |
BBS | |
UNDEF | |
number_of_formats |
Definition at line 60 of file bytecodes.hpp.
enum Bytecodes::LoopType |
Definition at line 126 of file bytecodes.hpp.
enum Bytecodes::SendType |
interpreted_send | |
compiled_send | |
polymorphic_send | |
megamorphic_send | |
predicted_send | |
accessor_send | |
primitive_send | |
no_send | |
number_of_send_types |
Definition at line 113 of file bytecodes.hpp.
Bytecodes::Code Bytecodes::access_send_code_for | ( | Code | code | ) | [static] |
Definition at line 729 of file bytecodes.cpp.
References access_send_0, access_send_self, fatal, halt, interpreted_send_0, interpreted_send_code_for(), interpreted_send_self, and ShouldNotReachHere.
Referenced by InterpretedIC::update_inline_cache().
Here is the call graph for this function:
static ArgumentSpec Bytecodes::argument_spec | ( | Code | code | ) | [inline, static] |
Definition at line 460 of file bytecodes.hpp.
References _argument_spec.
Referenced by InterpretedIC::argument_spec(), CodeIterator::argumentsType(), generate_HTML_for(), and InterpretedIC::nof_arguments().
char * Bytecodes::argument_spec_as_string | ( | ArgumentSpec | argument_spec | ) | [static] |
Definition at line 492 of file bytecodes.cpp.
References args_only, no_args, recv_0_args, recv_1_args, recv_2_args, recv_n_args, and ShouldNotReachHere.
Definition at line 459 of file bytecodes.hpp.
References _code_type.
Referenced by CodeIterator::code_type(), generate_HTML_for(), has_classVar_access(), has_instVar_access(), CodeIterator::is_dll_call(), CodeIterator::is_message_send(), CodeIterator::is_primitive_call(), print(), and FlatProfiler::record_tick_for_calling_frame().
char * Bytecodes::code_type_as_string | ( | CodeType | code_type | ) | [static] |
Definition at line 470 of file bytecodes.cpp.
References classVar_access, context_access, control_struc, dll_call, float_operation, global_access, instVar_access, local_access, message_send, miscellaneous, new_closure, new_context, nonlocal_return, primitive_call, and ShouldNotReachHere.
Referenced by generate_HTML_for(), and print().
Bytecodes::Code Bytecodes::compiled_send_code_for | ( | Code | code | ) | [static] |
Definition at line 706 of file bytecodes.cpp.
References compiled_send_0, compiled_send_0_pop, compiled_send_1, compiled_send_1_pop, compiled_send_2, compiled_send_2_pop, compiled_send_n, compiled_send_n_pop, compiled_send_self, compiled_send_self_pop, compiled_send_super, compiled_send_super_pop, fatal, halt, interpreted_send_0, interpreted_send_0_pop, interpreted_send_1, interpreted_send_1_pop, interpreted_send_2, interpreted_send_2_pop, interpreted_send_code_for(), interpreted_send_n, interpreted_send_n_pop, interpreted_send_self, interpreted_send_self_pop, interpreted_send_super, interpreted_send_super_pop, and ShouldNotReachHere.
Referenced by InterpretedIC::replace(), and InterpretedIC::update_inline_cache().
Here is the call graph for this function:
void Bytecodes::def | ( | Code | code, | |
char * | name, | |||
Format | format, | |||
CodeType | code_type, | |||
bool | single_step, | |||
ArgumentSpec | argument_spec, | |||
SendType | send_type, | |||
bool | pop_tos | |||
) | [static, private] |
Definition at line 54 of file bytecodes.cpp.
References _argument_spec, _code_type, _entry_point, _format, _name, _pop_tos, _send_type, _single_step, assert, control_struc, float_operation, no_args, no_send, number_of_codes, and UNDEF.
void Bytecodes::def | ( | Code | code, | |
char * | name, | |||
Format | format, | |||
ArgumentSpec | argument_spec, | |||
SendType | send_type, | |||
bool | pop_tos = false | |||
) | [static, private] |
Definition at line 48 of file bytecodes.cpp.
References assert, def(), message_send, and no_send.
Here is the call graph for this function:
void Bytecodes::def | ( | Code | code, | |
char * | name, | |||
Format | format, | |||
CodeType | code_type, | |||
bool | single_step, | |||
bool | pop_tos = false | |||
) | [static, private] |
Definition at line 43 of file bytecodes.cpp.
References def(), no_args, and no_send.
Here is the call graph for this function:
void Bytecodes::def | ( | Code | code | ) | [static, private] |
static char* Bytecodes::entry_point | ( | Code | code | ) | [inline, static] |
Definition at line 458 of file bytecodes.hpp.
References _format.
Referenced by methodOopDesc::fileout_body(), CodeIterator::format(), generate_gen_method(), and generate_HTML_for().
char * Bytecodes::format_as_string | ( | Format | format | ) | [static] |
Definition at line 428 of file bytecodes.cpp.
References B, BB, BBB, BBBB, BBL, BBLO, BBO, BBOO, BBS, BL, BLB, BLL, BLO, BO, BOL, BOO, BOOLB, ShouldNotReachHere, and UNDEF.
Referenced by methodOopDesc::fileout_body(), generate_gen_method(), and print_format().
Definition at line 551 of file bytecodes.cpp.
References interpreted_send_0, interpreted_send_self, and ShouldNotReachHere.
Referenced by InterpretedIC::update_inline_cache().
Definition at line 562 of file bytecodes.cpp.
References interpreted_send_1, and ShouldNotReachHere.
Referenced by InterpretedIC::update_inline_cache().
void Bytecodes::init | ( | ) | [static] |
Definition at line 117 of file bytecodes.cpp.
References _name, access_send_0, access_send_self, accessor_send, allocate_temp_1, allocate_temp_2, allocate_temp_3, allocate_temp_n, and_byte, and_word, args_only, assert, B, BB, BBB, BBBB, BBL, BBLO, BBO, BBOO, BBS, BL, BLL, BLO, BO, BOL, BOO, BOOLB, classVar_access, compiled_send, compiled_send_0, compiled_send_0_pop, compiled_send_1, compiled_send_1_pop, compiled_send_2, compiled_send_2_pop, compiled_send_n, compiled_send_n_pop, compiled_send_self, compiled_send_self_pop, compiled_send_super, compiled_send_super_pop, context_access, control_struc, copy_1_into_context, copy_2_into_context, copy_n_into_context, copy_self_1_into_context, copy_self_2_into_context, copy_self_into_context, copy_self_n_into_context, def(), dll_call, dll_call_async, dll_call_sync, double_equal, double_tilde, float_allocate, float_binary_op, float_binary_op_to_oop, float_floatify_pop, float_move, float_nullary_op, float_operation, float_set, float_unary_op, float_unary_op_to_oop, global_access, halt, ifFalse_byte, ifFalse_word, ifTrue_byte, ifTrue_word, install_new_context_block_1, install_new_context_block_2, install_new_context_block_n, install_new_context_method_0, install_new_context_method_1, install_new_context_method_2, install_new_context_method_n, instVar_access, interpreted_send, interpreted_send_0, interpreted_send_0_pop, interpreted_send_1, interpreted_send_1_pop, interpreted_send_2, interpreted_send_2_pop, interpreted_send_n, interpreted_send_n_pop, interpreted_send_self, interpreted_send_self_pop, interpreted_send_super, interpreted_send_super_pop, jump_else_byte, jump_else_word, jump_loop_byte, jump_loop_word, local_access, megamorphic_send, megamorphic_send_0, megamorphic_send_0_pop, megamorphic_send_1, megamorphic_send_1_pop, megamorphic_send_2, megamorphic_send_2_pop, megamorphic_send_n, megamorphic_send_n_pop, megamorphic_send_self, megamorphic_send_self_pop, megamorphic_send_super, megamorphic_send_super_pop, miscellaneous, new_closure, new_context, non_local_return_self_pop_n, non_local_return_tos_pop_n, nonlocal_return, number_of_codes, objArray_at, objArray_at_put, only_pop, or_byte, or_word, polymorphic_send, polymorphic_send_0, polymorphic_send_0_pop, polymorphic_send_1, polymorphic_send_1_pop, polymorphic_send_2, polymorphic_send_2_pop, polymorphic_send_n, polymorphic_send_n_pop, polymorphic_send_self, polymorphic_send_self_pop, polymorphic_send_super, polymorphic_send_super_pop, predict_prim_call, predict_prim_call_failure, predict_prim_call_failure_lookup, predict_prim_call_lookup, predicted_send, prim_call, prim_call_failure, prim_call_failure_lookup, prim_call_lookup, prim_call_self, prim_call_self_failure, prim_call_self_failure_lookup, prim_call_self_lookup, primitive_call, primitive_send, primitive_send_0, primitive_send_0_pop, primitive_send_1, primitive_send_1_pop, primitive_send_2, primitive_send_2_pop, primitive_send_n, primitive_send_n_pop, primitive_send_self, primitive_send_self_pop, primitive_send_super, primitive_send_super_pop, push_arg_1, push_arg_2, push_arg_3, push_arg_n, push_classVar, push_classVar_name, push_false, push_global, push_instVar, push_instVar_name, push_literal, push_neg_n, push_new_closure_context_0, push_new_closure_context_1, push_new_closure_context_2, push_new_closure_context_n, push_new_closure_tos_0, push_new_closure_tos_1, push_new_closure_tos_2, push_new_closure_tos_n, push_nil, push_self, push_succ_n, push_temp_0, push_temp_0_context_0, push_temp_0_context_1, push_temp_0_context_n, push_temp_1, push_temp_1_context_0, push_temp_1_context_1, push_temp_1_context_n, push_temp_2, push_temp_2_context_0, push_temp_2_context_1, push_temp_2_context_n, push_temp_3, push_temp_4, push_temp_5, push_temp_n, push_temp_n_context_0, push_temp_n_context_1, push_temp_n_context_n, push_tos, push_true, recv_0_args, recv_1_args, recv_2_args, recv_n_args, return_instVar, return_instVar_name, return_self_pop_0, return_self_pop_1, return_self_pop_2, return_self_pop_n, return_self_zap_pop_n, return_tos_pop_0, return_tos_pop_1, return_tos_pop_2, return_tos_pop_n, return_tos_zap_pop_n, set_self_via_context, smi_add, smi_and, smi_create_point, smi_div, smi_equal, smi_greater, smi_greater_equal, smi_less, smi_less_equal, smi_mod, smi_mult, smi_not_equal, smi_or, smi_shift, smi_sub, smi_xor, special_primitive_send_1_hint, store_classVar, store_classVar_name, store_classVar_pop, store_classVar_pop_name, store_global, store_global_pop, store_instVar, store_instVar_name, store_instVar_pop, store_instVar_pop_name, store_temp_0_context_0_pop, store_temp_0_context_1_pop, store_temp_0_context_n_pop, store_temp_0_pop, store_temp_1_context_0_pop, store_temp_1_context_1_pop, store_temp_1_context_n_pop, store_temp_1_pop, store_temp_2_context_0_pop, store_temp_2_context_1_pop, store_temp_2_context_n_pop, store_temp_2_pop, store_temp_3_pop, store_temp_4_pop, store_temp_5_pop, store_temp_n, store_temp_n_context_0_pop, store_temp_n_context_1_pop, store_temp_n_context_n_pop, store_temp_n_pop, unimplemented_06, unimplemented_20, unimplemented_21, unimplemented_22, unimplemented_23, unimplemented_24, unimplemented_25, unimplemented_26, unimplemented_27, unimplemented_39, unimplemented_3a, unimplemented_3b, unimplemented_3c, unimplemented_b7, unimplemented_bc, unimplemented_c7, unimplemented_cc, unimplemented_dc, unimplemented_de, unimplemented_df, unimplemented_fa, unimplemented_fb, unimplemented_fc, unimplemented_fd, unimplemented_fe, whileFalse_byte, whileFalse_word, whileTrue_byte, and whileTrue_word.
Referenced by bytecodes_init().
Here is the call graph for this function:
Bytecodes::Code Bytecodes::interpreted_send_code_for | ( | Code | code | ) | [static] |
Definition at line 601 of file bytecodes.cpp.
References access_send_0, access_send_self, compiled_send_0, compiled_send_0_pop, compiled_send_1, compiled_send_1_pop, compiled_send_2, compiled_send_2_pop, compiled_send_n, compiled_send_n_pop, compiled_send_self, compiled_send_self_pop, compiled_send_super, compiled_send_super_pop, double_equal, double_tilde, fatal, halt, interpreted_send_0, interpreted_send_0_pop, interpreted_send_1, interpreted_send_1_pop, interpreted_send_2, interpreted_send_2_pop, interpreted_send_n, interpreted_send_n_pop, interpreted_send_self, interpreted_send_self_pop, interpreted_send_super, interpreted_send_super_pop, megamorphic_send_0, megamorphic_send_0_pop, megamorphic_send_1, megamorphic_send_1_pop, megamorphic_send_2, megamorphic_send_2_pop, megamorphic_send_n, megamorphic_send_n_pop, megamorphic_send_self, megamorphic_send_self_pop, megamorphic_send_super, megamorphic_send_super_pop, objArray_at, objArray_at_put, polymorphic_send_0, polymorphic_send_0_pop, polymorphic_send_1, polymorphic_send_1_pop, polymorphic_send_2, polymorphic_send_2_pop, polymorphic_send_n, polymorphic_send_n_pop, polymorphic_send_self, polymorphic_send_self_pop, polymorphic_send_super, polymorphic_send_super_pop, primitive_send_0, primitive_send_0_pop, primitive_send_1, primitive_send_1_pop, primitive_send_2, primitive_send_2_pop, primitive_send_n, primitive_send_n_pop, primitive_send_self, primitive_send_self_pop, primitive_send_super, primitive_send_super_pop, ShouldNotReachHere, smi_add, smi_and, smi_create_point, smi_div, smi_equal, smi_greater, smi_greater_equal, smi_less, smi_less_equal, smi_mod, smi_mult, smi_not_equal, smi_or, smi_shift, smi_sub, and smi_xor.
Referenced by access_send_code_for(), compiled_send_code_for(), megamorphic_send_code_for(), original_send_code_for(), polymorphic_send_code_for(), and primitive_send_code_for().
Definition at line 447 of file bytecodes.hpp.
References _format, number_of_codes, and UNDEF.
Referenced by actually_generated(), generate_HTML_for(), print(), and set_entry_point().
Definition at line 517 of file bytecodes.cpp.
References compiled_send_self, compiled_send_self_pop, interpreted_send_self, interpreted_send_self_pop, megamorphic_send_self, megamorphic_send_self_pop, polymorphic_send_self, polymorphic_send_self_pop, and ShouldNotReachHere.
Definition at line 452 of file bytecodes.hpp.
References no_send, and send_type().
Referenced by frame::current_ic_iterator(), frame::current_interpretedIC(), and InterpretedIC::findStartOfSend().
Here is the call graph for this function:
Definition at line 534 of file bytecodes.cpp.
References compiled_send_super, compiled_send_super_pop, interpreted_send_super, interpreted_send_super_pop, megamorphic_send_super, megamorphic_send_super_pop, polymorphic_send_super, polymorphic_send_super_pop, and ShouldNotReachHere.
Referenced by InterpretedIC::cleanup(), InterpretedIC::inline_cache_miss(), InterpretedIC_Iterator::is_super_send(), and InterpretedIC::update_inline_cache().
Bytecodes::LoopType Bytecodes::loop_type | ( | Code | code | ) | [static] |
Definition at line 414 of file bytecodes.cpp.
References jump_loop_byte, jump_loop_word, loop_end, loop_start, no_loop, ShouldNotReachHere, whileFalse_byte, whileFalse_word, whileTrue_byte, and whileTrue_word.
Referenced by CodeIterator::loopType().
char * Bytecodes::loop_type_as_string | ( | LoopType | loop_type | ) | [static] |
Definition at line 506 of file bytecodes.cpp.
References loop_end, loop_start, no_loop, and ShouldNotReachHere.
Bytecodes::Code Bytecodes::megamorphic_send_code_for | ( | Code | code | ) | [static] |
Definition at line 786 of file bytecodes.cpp.
References fatal, halt, interpreted_send_0, interpreted_send_0_pop, interpreted_send_1, interpreted_send_1_pop, interpreted_send_2, interpreted_send_2_pop, interpreted_send_code_for(), interpreted_send_n, interpreted_send_n_pop, interpreted_send_self, interpreted_send_self_pop, interpreted_send_super, interpreted_send_super_pop, megamorphic_send_0, megamorphic_send_0_pop, megamorphic_send_1, megamorphic_send_1_pop, megamorphic_send_2, megamorphic_send_2_pop, megamorphic_send_n, megamorphic_send_n_pop, megamorphic_send_self, megamorphic_send_self_pop, megamorphic_send_super, megamorphic_send_super_pop, and ShouldNotReachHere.
Referenced by InterpretedIC::update_inline_cache().
Here is the call graph for this function:
static char* Bytecodes::name | ( | Code | code | ) | [inline, static] |
Definition at line 457 of file bytecodes.hpp.
References _name.
Referenced by generate_gen_method(), generate_HTML_for(), generate_instr_method(), print(), InterpretedIC::replace(), and Interpreter::trace_bytecode().
Bytecodes::Code Bytecodes::original_primitive_call_code_for | ( | Code | code | ) | [static] |
Definition at line 809 of file bytecodes.cpp.
References fatal, halt, prim_call, prim_call_failure, prim_call_failure_lookup, prim_call_lookup, prim_call_self, prim_call_self_failure, prim_call_self_failure_lookup, prim_call_self_lookup, and ShouldNotReachHere.
Referenced by methodOopDesc::fileout_body().
Bytecodes::Code Bytecodes::original_send_code_for | ( | Code | code | ) | [static] |
Definition at line 572 of file bytecodes.cpp.
References double_equal, double_tilde, halt, interpreted_send_code_for(), objArray_at, objArray_at_put, ShouldNotReachHere, smi_add, smi_and, smi_create_point, smi_div, smi_equal, smi_greater, smi_greater_equal, smi_less, smi_less_equal, smi_mod, smi_mult, smi_not_equal, smi_or, smi_shift, smi_sub, and smi_xor.
Referenced by InterpretedIC::clear(), InterpretedIC::clear_without_deallocation_pic(), methodOopDesc::fileout_body(), and InterpretedIC::update_inline_cache().
Here is the call graph for this function:
Bytecodes::Code Bytecodes::polymorphic_send_code_for | ( | Code | code | ) | [static] |
Definition at line 763 of file bytecodes.cpp.
References fatal, halt, interpreted_send_0, interpreted_send_0_pop, interpreted_send_1, interpreted_send_1_pop, interpreted_send_2, interpreted_send_2_pop, interpreted_send_code_for(), interpreted_send_n, interpreted_send_n_pop, interpreted_send_self, interpreted_send_self_pop, interpreted_send_super, interpreted_send_super_pop, polymorphic_send_0, polymorphic_send_0_pop, polymorphic_send_1, polymorphic_send_1_pop, polymorphic_send_2, polymorphic_send_2_pop, polymorphic_send_n, polymorphic_send_n_pop, polymorphic_send_self, polymorphic_send_self_pop, polymorphic_send_super, polymorphic_send_super_pop, and ShouldNotReachHere.
Referenced by InterpretedIC::update_inline_cache().
Here is the call graph for this function:
Definition at line 463 of file bytecodes.hpp.
References _pop_tos.
Referenced by CodeIterator::pop_result().
Bytecodes::Code Bytecodes::primitive_call_code_for | ( | Code | code | ) | [static] |
Definition at line 826 of file bytecodes.cpp.
References fatal, halt, prim_call, prim_call_failure, prim_call_failure_lookup, prim_call_lookup, prim_call_self, prim_call_self_failure, prim_call_self_failure_lookup, prim_call_self_lookup, and ShouldNotReachHere.
Referenced by primitives::lookup_and_patch().
Bytecodes::Code Bytecodes::primitive_send_code_for | ( | Code | code | ) | [static] |
Definition at line 740 of file bytecodes.cpp.
References fatal, halt, interpreted_send_0, interpreted_send_0_pop, interpreted_send_1, interpreted_send_1_pop, interpreted_send_2, interpreted_send_2_pop, interpreted_send_code_for(), interpreted_send_n, interpreted_send_n_pop, interpreted_send_self, interpreted_send_self_pop, interpreted_send_super, interpreted_send_super_pop, primitive_send_0, primitive_send_0_pop, primitive_send_1, primitive_send_1_pop, primitive_send_2, primitive_send_2_pop, primitive_send_n, primitive_send_n_pop, primitive_send_self, primitive_send_self_pop, primitive_send_super, primitive_send_super_pop, and ShouldNotReachHere.
Referenced by InterpretedIC::update_inline_cache().
Here is the call graph for this function:
void Bytecodes::print | ( | ) | [static] |
Definition at line 839 of file bytecodes.cpp.
References code_type(), code_type_as_string(), outputStream::cr(), is_defined(), name(), number_of_codes, outputStream::print(), send_type(), send_type_as_string(), and std.
Here is the call graph for this function:
Definition at line 461 of file bytecodes.hpp.
References _send_type.
Referenced by actually_generated(), methodOopDesc::fileout_body(), generate_HTML_for(), has_inline_cache(), is_send_code(), print(), CodeIterator::send(), and InterpretedIC::send_type().
char * Bytecodes::send_type_as_string | ( | SendType | send_type | ) | [static] |
Definition at line 454 of file bytecodes.cpp.
References accessor_send, compiled_send, interpreted_send, megamorphic_send, no_send, polymorphic_send, predicted_send, primitive_send, and ShouldNotReachHere.
Referenced by generate_HTML_for(), InterpretedIC::print(), and print().
void Bytecodes::set_entry_point | ( | Code | code, | |
char * | entry_point | |||
) | [static] |
Definition at line 109 of file bytecodes.cpp.
References _entry_point, assert, is_defined(), and original_table.
Here is the call graph for this function:
Definition at line 462 of file bytecodes.hpp.
References _single_step.
Referenced by generate_HTML_for(), dispatchTable::intercept_for_return(), and dispatchTable::patch_with_sst_stub().
static int Bytecodes::version | ( | ) | [inline, static] |
Definition at line 58 of file bytecodes.hpp.
Referenced by generate_HTML_docu(), and bootstrap::parse_file().
Bytecodes::ArgumentSpec Bytecodes::_argument_spec [static, private] |
Bytecodes::CodeType Bytecodes::_code_type [static, private] |
char * Bytecodes::_entry_point [static, private] |
Definition at line 427 of file bytecodes.hpp.
Referenced by def(), entry_point(), and set_entry_point().
Bytecodes::Format Bytecodes::_format [static, private] |
char * Bytecodes::_name [static, private] |
bool Bytecodes::_pop_tos [static, private] |
Bytecodes::SendType Bytecodes::_send_type [static, private] |
bool Bytecodes::_single_step [static, private] |