Changeset 5717


Ignore:
Timestamp:
Jan 18, 2007, 2:58:12 AM (18 years ago)
Author:
Gary Byers
Message:

ff-call-expand-function in ftd.
Don't try to type-expand :registers <exp> form in EXTERNAL-CALL.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lib/foreign-types.lisp

    r5702 r5717  
    5454  (external-function-definitions (make-hash-table :test #'eq))
    5555  (dirlist (make-dll-header))
    56   (attributes ()))
     56  (attributes ())
     57  (ff-call-expand-function ()))
    5758
    5859
     
    6869                      :signed-char #+darwinppc-target t #-darwinppc-target nil
    6970                      :struct-by-value #+darwinppc-target t #-darwinppc-target nil
    70                       :prepend-underscores #+darwinppc-target t #-darwinppc-target nil)))
     71                      :struct-return-in-registers #+(or (and darwinppc-target 64-bit-target)) t #-(or (and darwinppc-target 64-bit-target)) nil
     72                      :struct-return-explicit  #+(or (and darwinppc-target 64-bit-target)) t #-(or (and darwinppc-target 64-bit-target)) nil
     73                      :struct-by-value-by-field  #+(or (and darwinppc-target 64-bit-target)) t #-(or (and darwinppc-target 64-bit-target)) nil
     74                   
     75                      :prepend-underscores #+darwinppc-target t #-darwinppc-target nil)
     76                    :ff-call-expand-function
     77                    #+(and darwinppc-target 32-bit-target) 'ppc32::darwin-expand-ff-call
     78                    #+(and darwinppc-target 64-bit-target) 'ppc64::darwin-expand-ff-call
     79                    #+(and linuxppc-target 32-bit-target) 'ppc32::linux-expand-ff-call
     80                    #+(and linuxppc-target 64-bit-target) 'ppc64::linux-expand-ff-call
     81                    #+linuxx8664-target 'x8664::linux-expand-ff-call
     82                    #+darwinx8664-target 'x8664:::darwin-expand-ff-call
     83                    #+freebsdx8664-target 'x8664:::freebsd-expand-ff-call
     84 
     85                    ))
    7186                   
    7287(defvar *target-ftd* *host-ftd*)
     
    13241339        (let* ((spec (car a))
    13251340               (val (cadr a)))
    1326           (representation (foreign-type-to-representation-type spec))
     1341          (if (eq spec :registers)
     1342            (representation spec)
     1343            (representation (foreign-type-to-representation-type spec)))
    13271344        (representation val)))
    13281345    `(%ff-call ,entry ,@(representation)))))
     
    14471464               ((<= bits 16) (if signed :signed-halfword :unsigned-halfword))
    14481465               ((<= bits 32) (if signed :signed-fullword :unsigned-fullword))
     1466               ((<= bits 64) (if signed :signed-doubleword :unsigned-doubleword))
    14491467               (t `(:record ,bits)))))
    14501468      (foreign-float-type
Note: See TracChangeset for help on using the changeset viewer.