diff options
-rw-r--r-- | mu.arc | 12 | ||||
-rw-r--r-- | mu.arc.t | 33 |
2 files changed, 45 insertions, 0 deletions
diff --git a/mu.arc b/mu.arc index 1953e7c6..6438f4f4 100644 --- a/mu.arc +++ b/mu.arc @@ -75,6 +75,18 @@ neq (= (memory* oarg.0.1) (~iso (memory* arg.0.1) (memory* arg.1.1))) + lt + (= (memory* oarg.0.1) + (< (memory* arg.0.1) (memory* arg.1.1))) + gt + (= (memory* oarg.0.1) + (> (memory* arg.0.1) (memory* arg.1.1))) + le + (= (memory* oarg.0.1) + (<= (memory* arg.0.1) (memory* arg.1.1))) + ge + (= (memory* oarg.0.1) + (>= (memory* arg.0.1) (memory* arg.1.1))) arg (let idx (if arg arg.0 diff --git a/mu.arc.t b/mu.arc.t index dc4abf0f..4108e893 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -176,6 +176,39 @@ (clear) (add-fns '((main + ((boolean 1) <- loadi 4) + ((boolean 2) <- loadi 4) + ((boolean 3) <- le (boolean 1) (boolean 2))))) +(run function*!main) +;? (prn memory*) +(if (~iso memory* (obj 1 4 2 4 3 t)) + (prn "F - le works")) + +(clear) +(add-fns + '((main + ((boolean 1) <- loadi 4) + ((boolean 2) <- loadi 3) + ((boolean 3) <- le (boolean 1) (boolean 2))))) +(run function*!main) +;? (prn memory*) +(if (~iso memory* (obj 1 4 2 3 3 nil)) + (prn "F - le works - 2")) + +(clear) +(add-fns + '((main + ((boolean 1) <- loadi 4) + ((boolean 2) <- loadi 5) + ((boolean 3) <- le (boolean 1) (boolean 2))))) +(run function*!main) +;? (prn memory*) +(if (~iso memory* (obj 1 4 2 5 3 t)) + (prn "F - le works - 3")) + +(clear) +(add-fns + '((main ((integer 1) <- loadi 8) (jmp (offset 1)) ((integer 2) <- loadi 3) |