diff --git a/compiler/sparc/c-call.lisp b/compiler/sparc/c-call.lisp index 8b57f80710dffbce88657ed44ac3f4b8e2f68251..57c6f297f7fe8f02948043a09e374947d26a4a34 100644 --- a/compiler/sparc/c-call.lisp +++ b/compiler/sparc/c-call.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/c-call.lisp,v 1.13 1998/06/18 07:02:34 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/c-call.lisp,v 1.14 1998/07/10 03:09:45 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -96,13 +96,17 @@ (arg-types (alien-function-type-arg-types type)) (result-type (alien-function-type-result-type type))) (assert (= (length arg-types) (length args))) - (if (or (some #'alien-double-float-type-p arg-types) + (if (or (some #'alien-single-float-type-p arg-types) + (some #'alien-double-float-type-p arg-types) #+long-float (some #'alien-long-float-type-p arg-types)) (collect ((new-args) (lambda-vars) (new-arg-types)) (dolist (type arg-types) (let ((arg (gensym))) (lambda-vars arg) - (cond ((alien-double-float-type-p type) + (cond ((alien-single-float-type-p type) + (new-args `(single-float-bits ,arg)) + (new-arg-types (parse-alien-type '(signed 32)))) + ((alien-double-float-type-p type) (new-args `(double-float-high-bits ,arg)) (new-args `(double-float-low-bits ,arg)) (new-arg-types (parse-alien-type '(signed 32)))