summaryrefslogtreecommitdiff
path: root/vm_evalbody.ci
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-20 09:29:46 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-20 09:29:46 +0000
commitc334a09f7ad58c692ec86e1d55c561e86806260b (patch)
tree3f213d5f67e93eb9ebf38692865f89b0608afda4 /vm_evalbody.ci
parentc9923aeb6931f68ce600bbeb0f3c89aebf328a5b (diff)
* common.mk, *.ci: renamed to *.c.
* eval_laod.c: renamed to load.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_evalbody.ci')
-rw-r--r--vm_evalbody.ci143
1 files changed, 0 insertions, 143 deletions
diff --git a/vm_evalbody.ci b/vm_evalbody.ci
deleted file mode 100644
index 7657c838ca..0000000000
--- a/vm_evalbody.ci
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -*-c-*- */
-/**********************************************************************
-
- vm_evalbody.ci -
-
- $Author$
- $Date$
-
- 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
-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) != FRAME_MAGIC_FINISH) {
- rb_bug("cfp consistency error");
- }
-
- ret = *(th->cfp->sp-1); /* pop */
- th->cfp++; /* pop cf */
- return ret;
-}
-#endif