Changeset 11359


Ignore:
Timestamp:
Nov 14, 2008, 8:51:13 PM (11 years ago)
Author:
rme
Message:

i386-ff-call: fixes for passing non-scalar arguments

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/X86/x862.lisp

    r11300 r11359  
    94659465        ((:double-float :unsigned-doubleword :signed-doubleword)
    94669466         (incf nwords 2))
    9467         (t (incf nwords))))
     9467        (t
     9468         (if (typep argspec 'unsigned-byte)
     9469           (incf nwords argspec)
     9470           (incf nwords)))))
    94689471    (when (null argspecs)
    94699472      (setq simple-foreign-args t))
     
    95159518                 (x862-one-targeted-reg-form seg valform ptr)
    95169519                 (with-additional-imm-reg (ptr)
    9517                    (with-imm-target (ptr) (r :natural)
     9520                   (with-imm-temps (ptr) (r)
    95189521                     (dotimes (i spec)
    95199522                       (! mem-ref-c-fullword r ptr (ash i x8632::word-shift))
    9520                        (! set-c-arg r offset)))))
     9523                       (! set-c-arg r (+ offset i))))))
    95219524               (incf offset spec))
    95229525             (with-imm-target () (valreg :natural)
Note: See TracChangeset for help on using the changeset viewer.