summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-02-23 11:32:48 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-02-23 11:32:48 -0800
commit2617a362590670c1f2b61694be7295ac103adf9e (patch)
treeadf711e67e296f867ff479ea285edd6b2df2c41f /share
parent77791d10d0143c991262697e099efc2db1a7f4a1 (diff)
downloadtxr-2617a362590670c1f2b61694be7295ac103adf9e.tar.gz
txr-2617a362590670c1f2b61694be7295ac103adf9e.tar.bz2
txr-2617a362590670c1f2b61694be7295ac103adf9e.zip
compiler: wrong close pattern in jump threading.
* share/txr/stdlib/optimize.tl (thread-jumps-block): Add missing argument to close instruction pattern. This causes us to miss a threading opportunity due to the new ntregs parameter being mistaken for a label, which is not found.
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/optimize.tl4
1 files changed, 2 insertions, 2 deletions
diff --git a/share/txr/stdlib/optimize.tl b/share/txr/stdlib/optimize.tl
index ac978a06..f85439f6 100644
--- a/share/txr/stdlib/optimize.tl
+++ b/share/txr/stdlib/optimize.tl
@@ -120,12 +120,12 @@
(jmp @(and @jjlabel @(not @jlabel))) . @nil)
^(ifq ,reg ,creg ,jjlabel))
(@jelse insn))))
- ((close @reg @nargs @jlabel . @cargs)
+ ((close @reg @frsize @ntregs @jlabel . @cargs)
(let ((jinsns [bb.hash jlabel]))
(match-case jinsns
((@jlabel
(jmp @(and @jjlabel @(not @jlabel))) . @nil)
- ^(close ,reg ,nargs ,jjlabel ,*cargs))
+ ^(close ,reg ,frsize ,ntregs ,jjlabel ,*cargs))
(@jelse insn))))
(@else else))))
(cond