Changeset 14478


Ignore:
Timestamp:
Dec 9, 2010, 9:33:01 PM (9 years ago)
Author:
gb
Message:

More ARM FFI fixes: fix handling of (single-)FLOAT args/results
in DEFCALLBACK, fix handling of 64-bit integer results in #'%FF-CALL.

Location:
trunk/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-0/ARM/arm-def.lisp

    r14181 r14478  
    407407               (:unsigned-fullword (%get-unsigned-long result 0))
    408408               (:signed-fullword (%get-signed-long result 0))
    409                (:unsigned-doubleword (%get-natural result 0))
    410                (:signed-doubleword (%get-signed-natural result 0))
     409               (:unsigned-doubleword (%%get-unsigned-longlong result 0))
     410               (:signed-doubleword (%%get-signed-longlong result 0))
    411411               (:single-float (%get-single-float result 0))
    412412               (:double-float (%get-double-float result 0))))))))))
  • trunk/source/lib/ffi-linuxarm.lisp

    r14472 r14478  
    120120                            ((typep argtype 'foreign-single-float-type)
    121121                             (setq nextoffset (+ offset 4))
    122                              '%get-single-float-from-double-ptr)
     122                             '%get-single-float)
    123123                            ((typep argtype 'foreign-double-float-type)
    124124                             (when (logtest offset 4)
     
    167167                  (setq offset nextoffset))))))))
    168168
     169
    169170(defun arm-linux::generate-callback-return-value (stack-ptr fp-args-ptr result return-type struct-return-arg)
    170171  (declare (ignore fp-args-ptr))
     
    182183                (:signed-doubleword '%%get-signed-longlong)
    183184                (:unsigned-doubleword '%%get-unsigned-longlong)
    184                 ((:double-float :single-float) '%get-double-float)
     185                (:double-float '%get-double-float)
     186                (:single-float '%get-single-float)
    185187                (t '%get-long)) ,stack-ptr ,offset) ,result))))
    186188     
Note: See TracChangeset for help on using the changeset viewer.