diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-02-23 11:32:48 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-02-23 11:32:48 -0800 |
commit | 2617a362590670c1f2b61694be7295ac103adf9e (patch) | |
tree | adf711e67e296f867ff479ea285edd6b2df2c41f /share | |
parent | 77791d10d0143c991262697e099efc2db1a7f4a1 (diff) | |
download | txr-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.tl | 4 |
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 |