From dbe8d43671cf8c0d44ca5eebd0af68b9aa35be7b Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Mon, 18 Aug 2014 12:12:58 -0700 Subject: [PATCH] 50 --- mu.arc | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/mu.arc b/mu.arc index b11e0db5..8bb498de 100644 --- a/mu.arc +++ b/mu.arc @@ -27,18 +27,16 @@ `(,operand 1)) ; assume type is always first bit of metadata, and it's always present (mac m (loc) ; for memory - (w/uniq gloc - `(let ,gloc ,loc - (if (pos 'deref (metadata ,gloc)) - (memory* (memory* (v ,gloc))) - (memory* (v ,gloc)))))) + `(let loc@ ,loc + (if (pos 'deref (metadata loc@)) + (memory* (memory* (v loc@))) + (memory* (v loc@))))) (mac setm (loc val) ; set memory, respecting addressing-mode tags - (w/uniq gloc - `(let ,gloc ,loc - (if (pos 'deref (metadata ,gloc)) - (= (memory* (memory* (v ,gloc))) ,val) - (= (memory* (v ,gloc)) ,val))))) + `(let loc@ ,loc + (if (pos 'deref (metadata loc@)) + (= (memory* (memory* (v loc@))) ,val) + (= (memory* (v loc@)) ,val)))) (def run (instrs (o fn-args) (o fn-oargs)) (ret result nil