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-31 03:46:05 -0700
committerKartik K. Agaram <vc@akkartik.com>2014-07-31 03:46:05 -0700
commitd90d6629a9090b5d7bcd2b227f671fa4a2ac92dc (patch)
treee83f9d3ae03f85c2b7af1bb4567be725a8c35152 /mu.arc.t
parentb20165a89034e3ff6bf3959529c4dec4bab11f40 (diff)
downloadmu-d90d6629a9090b5d7bcd2b227f671fa4a2ac92dc.tar.gz
45 - 'deref' metadata working in output args
Likely still some erroneous corner cases. What happens if I try to write indirectly
to a boolean value? Should raise a reasonable error.
Diffstat (limited to 'mu.arc.t')
-rw-r--r--mu.arc.t12
1 files changed, 12 insertions, 0 deletions
diff --git a/mu.arc.t b/mu.arc.t
index 9883e874..e98fcc8e 100644
--- a/mu.arc.t
+++ b/mu.arc.t
@@ -318,6 +318,18 @@
 
 (clear)
 (add-fns
+  '((main
+      ((1 integer-address) <- literal 2)
+      ((2 integer) <- literal 34)
+      ((3 integer) <- literal 2)
+      ((1 integer-address deref) <- add (2 integer) (3 integer)))))
+(run function*!main)
+;? (prn memory*)
+(if (~iso memory* (obj 1 2  2 36  3 2))
+  (prn "F - instructions can performs indirect addressing on output arg"))
+
+(clear)
+(add-fns
   '((test1
       ((4 type) <- otype 0)
       ((5 type) <- literal integer)