iseq.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  iseq_insn_info_entry
struct  iseq_catch_table_entry
struct  iseq_compile_data_storage
struct  iseq_compile_data

Defines

#define ISEQ_TYPE_TOP   INT2FIX(1)
#define ISEQ_TYPE_METHOD   INT2FIX(2)
#define ISEQ_TYPE_BLOCK   INT2FIX(3)
#define ISEQ_TYPE_CLASS   INT2FIX(4)
#define ISEQ_TYPE_RESCUE   INT2FIX(5)
#define ISEQ_TYPE_ENSURE   INT2FIX(6)
#define ISEQ_TYPE_EVAL   INT2FIX(7)
#define ISEQ_TYPE_MAIN   INT2FIX(8)
#define ISEQ_TYPE_DEFINED_GUARD   INT2FIX(9)
#define CATCH_TYPE_RESCUE   ((int)INT2FIX(1))
#define CATCH_TYPE_ENSURE   ((int)INT2FIX(2))
#define CATCH_TYPE_RETRY   ((int)INT2FIX(3))
#define CATCH_TYPE_BREAK   ((int)INT2FIX(4))
#define CATCH_TYPE_REDO   ((int)INT2FIX(5))
#define CATCH_TYPE_NEXT   ((int)INT2FIX(6))
#define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE   (512)
#define DEFINED_IVAR   INT2FIX(1)
#define DEFINED_IVAR2   INT2FIX(2)
#define DEFINED_GVAR   INT2FIX(3)
#define DEFINED_CVAR   INT2FIX(4)
#define DEFINED_CONST   INT2FIX(5)
#define DEFINED_METHOD   INT2FIX(6)
#define DEFINED_YIELD   INT2FIX(7)
#define DEFINED_REF   INT2FIX(8)
#define DEFINED_ZSUPER   INT2FIX(9)
#define DEFINED_FUNC   INT2FIX(10)

Functions

VALUE rb_iseq_compile_node (VALUE self, NODE *node)
int rb_iseq_translate_threaded_code (rb_iseq_t *iseq)
VALUE rb_iseq_build_from_ary (rb_iseq_t *iseq, VALUE locals, VALUE args, VALUE exception, VALUE body)
VALUE rb_iseq_load (VALUE data, VALUE parent, VALUE opt)
st_tableruby_insn_make_insn_table (void)


Define Documentation

#define CATCH_TYPE_BREAK   ((int)INT2FIX(4))

Definition at line 38 of file iseq.h.

Referenced by catch_type(), exception_type2symbol(), get_exception_sym2type(), iseq_compile_each(), iseq_set_exception_table(), and vm_throw().

#define CATCH_TYPE_ENSURE   ((int)INT2FIX(2))

Definition at line 36 of file iseq.h.

Referenced by catch_type(), exception_type2symbol(), get_exception_sym2type(), iseq_compile_each(), and vm_exec().

#define CATCH_TYPE_NEXT   ((int)INT2FIX(6))

Definition at line 40 of file iseq.h.

Referenced by catch_type(), exception_type2symbol(), get_exception_sym2type(), iseq_compile_each(), iseq_set_exception_table(), and rb_iseq_compile_node().

#define CATCH_TYPE_REDO   ((int)INT2FIX(5))

Definition at line 39 of file iseq.h.

Referenced by catch_type(), exception_type2symbol(), get_exception_sym2type(), iseq_compile_each(), and rb_iseq_compile_node().

#define CATCH_TYPE_RESCUE   ((int)INT2FIX(1))

Definition at line 35 of file iseq.h.

Referenced by catch_type(), defined_expr(), exception_type2symbol(), get_exception_sym2type(), iseq_compile_each(), and iseq_set_exception_table().

#define CATCH_TYPE_RETRY   ((int)INT2FIX(3))

Definition at line 37 of file iseq.h.

Referenced by catch_type(), exception_type2symbol(), get_exception_sym2type(), and iseq_compile_each().

#define DEFINED_CONST   INT2FIX(5)

Definition at line 97 of file iseq.h.

Referenced by defined_expr().

#define DEFINED_CVAR   INT2FIX(4)

Definition at line 96 of file iseq.h.

Referenced by defined_expr().

#define DEFINED_FUNC   INT2FIX(10)

Definition at line 102 of file iseq.h.

Referenced by defined_expr().

#define DEFINED_GVAR   INT2FIX(3)

Definition at line 95 of file iseq.h.

Referenced by defined_expr().

#define DEFINED_IVAR   INT2FIX(1)

Definition at line 93 of file iseq.h.

Referenced by defined_expr().

#define DEFINED_IVAR2   INT2FIX(2)

Definition at line 94 of file iseq.h.

#define DEFINED_METHOD   INT2FIX(6)

Definition at line 98 of file iseq.h.

Referenced by defined_expr().

#define DEFINED_REF   INT2FIX(8)

Definition at line 100 of file iseq.h.

Referenced by defined_expr().

#define DEFINED_YIELD   INT2FIX(7)

Definition at line 99 of file iseq.h.

Referenced by defined_expr().

#define DEFINED_ZSUPER   INT2FIX(9)

Definition at line 101 of file iseq.h.

Referenced by defined_expr().

#define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE   (512)

Definition at line 57 of file iseq.h.

Referenced by prepare_iseq_build().

#define ISEQ_TYPE_BLOCK   INT2FIX(3)

Definition at line 27 of file iseq.h.

Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_load(), iseq_set_arguments(), make_name_for_block(), rb_dvar_defined(), rb_iseq_compile_node(), and vm_throw().

#define ISEQ_TYPE_CLASS   INT2FIX(4)

Definition at line 28 of file iseq.h.

