Ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a25176072e02db9254f0e0c84c805cd)
|
#include "insns.inc"
#include "insns_info.inc"
#include <math.h>
#include "constant.h"
#include "internal.h"
#include "ruby/config.h"
#include "debug_counter.h"
#include "variable.h"
#include "vm_args.c"
Go to the source code of this file.
Macros | |
#define | vm_check_canary(ec, sp) |
#define | vm_check_frame(a, b, c, d) |
#define | BUILTIN_CLASS_P(x, k) (!SPECIAL_CONST_P(x) && RBASIC_CLASS(x) == k) |
#define | EQ_UNREDEFINED_P(t) BASIC_OP_UNREDEFINED_P(BOP_EQ, t##_REDEFINED_OP_FLAG) |
#define | CHECK_CMP_NAN(a, b) /* do nothing */ |
#define | USE_OPT_HIST 0 |
#define | CHECK_CFP_CONSISTENCY(func) |
#define | id_cmp idCmp |
#define | VM_TRACE_HOOK(target_event, val) |
Typedefs | |
typedef VALUE(* | builtin_invoker) (rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) |
#define BUILTIN_CLASS_P | ( | x, | |
k | |||
) | (!SPECIAL_CONST_P(x) && RBASIC_CLASS(x) == k) |
Definition at line 1663 of file vm_insnhelper.c.
#define CHECK_CFP_CONSISTENCY | ( | func | ) |
Definition at line 2448 of file vm_insnhelper.c.
#define CHECK_CMP_NAN | ( | a, | |
b | |||
) | /* do nothing */ |
Definition at line 1823 of file vm_insnhelper.c.
#define EQ_UNREDEFINED_P | ( | t | ) | BASIC_OP_UNREDEFINED_P(BOP_EQ, t##_REDEFINED_OP_FLAG) |
Definition at line 1664 of file vm_insnhelper.c.
#define id_cmp idCmp |
Definition at line 4070 of file vm_insnhelper.c.
#define USE_OPT_HIST 0 |
Definition at line 2004 of file vm_insnhelper.c.
#define vm_check_canary | ( | ec, | |
sp | |||
) |
Definition at line 257 of file vm_insnhelper.c.
#define vm_check_frame | ( | a, | |
b, | |||
c, | |||
d | |||
) |
Definition at line 258 of file vm_insnhelper.c.
#define VM_TRACE_HOOK | ( | target_event, | |
val | |||
) |
Definition at line 4764 of file vm_insnhelper.c.
typedef VALUE(* builtin_invoker) (rb_execution_context_t *ec, VALUE self, const VALUE *argv, rb_insn_func_t funcptr) |
Definition at line 4996 of file vm_insnhelper.c.
ALWAYS_INLINE | ( | static VALUE | vm_call_iseq_setup_normalrb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, const rb_callable_method_entry_t *me, int opt_pc, int param_size, int local_size | ) |
ALWAYS_INLINE | ( | static VALUE | vm_getivarVALUE, ID, IVC, struct rb_call_cache *, int | ) |
Definition at line 4856 of file vm_insnhelper.c.
NOINLINE | ( | static VALUE | vm_invoke_block_opt_callrb_execution_context_t *ec, rb_control_frame_t *reg_cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, VALUE block_handler | ) |
NOINLINE | ( | static void | vm_env_write_slowpathconst VALUE *ep, int index, VALUE v | ) |
NOINLINE | ( | static void | vm_tracerb_execution_context_t *ec, rb_control_frame_t *reg_cfp, const VALUE *pc | ) |
NORETURN | ( | MJIT_STATIC void | rb_ec_stack_overflowrb_execution_context_t *ec, int crit | ) |
NORETURN | ( | static void | ec_stack_overflowrb_execution_context_t *ec, int | ) |
NORETURN | ( | static void | unmatched_redefinitionconst char *type, VALUE cbase, ID id, VALUE old | ) |
NORETURN | ( | static void | vm_raise_method_missingrb_execution_context_t *ec, int argc, const VALUE *argv, VALUE obj, int call_status | ) |
NORETURN | ( | static void | vm_stack_consistency_errorconst rb_execution_context_t *ec, const rb_control_frame_t *, const VALUE * | ) |
NORETURN | ( | static void | vm_stackoverflowvoid | ) |
PUREFUNC | ( | static rb_callable_method_entry_t * | check_method_entryVALUE obj, int can_be_svar | ) |
PUREFUNC | ( | static rb_control_frame_t * | current_method_entryconst rb_execution_context_t *ec, rb_control_frame_t *cfp | ) |
PUREFUNC | ( | static rb_cref_t * | check_crefVALUE, int | ) |
MJIT_STATIC void rb_ec_stack_overflow | ( | rb_execution_context_t * | ec, |
int | crit | ||
) |
Definition at line 67 of file vm_insnhelper.c.
References crit, rb_execution_context_struct::errinfo, rb_execution_context_struct::raised_flag, RAISED_STACKOVERFLOW, and rb_during_gc().
Definition at line 1783 of file vm_insnhelper.c.
References rb_call_data::ci, idEqlP, and rb_call_info::mid.
Definition at line 1775 of file vm_insnhelper.c.
References rb_call_data::ci, idEq, and rb_call_info::mid.
MJIT_STATIC void rb_error_arity | ( | int | argc, |
int | min, | ||
int | max | ||
) |
Definition at line 387 of file vm_insnhelper.c.
MJIT_FUNC_EXPORTED VALUE rb_find_defined_class_by_owner | ( | VALUE | current_class, |
VALUE | target_owner | ||
) |
Definition at line 2798 of file vm_insnhelper.c.
References current_class, FL_TEST, klass, RB_TYPE_P, RBASIC_CLASS, RCLASS_SUPER, RICLASS_IS_ORIGIN, RTEST, T_ICLASS, and target_owner.
rb_event_flag_t rb_iseq_event_flags | ( | const rb_iseq_t * | iseq, |
size_t | pos | ||
) |
Definition at line 1774 of file iseq.c.
Referenced by rb_iseq_disasm_insn(), and rb_iseq_trace_set().
rb_method_definition_t * rb_method_definition_create | ( | rb_method_type_t | type, |
ID | mid | ||
) |
Definition at line 348 of file vm_method.c.
int rb_method_definition_eq | ( | const rb_method_definition_t * | d1, |
const rb_method_definition_t * | d2 | ||
) |
Definition at line 1521 of file vm_method.c.
Referenced by rb_method_entry_eq().
void rb_method_definition_set | ( | const rb_method_entry_t * | me, |
rb_method_definition_t * | def, | ||
void * | opts | ||
) |
Definition at line 232 of file vm_method.c.
MJIT_STATIC bool rb_simple_iseq_p | ( | const rb_iseq_t * | iseq | ) |
Definition at line 1919 of file vm_insnhelper.c.
References rb_iseq_constant_body::accepts_no_kwarg, rb_iseq_struct::body, FALSE, rb_iseq_constant_body::flags, rb_iseq_constant_body::has_block, rb_iseq_constant_body::has_kw, rb_iseq_constant_body::has_kwrest, rb_iseq_constant_body::has_opt, rb_iseq_constant_body::has_post, rb_iseq_constant_body::has_rest, iseq, and rb_iseq_constant_body::param.
MJIT_STATIC VALUE rb_vm_bh_to_procval | ( | const rb_execution_context_t * | ec, |
VALUE | block_handler | ||
) |
Definition at line 419 of file vm_insnhelper.c.
References block_handler, Qnil, and VM_BLOCK_HANDLER_NONE.
VALUE rb_vm_call0 | ( | rb_execution_context_t * | ec, |
VALUE | recv, | ||
ID | id, | ||
int | argc, | ||
const VALUE * | argv, | ||
const rb_callable_method_entry_t * | me, | ||
int | kw_splat | ||
) |
Definition at line 46 of file vm_eval.c.
Referenced by rb_vm_call_kw().
MJIT_STATIC const rb_callable_method_entry_t * rb_vm_frame_method_entry | ( | const rb_control_frame_t * | cfp | ) |
Definition at line 612 of file vm_insnhelper.c.
References cfp, rb_control_frame_struct::ep, and me.
VALUE rb_vm_lvar_exposed | ( | rb_execution_context_t * | ec, |
int | index | ||
) |
Definition at line 5060 of file vm_insnhelper.c.
References rb_execution_context_struct::cfp, cfp, rb_control_frame_struct::ep, and index.
rb_control_frame_t *FUNC_FASTCALL() rb_vm_opt_struct_aref | ( | rb_execution_context_t * | ec, |
rb_control_frame_t * | reg_cfp | ||
) |
Definition at line 3467 of file vm_insnhelper.c.
References GET_SELF, rb_struct_aref(), reg_cfp, and TOPN.
rb_control_frame_t *FUNC_FASTCALL() rb_vm_opt_struct_aset | ( | rb_execution_context_t * | ec, |
rb_control_frame_t * | reg_cfp | ||
) |
Definition at line 3474 of file vm_insnhelper.c.
References GET_SELF, rb_struct_aset(), reg_cfp, and TOPN.
MJIT_STATIC void rb_vm_pop_frame | ( | rb_execution_context_t * | ec | ) |
Definition at line 364 of file vm_insnhelper.c.
void rb_vm_rewrite_cref | ( | rb_cref_t * | cref, |
VALUE | old_klass, | ||
VALUE | new_klass, | ||
rb_cref_t ** | new_cref_ptr | ||
) |
Definition at line 801 of file vm_insnhelper.c.
MJIT_FUNC_EXPORTED void rb_vm_search_method_slowpath | ( | struct rb_call_data * | cd, |
VALUE | klass | ||
) |
Definition at line 1467 of file vm_insnhelper.c.
References call, rb_call_data::cc, cc, rb_call_data::ci, ci, klass, me, and rb_callable_method_entry().
MJIT_STATIC VALUE ruby_vm_special_exception_copy | ( | VALUE | exc | ) |
Definition at line 34 of file vm_insnhelper.c.
References exc, rb_class_real(), rb_obj_alloc(), rb_obj_copy_ivar(), and RBASIC_CLASS.