Changeset 6134


Ignore:
Timestamp:
Apr 5, 2007, 3:37:57 PM (12 years ago)
Author:
gb
Message:

Handle "Hybrid" foreign arguments (for ppc64 structure fields.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/objc-gf/ccl/compiler/PPC/ppc2.lisp

    r6000 r6134  
    82328232             (setq return-registers t)
    82338233             (ppc2-push-register seg (ppc2-one-untargeted-reg-form seg valform ppc::arg_z)))
    8234             ((:signed-doubleword :unsigned-doubleword)
     8234            ((:signed-doubleword :unsigned-doubleword :hybrid-int-float :hybrid-float-float :hybrid-float-int)
     8235                                 
    82358236             (ppc2-one-targeted-reg-form seg valform ($ ppc::arg_z))
    82368237             (if (eq spec :signed-doubleword)
     
    82428243               (incf nextarg)
    82438244               (! set-c-arg ($ ppc::imm1) nextarg))
    8244               (:ppc64)))
     8245              (:ppc64
     8246               (case spec
     8247                 (:hybrid-int-float (push (cons :single-float nextarg) fp-loads))
     8248                 (:hybrid-float-int (push (cons :single-float-high nextarg) fp-loads))
     8249                 (:hybrid-float-float
     8250                  (push (cons :single-float-high nextarg) fp-loads)
     8251                  (push (cons :single-float nextarg) fp-loads))))))
    82458252            (:double-float
    82468253             (let* ((df ($ ppc::fp1 :class :fpr :mode :double-float)))
     
    82958302          (if (eq size :double-float)
    82968303            (! reload-double-c-arg fpreg from)
    8297             (! reload-single-c-arg fpreg from))))
     8304            (if (eq size :single-float-high)
     8305              (! reload-single-c-arg-high fpreg from)
     8306              (! reload-single-c-arg fpreg from)))))
    82988307      return-registers)))
    82998308
Note: See TracChangeset for help on using the changeset viewer.