Ruby
3.1.0dev(2021-09-10revisionb76ad15ed0da636161de0243c547ee1e6fc95681)
|
#include "ruby/internal/config.h"
#include <math.h>
#include "constant.h"
#include "debug_counter.h"
#include "internal.h"
#include "internal/class.h"
#include "internal/compar.h"
#include "internal/hash.h"
#include "internal/numeric.h"
#include "internal/proc.h"
#include "internal/random.h"
#include "internal/variable.h"
#include "variable.h"
#include "insns.inc"
#include "insns_info.inc"
#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 | vm_push_frame_debug_counter_inc(ec, cfp, t) /* void */ |
#define | EQ_UNREDEFINED_P(t) BASIC_OP_UNREDEFINED_P(BOP_EQ, t##_REDEFINED_OP_FLAG) |
#define | CHECK_CMP_NAN(a, b) if (isnan(a) || isnan(b)) return Qfalse; |
#define | USE_OPT_HIST 0 |
#define | CHECK_CFP_CONSISTENCY(func) |
#define | id_cmp idCmp |
#define | IMEMO_CONST_CACHE_SHAREABLE IMEMO_FL_USER0 |
#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) |
Enumerations | |
enum | method_explorer_type { mexp_search_method, mexp_search_invokeblock, mexp_search_super } |
#define CHECK_CFP_CONSISTENCY | ( | func | ) |
Definition at line 2926 of file vm_insnhelper.c.
Definition at line 2120 of file vm_insnhelper.c.
#define EQ_UNREDEFINED_P | ( | t | ) | BASIC_OP_UNREDEFINED_P(BOP_EQ, t##_REDEFINED_OP_FLAG) |
Definition at line 1952 of file vm_insnhelper.c.
#define id_cmp idCmp |
Definition at line 4659 of file vm_insnhelper.c.
#define IMEMO_CONST_CACHE_SHAREABLE IMEMO_FL_USER0 |
Definition at line 4715 of file vm_insnhelper.c.
#define USE_OPT_HIST 0 |
Definition at line 2320 of file vm_insnhelper.c.
#define vm_check_canary | ( | ec, | |
sp | |||
) |
Definition at line 290 of file vm_insnhelper.c.
#define vm_check_frame | ( | a, | |
b, | |||
c, | |||
d | |||
) |
Definition at line 291 of file vm_insnhelper.c.
#define vm_push_frame_debug_counter_inc | ( | ec, | |
cfp, | |||
t | |||
) | /* void */ |
Definition at line 341 of file vm_insnhelper.c.
#define VM_TRACE_HOOK | ( | target_event, | |
val | |||
) |
Definition at line 5386 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 5622 of file vm_insnhelper.c.
enum method_explorer_type |
Enumerator | |
---|---|
mexp_search_method | |
mexp_search_invokeblock | |
mexp_search_super |
Definition at line 4557 of file vm_insnhelper.c.
void Init_vm_stack_canary | ( | void | ) |
Definition at line 5482 of file vm_insnhelper.c.
void rb_ec_stack_overflow | ( | rb_execution_context_t * | ec, |
int | crit | ||
) |
Definition at line 84 of file vm_insnhelper.c.
References rb_execution_context_struct::errinfo, rb_execution_context_struct::raised_flag, RAISED_STACKOVERFLOW, rb_bug(), and rb_during_gc().
Definition at line 2082 of file vm_insnhelper.c.
Definition at line 2076 of file vm_insnhelper.c.
void rb_error_arity | ( | int | argc, |
int | min, | ||
int | max | ||
) |
Definition at line 442 of file vm_insnhelper.c.
Definition at line 3078 of file vm_insnhelper.c.
rb_event_flag_t rb_iseq_event_flags | ( | const rb_iseq_t * | iseq, |
size_t | pos | ||
) |
Definition at line 1869 of file iseq.c.
Referenced by rb_iseq_disasm_insn(), and rb_iseq_trace_set().
VALUE rb_make_no_method_exception | ( | VALUE | exc, |
VALUE | format, | ||
VALUE | obj, | ||
int | argc, | ||
const VALUE * | argv, | ||
int | priv | ||
) |
Definition at line 918 of file vm_eval.c.
References argc, argv, name, rb_ary_new4, rb_eNoMethodError, rb_fstring_lit, rb_name_err_new(), and rb_nomethod_err_new().
rb_method_definition_t* rb_method_definition_create | ( | rb_method_type_t | type, |
ID | mid | ||
) |
Definition at line 555 of file vm_method.c.
References rb_method_definition_struct::method_serial, rb_method_definition_struct::original_id, and ZALLOC.
int rb_method_definition_eq | ( | const rb_method_definition_t * | d1, |
const rb_method_definition_t * | d2 | ||
) |
void rb_method_definition_set | ( | const rb_method_entry_t * | me, |
rb_method_definition_t * | def, | ||
void * | opts | ||
) |
Definition at line 437 of file vm_method.c.
References rb_method_entry_struct::def, if(), NULL, and VM_METHOD_TYPE_ISEQ.
Definition at line 2218 of file vm_insnhelper.c.
References rb_iseq_struct::body, FALSE, rb_iseq_constant_body::flags, and rb_iseq_constant_body::param.
bool rb_splat_or_kwargs_p | ( | const struct rb_callinfo *restrict | ci | ) |
Definition at line 2254 of file vm_insnhelper.c.
References IS_ARGS_KW_OR_KW_SPLAT, and IS_ARGS_SPLAT.
VALUE rb_vm_bh_to_procval | ( | const rb_execution_context_t * | ec, |
VALUE | block_handler | ||
) |
Definition at line 474 of file vm_insnhelper.c.
References Qnil, and VM_BLOCK_HANDLER_NONE.
VALUE rb_vm_call0 | ( | rb_execution_context_t * | ec, |
VALUE | , | ||
ID | , | ||
int | , | ||
const VALUE * | , | ||
const rb_callable_method_entry_t * | , | ||
int | kw_splat | ||
) |
Definition at line 46 of file vm_eval.c.
References argc, rb_calling_info::ci, rb_calling_info::kw_splat, NULL, Qfalse, VM_CALL_KW_SPLAT, VM_CC_ON_STACK, and VM_CI_ON_STACK.
Referenced by rb_check_funcall_basic_kw(), and rb_vm_call_kw().
bool rb_vm_call_ivar_attrset_p | ( | const vm_call_handler | ch | ) |
Definition at line 3033 of file vm_insnhelper.c.
void rb_vm_cc_general | ( | const struct rb_callcache * | cc | ) |
Definition at line 3649 of file vm_insnhelper.c.
References rb_callcache::call_, imemo_callcache, IMEMO_TYPE_P, VM_ASSERT, and vm_cc_empty.
const rb_callable_method_entry_t* rb_vm_frame_method_entry | ( | const rb_control_frame_t * | cfp | ) |
Definition at line 667 of file vm_insnhelper.c.
References rb_control_frame_struct::ep.
Referenced by rb_vm_control_frame_id_and_class(), and rb_vm_pop_cfunc_frame().
VALUE rb_vm_lvar_exposed | ( | rb_execution_context_t * | ec, |
int | index | ||
) |
Definition at line 5689 of file vm_insnhelper.c.
References rb_execution_context_struct::cfp, and rb_control_frame_struct::ep.
bool rb_vm_opt_cfunc_p | ( | CALL_CACHE | cc, |
int | insn | ||
) |
Definition at line 5372 of file vm_insnhelper.c.
void rb_vm_pop_frame | ( | rb_execution_context_t * | ec | ) |
Definition at line 419 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 867 of file vm_insnhelper.c.
const struct rb_callcache* rb_vm_search_method_slowpath | ( | const struct rb_callinfo * | ci, |
VALUE | klass | ||
) |
Definition at line 1816 of file vm_insnhelper.c.
References VM_ASSERT.
Definition at line 48 of file vm_insnhelper.c.
References rb_class_real(), rb_obj_alloc(), rb_obj_copy_ivar(), and RBASIC_CLASS.
STATIC_ASSERT | ( | VM_ENV_DATA_INDEX_FLAGS | , |
VM_ENV_DATA_INDEX_FLAGS | = =-0 |
||
) |
STATIC_ASSERT | ( | VM_ENV_DATA_INDEX_ME_CREF | , |
VM_ENV_DATA_INDEX_ME_CREF | = =-2 |
||
) |
STATIC_ASSERT | ( | VM_ENV_DATA_INDEX_SPECVAL | , |
VM_ENV_DATA_INDEX_SPECVAL | = =-1 |
||
) |