added primitive code to compile the 'if' expression
This commit is contained in:
@@ -247,7 +247,6 @@ int moo_decode (moo_t* moo, moo_oop_method_t mth, const moo_oocs_t* classfqn)
|
||||
case BCODE_JUMP_BACKWARD_X:
|
||||
FETCH_PARAM_CODE_TO (moo, b1);
|
||||
LOG_INST_1 (moo, "jump_backward %zu", b1);
|
||||
moo->ip += b1;
|
||||
break;
|
||||
|
||||
case BCODE_JUMP_BACKWARD_0:
|
||||
@@ -257,19 +256,29 @@ int moo_decode (moo_t* moo, moo_oop_method_t mth, const moo_oocs_t* classfqn)
|
||||
LOG_INST_1 (moo, "jump_backward %zu", (moo_oow_t)(bcode & 0x3)); /* low 2 bits */
|
||||
break;
|
||||
|
||||
case BCODE_JUMP_IF_TRUE_X:
|
||||
case BCODE_JUMP_IF_FALSE_X:
|
||||
case BCODE_JUMP_IF_TRUE_0:
|
||||
case BCODE_JUMP_IF_TRUE_1:
|
||||
case BCODE_JUMP_IF_TRUE_2:
|
||||
case BCODE_JUMP_IF_TRUE_3:
|
||||
case BCODE_JUMP_IF_FALSE_0:
|
||||
case BCODE_JUMP_IF_FALSE_1:
|
||||
case BCODE_JUMP_IF_FALSE_2:
|
||||
case BCODE_JUMP_IF_FALSE_3:
|
||||
LOG_INST_0 (moo, "<<<<<<<<<<<<<< JUMP NOT IMPLEMENTED YET >>>>>>>>>>>>");
|
||||
moo->errnum = MOO_ENOIMPL;
|
||||
return -1;
|
||||
case BCODE_JUMP_FORWARD_IF_FALSE_X:
|
||||
FETCH_PARAM_CODE_TO (moo, b1);
|
||||
LOG_INST_1 (moo, "jump_forward_if_false %zu", b1);
|
||||
break;
|
||||
|
||||
case BCODE_JUMP_FORWARD_IF_FALSE_0:
|
||||
case BCODE_JUMP_FORWARD_IF_FALSE_1:
|
||||
case BCODE_JUMP_FORWARD_IF_FALSE_2:
|
||||
case BCODE_JUMP_FORWARD_IF_FALSE_3:
|
||||
LOG_INST_1 (moo, "jump_forward_if_false %zu", (moo_oow_t)(bcode & 0x3)); /* low 2 bits */
|
||||
break;
|
||||
|
||||
case BCODE_JUMP_BACKWARD_IF_FALSE_X:
|
||||
FETCH_PARAM_CODE_TO (moo, b1);
|
||||
LOG_INST_1 (moo, "jump_backward_if_false %zu", b1);
|
||||
break;
|
||||
|
||||
case BCODE_JUMP_BACKWARD_IF_FALSE_0:
|
||||
case BCODE_JUMP_BACKWARD_IF_FALSE_1:
|
||||
case BCODE_JUMP_BACKWARD_IF_FALSE_2:
|
||||
case BCODE_JUMP_BACKWARD_IF_FALSE_3:
|
||||
LOG_INST_1 (moo, "jump_backward_if_false %zu", (moo_oow_t)(bcode & 0x3)); /* low 2 bits */
|
||||
break;
|
||||
|
||||
case BCODE_JUMP2_FORWARD:
|
||||
FETCH_PARAM_CODE_TO (moo, b1);
|
||||
@@ -281,6 +290,15 @@ return -1;
|
||||
LOG_INST_1 (moo, "jump2_backward %zu", b1);
|
||||
break;
|
||||
|
||||
case BCODE_JUMP2_FORWARD_IF_FALSE:
|
||||
FETCH_PARAM_CODE_TO (moo, b1);
|
||||
LOG_INST_1 (moo, "jump2_forward_if_false %zu", b1);
|
||||
break;
|
||||
|
||||
case BCODE_JUMP2_BACKWARD_IF_FALSE:
|
||||
FETCH_PARAM_CODE_TO (moo, b1);
|
||||
LOG_INST_1 (moo, "jump2_backward_if_false %zu", b1);
|
||||
break;
|
||||
/* -------------------------------------------------------- */
|
||||
|
||||
case BCODE_PUSH_CTXTEMPVAR_X:
|
||||
|
||||
Reference in New Issue
Block a user