mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-23 22:20:24 -08:00
fix &optional args
This commit is contained in:
parent
b6e7df0926
commit
0c33a8ff4b
1 changed files with 7 additions and 5 deletions
|
|
@ -708,18 +708,20 @@ the annotation emission."
|
|||
(comp-pass (make-comp-limplify
|
||||
:sp -1
|
||||
:frame (comp-new-frame frame-size)))
|
||||
(args-min (comp-args-gen-min (comp-func-args func)))
|
||||
(args (comp-func-args func))
|
||||
(args-min (comp-args-gen-min args))
|
||||
(comp-block ()))
|
||||
;; Prologue
|
||||
(comp-emit-block 'entry)
|
||||
(comp-emit-annotation (concat "Lisp function: "
|
||||
(symbol-name (comp-func-symbol-name func))))
|
||||
(if (comp-args-p (comp-func-args func))
|
||||
(cl-loop for i below (comp-args-max (comp-func-args func))
|
||||
(if (comp-args-p args)
|
||||
(cl-loop for i below (comp-args-max args)
|
||||
do (cl-incf (comp-sp))
|
||||
do (comp-emit `(setpar ,(comp-slot) ,i)))
|
||||
(comp-emit `(ncall-prolog ,args-min))
|
||||
(cl-incf (comp-sp) (1+ args-min)))
|
||||
(let ((nonrest (comp-nargs-nonrest args)))
|
||||
(comp-emit `(ncall-prolog ,nonrest))
|
||||
(cl-incf (comp-sp) (1+ nonrest))))
|
||||
;; Body
|
||||
(comp-emit-block 'bb_1)
|
||||
(mapc #'comp-limplify-lap-inst (comp-func-lap func))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue