summaryrefslogtreecommitdiffstats
path: root/vm_evalbody.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-23 00:20:28 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-23 00:20:28 +0000
commita05cd1f55a80d3b159d986e24d67252d9a890d25 (patch)
treef7ab9657e81a7ea8b79696c2f0f1e0f9ca184d13 /vm_evalbody.c
parentc1785306e1dd5b771126aa469594d54c6fdc55e9 (diff)
downloadruby-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.c148
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);
-}