summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-03-20 06:54:53 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-03-20 06:54:53 -0700
commit29a7725f0d556014aaec66d2d329ab5d2de93c5d (patch)
treea4de06a43c81874dcffd685541bbec7937138943
parente500f3db34b3ced0409c6fd4934dcf13a5703d1b (diff)
downloadtxr-29a7725f0d556014aaec66d2d329ab5d2de93c5d.tar.gz
txr-29a7725f0d556014aaec66d2d329ab5d2de93c5d.tar.bz2
txr-29a7725f0d556014aaec66d2d329ab5d2de93c5d.zip
compiler: let bugfix: wrong output register designated.
* share/txr/stdlib/compiler.tl (compiler comp-let): The returned fragment must specify boreg not oreg, because the output is either in oreg or bfrag.oreg.
-rw-r--r--share/txr/stdlib/compiler.tl2
1 files changed, 1 insertions, 1 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl
index 33f02a2c..13d453d3 100644
--- a/share/txr/stdlib/compiler.tl
+++ b/share/txr/stdlib/compiler.tl
@@ -344,7 +344,7 @@
fvars (uni fvars frag.fvars)))))))))
(bfrag me.(comp-progn oreg nenv body))
(boreg (if env.(out-of-scope bfrag.oreg) oreg bfrag.oreg)))
- (new (frag oreg
+ (new (frag boreg
(append code bfrag.code
(maybe-mov boreg bfrag.oreg)
^((end ,boreg)))