diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2014-07-17 09:02:43 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2014-07-17 09:03:47 -0700 |
commit | 6215fec22513faaf31e01b6feee0aad59cb2560a (patch) | |
tree | b73804a6452f311833feb2a479aed932726bc7fc /mu.arc.t | |
parent | 8ccc6ebf0f90a3b1e939d6ef845df7bfd4501f8a (diff) | |
download | mu-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.t | 18 |
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")) |