* common.mk (run.gdb): fix to load $(srcdir)/.gdbinit
* vm.c (rb_vm_set_finish_env): add a cast. * vm.h: support __fastcall for MSVC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c1849cf094
commit
fd58a0836f
|
@ -1,3 +1,11 @@
|
||||||
|
Thu Jun 28 05:01:56 2007 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
|
* common.mk (run.gdb): fix to load $(srcdir)/.gdbinit
|
||||||
|
|
||||||
|
* vm.c (rb_vm_set_finish_env): add a cast.
|
||||||
|
|
||||||
|
* vm.h: support __fastcall for MSVC.
|
||||||
|
|
||||||
Thu Jun 28 02:12:08 2007 Koichi Sasada <ko1@atdot.net>
|
Thu Jun 28 02:12:08 2007 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
* bootstraptest/runner.rb: fix to untouch $:.
|
* bootstraptest/runner.rb: fix to untouch $:.
|
||||||
|
|
|
@ -663,6 +663,7 @@ run.gdb:
|
||||||
echo '# handle SIGPIPE nostop' >> run.gdb
|
echo '# handle SIGPIPE nostop' >> run.gdb
|
||||||
echo '# b rb_longjmp' >> run.gdb
|
echo '# b rb_longjmp' >> run.gdb
|
||||||
echo source $(srcdir)/breakpoints.gdb >> run.gdb
|
echo source $(srcdir)/breakpoints.gdb >> run.gdb
|
||||||
|
echo source $(srcdir)/.gdbinit >> run.gdb
|
||||||
echo run >> run.gdb
|
echo run >> run.gdb
|
||||||
|
|
||||||
gdb: miniruby$(EXEEXT) run.gdb PHONY
|
gdb: miniruby$(EXEEXT) run.gdb PHONY
|
||||||
|
|
2
vm.c
2
vm.c
|
@ -52,7 +52,7 @@ rb_vm_set_finish_env(rb_thread_t *th)
|
||||||
vm_push_frame(th, 0, FRAME_MAGIC_FINISH,
|
vm_push_frame(th, 0, FRAME_MAGIC_FINISH,
|
||||||
Qnil, th->cfp->lfp[0], 0,
|
Qnil, th->cfp->lfp[0], 0,
|
||||||
th->cfp->sp, 0, 1);
|
th->cfp->sp, 0, 1);
|
||||||
th->cfp->pc = &yarv_finish_insn_seq[0];
|
th->cfp->pc = (VALUE *)&yarv_finish_insn_seq[0];
|
||||||
return Qtrue;
|
return Qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
27
vm.h
27
vm.h
|
@ -97,23 +97,32 @@ error !
|
||||||
/************************************************/
|
/************************************************/
|
||||||
#elif OPT_CALL_THREADED_CODE
|
#elif OPT_CALL_THREADED_CODE
|
||||||
|
|
||||||
#if __GCC__
|
|
||||||
#define FASTCALL __attribute__ ((fastcall))
|
|
||||||
#else
|
|
||||||
#define FASTCALL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define LABEL(x) insn_func_##x
|
#define LABEL(x) insn_func_##x
|
||||||
#define ELABEL(x)
|
#define ELABEL(x)
|
||||||
#define LABEL_PTR(x) &LABEL(x)
|
#define LABEL_PTR(x) &LABEL(x)
|
||||||
|
|
||||||
|
#if __GCC__
|
||||||
|
#define FASTCALL(x) x __attribute__ ((fastcall))
|
||||||
|
#define FASTCALL_KWD_GCC __attribute__ ((fastcall))
|
||||||
|
#define FASTCALL_KWD_VC
|
||||||
|
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
#define FASTCALL(x) __fastcall x
|
||||||
|
#define FASTCALL_KWD_GCC
|
||||||
|
#define FASTCALL_KWD_VC __fastcall
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define FASTCALL
|
||||||
|
#define FASTCALL_KWD_GCC
|
||||||
|
#define FASTCALL_KWD_VC
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef rb_control_frame_t *
|
typedef rb_control_frame_t *
|
||||||
(*insn_func_type) (rb_thread_t *, rb_control_frame_t *)FASTCALL;
|
(FASTCALL_KWD_VC *insn_func_type)(rb_thread_t *, rb_control_frame_t *) FASTCALL_KWD_GCC;
|
||||||
|
|
||||||
#define INSN_ENTRY(insn) \
|
#define INSN_ENTRY(insn) \
|
||||||
static rb_control_frame_t * \
|
static rb_control_frame_t * \
|
||||||
LABEL(insn)(rb_thread_t *th, rb_control_frame_t *reg_cfp) FASTCALL {
|
FASTCALL(LABEL(insn)(rb_thread_t *th, rb_control_frame_t *reg_cfp)) {
|
||||||
|
|
||||||
#define END_INSN(insn) return reg_cfp;}
|
#define END_INSN(insn) return reg_cfp;}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue