diff --git a/src/rustint/core.clj b/src/rustint/core.clj index 60ae00c..da86457 100644 --- a/src/rustint/core.clj +++ b/src/rustint/core.clj @@ -2066,6 +2066,18 @@ ; JMP: Salto incondicional. Cambia cont-prg por el valor del argumento. JMP (recur cod regs-de-act (second fetched) pila mapa-regs) + + ; JC: Salto condicional. Quita el ultimo valor de la pila. Si este es true, cambia cont-prg por el valor del argumento. Si no, incrementa cont-prg en 1. + JC (let [last_val (last pila), + pila (pop pila), + next_cont_prg ( + cond + (true? last_val) (second fetched) + :else (inc cont-prg) + ) + ] (recur cod regs-de-act next_cont_prg pila mapa-regs) + ) + ) ) )