From 84acf4e3f38d01c72ae077db1234c880658c10aa Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 9 Apr 2013 15:31:17 +0900 Subject: preparation for tail call optimization (still has bugs) --- src/vm.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/vm.c') diff --git a/src/vm.c b/src/vm.c index 468396a51..13058fc28 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1195,9 +1195,11 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) NEXT; } + L_RETURN: + i = MKOP_AB(OP_RETURN, GETARG_A(i), OP_R_NORMAL); + /* fall through */ CASE(OP_RETURN) { /* A return R(A) */ - L_RETURN: if (mrb->exc) { mrb_callinfo *ci; int eidx; @@ -1333,7 +1335,6 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) } } - /* replace callinfo */ ci = mrb->ci; ci->mid = mid; @@ -1658,7 +1659,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) } while (0) CASE(OP_EQ) { - /* A B C R(A) := R(A)=); NEXT; } -- cgit v1.2.3