0.8.13.34:
[sbcl.git] / src / compiler / ppc / call.lisp
index fb9cd13..0a19d72 100644 (file)
@@ -317,9 +317,8 @@ default-value-8
                      ((null remaining))
                    (let ((def (car remaining)))
                      (emit-label (car def))
-                     (when (null (cdr remaining))
-                       (inst b defaulting-done))
                      (store-stack-tn (cdr def) null-tn)))
+                 (inst b defaulting-done)
                  (trace-table-entry trace-table-normal))))))
 
        (inst compute-code-from-lra code-tn code-tn lra-label temp)))
@@ -663,9 +662,9 @@ default-value-8
                            :from (:argument ,(if (eq return :tail) 0 1))
                            :to :eval)
                       lexenv))
-     ;; alpha code suggests that function tn is not needed for named call
-     (:temporary (:scs (descriptor-reg) :from (:argument 0) :to :eval)
-                function)
+     ,@(unless named
+        '((:temporary (:scs (descriptor-reg) :from (:argument 0) :to :eval)
+                      function)))
      (:temporary (:sc any-reg :offset nargs-offset :to :eval)
                 nargs-pass)
 
@@ -1101,7 +1100,9 @@ default-value-8
 (define-vop (listify-rest-args)
   (:args (context-arg :target context :scs (descriptor-reg))
         (count-arg :target count :scs (any-reg)))
-  (:arg-types * tagged-num)
+  (:info dx)
+  (:ignore dx)
+  (:arg-types * tagged-num (:constant t))
   (:temporary (:scs (any-reg) :from (:argument 0)) context)
   (:temporary (:scs (any-reg) :from (:argument 1)) count)
   (:temporary (:scs (descriptor-reg) :from :eval) temp)