about summary refs log tree commit diff stats
path: root/mu.arc
diff options
context:
space:
mode:
Diffstat (limited to 'mu.arc')
-rw-r--r--mu.arc10
1 files changed, 10 insertions, 0 deletions
diff --git a/mu.arc b/mu.arc
index 1cc77d43..f99b5d3a 100644
--- a/mu.arc
+++ b/mu.arc
@@ -731,6 +731,12 @@
         operand
       (pos '(raw) metadata.operand)
         operand
+      (is 'global (alref operand 'space))
+        (aif rep.routine*!globals
+          `((,(+ v.operand it) ,@(cdr operand.0))
+            ,@(rem [caris _ 'space] metadata.operand)
+            (raw))
+          (die "routine has no globals: @operand"))
       :else
         (iflet base rep.routine*!call-stack.0!default-scope
 ;?                (do (prn 313 " " operand " " base)
@@ -742,6 +748,10 @@
 ;?                 )
           operand)))
 
+(def space (operand)
+  (or (alref operand 'space)
+      0))
+
 (def deref (operand)
   (assert (pos '(deref) metadata.operand))
   (assert address?.operand)