]> git.eshelyaron.com Git - emacs.git/commitdiff
emit relocs for callref too
authorAndrea Corallo <andrea_corallo@yahoo.it>
Sun, 1 Sep 2019 10:29:13 +0000 (12:29 +0200)
committerAndrea Corallo <akrl@sdf.org>
Wed, 1 Jan 2020 10:37:41 +0000 (11:37 +0100)
lisp/emacs-lisp/comp.el

index 3bd4aa31312586426e2494d74266878af114885a..631003da1dd795a28c9747a4fc118a7fbd918f72 100644 (file)
@@ -363,7 +363,7 @@ SP-DELTA is the stack adjustment."
                    "%s contains unevalled arg" subr-name)
         (if (eq maxarg 'many)
             ;; callref case.
-            `(comp-emit-set-call (list 'callref ',subr-name ,nargs (comp-sp)))
+            `(comp-emit-set-call (comp-callref ',subr-name ,nargs (comp-sp)))
           ;; Normal call.
           (cl-assert (and (>= maxarg nargs) (<= minarg nargs))
                      (nargs maxarg minarg)
@@ -533,13 +533,13 @@ NARG is the number of Ffuncall arguments."
              ))
     (if optimize
         (if callref
-            (comp-emit-set-call `(callref ,callee-sym-name
-                                          ,narg ,(1+ (comp-sp))))
+            (comp-emit-set-call (comp-callref callee-sym-name
+                                              narg (1+ (comp-sp))))
           (comp-emit-set-call `(call ,callee-sym-name
                                      ,@(cl-loop for i from (1+ (comp-sp))
                                                 repeat narg
                                                 collect (comp-slot-n i)))))
-      (comp-emit-set-call `(callref Ffuncall ,(1+ narg) ,(comp-sp))))))
+      (comp-emit-set-call (comp-callref 'funcall (1+ narg) (comp-sp))))))
 
 (defmacro comp-op-case (&rest cases)
   "Expand CASES into the corresponding pcase.