From 10fbe363665bbebb7e2da845235bf2254203d633 Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Tue, 29 Nov 2005 17:02:53 +0000 Subject: [PATCH] We were not properly creating a unsigned 64-bit int from the two halves. This should be fixed in a different way by defining a unsigned-64 type. --- compiler/sparc/c-call.lisp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/sparc/c-call.lisp b/compiler/sparc/c-call.lisp index 7cb4e3162..5ba80880e 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.26 2005/09/29 14:43:11 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/c-call.lisp,v 1.27 2005/11/29 17:02:53 rtoy Rel $") ;;; ;;; ********************************************************************** ;;; @@ -331,7 +331,9 @@ (alien::integer-64$ ;; Same as for double, above `(let ((hi (alien:deref (sap-alien (sys:sap+ ,sp ,offset) - (* c-call:int)))) + ,(if (alien-integer-type-signed parsed-type) + '(* c-call:int) + '(* c-call:unsigned-int))))) (lo (alien:deref (sap-alien (sys:sap+ ,sp (+ ,offset vm:word-bytes)) (* c-call:unsigned-int))))) -- GitLab