Mercurial > hg > Members > anatofuz > MoarVM
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));