1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-13 09:32:47 +00:00

fix comp-emit-narg-prologue

This commit is contained in:
Andrea Corallo 2019-10-27 17:13:03 +01:00
parent 283b0db31c
commit 0b9bec6863

View File

@ -1008,14 +1008,17 @@ the annotation emission."
(comp-make-curr-block bb (comp-sp))
(comp-emit `(set-args-to-local ,(comp-slot-n i)))
(comp-emit '(inc-args))
finally (comp-emit '(jump entry_rest_args)))
finally (comp-emit '(jump entry_rest_args)))
(when (not (= minarg nonrest))
(cl-loop for i from minarg below nonrest
for bb = (intern (format "entry_fallback_%s" i))
for next-bb = (if (= (1+ i) nonrest)
'entry_rest_args
(intern (format "entry_fallback_%s" (1+ i))))
do (comp-with-sp i
(comp-make-curr-block (intern (format "entry_fallback_%s" i))
(comp-sp))
(comp-emit-set-const nil))
finally (comp-emit '(jump entry_rest_args))))
(comp-make-curr-block bb (comp-sp))
(comp-emit-set-const nil)
(comp-emit `(jump ,next-bb)))))
(comp-make-curr-block 'entry_rest_args (comp-sp))
(comp-emit `(set-rest-args-to-local ,(comp-slot-n nonrest))))