From 5d3ddd59b113032c0b4979de086c7d7c4925d834 Mon Sep 17 00:00:00 2001 From: CrossNox Date: Tue, 29 Nov 2022 05:53:20 -0300 Subject: [PATCH] agrego popsub --- src/rustint/core.clj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/rustint/core.clj b/src/rustint/core.clj index 20eea06..876b230 100644 --- a/src/rustint/core.clj +++ b/src/rustint/core.clj @@ -1878,6 +1878,10 @@ POPADD (let [res (asignar-aritmetico regs-de-act pila reg-actual fetched +)] (if (nil? res) res (recur cod res (inc cont-prg) (vec (butlast pila)) mapa-regs))) + ; POPSUB: Como POPADD, pero resta. + POPSUB (let [res (asignar-aritmetico regs-de-act pila reg-actual fetched -)] + (if (nil? res) res (recur cod res (inc cont-prg) (vec (butlast pila)) mapa-regs))) + ; Incrementa cont-prg en 1 y quita el ultimo elemento de pila. El argumento indica en reg-actual las coordenadas [#reg-act, offset] donde sumar el elemento en regs-de-act al llamar recursivamente a interpretar (verificando la compatibilidad de los tipos) ; Por ejemplo: ; fetched: [POPADDREF 2]