Bytecodes Class Reference

#include <bytecodes.hpp>

Inheritance diagram for Bytecodes:

Inheritance graph
[legend]
Collaboration diagram for Bytecodes:

Collaboration graph
[legend]
List of all members.

Public Types

 B
 BB
 BBB
 BBBB
 BBO
 BBL
 BO
 BOO
 BLO
 BOL
 BLL
 BL
 BLB
 BBOO
 BBLO
 BOOLB
 BBS
 UNDEF
 number_of_formats
 local_access
 instVar_access
 context_access
 classVar_access
 global_access
 new_closure
 new_context
 control_struc
 message_send
 nonlocal_return
 primitive_call
 dll_call
 float_operation
 miscellaneous
 number_of_code_types
 recv_0_args
 recv_1_args
 recv_2_args
 recv_n_args
 args_only
 no_args
 number_of_argument_specs
 interpreted_send
 compiled_send
 polymorphic_send
 megamorphic_send
 predicted_send
 accessor_send
 primitive_send
 no_send
 number_of_send_types
 loop_start
 loop_end
 no_loop
 number_of_loop_types
 push_temp_0 = 0x00
 push_temp_1 = 0x01
 push_temp_2 = 0x02
 push_temp_3 = 0x03
 push_temp_4 = 0x04
 push_temp_5 = 0x05
 unimplemented_06 = 0x06
 push_temp_n = 0x07
 push_arg_1 = 0x08
 push_arg_2 = 0x09
 push_arg_3 = 0x0a
 push_arg_n = 0x0b
 allocate_temp_1 = 0x0c
 allocate_temp_2 = 0x0d
 allocate_temp_3 = 0x0e
 allocate_temp_n = 0x0f
 store_temp_0_pop = 0x10
 store_temp_1_pop = 0x11
 store_temp_2_pop = 0x12
 store_temp_3_pop = 0x13
 store_temp_4_pop = 0x14
 store_temp_5_pop = 0x15
 store_temp_n = 0x16
 store_temp_n_pop = 0x17
 push_neg_n = 0x18
 push_succ_n = 0x19
 push_literal = 0x1a
 push_tos = 0x1b
 push_self = 0x1c
 push_nil = 0x1d
 push_true = 0x1e
 push_false = 0x1f
 unimplemented_20 = 0x20
 unimplemented_21 = 0x21
 unimplemented_22 = 0x22
 unimplemented_23 = 0x23
 unimplemented_24 = 0x24
 unimplemented_25 = 0x25
 unimplemented_26 = 0x26
 unimplemented_27 = 0x27
 return_instVar_name = 0x28
 push_classVar = 0x29
 store_classVar_pop = 0x2a
 store_classVar = 0x2b
 return_instVar = 0x2c
 push_instVar = 0x2d
 store_instVar_pop = 0x2e
 store_instVar = 0x2f
 float_allocate = 0x30
 float_floatify_pop = 0x31
 float_move = 0x32
 float_set = 0x33
 float_nullary_op = 0x34
 float_unary_op = 0x35
 float_binary_op = 0x36
 float_unary_op_to_oop = 0x37
 float_binary_op_to_oop = 0x38
 unimplemented_39 = 0x39
 unimplemented_3a = 0x3a
 unimplemented_3b = 0x3b
 unimplemented_3c = 0x3c
 push_instVar_name = 0x3d
 store_instVar_pop_name = 0x3e
 store_instVar_name = 0x3f
 push_temp_0_context_0 = 0x40
 push_temp_1_context_0 = 0x41
 push_temp_2_context_0 = 0x42
 push_temp_n_context_0 = 0x43
 store_temp_0_context_0_pop = 0x44
 store_temp_1_context_0_pop = 0x45
 store_temp_2_context_0_pop = 0x46
 store_temp_n_context_0_pop = 0x47
 push_new_closure_context_0 = 0x48
 push_new_closure_context_1 = 0x49
 push_new_closure_context_2 = 0x4a
 push_new_closure_context_n = 0x4b
 install_new_context_method_0 = 0x4c
 install_new_context_method_1 = 0x4d
 install_new_context_method_2 = 0x4e
 install_new_context_method_n = 0x4f
 push_temp_0_context_1 = 0x50
 push_temp_1_context_1 = 0x51
 push_temp_2_context_1 = 0x52
 push_temp_n_context_1 = 0x53
 store_temp_0_context_1_pop = 0x54
 store_temp_1_context_1_pop = 0x55
 store_temp_2_context_1_pop = 0x56
 store_temp_n_context_1_pop = 0x57
 push_new_closure_tos_0 = 0x58
 push_new_closure_tos_1 = 0x59
 push_new_closure_tos_2 = 0x5a
 push_new_closure_tos_n = 0x5b
 only_pop = 0x5c
 install_new_context_block_1 = 0x5d
 install_new_context_block_2 = 0x5e
 install_new_context_block_n = 0x5f
 push_temp_0_context_n = 0x60
 push_temp_1_context_n = 0x61
 push_temp_2_context_n = 0x62
 push_temp_n_context_n = 0x63
 store_temp_0_context_n_pop = 0x64
 store_temp_1_context_n_pop = 0x65
 store_temp_2_context_n_pop = 0x66
 store_temp_n_context_n_pop = 0x67
 set_self_via_context = 0x68
 copy_1_into_context = 0x69
 copy_2_into_context = 0x6a
 copy_n_into_context = 0x6b
 copy_self_into_context = 0x6c
 copy_self_1_into_context = 0x6d
 copy_self_2_into_context = 0x6e
 copy_self_n_into_context = 0x6f
 ifTrue_byte = 0x70
 ifFalse_byte = 0x71
 and_byte = 0x72
 or_byte = 0x73
 whileTrue_byte = 0x74
 whileFalse_byte = 0x75
 jump_else_byte = 0x76
 jump_loop_byte = 0x77
 ifTrue_word = 0x78
 ifFalse_word = 0x79
 and_word = 0x7a
 or_word = 0x7b
 whileTrue_word = 0x7c
 whileFalse_word = 0x7d
 jump_else_word = 0x7e
 jump_loop_word = 0x7f
 interpreted_send_0 = 0x80
 interpreted_send_1 = 0x81
 interpreted_send_2 = 0x82
 interpreted_send_n = 0x83
 interpreted_send_0_pop = 0x84
 interpreted_send_1_pop = 0x85
 interpreted_send_2_pop = 0x86
 interpreted_send_n_pop = 0x87
 interpreted_send_self = 0x88
 interpreted_send_self_pop = 0x89
 interpreted_send_super = 0x8a
 interpreted_send_super_pop = 0x8b
 return_tos_pop_0 = 0x8c
 return_tos_pop_1 = 0x8d
 return_tos_pop_2 = 0x8e
 return_tos_pop_n = 0x8f
 polymorphic_send_0 = 0x90
 polymorphic_send_1 = 0x91
 polymorphic_send_2 = 0x92
 polymorphic_send_n = 0x93
 polymorphic_send_0_pop = 0x94
 polymorphic_send_1_pop = 0x95
 polymorphic_send_2_pop = 0x96
 polymorphic_send_n_pop = 0x97
 polymorphic_send_self = 0x98
 polymorphic_send_self_pop = 0x99
 polymorphic_send_super = 0x9a
 polymorphic_send_super_pop = 0x9b
 return_self_pop_0 = 0x9c
 return_self_pop_1 = 0x9d
 return_self_pop_2 = 0x9e
 return_self_pop_n = 0x9f
 compiled_send_0 = 0xa0
 compiled_send_1 = 0xa1
 compiled_send_2 = 0xa2
 compiled_send_n = 0xa3
 compiled_send_0_pop = 0xa4
 compiled_send_1_pop = 0xa5
 compiled_send_2_pop = 0xa6
 compiled_send_n_pop = 0xa7
 compiled_send_self = 0xa8
 compiled_send_self_pop = 0xa9
 compiled_send_super = 0xaa
 compiled_send_super_pop = 0xab
 return_tos_zap_pop_n = 0xac
 return_self_zap_pop_n = 0xad
 non_local_return_tos_pop_n = 0xae
 non_local_return_self_pop_n = 0xaf
 prim_call = 0xb0
 predict_prim_call = 0xb1
 prim_call_failure = 0xb2
 predict_prim_call_failure = 0xb3
 dll_call_sync = 0xb4
 prim_call_self = 0xb5
 prim_call_self_failure = 0xb6
 unimplemented_b7 = 0xb7
 access_send_self = 0xb8
 primitive_send_0 = 0xb9
 primitive_send_super = 0xba
 primitive_send_super_pop = 0xbb
 unimplemented_bc = 0xbc
 primitive_send_1 = 0xbd
 primitive_send_2 = 0xbe
 primitive_send_n = 0xbf
 prim_call_lookup = 0xc0
 predict_prim_call_lookup = 0xc1
 prim_call_failure_lookup = 0xc2
 predict_prim_call_failure_lookup = 0xc3
 dll_call_async = 0xc4
 prim_call_self_lookup = 0xc5
 prim_call_self_failure_lookup = 0xc6
 unimplemented_c7 = 0xc7
 access_send_0 = 0xc8
 primitive_send_0_pop = 0xc9
 primitive_send_self = 0xca
 primitive_send_self_pop = 0xcb
 unimplemented_cc = 0xcc
 primitive_send_1_pop = 0xcd
 primitive_send_2_pop = 0xce
 primitive_send_n_pop = 0xcf
 megamorphic_send_0 = 0xd0
 megamorphic_send_1 = 0xd1
 megamorphic_send_2 = 0xd2
 megamorphic_send_n = 0xd3
 megamorphic_send_0_pop = 0xd4
 megamorphic_send_1_pop = 0xd5
 megamorphic_send_2_pop = 0xd6
 megamorphic_send_n_pop = 0xd7
 megamorphic_send_self = 0xd8
 megamorphic_send_self_pop = 0xd9
 megamorphic_send_super = 0xda
 megamorphic_send_super_pop = 0xdb
 unimplemented_dc = 0xdc
 special_primitive_send_1_hint = 0xdd
 unimplemented_de = 0xde
 unimplemented_df = 0xdf
 smi_add = 0xe0
 smi_sub = 0xe1
 smi_mult = 0xe2
 smi_div = 0xe3
 smi_mod = 0xe4
 smi_create_point = 0xe5
 smi_equal = 0xe6
 smi_not_equal = 0xe7
 smi_less = 0xe8
 smi_less_equal = 0xe9
 smi_greater = 0xea
 smi_greater_equal = 0xeb
 objArray_at = 0xec
 objArray_at_put = 0xed
 double_equal = 0xee
 double_tilde = 0xef
 push_global = 0xf0
 store_global_pop = 0xf1
 store_global = 0xf2
 push_classVar_name = 0xf3
 store_classVar_pop_name = 0xf4
 store_classVar_name = 0xf5
 smi_and = 0xf6
 smi_or = 0xf7
 smi_xor = 0xf8
 smi_shift = 0xf9
 unimplemented_fa = 0xfa
 unimplemented_fb = 0xfb
 unimplemented_fc = 0xfc
 unimplemented_fd = 0xfd
 unimplemented_fe = 0xfe
 halt = 0xff
 number_of_codes = 0x100
