about summary refs log tree commit diff stats
path: root/mu.arc.t
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-07-17 09:02:43 -0700
committerKartik K. Agaram <vc@akkartik.com>2014-07-17 09:03:47 -0700
commit6215fec22513faaf31e01b6feee0aad59cb2560a (patch)
treeb73804a6452f311833feb2a479aed932726bc7fc /mu.arc.t
parent8ccc6ebf0f90a3b1e939d6ef845df7bfd4501f8a (diff)
downloadmu-6215fec22513faaf31e01b6feee0aad59cb2560a.tar.gz
27 - a simple assembler for turning else/break/continue into jumps
Diffstat (limited to 'mu.arc.t')
-rw-r--r--mu.arc.t18
1 files changed, 18 insertions, 0 deletions
diff --git a/mu.arc.t b/mu.arc.t
index 86442e3b..43d4dce6 100644
--- a/mu.arc.t
+++ b/mu.arc.t
@@ -365,3 +365,21 @@
                          ; temporaries for most recent call to add-fn
                          4 0  5 0  6 nil  7 3  8 4  9 7))
   (prn "F - different calls can exercise different clauses of the same function"))
+
+(if (~iso (convert-braces '(((integer 1) <- loadi 4)
+                            ((integer 2) <- loadi 2)
+                            ((integer 3) <- add (integer 2) (integer 2))
+                            { begin  ; 'begin' is just a hack because racket turns curlies into parens
+                            ((boolean 4) <- neq (integer 1) (integer 3))
+                            (breakif (boolean 4))
+                            ((integer 5) <- loadi 34)
+                            }
+                            (reply)))
+          '(((integer 1) <- loadi 4)
+            ((integer 2) <- loadi 2)
+            ((integer 3) <- add (integer 2) (integer 2))
+            ((boolean 4) <- neq (integer 1) (integer 3))
+            (jif (boolean 4) (offset 1))
+            ((integer 5) <- loadi 34)
+            (reply)))
+  (prn "F - convert braces"))