Ruby
2.1.10p492(2016-04-01revision54464)
|
#include "insns.inc"
#include <math.h>
#include "constant.h"
#include "internal.h"
#include "probes.h"
#include "probes_helper.h"
Go to the source code of this file.
Macros | |
#define | INLINE inline |
#define | USE_IC_FOR_IVAR 1 |
#define | CHECK_CMP_NAN(a, b) /* do nothing */ |
#define | SAVE_RESTORE_CI(expr, ci) |
#define | VM_PROFILE 0 |
#define | VM_PROFILE_UP(x) |
#define | VM_PROFILE_ATEXIT() |
Definition at line 967 of file vm_insnhelper.c.
Referenced by double_cmp_ge(), double_cmp_gt(), double_cmp_le(), and double_cmp_lt().
#define INLINE inline |
Definition at line 22 of file vm_insnhelper.c.
#define SAVE_RESTORE_CI | ( | expr, | |
ci | |||
) |
Referenced by vm_caller_setup_args().
#define USE_IC_FOR_IVAR 1 |
Definition at line 502 of file vm_insnhelper.c.
#define VM_PROFILE 0 |
Definition at line 1438 of file vm_insnhelper.c.
#define VM_PROFILE_ATEXIT | ( | ) |
Definition at line 1456 of file vm_insnhelper.c.
Referenced by Init_VM().
#define VM_PROFILE_UP | ( | x | ) |
Definition at line 1455 of file vm_insnhelper.c.
Referenced by vm_call0_cfunc_with_frame(), and vm_call_cfunc_with_frame().
|
static |
Definition at line 127 of file vm_insnhelper.c.
References rb_thread_struct::cfp, exc, GET_THREAD(), rb_iseq_struct::iseq_encoded, Qnil, rb_arg_error_new(), rb_exc_raise(), rb_funcall(), rb_intern, rb_iv_set(), rb_vm_backtrace_object(), rb_control_frame_struct::sp, th, VM_FRAME_MAGIC_METHOD, vm_pop_frame(), and vm_push_frame().
Referenced by vm_callee_setup_arg(), and vm_callee_setup_arg_complex().
Definition at line 2088 of file vm_insnhelper.c.
References GetProcPtr, rb_proc_t::is_lambda, and proc.
Referenced by invoke_block_from_c(), vm_invoke_block(), and vm_yield_with_cfunc().
|
static |
Definition at line 1342 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1348 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1402 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1408 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1414 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1420 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1426 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1432 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1354 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1360 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1366 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1372 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1378 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1384 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1390 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1396 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1336 of file vm_insnhelper.c.
|
static |
Definition at line 1330 of file vm_insnhelper.c.
References func, and rb_ary_new4.
|
inlinestatic |
Definition at line 865 of file vm_insnhelper.c.
References rb_method_definition_struct::body, rb_method_definition_struct::cfunc, rb_method_entry_struct::def, rb_method_cfunc_struct::func, func, rb_method_definition_struct::type, and VM_METHOD_TYPE_CFUNC.
Referenced by opt_eq_func().
|
static |
Definition at line 937 of file vm_insnhelper.c.
References CLASS_OF, GET_THREAD(), idEqq, rb_bug(), rb_cModule, rb_eTypeError, rb_funcall2(), rb_method_entry_with_refinements(), rb_obj_is_kind_of(), rb_raise(), vm_call0(), VM_CHECKMATCH_TYPE_CASE, VM_CHECKMATCH_TYPE_RESCUE, and VM_CHECKMATCH_TYPE_WHEN.
|
static |
Definition at line 1745 of file vm_insnhelper.c.
References rb_control_frame_struct::iseq, rb_iseq_struct::local_iseq, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, RUBY_VM_PREVIOUS_CONTROL_FRAME, and rb_iseq_struct::type.
Referenced by vm_call_method().
|
inlinestatic |
Definition at line 992 of file vm_insnhelper.c.
References CHECK_CMP_NAN, Qfalse, and Qtrue.
|
inlinestatic |
Definition at line 985 of file vm_insnhelper.c.
References CHECK_CMP_NAN, Qfalse, and Qtrue.
|
inlinestatic |
Definition at line 978 of file vm_insnhelper.c.
References CHECK_CMP_NAN, Qfalse, and Qtrue.
|
inlinestatic |
Definition at line 971 of file vm_insnhelper.c.
References CHECK_CMP_NAN, Qfalse, and Qtrue.
Definition at line 1733 of file vm_insnhelper.c.
References NIL_P(), Qnil, and rb_hash_lookup.
Referenced by rb_resolve_refined_method(), and vm_call_method().
|
static |
Definition at line 174 of file vm_insnhelper.c.
References ary, DEFAULT_SPECIAL_VAR_COUNT, lep_svar_place(), NIL_P(), Qnil, rb_ary_entry(), RNode::u1, RNode::u2, RNode::u3, and RNode::value.
Referenced by vm_cfp_svar_get(), and vm_getspecial().
|
inlinestatic |
Definition at line 157 of file vm_insnhelper.c.
References NEW_IF, NIL_P(), Qnil, rb_thread_struct::root_lep, and rb_thread_struct::root_svar.
Referenced by lep_svar_get(), and lep_svar_set().
|
static |
Definition at line 197 of file vm_insnhelper.c.
References ary, DEFAULT_SPECIAL_VAR_COUNT, lep_svar_place(), NIL_P(), rb_ary_new(), rb_ary_store(), RB_OBJ_WRITE, RNode::u1, RNode::u2, RNode::u3, and RNode::value.
Referenced by vm_cfp_svar_set().
NORETURN | ( | static void | argument_errorconst rb_iseq_t *iseq, int miss_argc, int min_argc, int max_argc | ) |
Definition at line 881 of file vm_insnhelper.c.
References a, b, BASIC_OP_UNREDEFINED_P, BOP_EQ, check_cfunc(), FIXNUM_2_P, FIXNUM_REDEFINED_OP_FLAG, FLOAT_REDEFINED_OP_FLAG, FLONUM_2_P, isnan, rb_call_info_struct::me, Qfalse, Qtrue, Qundef, rb_cFloat, rb_cString, rb_obj_equal(), rb_str_equal(), RBASIC_CLASS, RFLOAT_VALUE, SPECIAL_CONST_P, STRING_REDEFINED_OP_FLAG, and vm_search_method().
Referenced by rb_equal_opt().
Definition at line 110 of file vm_insnhelper.c.
References rb_eArgError, rb_exc_new3, rb_sprintf(), and UNLIMITED_ARGUMENTS.
Referenced by argument_error(), and rb_error_arity().
Definition at line 922 of file vm_insnhelper.c.
References rb_call_info_struct::defined_class, idEq, rb_call_info_struct::klass, rb_call_info_struct::me, rb_call_info_struct::method_state, rb_call_info_struct::mid, NULL, and opt_eq_func().
Referenced by rb_ary_index(), and rb_ary_rindex().
Definition at line 149 of file vm_insnhelper.c.
References rb_arg_error_new(), and rb_exc_raise().
Referenced by econv_args(), econv_primitive_convert(), rb_check_arity(), rb_io_s_popen(), and rb_scan_args().
|
static |
Referenced by vm_call_method().
Definition at line 271 of file vm_insnhelper.c.
References rb_bug(), and vm_get_cref0().
Referenced by eval_string_with_cref(), rb_vm_cref(), rb_vm_cref_in_context(), vm_call_method(), vm_get_cbase(), vm_get_const_base(), and vm_get_ev_const().
void rb_vm_rewrite_cref_stack | ( | NODE * | node, |
VALUE | old_klass, | ||
VALUE | new_klass, | ||
NODE ** | new_cref_ptr | ||
) |
Definition at line 282 of file vm_insnhelper.c.
References COPY_CREF_OMOD, NEW_CREF, NULL, and RB_OBJ_WRITE.
Referenced by clone_method().
|
static |
Definition at line 999 of file vm_insnhelper.c.
References bp, GET_THREAD(), rb_control_frame_struct::iseq, rb_iseq_struct::local_size, rb_bug(), RUBY_VM_PREVIOUS_CONTROL_FRAME, rb_control_frame_struct::sp, and rb_iseq_struct::type.
Referenced by vm_exec().
|
static |
Referenced by check_match().
|
static |
Definition at line 1613 of file vm_insnhelper.c.
References rb_method_definition_struct::attr, rb_method_definition_struct::body, rb_method_entry_struct::def, rb_method_attr_struct::id, rb_call_info_struct::me, rb_call_info_struct::recv, rb_control_frame_struct::sp, val, and vm_setivar().
Referenced by vm_call_method().
|
static |
Definition at line 1635 of file vm_insnhelper.c.
References ALLOCA_N, rb_call_info_struct::argc, MEMCPY, rb_control_frame_struct::sp, and vm_call_bmethod_body().
Referenced by vm_call_method().
|
inlinestatic |
Definition at line 1621 of file vm_insnhelper.c.
References rb_call_info_struct::argc, rb_call_info_struct::blockptr, rb_method_definition_struct::body, rb_method_entry_struct::def, rb_call_info_struct::defined_class, GetProcPtr, rb_call_info_struct::me, rb_thread_struct::passed_bmethod_me, rb_method_definition_struct::proc, proc, rb_call_info_struct::recv, val, and vm_invoke_proc().
Referenced by vm_call0_body(), and vm_call_bmethod().
|
static |
Definition at line 1598 of file vm_insnhelper.c.
References vm_call_cfunc_with_frame().
Referenced by vm_call_method().
|
static |
Definition at line 1487 of file vm_insnhelper.c.
References rb_method_cfunc_struct::argc, rb_call_info_struct::argc, argc, rb_call_info_struct::blockptr, rb_method_entry_struct::called_id, rb_thread_struct::cfp, rb_call_info_struct::defined_class, EXEC_EVENT_HOOK, rb_method_cfunc_struct::func, rb_method_cfunc_struct::invoker, rb_method_entry_struct::klass, len, rb_call_info_struct::me, Qundef, rb_bug(), rb_check_arity, rb_call_info_struct::recv, RUBY_DTRACE_CMETHOD_ENTRY_HOOK, RUBY_DTRACE_CMETHOD_RETURN_HOOK, RUBY_EVENT_C_CALL, RUBY_EVENT_C_RETURN, rb_control_frame_struct::sp, val, VM_ENVVAL_BLOCK_PTR, VM_FRAME_MAGIC_CFUNC, vm_method_cfunc_entry(), vm_pop_frame(), VM_PROFILE_UP, and vm_push_frame().
Referenced by vm_call_cfunc().
|
static |
Definition at line 1945 of file vm_insnhelper.c.
References vm_call_method().
Referenced by vm_search_method().
|
static |
Definition at line 1253 of file vm_insnhelper.c.
References rb_call_info_struct::argc, rb_method_definition_struct::body, rb_method_entry_struct::def, rb_method_definition_struct::iseq, rb_call_info_struct::me, rb_control_frame_struct::sp, vm_call_iseq_setup_2(), and vm_callee_setup_arg().
Referenced by vm_call0_body(), and vm_call_method().
|
static |
Definition at line 1260 of file vm_insnhelper.c.
References rb_call_info_struct::flag, LIKELY, vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), and VM_CALL_TAILCALL.
Referenced by vm_call_iseq_setup().
|
inlinestatic |
Definition at line 1271 of file vm_insnhelper.c.
References rb_iseq_struct::arg_size, rb_call_info_struct::argc, argv, rb_call_info_struct::aux, rb_call_info_struct::blockptr, rb_method_definition_struct::body, rb_method_entry_struct::def, rb_call_info_struct::defined_class, i, iseq_catch_table_entry::iseq, rb_method_definition_struct::iseq, rb_iseq_struct::iseq_encoded, rb_iseq_struct::local_size, rb_call_info_struct::me, rb_call_info_struct::opt_pc, Qnil, Qundef, rb_call_info_struct::recv, iseq_catch_table_entry::sp, rb_control_frame_struct::sp, rb_iseq_struct::stack_max, VM_ENVVAL_BLOCK_PTR, VM_FRAME_MAGIC_METHOD, and vm_push_frame().
Referenced by vm_call_iseq_setup_2(), and vm_callee_setup_arg().
|
inlinestatic |
Definition at line 1292 of file vm_insnhelper.c.
References rb_iseq_struct::arg_size, rb_call_info_struct::argc, argv, rb_call_info_struct::aux, rb_call_info_struct::blockptr, rb_method_definition_struct::body, rb_thread_struct::cfp, rb_method_entry_struct::def, rb_call_info_struct::defined_class, i, iseq_catch_table_entry::iseq, rb_method_definition_struct::iseq, rb_iseq_struct::iseq_encoded, rb_iseq_struct::local_size, rb_call_info_struct::me, rb_call_info_struct::opt_pc, Qnil, Qundef, rb_call_info_struct::recv, RUBY_VM_CHECK_INTS, RUBY_VM_PREVIOUS_CONTROL_FRAME, iseq_catch_table_entry::sp, rb_control_frame_struct::sp, rb_iseq_struct::stack_max, VM_ENVVAL_BLOCK_PTR, VM_FRAME_FLAG_FINISH, VM_FRAME_MAGIC_METHOD, VM_FRAME_TYPE_FINISH_P, and vm_push_frame().
Referenced by vm_call_iseq_setup_2(), and vm_callee_setup_arg().
|
static |
Definition at line 1605 of file vm_insnhelper.c.
References rb_method_definition_struct::attr, rb_method_definition_struct::body, rb_method_entry_struct::def, rb_method_attr_struct::id, rb_call_info_struct::me, rb_call_info_struct::recv, rb_control_frame_struct::sp, val, and vm_getivar().
Referenced by vm_call_method().
|
inlinestatic |
Definition at line 1769 of file vm_insnhelper.c.
References rb_call_info_struct::argc, rb_call_info_struct::aux, rb_method_definition_struct::body, rb_call_info_struct::call, CI_SET_FASTPATH, current_method_entry(), rb_method_entry_struct::def, rb_call_info_struct::defined_class, rb_control_frame_struct::ep, find_refinement(), rb_method_entry_struct::flag, rb_call_info_struct::flag, rb_call_info_struct::index, rb_control_frame_struct::iseq, rb_method_entry_struct::klass, klass, rb_call_info_struct::me, rb_control_frame_struct::me, rb_call_info_struct::mid, rb_call_info_struct::missing_reason, NIL_P(), NOEX_MASK, NOEX_PRIVATE, NOEX_PROTECTED, NOEX_SAFE, NOEX_SUPER, NOEX_VCALL, rb_method_definition_struct::optimize_type, rb_method_definition_struct::orig_me, Qnil, rb_bug(), rb_check_arity, rb_eSecurityError, rb_id2name(), rb_method_definition_eq(), rb_method_entry(), rb_obj_is_kind_of(), rb_raise(), rb_raise_method_missing(), rb_vm_get_cref(), RCLASS_ORIGIN, RCLASS_SUPER, rb_call_info_struct::recv, rb_thread_struct::safe_level, rb_control_frame_struct::self, STACK_ADDR_FROM_TOP, stat, rb_method_definition_struct::type, UNDEFINED_METHOD_ENTRY_P, VM_CALL_ARGS_SPLAT, vm_call_attrset(), vm_call_bmethod(), vm_call_cfunc(), VM_CALL_FCALL, vm_call_iseq_setup(), vm_call_ivar(), vm_call_method_missing(), vm_call_opt_call(), VM_CALL_OPT_SEND, vm_call_opt_send(), VM_CALL_SUPER, vm_call_super_method(), VM_CALL_VCALL, VM_METHOD_TYPE_ATTRSET, VM_METHOD_TYPE_BMETHOD, VM_METHOD_TYPE_CFUNC, VM_METHOD_TYPE_ISEQ, VM_METHOD_TYPE_IVAR, VM_METHOD_TYPE_MISSING, VM_METHOD_TYPE_NOTIMPLEMENTED, VM_METHOD_TYPE_OPTIMIZED, VM_METHOD_TYPE_REFINED, VM_METHOD_TYPE_UNDEF, and VM_METHOD_TYPE_ZSUPER.
Referenced by vm_call_general(), vm_call_method_missing(), vm_call_opt_send(), and vm_call_super_method().
|
static |
Definition at line 1708 of file vm_insnhelper.c.
References rb_call_info_struct::argc, rb_call_info_struct::aux, rb_call_info_struct::blockptr, CHECK_VM_STACK_OVERFLOW, CLASS_OF, rb_call_info_struct::defined_class, rb_call_info_struct::flag, ID2SYM, INC_SP, rb_call_info_struct::me, MEMMOVE, rb_thread_struct::method_missing_reason, rb_call_info_struct::mid, rb_call_info_struct::missing_reason, rb_method_entry(), rb_call_info_struct::recv, STACK_ADDR_FROM_TOP, VM_CALL_FCALL, vm_call_method(), and VM_CALL_OPT_SEND.
Referenced by vm_call_method(), and vm_search_super_method().
|
static |
Definition at line 1695 of file vm_insnhelper.c.
References ALLOCA_N, rb_call_info_struct::argc, rb_call_info_struct::blockptr, GetProcPtr, MEMCPY, proc, rb_vm_invoke_proc(), rb_call_info_struct::recv, and rb_control_frame_struct::sp.
Referenced by vm_call_method().
|
static |
Definition at line 1653 of file vm_insnhelper.c.
References rb_call_info_struct::argc, CLASS_OF, DEC_SP, rb_call_info_struct::defined_class, exc, rb_call_info_struct::flag, i, make_no_method_exception(), rb_call_info_struct::me, MEMMOVE, rb_call_info_struct::mid, NULL, rb_check_id(), rb_eArgError, rb_eNoMethodError, rb_exc_raise(), rb_long2int, rb_method_basic_definition_p(), rb_method_entry_without_refinements(), rb_raise(), rb_to_id(), rb_call_info_struct::recv, sym, SYM2ID, SYMBOL_P, TOPN, VM_CALL_FCALL, vm_call_method(), and VM_CALL_OPT_SEND.
Referenced by vm_call_method().
|
static |
Definition at line 1951 of file vm_insnhelper.c.
References vm_call_method().
Referenced by vm_call_method(), and vm_search_super_method().
|
inlinestatic |
Definition at line 1230 of file vm_insnhelper.c.
References rb_iseq_struct::arg_simple, rb_call_info_struct::argc, rb_iseq_struct::argc, argument_error(), rb_call_info_struct::aux, CI_SET_FASTPATH, rb_method_entry_struct::flag, rb_call_info_struct::flag, LIKELY, rb_call_info_struct::me, NOEX_PROTECTED, rb_call_info_struct::opt_pc, UNLIKELY, VM_CALL_ARGS_SPLAT, vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), VM_CALL_TAILCALL, and vm_callee_setup_arg_complex().
Referenced by vm_call_iseq_setup(), and vm_yield_setup_args().
|
inlinestatic |
Definition at line 1128 of file vm_insnhelper.c.
References ALLOCA_N, rb_iseq_struct::arg_block, rb_iseq_struct::arg_keyword, rb_iseq_struct::arg_keywords, 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_size, rb_call_info_struct::argc, rb_iseq_struct::argc, argc, argument_error(), argv, rb_proc_t::block, rb_call_info_struct::blockptr, GetProcPtr, i, if(), m, rb_thread_struct::mark_stack_len, max(), MEMCPY, min(), opts, rb_block_struct::proc, proc, Qnil, rb_ary_new4, rb_cProc, rb_vm_make_proc(), UNLIMITED_ARGUMENTS, and vm_callee_setup_keyword_arg().
Referenced by vm_callee_setup_arg().
|
inlinestatic |
Definition at line 1091 of file vm_insnhelper.c.
References rb_iseq_struct::arg_keyword_check, rb_iseq_struct::arg_keyword_required, rb_iseq_struct::arg_keyword_table, rb_iseq_struct::arg_keywords, argc, rb_thread_struct::cfp, rb_thread_struct::mark_stack_len, NIL_P(), NULL, rb_check_hash_type(), rb_extract_keywords(), rb_get_kwargs(), rb_hash_new(), iseq_catch_table_entry::sp, and rb_control_frame_struct::sp.
Referenced by vm_callee_setup_arg_complex(), and vm_yield_setup_block_args().
|
static |
Definition at line 1024 of file vm_insnhelper.c.
References rb_call_info_struct::argc, ary, b, rb_proc_t::block, rb_call_info_struct::blockiseq, rb_call_info_struct::blockptr, CHECK_VM_STACK_OVERFLOW, rb_call_info_struct::flag, GetProcPtr, i, rb_block_struct::iseq, len, NIL_P(), rb_block_struct::proc, proc, ptr, Qnil, RARRAY_CONST_PTR, RARRAY_LEN, rb_check_convert_type(), rb_eTypeError, rb_obj_classname(), rb_obj_is_proc(), rb_raise(), RUBY_VM_GET_BLOCK_PTR_IN_CFP, SAVE_RESTORE_CI, rb_control_frame_struct::sp, T_ARRAY, T_DATA, tmp, UNLIKELY, VM_CALL_ARGS_BLOCKARG, and VM_CALL_ARGS_SPLAT.
Referenced by vm_invoke_block().
Definition at line 359 of file vm_insnhelper.c.
References rb_eTypeError, rb_inspect(), rb_raise(), RB_TYPE_P, str, StringValuePtr, T_CLASS, and T_MODULE.
Referenced by vm_get_ev_const().
|
static |
Definition at line 303 of file vm_insnhelper.c.
References rb_thread_struct::cfp, COPY_CREF_OMOD, rb_control_frame_struct::ep, rb_block_struct::ep, rb_control_frame_struct::iseq, rb_block_struct::iseq, NEW_CREF, NIL_P(), Qnil, RB_OBJ_WRITE, vm_get_cref0(), and vm_get_ruby_level_caller_cfp().
|
inlinestatic |
Definition at line 781 of file vm_insnhelper.c.
References i, j, len, ptr, Qnil, RARRAY_CONST_PTR, RARRAY_LEN, rb_ary_new(), rb_ary_new4, rb_ary_to_ary(), RB_GC_GUARD(), RB_TYPE_P, rb_control_frame_struct::sp, T_ARRAY, and v.
Definition at line 326 of file vm_insnhelper.c.
References klass, Qundef, and rb_vm_get_cref().
Referenced by rb_vm_cbase().
Definition at line 342 of file vm_insnhelper.c.
References RNode::flags, klass, NODE_FL_CREF_PUSHED_BY_EVAL, Qundef, and rb_vm_get_cref().
Definition at line 256 of file vm_insnhelper.c.
References rb_iseq_struct::cref_stack, NULL, Qnil, RUBY_VM_NORMAL_ISEQ_P, VM_EP_LEP_P, and VM_EP_PREV_EP.
Referenced by rb_vm_get_cref(), and vm_cref_push().
|
inlinestatic |
Definition at line 462 of file vm_insnhelper.c.
References FL_SINGLETON, FL_TEST, RNode::flags, klass, NIL_P(), NODE_FL_CREF_PUSHED_BY_EVAL, rb_bug(), rb_eTypeError, rb_raise(), rb_warn(), and vm_get_iclass().
|
inlinestatic |
Definition at line 384 of file vm_insnhelper.c.
References av, rb_thread_struct::cfp, CLASS_OF, data, rb_control_frame_struct::ep, RNode::flags, klass, NIL_P(), NODE_FL_CREF_PUSHED_BY_EVAL, Qnil, Qundef, rb_autoload_load(), rb_autoloading_value(), rb_const_defined(), rb_const_get(), rb_public_const_defined_from(), rb_public_const_get_from(), rb_vm_get_cref(), RCLASS_CONST_TBL, rb_control_frame_struct::self, st_data_t, st_lookup(), val, vm_check_if_namespace(), and vm_get_iclass().
|
inlinestatic |
Definition at line 370 of file vm_insnhelper.c.
References FL_TEST, rb_control_frame_struct::klass, klass, RB_TYPE_P, RBASIC, RMODULE_IS_OVERLAID, T_ICLASS, and T_MODULE.
Referenced by vm_get_cvar_base(), and vm_get_ev_const().
|
static |
Referenced by vm_cref_push().
Definition at line 599 of file vm_insnhelper.c.
References vm_getivar().
Definition at line 506 of file vm_insnhelper.c.
References rb_call_info_struct::aux, iseq_inline_cache_entry::ic_serial, iseq_inline_cache_entry::ic_value, iseq_inline_cache_entry::index, rb_call_info_struct::index, index, klass, len, LIKELY, ptr, Qnil, Qundef, rb_attr_get(), rb_id2name(), rb_ivar_get(), RB_TYPE_P, rb_warning(), RBASIC, RCLASS_SERIAL, ROBJECT_IV_INDEX_TBL, ROBJECT_IVPTR, ROBJECT_NUMIV, st_data_t, st_lookup(), T_OBJECT, UNLIKELY, and val.
Referenced by vm_call_ivar(), and vm_getinstancevariable().
|
inlinestatic |
Definition at line 220 of file vm_insnhelper.c.
References lep_svar_get(), rb_bug(), rb_reg_last_match(), rb_reg_match_last(), rb_reg_match_post(), rb_reg_match_pre(), rb_reg_nth_match(), and val.
|
static |
Definition at line 2350 of file vm_insnhelper.c.
References rb_iseq_struct::arg_size, rb_call_info_struct::argc, block, block_proc_is_lambda(), BUILTIN_TYPE, rb_block_struct::ep, rb_call_info_struct::flag, GET_CFP, GET_ISEQ, GET_SP, iseq_catch_table_entry::iseq, rb_block_struct::iseq, rb_iseq_struct::iseq_encoded, rb_block_struct::klass, rb_iseq_struct::local_size, POPN, rb_block_struct::proc, Qnil, Qundef, rb_vm_localjump_error(), rb_block_struct::self, SET_SP, STACK_ADDR_FROM_TOP, rb_iseq_struct::stack_max, T_NODE, type, UNLIKELY, val, VM_CALL_ARGS_SPLAT, vm_caller_setup_args(), VM_CF_BLOCK_PTR(), VM_ENVVAL_PREV_EP_PTR, VM_FRAME_MAGIC_BLOCK, VM_FRAME_MAGIC_LAMBDA, vm_push_frame(), vm_yield_setup_args(), and vm_yield_with_cfunc().
Definition at line 2393 of file vm_insnhelper.c.
References rb_thread_struct::cfp, GET_THREAD(), rb_block_struct::iseq, rb_block_struct::proc, rb_bug(), rb_cProc, rb_vm_get_ruby_level_next_cfp(), rb_vm_make_proc(), and RUBY_VM_GET_BLOCK_PTR_IN_CFP.
Referenced by vm_once_exec().
|
inlinestatic |
Definition at line 1461 of file vm_insnhelper.c.
References rb_method_definition_struct::body, rb_method_definition_struct::cfunc, rb_method_entry_struct::def, rb_bug(), rb_method_definition_struct::type, UNDEF, VM_METHOD_TYPE_CFUNC, and VM_METHOD_TYPE_NOTIMPLEMENTED.
Referenced by vm_call_cfunc_with_frame().
Definition at line 2418 of file vm_insnhelper.c.
References NULL, iseq_inline_storage_entry::once, Qnil, and iseq_inline_storage_entry::running_thread.
Definition at line 2411 of file vm_insnhelper.c.
References proc, Qnil, rb_proc_call_with_block(), and vm_make_proc_with_iseq().
|
inlinestatic |
Definition at line 99 of file vm_insnhelper.c.
References rb_thread_struct::cfp, RUBY_VM_PREVIOUS_CONTROL_FRAME, SDR, and VMDEBUG.
Referenced by argument_error(), rb_binding_add_dynavars(), rb_frame_pop(), rb_vm_call_cfunc(), rb_vm_pop_cfunc_frame(), rb_vm_rewind_cfp(), vm_call0_cfunc_with_frame(), vm_call_cfunc_with_frame(), and vm_exec().
|
inlinestatic |
Definition at line 34 of file vm_insnhelper.c.
References rb_control_frame_struct::block_iseq, rb_thread_struct::cfp, CHECK_VM_STACK_OVERFLOW0, rb_control_frame_struct::ep, rb_control_frame_struct::flag, i, rb_control_frame_struct::iseq, rb_control_frame_struct::klass, klass, rb_control_frame_struct::me, rb_control_frame_struct::pc, rb_control_frame_struct::proc, Qnil, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, RUBY_VM_PREVIOUS_CONTROL_FRAME, SDR, rb_control_frame_struct::self, rb_control_frame_struct::sp, type, and VMDEBUG.
Referenced by argument_error(), invoke_block_from_c(), rb_vm_call_cfunc(), th_init(), vm_call0_cfunc_with_frame(), vm_call_cfunc_with_frame(), vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), vm_exec(), vm_invoke_block(), vm_set_eval_stack(), vm_set_top_stack(), and vm_yield_with_cfunc().
Definition at line 488 of file vm_insnhelper.c.
References rb_cObject, rb_const_defined_at(), RCLASS_SUPER, and tmp.
|
static |
Definition at line 844 of file vm_insnhelper.c.
References rb_call_info_struct::call, CLASS_OF, rb_call_info_struct::class_serial, rb_call_info_struct::defined_class, GET_GLOBAL_METHOD_STATE, rb_call_info_struct::klass, klass, LIKELY, rb_call_info_struct::me, rb_call_info_struct::method_state, rb_call_info_struct::mid, rb_method_entry(), RCLASS_SERIAL, and vm_call_general().
Referenced by opt_eq_func().
Definition at line 1959 of file vm_insnhelper.c.
References BUILTIN_TYPE, FL_TEST, RBASIC, RCLASS_ORIGIN, RCLASS_SUPER, RMODULE_IS_REFINEMENT, and T_ICLASS.
Referenced by vm_search_superclass().
|
static |
Definition at line 2027 of file vm_insnhelper.c.
References rb_call_info_struct::argc, rb_call_info_struct::aux, rb_method_definition_struct::body, BUILTIN_TYPE, rb_call_info_struct::call, CI_SET_FASTPATH, rb_method_entry_struct::def, rb_call_info_struct::defined_class, FL_TEST, GET_CFP, GET_ISEQ, iseq_catch_table_entry::iseq, rb_method_definition_struct::iseq, rb_call_info_struct::klass, rb_iseq_struct::klass, m, rb_call_info_struct::me, rb_call_info_struct::mid, rb_call_info_struct::missing_reason, NIL_P(), NOEX_SUPER, rb_iseq_struct::parent_iseq, PRIsVALUE, rb_eRuntimeError, rb_eTypeError, rb_method_entry(), rb_obj_class(), rb_obj_is_kind_of(), rb_raise(), RB_TYPE_P, RBASIC, RCLASS_REFINED_CLASS, RCLASS_SUPER, rb_call_info_struct::recv, RMODULE_INCLUDED_INTO_REFINEMENT, T_ICLASS, T_MODULE, TOPN, rb_method_definition_struct::type, vm_call_method_missing(), vm_call_super_method(), VM_METHOD_TYPE_ISEQ, vm_search_superclass(), and vm_super_outside().
|
static |
Definition at line 1976 of file vm_insnhelper.c.
References rb_method_entry_struct::def, rb_iseq_struct::defined_method_id, rb_control_frame_struct::ep, GET_CFP, GET_THREAD(), rb_control_frame_struct::iseq, rb_call_info_struct::klass, rb_iseq_struct::klass, rb_control_frame_struct::klass, rb_iseq_struct::local_iseq, rb_control_frame_struct::me, rb_call_info_struct::mid, rb_method_definition_struct::original_id, rb_iseq_struct::parent_iseq, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, RUBY_VM_PREVIOUS_CONTROL_FRAME, VM_EP_PREV_EP, and vm_search_normal_superclass().
Referenced by vm_search_super_method().
Definition at line 605 of file vm_insnhelper.c.
References vm_setivar().
|
inlinestatic |
Definition at line 558 of file vm_insnhelper.c.
References rb_call_info_struct::aux, iseq_inline_cache_entry::ic_serial, iseq_inline_cache_entry::ic_value, iseq_inline_cache_entry::index, rb_call_info_struct::index, index, klass, len, LIKELY, ptr, rb_check_frozen, rb_ivar_set(), RB_OBJ_WRITE, RB_TYPE_P, RBASIC, RCLASS_SERIAL, ROBJECT_IV_INDEX_TBL, ROBJECT_IVPTR, ROBJECT_NUMIV, st_data_t, st_lookup(), T_OBJECT, and val.
Referenced by vm_call_attrset(), and vm_setinstancevariable().
Definition at line 28 of file vm_insnhelper.c.
References rb_exc_raise(), and sysstack_error.
Definition at line 1970 of file vm_insnhelper.c.
References rb_eNoMethodError, and rb_raise().
Referenced by vm_search_super_method().
|
static |
Definition at line 611 of file vm_insnhelper.c.
References BUILTIN_TYPE, rb_iseq_struct::catch_table, rb_iseq_struct::catch_table_size, iseq_catch_table_entry::CATCH_TYPE_BREAK, iseq_catch_table_entry::cont, iseq_catch_table_entry::end, entry, rb_control_frame_struct::ep, err, FIX2INT, FIXNUM_P, flag, GC_GUARDED_PTR_REF, GET_CFP, GET_EP, GET_ISEQ, GET_THROWOBJ_STATE, i, int, rb_control_frame_struct::iseq, rb_iseq_struct::iseq_encoded, level, NEW_THROW_OBJECT, rb_iseq_struct::parent_iseq, rb_control_frame_struct::pc, rb_bug(), rb_vm_localjump_error(), RUBY_VM_PREVIOUS_CONTROL_FRAME, rb_thread_struct::stack_size, iseq_catch_table_entry::start, rb_thread_struct::state, state, SYMBOL_P, T_NODE, TAG_BREAK, TAG_RAISE, TAG_RETRY, TAG_RETURN, TAG_THROW, iseq_catch_table_entry::type, rb_iseq_struct::type, VM_CF_LEP(), VM_EP_PREV_EP, VM_FRAME_MAGIC_LAMBDA, and VM_FRAME_TYPE.
|
inlinestatic |
Definition at line 2321 of file vm_insnhelper.c.
References rb_iseq_struct::arg_block, rb_iseq_struct::arg_opts, rb_iseq_struct::arg_post_len, rb_iseq_struct::arg_rest, rb_iseq_struct::arg_simple, rb_call_info_struct::argc, rb_iseq_struct::argc, argc, rb_call_info_struct::aux, rb_call_info_struct::blockptr, rb_call_info_struct::flag, rb_call_info_struct::opt_pc, vm_callee_setup_arg(), and vm_yield_setup_block_args().
Referenced by invoke_block_from_c(), and vm_invoke_block().
|
inlinestatic |
Definition at line 2205 of file vm_insnhelper.c.
References rb_iseq_struct::arg_block, rb_iseq_struct::arg_keyword, rb_iseq_struct::arg_keywords, rb_iseq_struct::arg_opts, rb_iseq_struct::arg_post_len, rb_iseq_struct::arg_rest, rb_iseq_struct::arg_simple, rb_iseq_struct::arg_size, rb_iseq_struct::argc, argc, ary, rb_thread_struct::cfp, CHECK_VM_STACK_OVERFLOW, i, m, rb_thread_struct::mark_stack_len, MEMCPY, min(), NIL_P(), rb_block_struct::proc, Qnil, r, RARRAY_CONST_PTR, RARRAY_LENINT, rb_ary_new(), rb_ary_new4, rb_check_array_type(), rb_cProc, rb_vm_make_proc(), vm_callee_setup_keyword_arg(), and vm_yield_setup_block_args_complex().
Referenced by vm_yield_setup_args().
|
inlinestatic |
Definition at line 2148 of file vm_insnhelper.c.
References 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::argc, ary, i, len, m, MEMMOVE, opts, Qnil, r, rb_ary_new4, and iseq_catch_table_entry::start.
Referenced by vm_yield_setup_block_args().
|
inlinestatic |
Definition at line 2102 of file vm_insnhelper.c.
References arg, block_proc_is_lambda(), rb_thread_struct::cfp, rb_block_struct::ep, rb_block_struct::iseq, rb_block_struct::proc, Qnil, rb_ary_new4, rb_cProc, rb_vm_make_proc(), rb_control_frame_struct::sp, val, VM_ENVVAL_PREV_EP_PTR, VM_FRAME_MAGIC_IFUNC, and vm_push_frame().
Referenced by invoke_block_from_c(), and vm_invoke_block().