Actually invoke mv-call-direct-named

This commit is contained in:
Stas Boukarev 2026-09-04 07:36:49 +03:00
parent 136b501c85
commit f9db67bdfc
2 changed files with 4 additions and 2 deletions

View file

@ -1882,7 +1882,7 @@
(vop* mv-call-direct-named node block
(fp #-linkage-space fun (car extra-args) args)
((reference-tn-list locs t))
arg-locs (length locs) #+linkage-space fun (emit-step-p node) fixed-args)
arg-locs #+linkage-space fun (length locs) (emit-step-p node) fixed-args)
(vop* mv-call-direct node block
(fp fun (car extra-args) args)
((reference-tn-list locs t))

View file

@ -448,7 +448,6 @@
(setf (node-tail-p call) nil))
(t
(setf (basic-combination-info call) :full)
(annotate-fun-lvar (basic-combination-fun call) nil)
(let* ((reversed-args (reverse args))
#+tls-based-mv-return
(last-arg (car reversed-args)))
@ -463,6 +462,7 @@
(loop for arg in (cdr reversed-args)
never (eq (nth-value 1 (values-types (lvar-derived-type arg))) :unknown))
(lvar-single-value-p (node-lvar call)))
(annotate-fun-lvar (basic-combination-fun call)) ;; can delay, there's mv-call-direct-named
(setf (mv-combination-direct-call call) t)
(annotate-unknown-direct-call-values-lvar last-arg)
(loop for arg in (cdr reversed-args)
@ -470,6 +470,8 @@
(annotate-fixed-values-lvar arg
(mapcar #'primitive-type (values-types (lvar-derived-type arg))))))
(t
(annotate-fun-lvar (basic-combination-fun call) nil)
(loop for (arg . prev) on reversed-args
do
;; Only the first argument's CSP is used