Ruby  2.4.2p198(2017-09-14revision59899)
Macros | Functions
vm_insnhelper.c File Reference
#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"
Include dependency graph for vm_insnhelper.c:
This graph shows which files directly or indirectly include this file:

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

Functions

static rb_control_frame_tvm_get_ruby_level_caller_cfp (const rb_thread_t *th, const rb_control_frame_t *cfp)
 
VALUE ruby_vm_special_exception_copy (VALUE exc)
 
static void vm_stackoverflow (void)
 
static rb_control_frame_tvm_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)
 
rb_control_frame_trb_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)
 
static int vm_pop_frame (rb_thread_t *th, rb_control_frame_t *cfp, const VALUE *ep)
 
void rb_vm_pop_frame (rb_thread_t *th)
 
static VALUE rb_arity_error_new (int argc, int min, int max)
 
void rb_error_arity (int argc, int min, int max)
 
 NOINLINE (static void vm_env_write_slowpath(const VALUE *ep, int index, VALUE v))
 
static void vm_env_write_slowpath (const VALUE *ep, int index, VALUE v)
 
static void vm_env_write (const VALUE *ep, int index, VALUE v)
 
void rb_vm_env_write (const VALUE *ep, int index, VALUE v)
 
static struct vm_svarlep_svar (rb_thread_t *th, const VALUE *lep)
 
static void lep_svar_write (rb_thread_t *th, const VALUE *lep, const struct vm_svar *svar)
 
static VALUE lep_svar_get (rb_thread_t *th, const VALUE *lep, rb_num_t key)
 
static struct vm_svarsvar_new (VALUE obj)
 
static void lep_svar_set (rb_thread_t *th, const VALUE *lep, rb_num_t key, VALUE val)
 
static VALUE vm_getspecial (rb_thread_t *th, const VALUE *lep, rb_num_t key, rb_num_t type)
 
 PUREFUNC (static rb_callable_method_entry_t *check_method_entry(VALUE obj, int can_be_svar))
 
static rb_callable_method_entry_tcheck_method_entry (VALUE obj, int can_be_svar)
 
const rb_callable_method_entry_trb_vm_frame_method_entry (const rb_control_frame_t *cfp)
 
static rb_cref_tmethod_entry_cref (rb_callable_method_entry_t *me)
 
 PUREFUNC (static rb_cref_t *check_cref(VALUE, int))
 
static rb_cref_tcheck_cref (VALUE obj, int can_be_svar)
 
static rb_cref_tvm_env_cref (const VALUE *ep)
 
static int is_cref (const VALUE v, int can_be_svar)
 
static int vm_env_cref_by_cref (const VALUE *ep)
 
static rb_cref_tcref_replace_with_duplicated_cref_each_frame (const VALUE *vptr, int can_be_svar, VALUE parent)
 
static rb_cref_tvm_cref_replace_with_duplicated_cref (const VALUE *ep)
 
static rb_cref_trb_vm_get_cref (const VALUE *ep)
 
static const rb_cref_tvm_get_const_key_cref (const VALUE *ep)
 
void rb_vm_rewrite_cref (rb_cref_t *cref, VALUE old_klass, VALUE new_klass, rb_cref_t **new_cref_ptr)
 
static rb_cref_tvm_cref_push (rb_thread_t *th, VALUE klass, const VALUE *ep, int pushed_by_eval)
 
static VALUE vm_get_cbase (const VALUE *ep)
 
static VALUE vm_get_const_base (const VALUE *ep)
 
static void vm_check_if_namespace (VALUE klass)
 
static void vm_ensure_not_refinement_module (VALUE self)
 
static VALUE vm_get_iclass (rb_control_frame_t *cfp, VALUE klass)
 
static VALUE vm_get_ev_const (rb_thread_t *th, VALUE orig_klass, ID id, int is_defined)
 
static VALUE vm_get_cvar_base (const rb_cref_t *cref, rb_control_frame_t *cfp)
 
static VALUE vm_search_const_defined_class (const VALUE cbase, ID id)
 
 ALWAYS_INLINE (static VALUE vm_getivar(VALUE, ID, IC, struct rb_call_cache *, int))
 
static VALUE vm_getivar (VALUE obj, ID id, IC ic, struct rb_call_cache *cc, int is_attr)
 
