mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-04 16:30:48 -08:00
Merge calls to FUNCALL + FDEFINITION whenever possible.
This commit is contained in:
parent
18c39a126f
commit
19be68f9bc
1 changed files with 13 additions and 5 deletions
|
|
@ -339,12 +339,20 @@
|
|||
;;;
|
||||
(defun c2call-unknown-global (fname args loc inline-p narg)
|
||||
(unless loc
|
||||
(cmpnote "Emiting FDEFINITION call for ~S" fname)
|
||||
(setq loc (list 'FDEFINITION fname)))
|
||||
(setq loc
|
||||
(if (and (symbolp fname)
|
||||
(not (eql (symbol-package fname) (find-package "CL"))))
|
||||
(progn
|
||||
(cmpnote "Emiting FUNCALL for ~S" fname)
|
||||
(add-symbol fname))
|
||||
(progn
|
||||
(cmpnote "Emiting FDEFINITION for ~S" fname)
|
||||
(setq loc (list 'FDEFINITION fname))))))
|
||||
(unwind-exit
|
||||
(if (eq args 'ARGS-PUSHED)
|
||||
(list 'CALL "cl_apply_from_stack" narg (list loc) fname)
|
||||
(call-loc fname "funcall" (cons (list T loc) args)))))
|
||||
(cond ((eq args 'ARGS-PUSHED)
|
||||
(list 'CALL "cl_apply_from_stack" narg (list loc) fname))
|
||||
(t
|
||||
(call-loc fname "funcall" (cons (list T loc) args))))))
|
||||
|
||||
;;; ----------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue