Changeset 5811
- Timestamp:
- Jan 29, 2007, 3:37:35 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lib/ffi-darwinppc32.lisp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lib/ffi-darwinppc32.lisp
r5805 r5811 21 21 (defun darwin32::record-type-has-single-scalar-field (record-type) 22 22 (when (eq (foreign-record-type-kind record-type) :struct) 23 ( ensure-foreign-type-bits record-type)23 (require-foreign-type-bits record-type) 24 24 (let* ((fields (foreign-record-type-fields record-type))) 25 25 (when (null (cdr fields)) … … 203 203 ,(if use-fp-args fp-args-ptr stack-ptr) 204 204 ,(if use-fp-args (* 8 (1- fp-arg-num)) 205 `(+ ,offset ,bias)))))205 (+ offset bias))))) 206 206 (let* ((name (car argvars)) 207 207 (spec (car argspecs)) … … 212 212 (progn 213 213 (rlets (list name (foreign-record-type-name argtype))) 214 (inits `(setf ,(%foreign-access-form name rtype 0 (foreign-record-field-name (car (foreign-record-type-fields argtype)))) 215 (next-scalar-arg type0)))) 216 (lets (list name (next-scalar-arg argtype))))) 214 (inits `(setf ,(%foreign-access-form name type0 0 nil) 215 ,(next-scalar-arg type0)))) 216 (progn (setq delta (* (ceiling (foreign-record-type-bits argtype) 32) 4)) 217 (lets (list name `(%inc-ptr ,stack-ptr ,offset )))))) 217 218 (lets (list name (next-scalar-arg argtype)))) 218 219 (when (or (typep argtype 'foreign-pointer-type) … … 228 229 (let* ((field0 (car (foreign-record-type-fields return-type)))) 229 230 (setq result (%foreign-access-form struct-return-arg 230 return-type231 (foreign-record-field-type field0) 231 232 0 232 (foreign-record-field-name field0))233 nil) 233 234 return-type (foreign-record-field-type field0)))) 234 235 (let* ((return-type-keyword (foreign-type-to-representation-type return-type)) … … 243 244 (:unsigned-doubleword '%%get-unsigned-longlong) 244 245 ((:double-float :single-float) 245 (setq stack-ptr `(%get-ptr ,stack-ptr ,(- ppc64::c-frame.unused-1 ppc64::c-frame.param0)))246 246 '%get-double-float) 247 247 (:unsigned-fullword '^get-unsigned-long)
Note:
See TracChangeset
for help on using the changeset viewer.
