summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/txr/stdlib/compiler.tl8
1 files changed, 3 insertions, 5 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl
index cd5f3150..ca86db11 100644
--- a/share/txr/stdlib/compiler.tl
+++ b/share/txr/stdlib/compiler.tl
@@ -1242,16 +1242,14 @@
(if loaded-p
me.(compile oreg env ^(quote ,exp))
(compile-in-toplevel me
- (let* ((oreg me.(alloc-treg))
- (dreg me.(alloc-dreg))
- (exp me.(compile oreg (new env co me) exp))
+ (let* ((dreg me.(alloc-dreg))
+ (exp me.(compile dreg (new env co me) exp))
(lt-frag (new (frag dreg
^(,*exp.code
- (mov ,dreg ,exp.oreg))
+ ,*(maybe-mov dreg exp.oreg))
exp.fvars
exp.ffuns))))
(misleading-ref-check exp env form)
- me.(free-treg oreg)
(push lt-frag me.lt-frags)
(new (frag dreg nil)))))))