Ruby
2.4.2p198(2017-09-14revision59899)
|
#include "insns.inc"
#include <math.h>
#include "constant.h"
#include "internal.h"
#include "probes.h"
#include "probes_helper.h"
#include "ruby/config.h"
#include "vm_args.c"
Go to the source code of this file.
Macros | |
#define | vm_check_frame(a, b, c, d) |
#define | USE_IC_FOR_IVAR 1 |
#define | CHECK_CMP_NAN(a, b) /* do nothing */ |
#define | VM_PROFILE 0 |
#define | VM_PROFILE_UP(x) |
#define | VM_PROFILE_ATEXIT() |
#define CHECK_CMP_NAN | ( | a, | |
b | |||
) | /* do nothing */ |
Definition at line 1357 of file vm_insnhelper.c.
Referenced by double_cmp_ge(), double_cmp_gt(), double_cmp_le(), and double_cmp_lt().
#define USE_IC_FOR_IVAR 1 |
Definition at line 876 of file vm_insnhelper.c.
#define vm_check_frame | ( | a, | |
b, | |||
c, | |||
d | |||
) |
Definition at line 164 of file vm_insnhelper.c.
Referenced by vm_push_frame(), and vm_stackoverflow().
#define VM_PROFILE 0 |
Definition at line 1689 of file vm_insnhelper.c.
#define VM_PROFILE_ATEXIT | ( | ) |
Definition at line 1714 of file vm_insnhelper.c.
Referenced by Init_VM().
#define VM_PROFILE_UP | ( | x | ) |
Definition at line 1713 of file vm_insnhelper.c.
Referenced by vm_call0(), vm_call0_cfunc_with_frame(), and vm_call_cfunc_with_frame().
|
static |
Definition at line 2101 of file vm_insnhelper.c.
References rb_method_definition_struct::alias, rb_method_definition_struct::alias_count, rb_method_definition_struct::body, rb_callable_method_entry_struct::called_id, rb_method_definition_struct::complemented_count, rb_method_entry_struct::def, rb_callable_method_entry_struct::def, rb_method_entry_struct::defined_class, rb_callable_method_entry_struct::defined_class, find_defined_class_by_owner(), method_definition_create(), method_definition_set(), rb_method_definition_struct::original_id, rb_method_alias_struct::original_me, rb_method_entry_struct::owner, rb_method_entry_complement_defined_class(), RB_OBJ_WRITE, RB_TYPE_P, T_MODULE, VM_ASSERT, and VM_METHOD_TYPE_ALIAS.
Referenced by vm_call0_body(), and vm_call_method_each_type().
ALWAYS_INLINE | ( | static VALUE | vm_getivarVALUE, ID, IC, struct rb_call_cache *, int | ) |
Definition at line 2411 of file vm_insnhelper.c.
References GetProcPtr, and rb_proc_t::is_lambda.
Referenced by invoke_block_from_c_splattable(), invoke_block_from_c_unsplattable(), and vm_invoke_block().
|
static |
Definition at line 1593 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1599 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1653 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1659 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1665 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1671 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1677 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1683 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1605 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1611 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1617 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1623 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1629 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1635 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1641 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1647 of file vm_insnhelper.c.
References func.
|
static |
Definition at line 1587 of file vm_insnhelper.c.
|
static |
Definition at line 1581 of file vm_insnhelper.c.
References func, and rb_ary_new4.
|
inlinestatic |
Definition at line 1256 of file vm_insnhelper.c.
References rb_method_definition_struct::body, rb_method_definition_struct::cfunc, rb_callable_method_entry_struct::def, func, rb_method_cfunc_struct::func, rb_method_definition_struct::type, and VM_METHOD_TYPE_CFUNC.
Referenced by opt_eq_func().
Definition at line 516 of file vm_insnhelper.c.
References vm_svar::cref_or_me, FALSE, imemo_cref, imemo_ment, imemo_svar, method_entry_cref(), NULL, Qfalse, rb_bug(), rb_obj_info(), RB_TYPE_P, and T_IMEMO.
Referenced by method_entry_cref(), and vm_env_cref().
|
static |
Definition at line 1328 of file vm_insnhelper.c.
References CLASS_OF, GET_THREAD, idEqq, rb_bug(), rb_callable_method_entry_with_refinements(), rb_cModule, rb_eTypeError, rb_funcallv, 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 462 of file vm_insnhelper.c.
References vm_svar::cref_or_me, FALSE, imemo_cref, imemo_ment, imemo_svar, NULL, Qfalse, rb_bug(), rb_obj_info(), RB_TYPE_P, and T_IMEMO.
Referenced by rb_vm_frame_method_entry(), and vm_getspecial().
|
static |
Definition at line 2725 of file vm_insnhelper.c.
References DEFINED_METHOD, idRespond_to_missing, Qfalse, Qundef, rb_check_funcall(), and RTEST.
Referenced by vm_defined().
|
static |
Definition at line 1912 of file vm_insnhelper.c.
References rb_call_info::flag, MISSING_FCALL, MISSING_NOENTRY, MISSING_SUPER, MISSING_VCALL, stat, VM_CALL_FCALL, VM_CALL_SUPER, and VM_CALL_VCALL.
Referenced by vm_call_method_nome(), and vm_call_opt_send().
|
static |
Definition at line 581 of file vm_insnhelper.c.
References vm_svar::cref_or_me, FALSE, imemo_cref, imemo_ment, imemo_svar, rb_bug(), RB_OBJ_WRITE, RB_TYPE_P, T_IMEMO, vm_cref_dup(), and VM_FORCE_WRITE().
Referenced by vm_cref_replace_with_duplicated_cref().
|
static |
Definition at line 2063 of file vm_insnhelper.c.
References rb_iseq_struct::body, rb_control_frame_struct::iseq, rb_iseq_constant_body::local_iseq, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, RUBY_VM_PREVIOUS_CONTROL_FRAME, and rb_iseq_constant_body::type.
Referenced by find_refinement(), and vm_call_method_each_type().
|
static |
Definition at line 1433 of file vm_insnhelper.c.
References rb_method_definition_struct::body, rb_method_definition_struct::iseq, rb_method_iseq_struct::iseqptr, rb_bug(), rb_iseq_check(), rb_method_definition_struct::type, and VM_METHOD_TYPE_ISEQ.
Referenced by rb_method_entry_make(), vm_call_iseq_setup(), vm_call_iseq_setup_normal(), vm_call_iseq_setup_normal_0start(), and vm_call_iseq_setup_tailcall().
|
inlinestatic |
Definition at line 1382 of file vm_insnhelper.c.
References CHECK_CMP_NAN, Qfalse, and Qtrue.
|
inlinestatic |
Definition at line 1375 of file vm_insnhelper.c.
References CHECK_CMP_NAN, Qfalse, and Qtrue.
|
inlinestatic |
Definition at line 1368 of file vm_insnhelper.c.
References CHECK_CMP_NAN, Qfalse, and Qtrue.
|
inlinestatic |
Definition at line 1361 of file vm_insnhelper.c.
References CHECK_CMP_NAN, Qfalse, and Qtrue.
Definition at line 2082 of file vm_insnhelper.c.
References FL_TEST, RB_TYPE_P, RBASIC_CLASS, RCLASS_SUPER, RICLASS_IS_ORIGIN, RTEST, and T_ICLASS.
Referenced by aliased_callable_method_entry().
Definition at line 2053 of file vm_insnhelper.c.
References current_method_entry(), NIL_P, PUREFUNC(), Qnil, and rb_hash_lookup().
Referenced by resolve_refined_method(), and vm_call_method_each_type().
Definition at line 555 of file vm_insnhelper.c.
References vm_svar::cref_or_me, FALSE, imemo_cref, imemo_svar, RB_TYPE_P, T_IMEMO, and TRUE.
Referenced by vm_env_cref_by_cref().
|
static |
Definition at line 337 of file vm_insnhelper.c.
References NULL, Qfalse, rb_thread_struct::root_lep, rb_thread_struct::root_svar, VM_ASSERT, and VM_ENV_DATA_INDEX_ME_CREF.
Referenced by lep_svar_get(), and lep_svar_set().
|
static |
Definition at line 367 of file vm_insnhelper.c.
References imemo_svar, lep_svar(), NIL_P, Qfalse, Qnil, rb_ary_entry(), VM_SVAR_BACKREF, VM_SVAR_EXTRA_START, and VM_SVAR_LASTLINE.
Referenced by vm_cfp_svar_get(), and vm_getspecial().
|
static |
Definition at line 398 of file vm_insnhelper.c.
References imemo_svar, lep_svar(), lep_svar_write(), NIL_P, Qfalse, rb_ary_new(), rb_ary_store(), RB_OBJ_WRITE, svar_new(), VM_SVAR_BACKREF, VM_SVAR_EXTRA_START, and VM_SVAR_LASTLINE.
Referenced by vm_cfp_svar_set().
|
inlinestatic |
Definition at line 354 of file vm_insnhelper.c.
References NULL, RB_OBJ_WRITE, rb_thread_struct::root_lep, rb_thread_struct::root_svar, rb_thread_struct::self, VM_ASSERT, VM_ENV_DATA_INDEX_ME_CREF, and vm_env_write().
Referenced by lep_svar_set().
|
static |
Referenced by aliased_callable_method_entry(), and vm_base_ptr().
|
static |
Referenced by aliased_callable_method_entry(), and vm_base_ptr().
|
static |
Definition at line 502 of file vm_insnhelper.c.
References rb_method_definition_struct::body, check_cref(), rb_method_iseq_struct::cref, rb_callable_method_entry_struct::def, rb_method_definition_struct::iseq, NULL, PUREFUNC(), rb_method_definition_struct::type, and VM_METHOD_TYPE_ISEQ.
Referenced by check_cref().
NOINLINE | ( | static void | vm_env_write_slowpathconst VALUE *ep, int index, VALUE v | ) |
Referenced by rb_error_arity().
|
inlinestatic |
Definition at line 1272 of file vm_insnhelper.c.
References BASIC_OP_UNREDEFINED_P, BOP_EQ, check_cfunc(), FIXNUM_2_P, FLOAT_REDEFINED_OP_FLAG, FLONUM_2_P, INTEGER_REDEFINED_OP_FLAG, isnan, rb_call_cache::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().
PUREFUNC | ( | static rb_callable_method_entry_t * | check_method_entryVALUE obj, int can_be_svar | ) |
Referenced by find_refinement(), method_entry_cref(), and vm_getspecial().
PUREFUNC | ( | static rb_cref_t * | check_crefVALUE, int | ) |
PUREFUNC | ( | static rb_control_frame_t * | current_method_entryrb_thread_t *th, rb_control_frame_t *cfp | ) |
|
inlinestatic |
Definition at line 262 of file vm_insnhelper.c.
References rb_eArgError, rb_exc_new3, rb_sprintf(), and UNLIMITED_ARGUMENTS.
Referenced by argument_arity_error(), and rb_error_arity().
Definition at line 1313 of file vm_insnhelper.c.
References rb_call_cache::class_serial, idEq, rb_call_cache::me, rb_call_cache::method_state, rb_call_info::mid, NULL, opt_eq_func(), and vm_call0().
Referenced by rb_ary_includes(), rb_ary_index(), and rb_ary_rindex().
void rb_error_arity | ( | int | argc, |
int | min, | ||
int | max | ||
) |
Definition at line 278 of file vm_insnhelper.c.
References NOINLINE(), rb_arity_error_new(), rb_exc_raise(), and vm_env_write_slowpath().
Referenced by econv_args(), econv_primitive_convert(), enum_slice_before(), function_call(), iseqw_s_compile(), iseqw_s_compile_file(), rb_check_arity(), rb_io_s_popen(), and rb_scan_args().
|
static |
Referenced by vm_base_ptr(), and vm_call_method_each_type().
Definition at line 309 of file vm_insnhelper.c.
References FALSE, imemo_cref, imemo_ment, imemo_svar, rb_bug(), rb_obj_info(), RB_TYPE_P, T_IMEMO, TRUE, and vm_env_write().
const rb_callable_method_entry_t* rb_vm_frame_method_entry | ( | const rb_control_frame_t * | cfp | ) |
Definition at line 488 of file vm_insnhelper.c.
References check_method_entry(), rb_control_frame_struct::ep, FALSE, NULL, TRUE, VM_ENV_DATA_INDEX_ME_CREF, VM_ENV_LOCAL_P(), and VM_ENV_PREV_EP().
Referenced by backtrace_each(), control_frame_dump(), frame_called_id(), frame_func_id(), hook_before_rewind(), rb_profile_frames(), rb_raise_jump(), rb_thread_current_status(), rb_vm_control_frame_id_and_class(), rb_vm_pop_cfunc_frame(), top_using(), vm_call_method_each_type(), vm_call_super(), vm_defined(), vm_exec(), and vm_search_super_method().
Definition at line 635 of file vm_insnhelper.c.
References NULL, rb_bug(), and vm_env_cref().
Referenced by eval_string_with_cref(), rb_vm_cref(), rb_vm_cref_in_context(), vm_call_method_each_type(), vm_defined(), vm_get_cbase(), vm_get_const_base(), vm_get_const_key_cref(), and vm_get_ev_const().
rb_control_frame_t* FUNC_FASTCALL() rb_vm_opt_struct_aref | ( | rb_thread_t * | th, |
rb_control_frame_t * | reg_cfp | ||
) |
Definition at line 2709 of file vm_insnhelper.c.
References GET_SELF, rb_struct_aref(), and TOPN.
Referenced by define_aref_method().
rb_control_frame_t* FUNC_FASTCALL() rb_vm_opt_struct_aset | ( | rb_thread_t * | th, |
rb_control_frame_t * | reg_cfp | ||
) |
Definition at line 2716 of file vm_insnhelper.c.
References GET_SELF, rb_struct_aset(), and TOPN.
Referenced by define_aset_method().
void rb_vm_pop_frame | ( | rb_thread_t * | th | ) |
Definition at line 255 of file vm_insnhelper.c.
References rb_thread_struct::cfp, rb_control_frame_struct::ep, and vm_pop_frame().
Referenced by raise_argument_error(), rb_binding_add_dynavars(), rb_raise_jump(), rb_threadptr_exec_event_hooks_orig(), rb_vm_call_cfunc(), rb_vm_rewind_cfp(), vm_call0(), vm_call0_cfunc_with_frame(), vm_call_cfunc_with_frame(), vm_exec(), and vm_yield_with_cfunc().
rb_control_frame_t* rb_vm_push_frame | ( | rb_thread_t * | th, |
const rb_iseq_t * | iseq, | ||
VALUE | type, | ||
VALUE | self, | ||
VALUE | specval, | ||
VALUE | cref_or_me, | ||
const VALUE * | pc, | ||
VALUE * | sp, | ||
int | local_size, | ||
int | stack_max | ||
) |
Definition at line 226 of file vm_insnhelper.c.
References vm_push_frame().
Referenced by fiber_init(), and fiber_t_alloc().
void rb_vm_rewrite_cref | ( | rb_cref_t * | cref, |
VALUE | old_klass, | ||
VALUE | new_klass, | ||
rb_cref_t ** | new_cref_ptr | ||
) |
Definition at line 665 of file vm_insnhelper.c.
References CREF_CLASS(), CREF_NEXT(), FALSE, METHOD_VISI_UNDEF, rb_cref_struct::next, NULL, and vm_cref_new_use_prev().
Referenced by clone_method().
|
static |
Definition at line 2129 of file vm_insnhelper.c.
References rb_method_definition_struct::body, rb_callable_method_entry_struct::def, rb_method_entry_struct::defined_class, NULL, rb_method_refined_struct::orig_me, rb_notimplement(), rb_method_definition_struct::refined, UNDEFINED_METHOD_ENTRY_P, and VM_ASSERT.
Referenced by vm_call0_body(), vm_call_method_each_type(), vm_call_method_missing(), and vm_call_zsuper().
Definition at line 25 of file vm_insnhelper.c.
References rb_class_real(), rb_obj_alloc(), rb_obj_copy_ivar(), and RBASIC_CLASS.
Referenced by setup_exception(), and vm_stackoverflow().
Definition at line 1457 of file vm_insnhelper.c.
References rb_iseq_struct::body, FALSE, rb_iseq_constant_body::flags, and rb_iseq_constant_body::param.
Referenced by vm_callee_setup_arg(), and vm_callee_setup_block_arg().
Definition at line 392 of file vm_insnhelper.c.
References imemo_svar, Qnil, and rb_imemo_new().
Referenced by lep_svar_set().
|
static |
Definition at line 1389 of file vm_insnhelper.c.
References rb_iseq_struct::body, bp, d1, GET_THREAD, rb_control_frame_struct::iseq, rb_iseq_constant_body::local_table_size, method_definition_create(), method_definition_set(), NULL, rb_bug(), rb_method_definition_eq(), RUBY_VM_PREVIOUS_CONTROL_FRAME, rb_control_frame_struct::sp, rb_iseq_constant_body::type, vm_call_iseq_setup_2(), vm_call_iseq_setup_func(), vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), vm_call_method(), vm_call_method_each_type(), vm_call_method_nome(), vm_call_super_method(), VM_ENV_DATA_SIZE, and VM_FRAME_RUBYFRAME_P().
Referenced by rb_vmdebug_stack_dump_th(), and vm_exec().
|
static |
Definition at line 2425 of file vm_insnhelper.c.
References block_handler_type_ifunc, block_handler_type_iseq, block_handler_type_proc, block_handler_type_symbol, Qnil, rb_cProc, rb_sym_to_proc(), rb_vm_make_proc(), VM_BH_TO_CAPT_BLOCK(), VM_BLOCK_HANDLER_NONE, and vm_block_handler_type().
Referenced by vm_yield_with_cfunc(), and vm_yield_with_symbol().
|
static |
Referenced by check_match(), and rb_equal_opt().
|
static |
Definition at line 1875 of file vm_insnhelper.c.
References rb_method_definition_struct::attr, rb_method_definition_struct::body, rb_callable_method_entry_struct::def, rb_method_attr_struct::id, rb_call_cache::me, NULL, rb_calling_info::recv, rb_control_frame_struct::sp, val, and vm_setivar().
Referenced by vm_call_method_each_type().
|
static |
Definition at line 1897 of file vm_insnhelper.c.
References ALLOCA_N, argc, rb_calling_info::argc, argv, CALLER_SETUP_ARG, MEMCPY, rb_control_frame_struct::sp, and vm_call_bmethod_body().
Referenced by vm_call_method_each_type().
|
inlinestatic |
Definition at line 1883 of file vm_insnhelper.c.
References rb_calling_info::argc, rb_calling_info::block_handler, rb_method_definition_struct::body, rb_callable_method_entry_struct::def, GetProcPtr, rb_call_cache::me, rb_thread_struct::passed_bmethod_me, rb_method_definition_struct::proc, rb_calling_info::recv, val, and vm_invoke_bmethod().
Referenced by vm_call0_body(), and vm_call_bmethod().
|
static |
Definition at line 1860 of file vm_insnhelper.c.
References CALLER_SETUP_ARG, and vm_call_cfunc_with_frame().
Referenced by vm_call_cfunc_with_frame(), and vm_call_method_each_type().
|
static |
Definition at line 1746 of file vm_insnhelper.c.
References rb_method_cfunc_struct::argc, argc, rb_calling_info::argc, argv, rb_call_cache::aux, rb_calling_info::block_handler, rb_callable_method_entry_struct::called_id, CALLER_SETUP_ARG, rb_thread_struct::cfp, CI_SET_FASTPATH, rb_callable_method_entry_struct::def, rb_control_frame_struct::ep, EXEC_EVENT_HOOK, rb_call_info::flag, rb_method_cfunc_struct::func, rb_call_cache::inc_sp, rb_method_cfunc_struct::invoker, len, rb_call_cache::me, METHOD_VISI_PROTECTED, rb_call_info::mid, NULL, rb_method_definition_struct::original_id, rb_callable_method_entry_struct::owner, Qnil, Qundef, rb_bug(), rb_check_arity, rb_vm_pop_frame(), rb_calling_info::recv, RUBY_DTRACE_CMETHOD_ENTRY_HOOK, RUBY_DTRACE_CMETHOD_RETURN_HOOK, RUBY_EVENT_C_CALL, RUBY_EVENT_C_RETURN, RUBY_VM_PREVIOUS_CONTROL_FRAME, rb_control_frame_struct::sp, STACK_ADDR_FROM_TOP, UNLIKELY, val, VM_CALL_ARGS_SPLAT, vm_call_cfunc(), VM_ENV_FLAG_LOCAL, VM_FRAME_FLAG_CFRAME, 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 2323 of file vm_insnhelper.c.
References vm_call_method().
Referenced by vm_expandarray(), and vm_search_method().
|
static |
Definition at line 1491 of file vm_insnhelper.c.
References rb_calling_info::argc, rb_iseq_struct::body, rb_callable_method_entry_struct::def, def_iseq_ptr(), rb_iseq_constant_body::local_table_size, rb_call_cache::me, rb_iseq_constant_body::param, rb_iseq_constant_body::size, rb_control_frame_struct::sp, vm_call_iseq_setup_2(), and vm_callee_setup_arg().
Referenced by vm_call0_body(), and vm_call_method_each_type().
|
inlinestatic |
Definition at line 1501 of file vm_insnhelper.c.
References rb_call_info::flag, LIKELY, vm_call_iseq_setup_normal(), vm_call_iseq_setup_tailcall(), and VM_CALL_TAILCALL.
Referenced by vm_base_ptr(), and vm_call_iseq_setup().
|
static |
Referenced by vm_base_ptr(), and vm_callee_setup_arg().
|
inlinestatic |
Definition at line 1513 of file vm_insnhelper.c.
References rb_calling_info::argc, argv, rb_calling_info::block_handler, rb_iseq_struct::body, rb_callable_method_entry_struct::def, def_iseq_ptr(), rb_iseq_constant_body::iseq_encoded, rb_call_cache::me, Qundef, rb_calling_info::recv, rb_control_frame_struct::sp, rb_iseq_constant_body::stack_max, VM_ENV_FLAG_LOCAL, VM_FRAME_MAGIC_METHOD, and vm_push_frame().
Referenced by vm_base_ptr(), vm_call_iseq_setup_2(), and vm_call_iseq_setup_normal_0start().
|
static |
Definition at line 1448 of file vm_insnhelper.c.
References rb_iseq_struct::body, rb_callable_method_entry_struct::def, def_iseq_ptr(), rb_iseq_constant_body::local_table_size, rb_call_cache::me, rb_iseq_constant_body::param, rb_iseq_constant_body::size, and vm_call_iseq_setup_normal().
|
inlinestatic |
Definition at line 1531 of file vm_insnhelper.c.
References rb_calling_info::argc, argv, rb_calling_info::block_handler, rb_iseq_struct::body, rb_thread_struct::cfp, rb_captured_block::code, rb_callable_method_entry_struct::def, def_iseq_ptr(), rb_control_frame_struct::ep, rb_iseq_constant_body::iseq_encoded, rb_iseq_constant_body::local_table_size, rb_call_cache::me, rb_iseq_constant_body::param, Qundef, rb_calling_info::recv, RUBY_VM_CHECK_INTS, RUBY_VM_PREVIOUS_CONTROL_FRAME, rb_iseq_constant_body::size, rb_control_frame_struct::sp, rb_iseq_constant_body::stack_max, rb_captured_block::val, VM_BH_FROM_CFP_P(), VM_BH_FROM_IFUNC_BLOCK(), VM_BH_FROM_ISEQ_BLOCK(), VM_BH_ISEQ_BLOCK_P(), VM_BH_TO_CAPT_BLOCK(), VM_CFP_TO_CAPTURED_BLOCK(), VM_ENV_FLAG_LOCAL, VM_FRAME_FINISHED_P(), VM_FRAME_FLAG_FINISH, VM_FRAME_MAGIC_METHOD, vm_pop_frame(), and vm_push_frame().
Referenced by vm_base_ptr(), vm_call_iseq_setup_2(), and vm_call_iseq_setup_tailcall_0start().
|
static |
Definition at line 1442 of file vm_insnhelper.c.
References vm_call_iseq_setup_tailcall().
|
static |
Definition at line 1868 of file vm_insnhelper.c.
References rb_method_definition_struct::attr, rb_method_definition_struct::body, rb_callable_method_entry_struct::def, rb_method_attr_struct::id, rb_call_cache::me, NULL, rb_calling_info::recv, rb_control_frame_struct::sp, and vm_getivar().
Referenced by vm_call_method_each_type().
|
inlinestatic |
Definition at line 2275 of file vm_insnhelper.c.
References rb_call_cache::aux, CI_SET_FASTPATH, rb_callable_method_entry_struct::defined_class, rb_call_info::flag, rb_call_cache::me, METHOD_ENTRY_VISI, rb_call_cache::method_missing_reason, METHOD_VISI_PRIVATE, METHOD_VISI_PROTECTED, METHOD_VISI_PUBLIC, MISSING_PRIVATE, MISSING_PROTECTED, MISSING_VCALL, NULL, rb_bug(), rb_obj_is_kind_of(), rb_control_frame_struct::self, stat, VM_ASSERT, VM_CALL_FCALL, vm_call_method_each_type(), vm_call_method_missing(), vm_call_method_nome(), VM_CALL_OPT_SEND, and VM_CALL_VCALL.
Referenced by vm_base_ptr(), vm_call_general(), vm_call_method_each_type(), vm_call_method_missing(), vm_call_opt_send(), and vm_call_super_method().
|
static |
Definition at line 2152 of file vm_insnhelper.c.
References aliased_callable_method_entry(), rb_calling_info::argc, rb_call_cache::aux, rb_method_definition_struct::body, rb_call_cache::call, CALLER_SETUP_ARG, CI_SET_FASTPATH, CREF_REFINEMENTS(), current_method_entry(), rb_callable_method_entry_struct::def, rb_control_frame_struct::ep, find_refinement(), rb_call_info::flag, rb_call_cache::index, rb_call_cache::me, rb_call_cache::method_missing_reason, rb_call_info::mid, NIL_P, NULL, rb_method_definition_struct::optimize_type, rb_method_refined_struct::orig_me, rb_callable_method_entry_struct::owner, Qnil, rb_bug(), rb_callable_method_entry(), rb_check_arity, rb_method_definition_eq(), rb_vm_frame_method_entry(), rb_vm_get_cref(), RCLASS_ORIGIN, rb_method_definition_struct::refined, refined_method_callable_without_refinement(), TRUE, rb_method_definition_struct::type, VM_ASSERT, VM_CALL_ARGS_SPLAT, vm_call_attrset(), vm_call_bmethod(), vm_call_cfunc(), vm_call_iseq_setup(), vm_call_ivar(), VM_CALL_KWARG, vm_call_method(), vm_call_method_missing(), vm_call_method_nome(), vm_call_opt_call(), vm_call_opt_send(), vm_call_zsuper(), VM_METHOD_TYPE_ALIAS, 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_base_ptr(), vm_call_method(), and vm_call_zsuper().
|
static |
Definition at line 1999 of file vm_insnhelper.c.
References argc, rb_calling_info::argc, argv, rb_call_cache::aux, CALLER_SETUP_ARG, CHECK_VM_STACK_OVERFLOW, CLASS_OF, rb_call_info::flag, ID2SYM, INC_SP, rb_call_cache::me, MEMMOVE, rb_call_cache::method_missing_reason, rb_thread_struct::method_missing_reason, rb_call_info::mid, rb_call_info::orig_argc, rb_callable_method_entry_without_refinements(), rb_calling_info::recv, refined_method_callable_without_refinement(), STACK_ADDR_FROM_TOP, VM_CALL_FCALL, vm_call_method(), and VM_CALL_OPT_SEND.
Referenced by vm_call_method(), vm_call_method_each_type(), vm_call_method_nome(), and vm_search_super_method().
|
static |
Definition at line 2257 of file vm_insnhelper.c.
References rb_calling_info::argc, argv, rb_call_cache::aux, ci_missing_reason(), CI_SET_FASTPATH, rb_call_cache::method_missing_reason, rb_call_info::mid, rb_raise_method_missing(), rb_calling_info::recv, STACK_ADDR_FROM_TOP, stat, and vm_call_method_missing().
Referenced by vm_base_ptr(), vm_call_method(), vm_call_method_each_type(), and vm_call_zsuper().
|
static |
Definition at line 1981 of file vm_insnhelper.c.
References ALLOCA_N, argc, rb_calling_info::argc, argv, rb_calling_info::block_handler, CALLER_SETUP_ARG, GetProcPtr, MEMCPY, rb_vm_invoke_proc(), rb_calling_info::recv, and rb_control_frame_struct::sp.
Referenced by vm_call_method_each_type().
|
static |
Definition at line 1922 of file vm_insnhelper.c.
References rb_calling_info::argc, rb_call_cache::aux, CALLER_SETUP_ARG, rb_call_info_with_kwarg::ci, ci_missing_reason(), CLASS_OF, DEC_SP, rb_call_info::flag, make_no_method_exception(), rb_call_cache::me, MEMMOVE, rb_call_cache::method_missing_reason, rb_thread_struct::method_missing_reason, rb_call_info::mid, rb_callable_method_entry_with_refinements(), rb_check_id(), rb_eArgError, rb_eNoMethodError, rb_exc_raise(), rb_long2int, rb_method_basic_definition_p(), rb_raise(), rb_str_intern(), rb_calling_info::recv, sym, TOPN, VM_CALL_FCALL, VM_CALL_KWARG, vm_call_method(), VM_CALL_OPT_SEND, and VM_CALL_VCALL.
Referenced by vm_call_method_each_type().
|
static |
Definition at line 2329 of file vm_insnhelper.c.
References rb_call_cache::call, rb_bug(), and vm_call_method().
Referenced by vm_base_ptr().
|
static |
Definition at line 2037 of file vm_insnhelper.c.
References rb_method_definition_struct::body, rb_callable_method_entry_struct::def, rb_call_cache::me, rb_call_info::mid, NULL, rb_method_refined_struct::orig_me, rb_callable_method_entry(), RCLASS_SUPER, rb_method_definition_struct::refined, refined_method_callable_without_refinement(), rb_method_definition_struct::type, vm_call_method_each_type(), vm_call_method_nome(), and VM_METHOD_TYPE_REFINED.
Referenced by vm_call_method_each_type().
|
inlinestatic |
Definition at line 1468 of file vm_insnhelper.c.
References arg_setup_method, rb_calling_info::argc, argument_arity_error(), rb_iseq_struct::body, CALLER_SETUP_ARG, rb_thread_struct::cfp, CI_SET_FASTPATH, IS_ARGS_KEYWORD, IS_ARGS_SPLAT, rb_iseq_constant_body::lead_num, LIKELY, rb_call_cache::me, METHOD_ENTRY_VISI, METHOD_VISI_PROTECTED, rb_iseq_constant_body::param, setup_parameters_complex(), simple_iseq_p(), and vm_call_iseq_setup_func().
Referenced by vm_call_iseq_setup().
|
static |
Definition at line 2513 of file vm_insnhelper.c.
References arg_setup_block, rb_calling_info::argc, argument_arity_error(), rb_iseq_struct::body, CALLER_SETUP_ARG, rb_thread_struct::cfp, CHECK_VM_STACK_OVERFLOW, rb_iseq_constant_body::flags, rb_iseq_constant_body::lead_num, NIL_P, rb_iseq_constant_body::param, Qnil, setup_parameters_complex(), simple_iseq_p(), vm_callee_setup_block_arg_arg0_check(), and vm_callee_setup_block_arg_arg0_splat().
Referenced by vm_invoke_iseq_block(), and vm_yield_setup_args().
Definition at line 2504 of file vm_insnhelper.c.
References rb_check_array_type().
Referenced by vm_callee_setup_block_arg().
|
inlinestatic |
Definition at line 2489 of file vm_insnhelper.c.
References rb_iseq_struct::body, CHECK_VM_STACK_OVERFLOW, rb_iseq_constant_body::lead_num, len, rb_iseq_constant_body::param, RARRAY_AREF, and RARRAY_LEN.
Referenced by vm_callee_setup_block_arg().
|
inlinestatic |
Definition at line 736 of file vm_insnhelper.c.
References PRIsVALUE, rb_eTypeError, rb_raise(), RB_TYPE_P, T_CLASS, and T_MODULE.
Referenced by vm_get_ev_const().
|
static |
Definition at line 684 of file vm_insnhelper.c.
References rb_thread_struct::cfp, rb_control_frame_struct::ep, FALSE, METHOD_VISI_PUBLIC, NULL, vm_cref_new(), vm_env_cref(), and vm_get_ruby_level_caller_cfp().
Referenced by eval_under(), rb_yield_refine_block(), and yield_under().
Definition at line 612 of file vm_insnhelper.c.
References cref_replace_with_duplicated_cref_each_frame(), FALSE, NULL, Qfalse, rb_bug(), TRUE, vm_env_cref_by_cref(), VM_ENV_DATA_INDEX_ME_CREF, VM_ENV_ENVVAL(), VM_ENV_ESCAPED_P(), VM_ENV_LOCAL_P(), and VM_ENV_PREV_EP().
Referenced by rb_vm_cref_replace_with_duplicated_cref().
|
static |
Definition at line 2741 of file vm_insnhelper.c.
References check_respond_to_missing(), CLASS_OF, rb_callable_method_entry_struct::def, rb_callable_method_entry_struct::defined_class, DEFINED_CONST, DEFINED_CVAR, DEFINED_FUNC, DEFINED_GVAR, DEFINED_IVAR, DEFINED_IVAR2, DEFINED_METHOD, DEFINED_REF, DEFINED_YIELD, DEFINED_ZSUPER, FIX2INT, GET_BLOCK_HANDLER, GET_CFP, GET_EP, GET_LEP, GET_SELF, METHOD_ENTRY_VISI, METHOD_VISI_PRIVATE, METHOD_VISI_PROTECTED, METHOD_VISI_PUBLIC, rb_method_definition_struct::original_id, Qfalse, Qnil, Qtrue, rb_bug(), rb_class_real(), rb_cvar_defined(), rb_global_entry(), rb_gvar_defined(), rb_iseq_defined_string(), rb_ivar_defined(), rb_method_boundp(), rb_method_entry(), rb_obj_is_kind_of(), rb_vm_frame_method_entry(), rb_vm_get_cref(), SYM2ID, VM_BLOCK_HANDLER_NONE, vm_get_cbase(), vm_get_cvar_base(), vm_get_ev_const(), vm_getspecial(), and vm_search_normal_superclass().
|
inlinestatic |
Definition at line 744 of file vm_insnhelper.c.
References FL_TEST, RB_TYPE_P, rb_warn(), RMODULE_IS_REFINEMENT, and T_MODULE.
Definition at line 542 of file vm_insnhelper.c.
References check_cref(), FALSE, NULL, TRUE, VM_ENV_DATA_INDEX_ME_CREF, VM_ENV_LOCAL_P(), and VM_ENV_PREV_EP().
Referenced by rb_vm_get_cref(), vm_caller_setup_arg_block(), and vm_cref_push().
Definition at line 571 of file vm_insnhelper.c.
References FALSE, is_cref(), TRUE, VM_ENV_DATA_INDEX_ME_CREF, VM_ENV_LOCAL_P(), and VM_ENV_PREV_EP().
Referenced by rb_scope_module_func_check(), rb_scope_visibility_get(), rb_vm_cref_in_context(), and vm_cref_replace_with_duplicated_cref().
Definition at line 297 of file vm_insnhelper.c.
References LIKELY, VM_ENV_DATA_INDEX_FLAGS, VM_ENV_FLAG_WB_REQUIRED, vm_env_write_slowpath(), and VM_STACK_ENV_WRITE().
Referenced by lep_svar_write(), and rb_vm_env_write().
Definition at line 288 of file vm_insnhelper.c.
References rb_gc_writebarrier_remember(), VM_ENV_ENVVAL(), VM_ENV_FLAG_WB_REQUIRED, VM_ENV_FLAGS_UNSET(), and VM_FORCE_WRITE().
Referenced by rb_error_arity(), and vm_env_write().
|
inlinestatic |
Definition at line 1171 of file vm_insnhelper.c.
References len, 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 vm_call_general().
Definition at line 703 of file vm_insnhelper.c.
References CREF_CLASS(), CREF_NEXT(), Qundef, and rb_vm_get_cref().
Referenced by rb_vm_cbase(), and vm_defined().
Definition at line 719 of file vm_insnhelper.c.
References CREF_CLASS(), CREF_NEXT(), CREF_PUSHED_BY_EVAL(), Qundef, and rb_vm_get_cref().
Definition at line 648 of file vm_insnhelper.c.
References CREF_CLASS(), CREF_NEXT(), FL_SINGLETON, FL_TEST, NULL, and rb_vm_get_cref().
|
inlinestatic |
Definition at line 836 of file vm_insnhelper.c.
References CREF_CLASS(), CREF_NEXT(), CREF_PUSHED_BY_EVAL(), FL_SINGLETON, FL_TEST, NIL_P, rb_bug(), rb_eTypeError, rb_raise(), rb_warn(), and vm_get_iclass().
Referenced by vm_defined().
|
inlinestatic |
Definition at line 758 of file vm_insnhelper.c.
References rb_thread_struct::cfp, CLASS_OF, CREF_CLASS(), CREF_NEXT(), CREF_PUSHED_BY_EVAL(), rb_control_frame_struct::ep, NIL_P, Qnil, Qundef, rb_autoload_load(), rb_autoloading_value(), rb_const_defined(), rb_const_get(), rb_const_lookup(), rb_const_warn_if_deprecated(), rb_public_const_defined_from(), rb_public_const_get_from(), rb_vm_get_cref(), rb_control_frame_struct::self, val, rb_const_entry_struct::value, vm_check_if_namespace(), and vm_get_iclass().
Referenced by vm_defined().
|
inlinestatic |
Definition at line 752 of file vm_insnhelper.c.
Referenced by vm_get_cvar_base(), and vm_get_ev_const().
|
static |
Referenced by vm_cref_push().
Definition at line 970 of file vm_insnhelper.c.
References vm_getivar().
|
inlinestatic |
Definition at line 881 of file vm_insnhelper.c.
References rb_call_cache::aux, iseq_inline_cache_entry::ic_serial, iseq_inline_cache_entry::ic_value, iseq_inline_cache_entry::index, rb_call_cache::index, LIKELY, PRIsVALUE, Qnil, Qundef, QUOTE_ID, rb_attr_get(), rb_ivar_get(), RB_TYPE_P, rb_warning(), RBASIC, RCLASS_SERIAL, ROBJECT_IV_INDEX_TBL, ROBJECT_IVPTR, ROBJECT_NUMIV, RTEST, ruby_verbose, st_data_t, st_lookup, T_OBJECT, UNLIKELY, and val.
Referenced by vm_call_ivar(), and vm_getinstancevariable().
|
inlinestatic |
Definition at line 425 of file vm_insnhelper.c.
References vm_svar::backref, check_method_entry(), lep_svar_get(), PUREFUNC(), rb_bug(), rb_reg_last_match(), rb_reg_match_last(), rb_reg_match_post(), rb_reg_match_pre(), rb_reg_nth_match(), val, and VM_SVAR_BACKREF.
Referenced by vm_defined().
|
static |
Definition at line 2642 of file vm_insnhelper.c.
References block_handler_type_ifunc, block_handler_type_iseq, block_handler_type_proc, block_handler_type_symbol, block_proc_is_lambda(), FALSE, GET_ISEQ, Qnil, rb_vm_localjump_error(), VM_BH_TO_IFUNC_BLOCK(), VM_BH_TO_ISEQ_BLOCK(), VM_BH_TO_PROC(), VM_BH_TO_SYMBOL(), VM_BLOCK_HANDLER_NONE, vm_block_handler_type(), VM_CF_BLOCK_HANDLER(), vm_invoke_ifunc_block(), vm_invoke_iseq_block(), vm_invoke_symbol_block(), vm_proc_to_block_handler(), and VM_UNREACHABLE.
|
static |
Definition at line 2609 of file vm_insnhelper.c.
References argc, rb_calling_info::argc, CALLER_SETUP_ARG, rb_thread_struct::cfp, POPN, rb_captured_block::self, STACK_ADDR_FROM_TOP, val, VM_BLOCK_HANDLER_NONE, and vm_yield_with_cfunc().
Referenced by vm_invoke_block().
|
static |
Definition at line 2572 of file vm_insnhelper.c.
References arg_setup_block, arg_setup_lambda, rb_calling_info::argc, rb_iseq_struct::body, rb_captured_block::code, rb_captured_block::ep, GET_SP, rb_captured_block::iseq, rb_iseq_constant_body::iseq_encoded, rb_iseq_constant_body::local_table_size, rb_iseq_constant_body::param, Qundef, rb_captured_block::self, SET_SP, rb_iseq_constant_body::size, rb_iseq_constant_body::stack_max, vm_callee_setup_block_arg(), VM_FRAME_MAGIC_BLOCK, VM_FRAME_MAGIC_LAMBDA, VM_GUARDED_PREV_EP, and vm_push_frame().
Referenced by vm_invoke_block().
|
static |
Definition at line 2595 of file vm_insnhelper.c.
References argc, rb_calling_info::argc, CALLER_SETUP_ARG, rb_thread_struct::cfp, POPN, STACK_ADDR_FROM_TOP, val, VM_BLOCK_HANDLER_NONE, and vm_yield_with_symbol().
Referenced by vm_invoke_block().
Definition at line 2677 of file vm_insnhelper.c.
References rb_thread_struct::cfp, rb_captured_block::code, GET_THREAD, rb_captured_block::iseq, rb_bug(), rb_cProc, rb_vm_get_ruby_level_next_cfp(), rb_vm_make_proc(), and VM_CFP_TO_CAPTURED_BLOCK().
Referenced by vm_once_exec().
|
inlinestatic |
Definition at line 1719 of file vm_insnhelper.c.
References rb_method_definition_struct::body, rb_method_definition_struct::cfunc, rb_callable_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 2701 of file vm_insnhelper.c.
References NULL, iseq_inline_storage_entry::once, Qnil, and iseq_inline_storage_entry::running_thread.
Definition at line 2694 of file vm_insnhelper.c.
References Qnil, rb_proc_call_with_block(), and vm_make_proc_with_iseq().
|
inlinestatic |
Definition at line 242 of file vm_insnhelper.c.
References rb_thread_struct::cfp, rb_gc_verify_internal_consistency(), RUBY_VM_PREVIOUS_CONTROL_FRAME, SDR, VM_CHECK_MODE, VM_ENV_DATA_INDEX_FLAGS, VM_FRAME_FLAG_FINISH, and VMDEBUG.
Referenced by rb_vm_pop_cfunc_frame(), rb_vm_pop_frame(), vm_call_cfunc_with_frame(), and vm_call_iseq_setup_tailcall().
Definition at line 2623 of file vm_insnhelper.c.
References rb_block::as, block_type_ifunc, block_type_iseq, block_type_proc, block_type_symbol, rb_block::captured, rb_block::proc, Qundef, rb_block::symbol, VM_BH_FROM_IFUNC_BLOCK(), VM_BH_FROM_ISEQ_BLOCK(), VM_BH_FROM_PROC(), VM_BH_FROM_SYMBOL(), vm_block_type(), vm_proc_block(), and VM_UNREACHABLE.
Referenced by invoke_block_from_c_splattable(), vm_invoke_block(), and yield_under().
|
inlinestatic |
Definition at line 168 of file vm_insnhelper.c.
References rb_control_frame_struct::block_code, rb_thread_struct::cfp, CHECK_VM_STACK_OVERFLOW0, rb_control_frame_struct::ep, rb_control_frame_struct::iseq, NULL, rb_control_frame_struct::pc, Qnil, SDR, rb_control_frame_struct::self, rb_control_frame_struct::sp, VM_ASSERT, vm_check_frame, VM_ENV_DATA_INDEX_FLAGS, VM_ENV_DATA_INDEX_ME_CREF, VM_ENV_DATA_INDEX_SPECVAL, and VMDEBUG.
Referenced by invoke_block(), invoke_bmethod(), raise_argument_error(), rb_vm_call_cfunc(), rb_vm_push_frame(), 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_iseq_block(), vm_set_eval_stack(), vm_set_top_stack(), and vm_yield_with_cfunc().
Definition at line 862 of file vm_insnhelper.c.
References rb_cObject, rb_const_defined_at(), and RCLASS_SUPER.
|
static |
Definition at line 1234 of file vm_insnhelper.c.
References rb_call_cache::call, CLASS_OF, rb_call_cache::class_serial, GET_GLOBAL_METHOD_STATE, LIKELY, rb_call_cache::me, rb_call_cache::method_state, rb_call_info::mid, NULL, rb_callable_method_entry(), RCLASS_SERIAL, VM_ASSERT, and vm_call_general().
Referenced by opt_eq_func().
Definition at line 2339 of file vm_insnhelper.c.
References BUILTIN_TYPE, FL_TEST, RBASIC, RCLASS_ORIGIN, RCLASS_SUPER, RMODULE_IS_REFINEMENT, and T_ICLASS.
Referenced by vm_defined(), and vm_search_super_method().
|
static |
Definition at line 2356 of file vm_insnhelper.c.
References rb_calling_info::argc, rb_call_cache::aux, BUILTIN_TYPE, CI_SET_FASTPATH, rb_callable_method_entry_struct::def, rb_callable_method_entry_struct::defined_class, FL_TEST, rb_call_cache::me, rb_call_cache::method_missing_reason, rb_call_info::mid, MISSING_SUPER, NIL_P, rb_method_definition_struct::original_id, PRIsVALUE, rb_callable_method_entry(), rb_eRuntimeError, rb_eTypeError, rb_obj_class(), rb_obj_is_kind_of(), rb_raise(), RB_TYPE_P, rb_vm_frame_method_entry(), RBASIC, RCLASS_REFINED_CLASS, rb_calling_info::recv, RMODULE_INCLUDED_INTO_REFINEMENT, T_ICLASS, T_MODULE, TOPN, rb_method_definition_struct::type, vm_call_method_missing(), VM_METHOD_TYPE_BMETHOD, vm_search_normal_superclass(), and vm_super_outside().
Definition at line 976 of file vm_insnhelper.c.
References vm_setivar().
|
inlinestatic |
Definition at line 927 of file vm_insnhelper.c.
References rb_call_cache::aux, iseq_inline_cache_entry::ic_serial, iseq_inline_cache_entry::ic_value, iseq_inline_cache_entry::index, rb_call_cache::index, LIKELY, rb_check_frozen, rb_eArgError, rb_ivar_set(), RB_OBJ_WRITE, rb_raise(), 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().
|
static |
Definition at line 33 of file vm_insnhelper.c.
References CHECK, rb_callable_method_entry_struct::defined_class, FALSE, FIXNUM_P, imemo_cref, imemo_env, imemo_ment, NULL, Qfalse, rb_bug(), RB_BUILTIN_TYPE, rb_cBasicObject, rb_exc_raise(), rb_obj_info(), RB_TYPE_P, RCLASS_SUPER, ruby_vm_special_exception_copy(), sysstack_error, T_ICLASS, T_IMEMO, T_MODULE, TRUE, VM_ASSERT, vm_check_frame, VM_ENV_FLAG_LOCAL, VM_FRAME_FLAG_BMETHOD, VM_FRAME_MAGIC_BLOCK, VM_FRAME_MAGIC_CFUNC, VM_FRAME_MAGIC_CLASS, VM_FRAME_MAGIC_DUMMY, VM_FRAME_MAGIC_EVAL, VM_FRAME_MAGIC_IFUNC, VM_FRAME_MAGIC_LAMBDA, VM_FRAME_MAGIC_MASK, VM_FRAME_MAGIC_METHOD, VM_FRAME_MAGIC_PROC, VM_FRAME_MAGIC_RESCUE, and VM_FRAME_MAGIC_TOP.
|
static |
Definition at line 2350 of file vm_insnhelper.c.
References rb_eNoMethodError, and rb_raise().
Referenced by vm_search_super_method().
|
static |
Definition at line 1155 of file vm_insnhelper.c.
References level, vm_throw_continue(), VM_THROW_LEVEL_SHIFT, VM_THROW_NO_ESCAPE_FLAG, vm_throw_start(), and VM_THROW_STATE_MASK.
|
static |
Definition at line 982 of file vm_insnhelper.c.
References err, FIX2INT, FIXNUM_P, rb_thread_struct::state, SYMBOL_P, TAG_RAISE, TAG_THROW, THROW_DATA_P, and THROW_DATA_STATE().
Referenced by vm_throw().
|
static |
Definition at line 1003 of file vm_insnhelper.c.
References rb_iseq_struct::body, rb_iseq_constant_body::catch_table, iseq_catch_table_entry::CATCH_TYPE_BREAK, iseq_catch_table_entry::cont, iseq_catch_table_entry::end, rb_control_frame_struct::ep, GET_EP, GET_ISEQ, rb_control_frame_struct::iseq, rb_iseq_constant_body::iseq_encoded, level, NULL, rb_iseq_constant_body::parent_iseq, rb_control_frame_struct::pc, rb_bug(), rb_vm_localjump_error(), rb_vm_search_cf_from_ep(), RUBY_VM_END_CONTROL_FRAME, RUBY_VM_PREVIOUS_CONTROL_FRAME, iseq_catch_table_entry::start, rb_thread_struct::state, TAG_BREAK, TAG_RETRY, TAG_RETURN, THROW_DATA_NEW(), iseq_catch_table_entry::type, rb_iseq_constant_body::type, VM_ASSERT, VM_CF_LEP(), VM_ENV_PREV_EP(), VM_EP_LEP(), VM_FRAME_MAGIC_LAMBDA, VM_FRAME_RUBYFRAME_P(), and VM_FRAME_TYPE().
Referenced by vm_throw().
|
static |
Definition at line 2554 of file vm_insnhelper.c.
References argc, rb_calling_info::argc, rb_calling_info::block_handler, rb_call_info::flag, and vm_callee_setup_block_arg().
Referenced by invoke_iseq_block_from_c().
|
static |
Definition at line 2448 of file vm_insnhelper.c.
References rb_thread_struct::cfp, rb_captured_block::code, vm_ifunc::data, rb_captured_block::ep, FALSE, vm_ifunc::func, rb_captured_block::ifunc, NULL, rb_thread_struct::passed_bmethod_me, Qnil, rb_ary_new4, rb_vm_pop_frame(), rb_control_frame_struct::sp, val, vm_block_handler_to_proc(), VM_FRAME_FLAG_CFRAME, VM_FRAME_MAGIC_IFUNC, VM_GUARDED_PREV_EP, and vm_push_frame().
Referenced by invoke_block_from_c_splattable(), invoke_block_from_c_unsplattable(), and vm_invoke_ifunc_block().
|
static |
Definition at line 2483 of file vm_insnhelper.c.
References rb_sym_proc_call(), SYM2ID, and vm_block_handler_to_proc().
Referenced by invoke_block_from_c_splattable(), invoke_block_from_c_unsplattable(), and vm_invoke_symbol_block().