static VALUE vm_setivar (VALUE obj, ID id, VALUE val, IC ic, struct rb_call_cache *cc, int is_attr)
 
static VALUE vm_getinstancevariable (VALUE obj, ID id, IC ic)
 
static void vm_setinstancevariable (VALUE obj, ID id, VALUE val, IC ic)
 
static VALUE vm_throw_continue (rb_thread_t *th, VALUE err)
 
static VALUE vm_throw_start (rb_thread_t *const th, rb_control_frame_t *const reg_cfp, enum ruby_tag_type state, const int flag, const rb_num_t level, const VALUE throwobj)
 
static VALUE vm_throw (rb_thread_t *th, rb_control_frame_t *reg_cfp, rb_num_t throw_state, VALUE throwobj)
 
static void vm_expandarray (rb_control_frame_t *cfp, VALUE ary, rb_num_t num, int flag)
 
static VALUE vm_call_general (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static void vm_search_method (const struct rb_call_info *ci, struct rb_call_cache *cc, VALUE recv)
 
static int check_cfunc (const rb_callable_method_entry_t *me, VALUE(*func)())
 
static VALUE opt_eq_func (VALUE recv, VALUE obj, CALL_INFO ci, CALL_CACHE cc)
 
VALUE rb_equal_opt (VALUE obj1, VALUE obj2)
 
static VALUE vm_call0 (rb_thread_t *, VALUE, ID, int, const VALUE *, const rb_callable_method_entry_t *)
 
static VALUE check_match (VALUE pattern, VALUE target, enum vm_check_match_type type)
 
static VALUE double_cmp_lt (double a, double b)
 
static VALUE double_cmp_le (double a, double b)
 
static VALUE double_cmp_gt (double a, double b)
 
static VALUE double_cmp_ge (double a, double b)
 
static VALUEvm_base_ptr (const rb_control_frame_t *cfp)
 
static VALUE vm_call_iseq_setup_2 (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, int opt_pc, int param_size, int local_size)
 
static VALUE vm_call_iseq_setup_normal (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, int opt_pc, int param_size, int local_size)
 
static VALUE vm_call_iseq_setup_tailcall (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, int opt_pc)
 
static VALUE vm_call_super_method (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE vm_call_method_nome (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE vm_call_method_each_type (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE vm_call_method (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static vm_call_handler vm_call_iseq_setup_func (const struct rb_call_info *ci, const int param_size, const int local_size)
 
static rb_method_definition_tmethod_definition_create (rb_method_type_t type, ID mid)
 
static void method_definition_set (const rb_method_entry_t *me, rb_method_definition_t *def, void *opts)
 
static int rb_method_definition_eq (const rb_method_definition_t *d1, const rb_method_definition_t *d2)
 
static const rb_iseq_tdef_iseq_ptr (rb_method_definition_t *def)
 
static VALUE vm_call_iseq_setup_tailcall_0start (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE vm_call_iseq_setup_normal_0start (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static int simple_iseq_p (const rb_iseq_t *iseq)
 
static int vm_callee_setup_arg (rb_thread_t *th, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, const rb_iseq_t *iseq, VALUE *argv, int param_size, int local_size)
 
static VALUE vm_call_iseq_setup (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE call_cfunc_m2 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_m1 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_0 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_1 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_2 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_3 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_4 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_5 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_6 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_7 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_8 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_9 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_10 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_11 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_12 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_13 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_14 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static VALUE call_cfunc_15 (VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
 
static const rb_method_cfunc_tvm_method_cfunc_entry (const rb_callable_method_entry_t *me)
 
static VALUE vm_call_cfunc_with_frame (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE vm_call_cfunc (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE vm_call_ivar (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE vm_call_attrset (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE vm_call_bmethod_body (rb_thread_t *th, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, const VALUE *argv)
 
static VALUE vm_call_bmethod (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static enum method_missing_reason ci_missing_reason (const struct rb_call_info *ci)
 
static VALUE vm_call_opt_send (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *orig_ci, struct rb_call_cache *orig_cc)
 
static VALUE vm_call_opt_call (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc)
 
static VALUE vm_call_method_missing (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *orig_ci, struct rb_call_cache *orig_cc)
 
static const rb_callable_method_entry_trefined_method_callable_without_refinement (const rb_callable_method_entry_t *me)
 
static VALUE vm_call_zsuper (rb_thread_t *th, rb_control_frame_t *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc, VALUE klass)
 
static VALUE find_refinement (VALUE refinements, VALUE klass)
 
 PUREFUNC (static rb_control_frame_t *current_method_entry(rb_thread_t *th, rb_control_frame_t *cfp))
 
static rb_control_frame_tcurrent_method_entry (rb_thread_t *th, rb_control_frame_t *cfp)
 
static VALUE find_defined_class_by_owner (VALUE current_class, VALUE target_owner)
 
static const rb_callable_method_entry_taliased_callable_method_entry (const rb_callable_method_entry_t *me)
 
static VALUE vm_search_normal_superclass (VALUE klass)
 
static void vm_super_outside (void)
 
static void vm_search_super_method (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, struct rb_call_info *ci, struct rb_call_cache *cc)
 
static int block_proc_is_lambda (const VALUE procval)
 
static VALUE vm_block_handler_to_proc (rb_thread_t *th, VALUE block_handler)
 
static VALUE vm_yield_with_cfunc (rb_thread_t *th, const struct rb_captured_block *captured, VALUE self, int argc, const VALUE *argv, VALUE block_handler)
 
static VALUE vm_yield_with_symbol (rb_thread_t *th, VALUE symbol, int argc, const VALUE *argv, VALUE block_handler)
 
static int vm_callee_setup_block_arg_arg0_splat (rb_control_frame_t *cfp, const rb_iseq_t *iseq, VALUE *argv, VALUE ary)
 
static VALUE vm_callee_setup_block_arg_arg0_check (VALUE *argv)
 
static int vm_callee_setup_block_arg (rb_thread_t *th, struct rb_calling_info *calling, const struct rb_call_info *ci, const rb_iseq_t *iseq, VALUE *argv, const enum arg_setup_type arg_setup_type)
 
static int vm_yield_setup_args (rb_thread_t *th, const rb_iseq_t *iseq, const int argc, VALUE *argv, VALUE block_handler, enum arg_setup_type arg_setup_type)
 
static VALUE vm_invoke_iseq_block (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, int is_lambda, const struct rb_captured_block *captured)
 
static VALUE vm_invoke_symbol_block (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, VALUE symbol)
 
static VALUE vm_invoke_ifunc_block (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, const struct rb_captured_block *captured)
 
static VALUE vm_proc_to_block_handler (VALUE procval)
 
static VALUE vm_invoke_block (rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *ci)
 
static VALUE vm_make_proc_with_iseq (const rb_iseq_t *blockiseq)
 
static VALUE vm_once_exec (VALUE iseq)
 
static VALUE vm_once_clear (VALUE data)
 
rb_control_frame_t *FUNC_FASTCALL() rb_vm_opt_struct_aref (rb_thread_t *th, rb_control_frame_t *reg_cfp)
 
rb_control_frame_t *FUNC_FASTCALL() rb_vm_opt_struct_aset (rb_thread_t *th, rb_control_frame_t *reg_cfp)
 
static enum defined_type check_respond_to_missing (VALUE obj, VALUE v)
 
static VALUE vm_defined (rb_thread_t *th, rb_control_frame_t *reg_cfp, rb_num_t op_type, VALUE obj, VALUE needstr, VALUE v)
 

Macro Definition Documentation

◆ CHECK_CMP_NAN

#define CHECK_CMP_NAN (   a,
 
)    /* 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().

◆ USE_IC_FOR_IVAR

#define USE_IC_FOR_IVAR   1

Definition at line 876 of file vm_insnhelper.c.

◆ vm_check_frame

#define vm_check_frame (   a,
  b,
  c,
 
)

Definition at line 164 of file vm_insnhelper.c.

Referenced by vm_push_frame(), and vm_stackoverflow().

◆ VM_PROFILE

#define VM_PROFILE   0

Definition at line 1689 of file vm_insnhelper.c.

◆ VM_PROFILE_ATEXIT

#define VM_PROFILE_ATEXIT ( )

Definition at line 1714 of file vm_insnhelper.c.

Referenced by Init_VM().

◆ VM_PROFILE_UP

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

Function Documentation

◆ aliased_callable_method_entry()

static const rb_callable_method_entry_t* aliased_callable_method_entry ( const rb_callable_method_entry_t me)
static

◆ ALWAYS_INLINE()

ALWAYS_INLINE ( static VALUE   vm_getivarVALUE, ID, IC, struct rb_call_cache *, int)

◆ block_proc_is_lambda()

static int block_proc_is_lambda ( const VALUE  procval)
inlinestatic

◆ call_cfunc_0()

static VALUE call_cfunc_0 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1593 of file vm_insnhelper.c.

References func.

◆ call_cfunc_1()

static VALUE call_cfunc_1 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1599 of file vm_insnhelper.c.

References func.

◆ call_cfunc_10()

static VALUE call_cfunc_10 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1653 of file vm_insnhelper.c.

References func.

◆ call_cfunc_11()

static VALUE call_cfunc_11 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1659 of file vm_insnhelper.c.

References func.

◆ call_cfunc_12()

static VALUE call_cfunc_12 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1665 of file vm_insnhelper.c.

References func.

◆ call_cfunc_13()

static VALUE call_cfunc_13 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1671 of file vm_insnhelper.c.

References func.

◆ call_cfunc_14()

static VALUE call_cfunc_14 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1677 of file vm_insnhelper.c.

References func.

◆ call_cfunc_15()

static VALUE call_cfunc_15 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1683 of file vm_insnhelper.c.

References func.

◆ call_cfunc_2()

static VALUE call_cfunc_2 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1605 of file vm_insnhelper.c.

References func.

◆ call_cfunc_3()

static VALUE call_cfunc_3 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1611 of file vm_insnhelper.c.

References func.

◆ call_cfunc_4()

static VALUE call_cfunc_4 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1617 of file vm_insnhelper.c.

References func.

◆ call_cfunc_5()

static VALUE call_cfunc_5 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1623 of file vm_insnhelper.c.

References func.

◆ call_cfunc_6()

static VALUE call_cfunc_6 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1629 of file vm_insnhelper.c.

References func.

◆ call_cfunc_7()

static VALUE call_cfunc_7 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1635 of file vm_insnhelper.c.

References func.

◆ call_cfunc_8()

static VALUE call_cfunc_8 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1641 of file vm_insnhelper.c.

References func.

◆ call_cfunc_9()

static VALUE call_cfunc_9 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1647 of file vm_insnhelper.c.

References func.

◆ call_cfunc_m1()

static VALUE call_cfunc_m1 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1587 of file vm_insnhelper.c.

References argc, argv, and func.

◆ call_cfunc_m2()

static VALUE call_cfunc_m2 ( VALUE(*)(ANYARGS func,
VALUE  recv,
int  argc,
const VALUE argv 
)
static

Definition at line 1581 of file vm_insnhelper.c.

References func, and rb_ary_new4.

◆ check_cfunc()

static int check_cfunc ( const rb_callable_method_entry_t me,
VALUE(*)()  func 
)
inlinestatic

◆ check_cref()

static rb_cref_t* check_cref ( VALUE  obj,
int  can_be_svar 
)
static

◆ check_match()

static VALUE check_match ( VALUE  pattern,
VALUE  target,
enum vm_check_match_type  type 
)
static

◆ check_method_entry()

static rb_callable_method_entry_t* check_method_entry ( VALUE  obj,
int  can_be_svar 
)
static

◆ check_respond_to_missing()

static enum defined_type check_respond_to_missing ( VALUE  obj,
VALUE  v 
)
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().

◆ ci_missing_reason()

static enum method_missing_reason ci_missing_reason ( const struct rb_call_info ci)
static

◆ cref_replace_with_duplicated_cref_each_frame()

static rb_cref_t* cref_replace_with_duplicated_cref_each_frame ( const VALUE vptr,
int  can_be_svar,
VALUE  parent 
)
static

◆ current_method_entry()

static rb_control_frame_t* current_method_entry ( rb_thread_t th,
rb_control_frame_t cfp 
)
static

◆ def_iseq_ptr()

static const rb_iseq_t* def_iseq_ptr ( rb_method_definition_t def)
static

◆ double_cmp_ge()

static VALUE double_cmp_ge ( double  a,
double  b 
)
inlinestatic

Definition at line 1382 of file vm_insnhelper.c.

References CHECK_CMP_NAN, Qfalse, and Qtrue.

◆ double_cmp_gt()

static VALUE double_cmp_gt ( double  a,
double  b 
)
inlinestatic

Definition at line 1375 of file vm_insnhelper.c.

References CHECK_CMP_NAN, Qfalse, and Qtrue.

◆ double_cmp_le()

static VALUE double_cmp_le ( double  a,
double  b 
)
inlinestatic

Definition at line 1368 of file vm_insnhelper.c.

References CHECK_CMP_NAN, Qfalse, and Qtrue.

◆ double_cmp_lt()

static VALUE double_cmp_lt ( double  a,
double  b 
)
inlinestatic

Definition at line 1361 of file vm_insnhelper.c.

References CHECK_CMP_NAN, Qfalse, and Qtrue.

◆ find_defined_class_by_owner()

static VALUE find_defined_class_by_owner ( VALUE  current_class,
VALUE  target_owner 
)
static

◆ find_refinement()

static VALUE find_refinement ( VALUE  refinements,
VALUE  klass 
)
inlinestatic

◆ is_cref()

static int is_cref ( const VALUE  v,
int  can_be_svar 
)
static

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

◆ lep_svar()

static struct vm_svar* lep_svar ( rb_thread_t th,
const VALUE lep 
)
static

◆ lep_svar_get()

static VALUE lep_svar_get ( rb_thread_t th,
const VALUE lep,
rb_num_t  key 
)
static

◆ lep_svar_set()

static void lep_svar_set ( rb_thread_t th,
const VALUE lep,
rb_num_t  key,
VALUE  val 
)
static

◆ lep_svar_write()

static void lep_svar_write ( rb_thread_t th,
const VALUE lep,
const struct vm_svar svar 
)
inlinestatic

◆ method_definition_create()

static rb_method_definition_t* method_definition_create ( rb_method_type_t  type,
ID  mid 
)
static

◆ method_definition_set()

static void method_definition_set ( const rb_method_entry_t me,
rb_method_definition_t def,
void *  opts 
)
static

◆ method_entry_cref()

static rb_cref_t* method_entry_cref ( rb_callable_method_entry_t me)
static

◆ NOINLINE()

NOINLINE ( static void   vm_env_write_slowpathconst VALUE *ep, int index, VALUE v)

Referenced by rb_error_arity().

◆ opt_eq_func()

static VALUE opt_eq_func ( VALUE  recv,
VALUE  obj,
CALL_INFO  ci,
CALL_CACHE  cc 
)
inlinestatic

◆ PUREFUNC() [1/3]

PUREFUNC ( static rb_callable_method_entry_t check_method_entryVALUE obj, int can_be_svar)

◆ PUREFUNC() [2/3]

PUREFUNC ( static rb_cref_t check_crefVALUE, int)

◆ PUREFUNC() [3/3]

PUREFUNC ( static rb_control_frame_t current_method_entryrb_thread_t *th, rb_control_frame_t *cfp)

◆ rb_arity_error_new()

static VALUE rb_arity_error_new ( int  argc,
int  min,
int  max 
)
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().

◆ rb_equal_opt()

VALUE rb_equal_opt ( VALUE  obj1,
VALUE  obj2 
)

◆ rb_error_arity()

void rb_error_arity ( int  argc,
int  min,
int  max 
)

◆ rb_method_definition_eq()

static int rb_method_definition_eq ( const rb_method_definition_t d1,
const rb_method_definition_t d2 
)
static

◆ rb_vm_env_write()

void rb_vm_env_write ( const VALUE ep,
int  index,
VALUE  v 
)

◆ rb_vm_frame_method_entry()

const rb_callable_method_entry_t* rb_vm_frame_method_entry ( const rb_control_frame_t cfp)

◆ rb_vm_get_cref()

static rb_cref_t* rb_vm_get_cref ( const VALUE ep)
static

◆ rb_vm_opt_struct_aref()

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

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

◆ rb_vm_pop_frame()

void rb_vm_pop_frame ( rb_thread_t th)

◆ rb_vm_push_frame()

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

◆ rb_vm_rewrite_cref()

void rb_vm_rewrite_cref ( rb_cref_t cref,
VALUE  old_klass,
VALUE  new_klass,
rb_cref_t **  new_cref_ptr 
)

◆ refined_method_callable_without_refinement()

static const rb_callable_method_entry_t * refined_method_callable_without_refinement ( const rb_callable_method_entry_t me)
static

◆ ruby_vm_special_exception_copy()

VALUE ruby_vm_special_exception_copy ( VALUE  exc)

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

◆ simple_iseq_p()

static int simple_iseq_p ( const rb_iseq_t iseq)
inlinestatic

◆ svar_new()

static struct vm_svar* svar_new ( VALUE  obj)
static

Definition at line 392 of file vm_insnhelper.c.

References imemo_svar, Qnil, and rb_imemo_new().

Referenced by lep_svar_set().

◆ vm_base_ptr()

static VALUE* vm_base_ptr ( const rb_control_frame_t cfp)
static

◆ vm_block_handler_to_proc()

static VALUE vm_block_handler_to_proc ( rb_thread_t th,
VALUE  block_handler 
)
static

◆ vm_call0()

static VALUE vm_call0 ( rb_thread_t ,
VALUE  ,
ID  ,
int  ,
const VALUE ,
const rb_callable_method_entry_t  
)
static

Referenced by check_match(), and rb_equal_opt().

◆ vm_call_attrset()

static VALUE vm_call_attrset ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_call_bmethod()

static VALUE vm_call_bmethod ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_call_bmethod_body()

static VALUE vm_call_bmethod_body ( rb_thread_t th,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc,
const VALUE argv 
)
inlinestatic

◆ vm_call_cfunc()

static VALUE vm_call_cfunc ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_call_cfunc_with_frame()

static VALUE vm_call_cfunc_with_frame ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_call_general()

static VALUE vm_call_general ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

Definition at line 2323 of file vm_insnhelper.c.

References vm_call_method().

Referenced by vm_expandarray(), and vm_search_method().

◆ vm_call_iseq_setup()

static VALUE vm_call_iseq_setup ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_call_iseq_setup_2()

static VALUE vm_call_iseq_setup_2 ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc,
int  opt_pc,
int  param_size,
int  local_size 
)
inlinestatic

◆ vm_call_iseq_setup_func()

static vm_call_handler vm_call_iseq_setup_func ( const struct rb_call_info ci,
const int  param_size,
const int  local_size 
)
static

Referenced by vm_base_ptr(), and vm_callee_setup_arg().

◆ vm_call_iseq_setup_normal()

static VALUE vm_call_iseq_setup_normal ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc,
int  opt_pc,
int  param_size,
int  local_size 
)
inlinestatic

◆ vm_call_iseq_setup_normal_0start()

static VALUE vm_call_iseq_setup_normal_0start ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_call_iseq_setup_tailcall()

static VALUE vm_call_iseq_setup_tailcall ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc,
int  opt_pc 
)
inlinestatic

◆ vm_call_iseq_setup_tailcall_0start()

static VALUE vm_call_iseq_setup_tailcall_0start ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

Definition at line 1442 of file vm_insnhelper.c.

References vm_call_iseq_setup_tailcall().

◆ vm_call_ivar()

static VALUE vm_call_ivar ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_call_method()

static VALUE vm_call_method ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
inlinestatic

◆ vm_call_method_each_type()

static VALUE vm_call_method_each_type ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
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().

◆ vm_call_method_missing()

static VALUE vm_call_method_missing ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info orig_ci,
struct rb_call_cache orig_cc 
)
static

◆ vm_call_method_nome()

static VALUE vm_call_method_nome ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_call_opt_call()

static VALUE vm_call_opt_call ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_call_opt_send()

static VALUE vm_call_opt_send ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info orig_ci,
struct rb_call_cache orig_cc 
)
static

◆ vm_call_super_method()

static VALUE vm_call_super_method ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc 
)
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().

◆ vm_call_zsuper()

static VALUE vm_call_zsuper ( rb_thread_t th,
rb_control_frame_t cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc,
VALUE  klass 
)
static

◆ vm_callee_setup_arg()

static int vm_callee_setup_arg ( rb_thread_t th,
struct rb_calling_info calling,
const struct rb_call_info ci,
struct rb_call_cache cc,
const rb_iseq_t iseq,
VALUE argv,
int  param_size,
int  local_size 
)
inlinestatic

◆ vm_callee_setup_block_arg()

static int vm_callee_setup_block_arg ( rb_thread_t th,
struct rb_calling_info calling,
const struct rb_call_info ci,
const rb_iseq_t iseq,
VALUE argv,
const enum arg_setup_type  arg_setup_type 
)
static

◆ vm_callee_setup_block_arg_arg0_check()

static VALUE vm_callee_setup_block_arg_arg0_check ( VALUE argv)
inlinestatic

Definition at line 2504 of file vm_insnhelper.c.

References rb_check_array_type().

Referenced by vm_callee_setup_block_arg().

◆ vm_callee_setup_block_arg_arg0_splat()

static int vm_callee_setup_block_arg_arg0_splat ( rb_control_frame_t cfp,
const rb_iseq_t iseq,
VALUE argv,
VALUE  ary 
)
inlinestatic

◆ vm_check_if_namespace()

static void vm_check_if_namespace ( VALUE  klass)
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().

◆ vm_cref_push()

static rb_cref_t* vm_cref_push ( rb_thread_t th,
VALUE  klass,
const VALUE ep,
int  pushed_by_eval 
)
static

◆ vm_cref_replace_with_duplicated_cref()

static rb_cref_t* vm_cref_replace_with_duplicated_cref ( const VALUE ep)
static

◆ vm_defined()

static VALUE vm_defined ( rb_thread_t th,
rb_control_frame_t reg_cfp,
rb_num_t  op_type,
VALUE  obj,
VALUE  needstr,
VALUE  v 
)
static

◆ vm_ensure_not_refinement_module()

static void vm_ensure_not_refinement_module ( VALUE  self)
inlinestatic

Definition at line 744 of file vm_insnhelper.c.

References FL_TEST, RB_TYPE_P, rb_warn(), RMODULE_IS_REFINEMENT, and T_MODULE.

◆ vm_env_cref()

static rb_cref_t* vm_env_cref ( const VALUE ep)
inlinestatic

◆ vm_env_cref_by_cref()

static int vm_env_cref_by_cref ( const VALUE ep)
static

◆ vm_env_write()

static void vm_env_write ( const VALUE ep,
int  index,
VALUE  v 
)
inlinestatic

◆ vm_env_write_slowpath()

static void vm_env_write_slowpath ( const VALUE ep,
int  index,
VALUE  v 
)
static

◆ vm_expandarray()

static void vm_expandarray ( rb_control_frame_t cfp,
VALUE  ary,
rb_num_t  num,
int  flag 
)
inlinestatic

◆ vm_get_cbase()

static VALUE vm_get_cbase ( const VALUE ep)
inlinestatic

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

◆ vm_get_const_base()

static VALUE vm_get_const_base ( const VALUE ep)
inlinestatic

Definition at line 719 of file vm_insnhelper.c.

References CREF_CLASS(), CREF_NEXT(), CREF_PUSHED_BY_EVAL(), Qundef, and rb_vm_get_cref().

◆ vm_get_const_key_cref()

static const rb_cref_t* vm_get_const_key_cref ( const VALUE ep)
static

Definition at line 648 of file vm_insnhelper.c.

References CREF_CLASS(), CREF_NEXT(), FL_SINGLETON, FL_TEST, NULL, and rb_vm_get_cref().

◆ vm_get_cvar_base()

static VALUE vm_get_cvar_base ( const rb_cref_t cref,
rb_control_frame_t cfp 
)
inlinestatic

◆ vm_get_ev_const()

static VALUE vm_get_ev_const ( rb_thread_t th,
VALUE  orig_klass,
ID  id,
int  is_defined 
)
inlinestatic

◆ vm_get_iclass()

static VALUE vm_get_iclass ( rb_control_frame_t cfp,
VALUE  klass 
)
inlinestatic

Definition at line 752 of file vm_insnhelper.c.

Referenced by vm_get_cvar_base(), and vm_get_ev_const().

◆ vm_get_ruby_level_caller_cfp()

static rb_control_frame_t* vm_get_ruby_level_caller_cfp ( const rb_thread_t th,
const rb_control_frame_t cfp 
)
static

Referenced by vm_cref_push().

◆ vm_getinstancevariable()

static VALUE vm_getinstancevariable ( VALUE  obj,
ID  id,
IC  ic 
)
inlinestatic

Definition at line 970 of file vm_insnhelper.c.

References vm_getivar().

◆ vm_getivar()

static VALUE vm_getivar ( VALUE  obj,
ID  id,
IC  ic,
struct rb_call_cache cc,
int  is_attr 
)
inlinestatic

◆ vm_getspecial()

static VALUE vm_getspecial ( rb_thread_t th,
const VALUE lep,
rb_num_t  key,
rb_num_t  type 
)
inlinestatic

◆ vm_invoke_block()

static VALUE vm_invoke_block ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info ci 
)
static

◆ vm_invoke_ifunc_block()

static VALUE vm_invoke_ifunc_block ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
const struct rb_captured_block captured 
)
static

◆ vm_invoke_iseq_block()

static VALUE vm_invoke_iseq_block ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
int  is_lambda,
const struct rb_captured_block captured 
)
static

◆ vm_invoke_symbol_block()

static VALUE vm_invoke_symbol_block ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
const struct rb_call_info ci,
VALUE  symbol 
)
static

◆ vm_make_proc_with_iseq()

static VALUE vm_make_proc_with_iseq ( const rb_iseq_t blockiseq)
static

◆ vm_method_cfunc_entry()

static const rb_method_cfunc_t* vm_method_cfunc_entry ( const rb_callable_method_entry_t me)
inlinestatic

◆ vm_once_clear()

static VALUE vm_once_clear ( VALUE  data)
static

◆ vm_once_exec()

static VALUE vm_once_exec ( VALUE  iseq)
static

Definition at line 2694 of file vm_insnhelper.c.

References Qnil, rb_proc_call_with_block(), and vm_make_proc_with_iseq().

◆ vm_pop_frame()

static int vm_pop_frame ( rb_thread_t th,
rb_control_frame_t cfp,
const VALUE ep 
)
inlinestatic

◆ vm_proc_to_block_handler()

static VALUE vm_proc_to_block_handler ( VALUE  procval)
static

◆ vm_push_frame()

static rb_control_frame_t* 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 
)
inlinestatic

◆ vm_search_const_defined_class()

static VALUE vm_search_const_defined_class ( const VALUE  cbase,
ID  id 
)
static

Definition at line 862 of file vm_insnhelper.c.

References rb_cObject, rb_const_defined_at(), and RCLASS_SUPER.

◆ vm_search_method()

static void vm_search_method ( const struct rb_call_info ci,
struct rb_call_cache cc,
VALUE  recv 
)
static

◆ vm_search_normal_superclass()

static VALUE vm_search_normal_superclass ( VALUE  klass)
inlinestatic

◆ vm_search_super_method()

static void vm_search_super_method ( rb_thread_t th,
rb_control_frame_t reg_cfp,
struct rb_calling_info calling,
struct rb_call_info ci,
struct rb_call_cache cc 
)
static

◆ vm_setinstancevariable()

static void vm_setinstancevariable ( VALUE  obj,
ID  id,
VALUE  val,
IC  ic 
)
inlinestatic

Definition at line 976 of file vm_insnhelper.c.

References vm_setivar().

◆ vm_setivar()

static VALUE vm_setivar ( VALUE  obj,
ID  id,
VALUE  val,
IC  ic,
struct rb_call_cache cc,
int  is_attr 
)
inlinestatic

◆ vm_stackoverflow()

static void vm_stackoverflow ( void  )
static

◆ vm_super_outside()

static void vm_super_outside ( void  )
static

Definition at line 2350 of file vm_insnhelper.c.

References rb_eNoMethodError, and rb_raise().

Referenced by vm_search_super_method().

◆ vm_throw()

static VALUE vm_throw ( rb_thread_t th,
rb_control_frame_t reg_cfp,
rb_num_t  throw_state,
VALUE  throwobj 
)
static

◆ vm_throw_continue()

static VALUE vm_throw_continue ( rb_thread_t th,
VALUE  err 
)
static

◆ vm_throw_start()

static VALUE vm_throw_start ( rb_thread_t *const  th,
rb_control_frame_t *const  reg_cfp,
enum ruby_tag_type  state,
const int  flag,
const rb_num_t  level,
const VALUE  throwobj 
)
static

◆ vm_yield_setup_args()

static int vm_yield_setup_args ( rb_thread_t th,
const rb_iseq_t iseq,
const int  argc,
VALUE argv,
VALUE  block_handler,
enum arg_setup_type  arg_setup_type 
)
static

◆ vm_yield_with_cfunc()

static VALUE vm_yield_with_cfunc ( rb_thread_t th,
const struct rb_captured_block captured,
VALUE  self,
int  argc,
const VALUE argv,
VALUE  block_handler 
)
static

◆ vm_yield_with_symbol()

static VALUE vm_yield_with_symbol ( rb_thread_t th,
VALUE  symbol,
int  argc,
const VALUE argv,
VALUE  block_handler 
)
static