diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-23 00:20:28 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-23 00:20:28 +0000 |
commit | a05cd1f55a80d3b159d986e24d67252d9a890d25 (patch) | |
tree | f7ab9657e81a7ea8b79696c2f0f1e0f9ca184d13 /vm_evalbody.c | |
parent | c1785306e1dd5b771126aa469594d54c6fdc55e9 (diff) | |
download | ruby-a05cd1f55a80d3b159d986e24d67252d9a890d25.tar.gz ruby-a05cd1f55a80d3b159d986e24d67252d9a890d25.tar.xz ruby-a05cd1f55a80d3b159d986e24d67252d9a890d25.zip |
* common.mk: clean up
- remove blockinlining.$(OBJEXT) to built
- make ENCODING_H_INCLDUES variable (include/ruby/encoding.h)
- make VM_CORE_H_INCLUDES variable (vm_core.h)
- simplify rules.
- make depends rule to output depend status using gcc -MM.
* include/ruby/mvm.h, include/ruby/vm.h: rename mvm.h to vm.h.
* include/ruby.h: ditto.
* load.c: add inclusion explicitly.
* enumerator.c, object.c, parse.y, thread.c, vm_dump.c:
remove useless inclusion.
* eval_intern.h: cleanup inclusion.
* vm_core.h: rb_thread_t should be defined in this file.
* vm_evalbody.c, vm_exec.c: rename vm_evalbody.c to vm_exec.c.
* vm.h, vm_exec.h: rename vm.h to vm_exec.h.
* insnhelper.h, vm_insnhelper.h: rename insnhelper.h to vm_insnhelper.h.
* vm.c, vm_insnhelper.c, vm_insnhelper.h:
- rename vm_eval() to vm_exec_core().
- rename vm_eval_body() to vm_exec().
- cleanup include order.
* vm_method.c: fix comment.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_evalbody.c')
-rw-r--r-- | vm_evalbody.c | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/vm_evalbody.c b/vm_evalbody.c deleted file mode 100644 index 65f296418..000000000 --- a/vm_evalbody.c +++ /dev/null @@ -1,148 +0,0 @@ -/* -*-c-*- */ -/********************************************************************** - - vm_evalbody.c - - - $Author$ - - Copyright (C) 2004-2007 Koichi Sasada - -**********************************************************************/ - -#include <math.h> - -#if VMDEBUG > 0 -#define DECL_SC_REG(type, r, reg) register type reg_##r - -#elif __GNUC__ && __x86_64__ -#define DECL_SC_REG(type, r, reg) register type reg_##r __asm__("r" reg) - -#elif __GNUC__ && __i386__ -#define DECL_SC_REG(type, r, reg) register type reg_##r __asm__("e" reg) - -#else -#define DECL_SC_REG(type, r, reg) register type reg_##r -#endif -/* #define DECL_SC_REG(r, reg) VALUE reg_##r */ - -#if !OPT_CALL_THREADED_CODE -static VALUE -vm_eval(rb_thread_t *th, VALUE initial) -{ - -#if OPT_STACK_CACHING -#if 0 -#elif __GNUC__ && __x86_64 - DECL_SC_REG(VALUE, a, "12"); - DECL_SC_REG(VALUE, b, "13"); -#else - register VALUE reg_a; - register VALUE reg_b; -#endif -#endif - -#if __GNUC__ && __i386__ - DECL_SC_REG(VALUE *, pc, "di"); - DECL_SC_REG(rb_control_frame_t *, cfp, "si"); -#define USE_MACHINE_REGS 1 - -#elif __GNUC__ && __x86_64__ - DECL_SC_REG(VALUE *, pc, "14"); - DECL_SC_REG(rb_control_frame_t *, cfp, "15"); -#define USE_MACHINE_REGS 1 - -#else - register rb_control_frame_t *reg_cfp; - VALUE *reg_pc; -#endif - -#if USE_MACHINE_REGS - -#undef RESTORE_REGS -#define RESTORE_REGS() \ -{ \ - REG_CFP = th->cfp; \ - reg_pc = reg_cfp->pc; \ -} - -#undef REG_PC -#define REG_PC reg_pc -#undef GET_PC -#define GET_PC() (reg_pc) -#undef SET_PC -#define SET_PC(x) (reg_cfp->pc = REG_PC = (x)) -#endif - -#if OPT_TOKEN_THREADED_CODE || OPT_DIRECT_THREADED_CODE -#include "vmtc.inc" - if (th == 0) { -#if OPT_STACK_CACHING - finish_insn_seq[0] = (VALUE)&&LABEL (finish_SC_ax_ax); -#else - finish_insn_seq[0] = (VALUE)&&LABEL (finish); -#endif - return (VALUE)insns_address_table; - } -#endif - reg_cfp = th->cfp; - reg_pc = reg_cfp->pc; - -#if OPT_STACK_CACHING - reg_a = initial; - reg_b = 0; -#endif - - first: - INSN_DISPATCH(); -/*****************/ - #include "vm.inc" -/*****************/ - END_INSNS_DISPATCH(); - - /* unreachable */ - rb_bug("vm_eval: unreachable"); - goto first; -} - -#else - -#include "vm.inc" -#include "vmtc.inc" - -const void *const * -get_insns_address_table() -{ - return insns_address_table; -} - -VALUE -vm_eval(rb_thread_t *th, VALUE initial) -{ - register rb_control_frame_t *reg_cfp = th->cfp; - VALUE ret; - - while (*GET_PC()) { - reg_cfp = ((rb_insn_func_t) (*GET_PC()))(th, reg_cfp); - - if (reg_cfp == 0) { - VALUE err = th->errinfo; - th->errinfo = Qnil; - return err; - } - } - - if (VM_FRAME_TYPE(th->cfp) != VM_FRAME_MAGIC_FINISH) { - rb_bug("cfp consistency error"); - } - - ret = *(th->cfp->sp-1); /* pop */ - th->cfp++; /* pop cf */ - return ret; -} -#endif - -const void ** -vm_get_insns_address_table(void) -{ - return (const void **)vm_eval(0, 0); -} |