15 #define DECL_SC_REG(type, r, reg) register type reg_##r 17 #elif __GNUC__ && __x86_64__ 18 #define DECL_SC_REG(type, r, reg) register type reg_##r __asm__("r" reg) 20 #elif __GNUC__ && __i386__ 21 #define DECL_SC_REG(type, r, reg) register type reg_##r __asm__("e" reg) 24 #define DECL_SC_REG(type, r, reg) register type reg_##r 30 #elif OPT_CALL_THREADED_CODE 36 #if !OPT_CALL_THREADED_CODE 43 #elif __GNUC__ && __x86_64__ 52 #if __GNUC__ && __i386__ 55 #define USE_MACHINE_REGS 1 57 #elif __GNUC__ && __x86_64__ 60 #define USE_MACHINE_REGS 1 70 #define RESTORE_REGS() \ 73 reg_pc = reg_cfp->pc; \ 79 #define GET_PC() (reg_pc) 81 #define SET_PC(x) (reg_cfp->pc = REG_PC = (x)) 84 #if OPT_TOKEN_THREADED_CODE || OPT_DIRECT_THREADED_CODE 92 return (
VALUE)insns_address_table;
111 rb_bug(
"vm_eval: unreachable");
129 return insns_address_table;
149 rb_bug(
"cfp consistency error");
152 ret = *(th->
cfp->
sp-1);
#define END_INSNS_DISPATCH()
void rb_bug(const char *fmt,...)
const void ** rb_vm_get_insns_address_table(void)
#define VM_FRAME_TYPE(cfp)
static VALUE finish_insn_seq[1]
#define DECL_SC_REG(type, r, reg)
static VALUE vm_exec_core(rb_thread_t *th, VALUE initial)
rb_control_frame_t *FUNC_FASTCALL rb_insn_func_t(rb_thread_t *, rb_control_frame_t *)
#define VM_FRAME_MAGIC_FINISH