From 94658e2e2501cc1cdd3c0549f478573a97bac9ec Mon Sep 17 00:00:00 2001 From: Damien Date: Sat, 9 Nov 2013 20:12:32 +0000 Subject: [PATCH] Add JUMP_IF_x_OR_POP opcodes to VM. --- py/vm.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/py/vm.c b/py/vm.c index 735bb4366b..17df7e17f0 100644 --- a/py/vm.c +++ b/py/vm.c @@ -228,6 +228,24 @@ bool py_execute_byte_code_2(const byte **ip_in_out, py_obj_t *fastn, py_obj_t ** } break; + case PYBC_JUMP_IF_TRUE_OR_POP: + DECODE_SLABEL; + if (rt_is_true(*sp)) { + ip += unum; + } else { + sp++; + } + break; + + case PYBC_JUMP_IF_FALSE_OR_POP: + DECODE_SLABEL; + if (rt_is_true(*sp)) { + sp++; + } else { + ip += unum; + } + break; + /* we are trying to get away without using this opcode case PYBC_SETUP_LOOP: DECODE_UINT;