From 969afde71c5b4b6e7b6c7228e1dba3281440a0bd Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 8 Apr 2018 21:11:28 -0700 Subject: compiler: fix broken prog1. * share/txr/stdlib/compiler.tl (compiler comp-prog1): The output of the frag should be fireg, not oreg. We need to move into fireg before re-frag.code is executed, because the data source in fi-frag may be clobbered by re-frag. --- share/txr/stdlib/compiler.tl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl index bab0d341..2977b865 100644 --- a/share/txr/stdlib/compiler.tl +++ b/share/txr/stdlib/compiler.tl @@ -826,10 +826,10 @@ (append re '(nil))))) me.(maybe-free-treg fireg oreg) me.(free-treg igreg) - (new (frag oreg + (new (frag fireg (append fi-frag.code - re-frag.code - (maybe-mov oreg fireg)) + (maybe-mov fireg fi-frag.oreg) + re-frag.code) (uni fi-frag.fvars re-frag.fvars) (uni fi-frag.ffuns re-frag.ffuns))))) ((prog1 fi) me.(compile oreg env fi)) -- cgit v1.2.3