source: branches/working-0711/ccl/lib/ffi-darwinx8632.lisp @ 12244

Last change on this file since 12244 was 12244, checked in by gz, 10 years ago

other-platform changes from trunk, for smaller diffs

File size: 1.3 KB
Line 
1(in-package "CCL")
2
3;;; Some small structures are returned in EAX and EDX.  Otherwise,
4;;; return values are placed at the address specified by the caller.
5(defun x86-darwin32::record-type-returns-structure-as-first-arg (rtype)
6  (when (and rtype
7             (not (typep rtype 'unsigned-byte))
8             (not (member rtype *foreign-representation-type-keywords*
9                          :test #'eq)))
10    (let* ((ftype (if (typep rtype 'foreign-type)
11                    rtype
12                    (parse-foreign-type rtype)))
13           (nbits (ensure-foreign-type-bits ftype)))
14      (not (member nbits '(8 16 32 64))))))
15
16;;; We don't support the __m64, __m128, __m128d, and __m128i types.
17(defun x86-darwin32::expand-ff-call (callform args &key (arg-coerce #'null-coerce-foreign-arg) (result-coerce #'null-coerce-foreign-result))
18  (x8632::expand-ff-call callform args :arg-coerce arg-coerce :result-coerce result-coerce))
19
20(defun x86-darwin32::generate-callback-bindings (stack-ptr fp-args-ptr argvars argspecs result-spec struct-result-name)
21  (x8632::generate-callback-bindings stack-ptr fp-args-ptr argvars argspecs result-spec struct-result-name))
22
23(defun x86-darwin32::generate-callback-return-value (stack-ptr fp-args-ptr result return-type struct-return-arg)
24  (x8632::generate-callback-return-value stack-ptr fp-args-ptr result return-type struct-return-arg))
Note: See TracBrowser for help on using the repository browser.