Merge calls to FUNCALL + FDEFINITION whenever possible.

This commit is contained in:
jjgarcia 2003-10-30 10:27:47 +00:00
parent 18c39a126f
commit 19be68f9bc

View file

@ -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))))))
;;; ----------------------------------------------------------------------