enum  Format {
  B, BB, BBB, BBBB,
  BBO, BBL, BO, BOO,
  BLO, BOL, BLL, BL,
  BLB, BBOO, BBLO, BOOLB,
  BBS, UNDEF, number_of_formats
}
enum  CodeType {
  local_access, instVar_access, context_access, classVar_access,
  global_access, new_closure, new_context, control_struc,
  message_send, nonlocal_return, primitive_call, dll_call,
  float_operation, miscellaneous, number_of_code_types
}
enum  ArgumentSpec {
  recv_0_args, recv_1_args, recv_2_args, recv_n_args,
  args_only, no_args, number_of_argument_specs
}
enum  SendType {
  interpreted_send, compiled_send, polymorphic_send, megamorphic_send,
  predicted_send, accessor_send, primitive_send, no_send,
  number_of_send_types
}
enum  LoopType { loop_start, loop_end, no_loop, number_of_loop_types }
enum  Code {
  push_temp_0 = 0x00, push_temp_1 = 0x01, push_temp_2 = 0x02, push_temp_3 = 0x03,
  push_temp_4 = 0x04, push_temp_5 = 0x05, unimplemented_06 = 0x06, push_temp_n = 0x07,
  push_arg_1 = 0x08, push_arg_2 = 0x09, push_arg_3 = 0x0a, push_arg_n = 0x0b,
  allocate_temp_1 = 0x0c, allocate_temp_2 = 0x0d, allocate_temp_3 = 0x0e, allocate_temp_n = 0x0f,
  store_temp_0_pop = 0x10, store_temp_1_pop = 0x11, store_temp_2_pop = 0x12, store_temp_3_pop = 0x13,
  store_temp_4_pop = 0x14, store_temp_5_pop = 0x15, store_temp_n = 0x16, store_temp_n_pop = 0x17,
  push_neg_n = 0x18, push_succ_n = 0x19, push_literal = 0x1a, push_tos = 0x1b,
  push_self = 0x1c, push_nil = 0x1d, push_true = 0x1e, push_false = 0x1f,
  unimplemented_20 = 0x20, unimplemented_21 = 0x21, unimplemented_22 = 0x22, unimplemented_23 = 0x23,
  unimplemented_24 = 0x24, unimplemented_25 = 0x25, unimplemented_26 = 0x26, unimplemented_27 = 0x27,
  return_instVar_name = 0x28, push_classVar = 0x29, store_classVar_pop = 0x2a, store_classVar = 0x2b,
  return_instVar = 0x2c, push_instVar = 0x2d, store_instVar_pop = 0x2e, store_instVar = 0x2f,
  float_allocate = 0x30, float_floatify_pop = 0x31, float_move = 0x32, float_set = 0x33,
  float_nullary_op = 0x34, float_unary_op = 0x35, float_binary_op = 0x36, float_unary_op_to_oop = 0x37,
  float_binary_op_to_oop = 0x38, unimplemented_39 = 0x39, unimplemented_3a = 0x3a, unimplemented_3b = 0x3b,
  unimplemented_3c = 0x3c, push_instVar_name = 0x3d, store_instVar_pop_name = 0x3e, store_instVar_name = 0x3f,
  push_temp_0_context_0 = 0x40, push_temp_1_context_0 = 0x41, push_temp_2_context_0 = 0x42, push_temp_n_context_0 = 0x43,
  store_temp_0_context_0_pop = 0x44, store_temp_1_context_0_pop = 0x45, store_temp_2_context_0_pop = 0x46, store_temp_n_context_0_pop = 0x47,
  push_new_closure_context_0 = 0x48, push_new_closure_context_1 = 0x49, push_new_closure_context_2 = 0x4a, push_new_closure_context_n = 0x4b,
  install_new_context_method_0 = 0x4c, install_new_context_method_1 = 0x4d, install_new_context_method_2 = 0x4e, install_new_context_method_n = 0x4f,
  push_temp_0_context_1 = 0x50, push_temp_1_context_1 = 0x51, push_temp_2_context_1 = 0x52, push_temp_n_context_1 = 0x53,
  store_temp_0_context_1_pop = 0x54, store_temp_1_context_1_pop = 0x55, store_temp_2_context_1_pop = 0x56, store_temp_n_context_1_pop = 0x57,
  push_new_closure_tos_0 = 0x58, push_new_closure_tos_1 = 0x59, push_new_closure_tos_2 = 0x5a, push_new_closure_tos_n = 0x5b,
  only_pop = 0x5c, install_new_context_block_1 = 0x5d, install_new_context_block_2 = 0x5e, install_new_context_block_n = 0x5f,
  push_temp_0_context_n = 0x60, push_temp_1_context_n = 0x61, push_temp_2_context_n = 0x62, push_temp_n_context_n = 0x63,
  store_temp_0_context_n_pop = 0x64, store_temp_1_context_n_pop = 0x65, store_temp_2_context_n_pop = 0x66, store_temp_n_context_n_pop = 0x67,
  set_self_via_context = 0x68, copy_1_into_context = 0x69, copy_2_into_context = 0x6a, copy_n_into_context = 0x6b,
  copy_self_into_context = 0x6c, copy_self_1_into_context = 0x6d, copy_self_2_into_context = 0x6e, copy_self_n_into_context = 0x6f,
  ifTrue_byte = 0x70, ifFalse_byte = 0x71, and_byte = 0x72, or_byte = 0x73,
  whileTrue_byte = 0x74, whileFalse_byte = 0x75, jump_else_byte = 0x76, jump_loop_byte = 0x77,
  ifTrue_word = 0x78, ifFalse_word = 0x79, and_word = 0x7a, or_word = 0x7b,
  whileTrue_word = 0x7c, whileFalse_word = 0x7d, jump_else_word = 0x7e, jump_loop_word = 0x7f,
  interpreted_send_0 = 0x80, interpreted_send_1 = 0x81, interpreted_send_2 = 0x82, interpreted_send_n = 0x83,
  interpreted_send_0_pop = 0x84, interpreted_send_1_pop = 0x85, interpreted_send_2_pop = 0x86, interpreted_send_n_pop = 0x87,
  interpreted_send_self = 0x88, interpreted_send_self_pop = 0x89, interpreted_send_super = 0x8a, interpreted_send_super_pop = 0x8b,
  return_tos_pop_0 = 0x8c, return_tos_pop_1 = 0x8d, return_tos_pop_2 = 0x8e, return_tos_pop_n = 0x8f,
  polymorphic_send_0 = 0x90, polymorphic_send_1 = 0x91, polymorphic_send_2 = 0x92, polymorphic_send_n = 0x93,
  polymorphic_send_0_pop = 0x94, polymorphic_send_1_pop = 0x95, polymorphic_send_2_pop = 0x96, polymorphic_send_n_pop = 0x97,
  polymorphic_send_self = 0x98, polymorphic_send_self_pop = 0x99, polymorphic_send_super = 0x9a, polymorphic_send_super_pop = 0x9b,
  return_self_pop_0 = 0x9c, return_self_pop_1 = 0x9d, return_self_pop_2 = 0x9e, return_self_pop_n = 0x9f,
  compiled_send_0 = 0xa0, compiled_send_1 = 0xa1, compiled_send_2 = 0xa2, compiled_send_n = 0xa3,
  compiled_send_0_pop = 0xa4, compiled_send_1_pop = 0xa5, compiled_send_2_pop = 0xa6, compiled_send_n_pop = 0xa7,
  compiled_send_self = 0xa8, compiled_send_self_pop = 0xa9, compiled_send_super = 0xaa, compiled_send_super_pop = 0xab,
  return_tos_zap_pop_n = 0xac, return_self_zap_pop_n = 0xad, non_local_return_tos_pop_n = 0xae, non_local_return_self_pop_n = 0xaf,
  prim_call = 0xb0, predict_prim_call = 0xb1, prim_call_failure = 0xb2, predict_prim_call_failure = 0xb3,
  dll_call_sync = 0xb4, prim_call_self = 0xb5, prim_call_self_failure = 0xb6, unimplemented_b7 = 0xb7,
  access_send_self = 0xb8, primitive_send_0 = 0xb9, primitive_send_super = 0xba, primitive_send_super_pop = 0xbb,
  unimplemented_bc = 0xbc, primitive_send_1 = 0xbd, primitive_send_2 = 0xbe, primitive_send_n = 0xbf,
  prim_call_lookup = 0xc0, predict_prim_call_lookup = 0xc1, prim_call_failure_lookup = 0xc2, predict_prim_call_failure_lookup = 0xc3,
  dll_call_async = 0xc4, prim_call_self_lookup = 0xc5, prim_call_self_failure_lookup = 0xc6, unimplemented_c7 = 0xc7,
  access_send_0 = 0xc8, primitive_send_0_pop = 0xc9, primitive_send_self = 0xca, primitive_send_self_pop = 0xcb,
  unimplemented_cc = 0xcc, primitive_send_1_pop = 0xcd, primitive_send_2_pop = 0xce, primitive_send_n_pop = 0xcf,
  megamorphic_send_0 = 0xd0, megamorphic_send_1 = 0xd1, megamorphic_send_2 = 0xd2, megamorphic_send_n = 0xd3,
  megamorphic_send_0_pop = 0xd4, megamorphic_send_1_pop = 0xd5, megamorphic_send_2_pop = 0xd6, megamorphic_send_n_pop = 0xd7,
  megamorphic_send_self = 0xd8, megamorphic_send_self_pop = 0xd9, megamorphic_send_super = 0xda, megamorphic_send_super_pop = 0xdb,
  unimplemented_dc = 0xdc, special_primitive_send_1_hint = 0xdd, unimplemented_de = 0xde, unimplemented_df = 0xdf,
  smi_add = 0xe0, smi_sub = 0xe1, smi_mult = 0xe2, smi_div = 0xe3,
  smi_mod = 0xe4, smi_create_point = 0xe5, smi_equal = 0xe6, smi_not_equal = 0xe7,
  smi_less = 0xe8, smi_less_equal = 0xe9, smi_greater = 0xea, smi_greater_equal = 0xeb,
  objArray_at = 0xec, objArray_at_put = 0xed, double_equal = 0xee, double_tilde = 0xef,
  push_global = 0xf0, store_global_pop = 0xf1, store_global = 0xf2, push_classVar_name = 0xf3,
  store_classVar_pop_name = 0xf4, store_classVar_name = 0xf5, smi_and = 0xf6, smi_or = 0xf7,
  smi_xor = 0xf8, smi_shift = 0xf9, unimplemented_fa = 0xfa, unimplemented_fb = 0xfb,
  unimplemented_fc = 0xfc, unimplemented_fd = 0xfd, unimplemented_fe = 0xfe, halt = 0xff,
  number_of_codes = 0x100
}