Referenced by iseq_data_to_ary(), iseq_load(), rb_iseq_compile_node(), set_relation(), vm_invoke_block(), and vm_throw().

#define ISEQ_TYPE_DEFINED_GUARD   INT2FIX(9)

Definition at line 33 of file iseq.h.

Referenced by defined_expr(), iseq_data_to_ary(), iseq_load(), and rb_iseq_compile_node().

#define ISEQ_TYPE_ENSURE   INT2FIX(6)

Definition at line 30 of file iseq.h.

Referenced by errinfo_place(), iseq_compile_each(), iseq_data_to_ary(), iseq_load(), rb_dvar_defined(), and rb_iseq_compile_node().

#define ISEQ_TYPE_EVAL   INT2FIX(7)

Definition at line 31 of file iseq.h.

Referenced by iseq_compile_each(), iseq_data_to_ary(), iseq_load(), rb_dvar_defined(), rb_iseq_compile_node(), and rb_iseq_compile_with_option().

#define ISEQ_TYPE_MAIN   INT2FIX(8)

Definition at line 32 of file iseq.h.

Referenced by iseq_data_to_ary(), iseq_load(), rb_dvar_defined(), rb_iseq_compile_node(), and rb_iseq_new_main().

#define ISEQ_TYPE_METHOD   INT2FIX(2)

Definition at line 26 of file iseq.h.

Referenced by iseq_data_to_ary(), iseq_load(), rb_iseq_compile_node(), set_relation(), vm_invoke_block(), and vm_throw().

#define ISEQ_TYPE_RESCUE   INT2FIX(5)

Definition at line 29 of file iseq.h.

Referenced by errinfo_place(), iseq_compile_each(), iseq_data_to_ary(), iseq_load(), rb_dvar_defined(), and rb_iseq_compile_node().

#define ISEQ_TYPE_TOP   INT2FIX(1)

Definition at line 25 of file iseq.h.

Referenced by Init_VM(), iseq_data_to_ary(), iseq_load(), iseq_s_compile_file(), rb_iseq_compile_node(), rb_iseq_compile_with_option(), rb_iseq_new_top(), rb_vm_call_cfunc(), set_relation(), and vm_set_top_stack().


Function Documentation

VALUE rb_iseq_build_from_ary ( rb_iseq_t iseq,
VALUE  locals,
VALUE  args,
VALUE  exception,
VALUE  body 
)

Definition at line 5365 of file compile.c.

References ALLOC_N, rb_iseq_struct::arg_block, rb_iseq_struct::arg_opt_table, rb_iseq_struct::arg_opts, rb_iseq_struct::arg_post_len, rb_iseq_struct::arg_post_start, rb_iseq_struct::arg_rest, rb_iseq_struct::arg_simple, rb_iseq_struct::arg_size, rb_iseq_struct::argc, CHECK_ARRAY, CHECK_INTEGER(), CHECK_SYMBOL, DECL_ANCHOR, FIX2INT, FIX2LONG, FIXNUM_P, INIT_ANCHOR, iseq_build_body(), iseq_build_exception(), rb_iseq_struct::local_size, rb_iseq_struct::local_table, rb_iseq_struct::local_table_size, NUM2INT, RARRAY_LEN, RARRAY_LENINT, RARRAY_PTR, rb_ary_entry(), register_label(), rb_iseq_struct::self, st_init_numtable, and SYM2ID.

Referenced by iseq_load().

VALUE rb_iseq_compile_node ( VALUE  self,
NODE node 
)

Definition at line 423 of file compile.c.

References ADD_CATCH_ENTRY, ADD_INSN, ADD_INSN1, ADD_INSN2, ADD_LABEL, ADD_TRACE, CATCH_TYPE_NEXT, CATCH_TYPE_REDO, COMPILE, rb_iseq_struct::compile_data, COMPILE_POPED, DECL_ANCHOR, ensure_range::end, ERROR_ARGS, FIX2INT, GetISeqPtr, INIT_ANCHOR, INT2FIX, iseq_set_arguments(), iseq_set_exception_local_table(), iseq_set_local_table(), iseq_setup(), ISEQ_TYPE_BLOCK, ISEQ_TYPE_CLASS, ISEQ_TYPE_DEFINED_GUARD, ISEQ_TYPE_ENSURE, ISEQ_TYPE_EVAL, ISEQ_TYPE_MAIN, ISEQ_TYPE_METHOD, ISEQ_TYPE_RESCUE, ISEQ_TYPE_TOP, iseq_compile_data::last_line, nd_line, nd_type, NEW_LABEL, NODE_SCOPE, rb_bug(), rb_compile_error(), RUBY_EVENT_CALL, RUBY_EVENT_CLASS, RUBY_EVENT_END, RUBY_EVENT_RETURN, and rb_iseq_struct::type.

Referenced by rb_iseq_new_with_bopt_and_opt().

VALUE rb_iseq_load ( VALUE  data,
VALUE  parent,
VALUE  opt 
)

Definition at line 531 of file iseq.c.

References iseq_load(), and rb_cISeq.

Referenced by iseq_build_body(), and iseq_build_exception().

int rb_iseq_translate_threaded_code ( rb_iseq_t iseq  ) 

Definition at line 511 of file compile.c.

References ALLOC_N, COMPILE_OK, rb_iseq_struct::iseq, rb_iseq_struct::iseq_encoded, rb_iseq_struct::iseq_size, len, MEMCPY, and rb_vm_get_insns_address_table().

Referenced by iseq_setup(), and rb_iseq_build_for_ruby2cext().

struct st_table* ruby_insn_make_insn_table ( void   ) 


Generated on Wed Aug 10 09:18:46 2011 for Ruby by  doxygen 1.4.7