[Openmcl-cvs-notifications] r14478 - in /trunk/source: level-0/ARM/arm-def.lisp lib/ffi-linuxarm.lisp
gb at clozure.com
gb at clozure.com
Thu Dec 9 15:33:01 CST 2010
Author: gb
Date: Thu Dec 9 15:33:01 2010
New Revision: 14478
Log:
More ARM FFI fixes: fix handling of (single-)FLOAT args/results
in DEFCALLBACK, fix handling of 64-bit integer results in #'%FF-CALL.
Modified:
trunk/source/level-0/ARM/arm-def.lisp
trunk/source/lib/ffi-linuxarm.lisp
Modified: trunk/source/level-0/ARM/arm-def.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/level-0/ARM/arm-def.lisp (original)
+++ trunk/source/level-0/ARM/arm-def.lisp Thu Dec 9 15:33:01 2010
@@ -406,8 +406,8 @@
(:signed-halfword (%get-signed-word result 0))
(:unsigned-fullword (%get-unsigned-long result 0))
(:signed-fullword (%get-signed-long result 0))
- (:unsigned-doubleword (%get-natural result 0))
- (:signed-doubleword (%get-signed-natural result 0))
+ (:unsigned-doubleword (%%get-unsigned-longlong result 0))
+ (:signed-doubleword (%%get-signed-longlong result 0))
(:single-float (%get-single-float result 0))
(:double-float (%get-double-float result 0))))))))))
=
Modified: trunk/source/lib/ffi-linuxarm.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lib/ffi-linuxarm.lisp (original)
+++ trunk/source/lib/ffi-linuxarm.lisp Thu Dec 9 15:33:01 2010
@@ -119,7 +119,7 @@
`(,(cond
((typep argtype 'foreign-single-float-type)
(setq nextoffset (+ offset 4))
- '%get-single-float-from-double-ptr)
+ '%get-single-float)
((typep argtype 'foreign-double-float-type)
(when (logtest offset 4)
(incf offset 4))
@@ -166,6 +166,7 @@
(when name (lets (list name access-form)))
(setq offset nextoffset))))))))
=
+
(defun arm-linux::generate-callback-return-value (stack-ptr fp-args-ptr re=
sult return-type struct-return-arg)
(declare (ignore fp-args-ptr))
(unless (eq return-type *void-foreign-type*)
@@ -181,7 +182,8 @@
(:address '%get-ptr)
(:signed-doubleword '%%get-signed-longlong)
(:unsigned-doubleword '%%get-unsigned-longlong)
- ((:double-float :single-float) '%get-double-float)
+ (:double-float '%get-double-float)
+ (:single-float '%get-single-float)
(t '%get-long)) ,stack-ptr ,offset) ,result))))
=
=
More information about the Openmcl-cvs-notifications
mailing list