Static Public Member Functions

static int version ()
static void set_entry_point (Code code, char *entry_point)
static bool is_defined (Code code)
static bool is_self_send (Code code)
static bool is_super_send (Code code)
static bool has_access_send_code (Code code)
static bool has_predicted_send_code (Code code)
static bool is_send_code (Code code)
static char * entry_point (Code code)
static char * name (Code code)
static Format format (Code code)
static CodeType code_type (Code code)
static ArgumentSpec argument_spec (Code code)
static SendType send_type (Code code)
static bool single_step (Code code)
static bool pop_tos (Code code)
static LoopType loop_type (Code code)
static char * format_as_string (Format format)
static char * code_type_as_string (CodeType code_type)
static char * argument_spec_as_string (ArgumentSpec argument_spec)
static char * send_type_as_string (SendType send_type)
static char * loop_type_as_string (LoopType loop_type)
static Code original_send_code_for (Code code)
static Code interpreted_send_code_for (Code code)
static Code compiled_send_code_for (Code code)
static Code access_send_code_for (Code code)
static Code primitive_send_code_for (Code code)
static Code polymorphic_send_code_for (Code code)
static Code megamorphic_send_code_for (Code code)
static Code original_primitive_call_code_for (Code code)
static Code primitive_call_code_for (Code code)
static void init ()
static void print ()

