1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 03:30:27 +02:00

Fix 'ash' primcall match clause in baseline compiler.

Previously the pattern would only match when the two 'src' values were
the same, which is not the case for example when running on the
interpreter.

* module/language/tree-il/compile-bytecode.scm (canonicalize): In 'ash
primcall pattern, rename second 'src' to 'src*'.
This commit is contained in:
Ludovic Courtès 2021-09-20 23:24:24 +02:00
parent 136417990c
commit 330c6ea83f

View file

@ -459,10 +459,10 @@
v)))
;; Transform "ash" to lsh / rsh.
(($ <primcall> src 'ash (x ($ <const> src (? exact-integer? y))))
(($ <primcall> src 'ash (x ($ <const> src* (? exact-integer? y))))
(if (negative? y)
(make-primcall src 'lsh (list x (make-const src (- y))))
(make-primcall src 'rsh (list x (make-const src y)))))
(make-primcall src 'lsh (list x (make-const src* (- y))))
(make-primcall src 'rsh (list x (make-const src* y)))))
;; (throw key subr msg (list x) (list x))
(($ <primcall> src 'throw