1.0.22.14: fix a bug in PPC alien function calls
[sbcl.git] / src / compiler / ppc / c-call.lisp
index 52db97f..2869883 100644 (file)
                      (new-arg-types (parse-alien-type
                                      '(unsigned 32)
                                      (sb!kernel:make-null-lexenv))))
-                    ((alien-integer-type-p type)
-                     (if (< gprs 8)
-                         (incf gprs 1)
-                         (incf stack 1))
-                     (new-args arg)
-                     (new-arg-types type))
                     ((alien-single-float-type-p type)
                      (if (< fprs 8)
                          (incf fprs)
                              (incf stack 2))) ; the stack.
                      (new-args arg)
                      (new-arg-types type))
-                    (t
+                    (t ;; integer or SAP
+                     (if (< gprs 8)
+                         (incf gprs 1)
+                         (incf stack 1))
                      (new-args arg)
                      (new-arg-types type)))))
                  (cond ((and (alien-integer-type-p result-type)
 (define-vop (alloc-number-stack-space)
   (:info amount)
   (:results (result :scs (sap-reg any-reg)))
+  (:result-types system-area-pointer)
   (:temporary (:scs (unsigned-reg) :to (:result 0)) temp)
   (:generator 0
     (unless (zerop amount)