Static Private Member Functions

static void def (Code code)
static void def (Code code, char *name, Format format, CodeType code_type, bool single_step, bool pop_tos=false)
static void def (Code code, char *name, Format format, ArgumentSpec argument_spec, SendType send_type, bool pop_tos=false)
static void def (Code code, char *name, Format format, CodeType code_type, bool single_step, ArgumentSpec argument_spec, SendType send_type, bool pop_tos)

Static Private Attributes

static char * _entry_point [number_of_codes]
static char * _name [number_of_codes]
static Format _format [number_of_codes]
static CodeType _code_type [number_of_codes]
static ArgumentSpec _argument_spec [number_of_codes]
static SendType _send_type [number_of_codes]
static bool _single_step [number_of_codes]
static bool _pop_tos [number_of_codes]

Detailed Description

Definition at line 54 of file bytecodes.hpp.


Member Enumeration Documentation

enum Bytecodes::ArgumentSpec

Enumerator:
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

Enumerator:
push_temp_0 
push_temp_1 
push_temp_2 
push_temp_3 
push_temp_4 
push_temp_5 
unimplemented_06 
push_temp_n 
push_arg_1 
push_arg_2 
push_arg_3 
push_arg_n 
allocate_temp_1 
allocate_temp_2 
allocate_temp_3 
allocate_temp_n 
store_temp_0_pop 
store_temp_1_pop 
store_temp_2_pop 
store_temp_3_pop 
store_temp_4_pop 
store_temp_5_pop 
store_temp_n 
store_temp_n_pop 
push_neg_n 
push_succ_n 
push_literal 
push_tos 
push_self 
push_nil 
push_true 
push_false 
unimplemented_20 
unimplemented_21 
unimplemented_22 
unimplemented_23 
unimplemented_24 
unimplemented_25 
unimplemented_26 
unimplemented_27 
return_instVar_name 
push_classVar 
store_classVar_pop 
store_classVar 
return_instVar 
push_instVar 
store_instVar_pop 
store_instVar 
float_allocate 
float_floatify_pop 
float_move 
float_set 
float_nullary_op 
float_unary_op 
float_binary_op 
float_unary_op_to_oop 
float_binary_op_to_oop 
unimplemented_39 
unimplemented_3a 
unimplemented_3b 
unimplemented_3c 
push_instVar_name 
store_instVar_pop_name 
store_instVar_name 
push_temp_0_context_0 
push_temp_1_context_0 
push_temp_2_context_0 
push_temp_n_context_0 
store_temp_0_context_0_pop 
store_temp_1_context_0_pop 
store_temp_2_context_0_pop 
store_temp_n_context_0_pop 
push_new_closure_context_0 
push_new_closure_context_1 
push_new_closure_context_2 
push_new_closure_context_n 
install_new_context_method_0 
install_new_context_method_1 
install_new_context_method_2 
install_new_context_method_n 
push_temp_0_context_1 
push_temp_1_context_1 
push_temp_2_context_1 
push_temp_n_context_1 
store_temp_0_context_1_pop 
store_temp_1_context_1_pop 
store_temp_2_context_1_pop 
store_temp_n_context_1_pop 
push_new_closure_tos_0 
push_new_closure_tos_1 
push_new_closure_tos_2 
push_new_closure_tos_n 
only_pop 
install_new_context_block_1 
install_new_context_block_2 
install_new_context_block_n 
push_temp_0_context_n 
push_temp_1_context_n 
push_temp_2_context_n 
push_temp_n_context_n 
store_temp_0_context_n_pop 
store_temp_1_context_n_pop 
store_temp_2_context_n_pop 
store_temp_n_context_n_pop 
set_self_via_context 
copy_1_into_context 
copy_2_into_context 
copy_n_into_context 
copy_self_into_context 
copy_self_1_into_context 
copy_self_2_into_context 
copy_self_n_into_context 
ifTrue_byte 
ifFalse_byte 
and_byte 
or_byte 
whileTrue_byte 
whileFalse_byte 
jump_else_byte 
jump_loop_byte 
ifTrue_word 
ifFalse_word 
and_word 
or_word 
whileTrue_word 
whileFalse_word 
jump_else_word 
jump_loop_word 
interpreted_send_0 
interpreted_send_1 
interpreted_send_2 
interpreted_send_n 
interpreted_send_0_pop 
interpreted_send_1_pop 
interpreted_send_2_pop 
interpreted_send_n_pop 
interpreted_send_self 
interpreted_send_self_pop 
interpreted_send_super 
interpreted_send_super_pop 
return_tos_pop_0 
return_tos_pop_1 
return_tos_pop_2 
return_tos_pop_n 
polymorphic_send_0 
polymorphic_send_1 
polymorphic_send_2 
polymorphic_send_n 
polymorphic_send_0_pop 
polymorphic_send_1_pop 
polymorphic_send_2_pop 
polymorphic_send_n_pop 
polymorphic_send_self 
polymorphic_send_self_pop 
polymorphic_send_super 
polymorphic_send_super_pop 
return_self_pop_0 
return_self_pop_1 
return_self_pop_2 
return_self_pop_n 
compiled_send_0 
compiled_send_1 
compiled_send_2 
compiled_send_n 
compiled_send_0_pop 
compiled_send_1_pop 
compiled_send_2_pop 
compiled_send_n_pop 
compiled_send_self 
compiled_send_self_pop 
compiled_send_super 
compiled_send_super_pop 
return_tos_zap_pop_n 
return_self_zap_pop_n 
non_local_return_tos_pop_n 
non_local_return_self_pop_n 
prim_call 
predict_prim_call 
prim_call_failure 
predict_prim_call_failure 
dll_call_sync 
prim_call_self 
prim_call_self_failure 
unimplemented_b7 
access_send_self 
primitive_send_0 
primitive_send_super 
primitive_send_super_pop 
unimplemented_bc 
primitive_send_1 
primitive_send_2 
primitive_send_n 
prim_call_lookup 
predict_prim_call_lookup 
prim_call_failure_lookup 
predict_prim_call_failure_lookup 
dll_call_async 
prim_call_self_lookup 
prim_call_self_failure_lookup 
unimplemented_c7 
access_send_0 
primitive_send_0_pop 
primitive_send_self 
primitive_send_self_pop 
unimplemented_cc 
primitive_send_1_pop 
primitive_send_2_pop 
primitive_send_n_pop 
megamorphic_send_0 
megamorphic_send_1 
megamorphic_send_2 
megamorphic_send_n 
megamorphic_send_0_pop 
megamorphic_send_1_pop 
megamorphic_send_2_pop 
megamorphic_send_n_pop 
megamorphic_send_self 
megamorphic_send_self_pop 
megamorphic_send_super 
megamorphic_send_super_pop 
unimplemented_dc 
special_primitive_send_1_hint 
unimplemented_de 
unimplemented_df 
smi_add 
smi_sub 
smi_mult 
smi_div 
smi_mod 
smi_create_point 
smi_equal 
smi_not_equal 
smi_less 
smi_less_equal 
smi_greater 
smi_greater_equal 
objArray_at 
objArray_at_put 
double_equal 
double_tilde 
push_global 
store_global_pop 
store_global 
push_classVar_name 
store_classVar_pop_name 
store_classVar_name 
smi_and 
smi_or 
smi_xor 
smi_shift 
unimplemented_fa 
unimplemented_fb 
unimplemented_fc 
unimplemented_fd 
unimplemented_fe 
halt 
number_of_codes 

