changeset 24:434c28ad3b80

fix invoke function
author anatofuz
date Fri, 02 Nov 2018 18:53:01 +0900
parents 005049773e61
children 401bbab649d6
files src/core/cbc-interp.cbc
diffstat 1 files changed, 11 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/cbc-interp.cbc	Fri Nov 02 18:26:39 2018 +0900
+++ b/src/core/cbc-interp.cbc	Fri Nov 02 18:53:01 2018 +0900
@@ -956,7 +956,6 @@
     goto NEXT(i);
 }
 __code cbc_invoke_v(INTERP i){
-    {
         MVMObject   *code = GET_REG(i->cur_op, 0,i).o;
         MVMRegister *args = i->tc->cur_frame->args;
         MVMuint16 was_multi = 0;
@@ -973,11 +972,10 @@
         i->tc->cur_frame->return_type = MVM_RETURN_VOID;
         i->cur_op += 2;
         i->tc->cur_frame->return_address = i->cur_op;
-        goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
-    }
+        STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
+	goto NEXT(i);
 }
 __code cbc_invoke_i(INTERP i){
-    {
         MVMObject   *code = GET_REG(i->cur_op, 2,i).o;
         MVMRegister *args = i->tc->cur_frame->args;
         MVMuint16 was_multi = 0;
@@ -992,11 +990,10 @@
         i->tc->cur_frame->return_type = MVM_RETURN_INT;
         i->cur_op += 4;
         i->tc->cur_frame->return_address = i->cur_op;
-        goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
-    }
+        STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
+	goto NEXT(i);
 }
 __code cbc_invoke_n(INTERP i){
-    {
         MVMObject   *code = GET_REG(i->cur_op, 2,i).o;
         MVMRegister *args = i->tc->cur_frame->args;
         MVMuint16 was_multi = 0;
@@ -1011,8 +1008,9 @@
         i->tc->cur_frame->return_type = MVM_RETURN_NUM;
         i->cur_op += 4;
         i->tc->cur_frame->return_address = i->cur_op;
-        goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
-    }
+        STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
+	goto NEXT(i);
+
 }
 __code cbc_invoke_s(INTERP i){
         MVMObject   *code = GET_REG(i->cur_op, 2,i).o;
@@ -1029,8 +1027,8 @@
         i->tc->cur_frame->return_type = MVM_RETURN_STR;
         i->cur_op += 4;
         i->tc->cur_frame->return_address = i->cur_op;
-        goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
-    goto NEXT(i);
+        STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
+        goto NEXT(i);
 }
 __code cbc_invoke_o(INTERP i){
         MVMObject   *code = GET_REG(i->cur_op, 2,i).o;
@@ -1047,8 +1045,8 @@
         i->tc->cur_frame->return_type = MVM_RETURN_OBJ;
         i->cur_op += 4;
         i->tc->cur_frame->return_address = i->cur_op;
-        goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
-    goto NEXT(i);
+        STABLE(code)->invoke(i->tc, code, i->cur_callsite, args);
+	    goto NEXT(i);
 }
 __code cbc_checkarity(INTERP i){
     MVM_args_checkarity(i->tc, &i->tc->cur_frame->params, GET_UI16(i->cur_op, 0), GET_UI16(i->cur_op, 2));