X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fppc%2Fcall.lisp;h=0a19d72840918672774513142a16a4b112e4b78f;hb=ee94b07644c1130e1dcadcfd2bd581bf641fa58e;hp=fb9cd132d2776bc3c2af7481c8363994a78e291a;hpb=4ed3f0d08c3a57a6762018d9622f253ab9d0f2b6;p=sbcl.git diff --git a/src/compiler/ppc/call.lisp b/src/compiler/ppc/call.lisp index fb9cd13..0a19d72 100644 --- a/src/compiler/ppc/call.lisp +++ b/src/compiler/ppc/call.lisp @@ -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)