Definition at line 134 of file bytecodes.hpp.

enum Bytecodes::CodeType

Enumerator:
local_access 
instVar_access 
context_access 
classVar_access 
global_access 
new_closure 
new_context 
control_struc 
message_send 
nonlocal_return 
primitive_call 
dll_call 
float_operation 
miscellaneous 
number_of_code_types 

Definition at line 83 of file bytecodes.hpp.

enum Bytecodes::Format

Enumerator:
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

Enumerator:
loop_start 
loop_end 
no_loop 
number_of_loop_types 

Definition at line 126 of file bytecodes.hpp.

enum Bytecodes::SendType

Enumerator:
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.


Member Function Documentation

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.

static CodeType Bytecodes::code_type ( Code  code  )  [inline, static]

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]

Definition at line 38 of file bytecodes.cpp.

References miscellaneous, no_args, no_send, and UNDEF.

Referenced by def(), and init().

static char* Bytecodes::entry_point ( Code  code  )  [inline, static]

Definition at line 456 of file bytecodes.hpp.

References _entry_point.

static Format Bytecodes::format ( 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().

bool Bytecodes::has_access_send_code ( Code  code  )  [static]

Definition at line 551 of file bytecodes.cpp.

References interpreted_send_0, interpreted_send_self, and ShouldNotReachHere.

Referenced by InterpretedIC::update_inline_cache().

bool Bytecodes::has_predicted_send_code ( Code  code  )  [static]

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().

static bool Bytecodes::is_defined ( Code  code  )  [inline, static]

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().

bool Bytecodes::is_self_send ( Code  code  )  [static]

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.

static bool Bytecodes::is_send_code ( Code  code  )  [inline, static]

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:

bool Bytecodes::is_super_send ( Code  code  )  [static]

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:

static bool Bytecodes::pop_tos ( Code  code  )  [inline, static]

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:

static SendType Bytecodes::send_type ( Code  code  )  [inline, static]

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:

static bool Bytecodes::single_step ( Code  code  )  [inline, static]

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().


Member Data Documentation

Bytecodes::ArgumentSpec Bytecodes::_argument_spec [static, private]

Definition at line 431 of file bytecodes.hpp.

Referenced by argument_spec(), and def().

Bytecodes::CodeType Bytecodes::_code_type [static, private]

Definition at line 430 of file bytecodes.hpp.

Referenced by code_type(), and def().

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]

Definition at line 429 of file bytecodes.hpp.

Referenced by def(), format(), and is_defined().

char * Bytecodes::_name [static, private]

Definition at line 428 of file bytecodes.hpp.

Referenced by def(), init(), and name().

bool Bytecodes::_pop_tos [static, private]

Definition at line 434 of file bytecodes.hpp.

Referenced by def(), and pop_tos().

Bytecodes::SendType Bytecodes::_send_type [static, private]

Definition at line 432 of file bytecodes.hpp.

Referenced by def(), and send_type().

bool Bytecodes::_single_step [static, private]

Definition at line 433 of file bytecodes.hpp.

Referenced by def(), and single_step().


The documentation for this class was generated from the following files:
Generated on Mon Oct 9 13:50:27 2006 for Strongtalk VM by  doxygen 1.4.7