Changeset 6175


Ignore:
Timestamp:
Apr 8, 2007, 2:54:21 AM (12 years ago)
Author:
gb
Message:

Allow extra "hybrid" ff-call argspecs (for DarwinPPC64.)
Cut-and-paste bug re: nx1-%fixnum-to-single/double.
Parse %short-float, %double-float when no "result" arg; can at least
try to constant-fold late and/or do some cases if we have more type
info.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/compiler/nx1.lisp

    r5764 r6175  
    12981298;;; :unsigned-fullword, :signed-halfword, :unsigned-halfword,
    12991299;;; :signed-byte, or :unsigned-byte
     1300;;; On ppc64, :hybrid-int-float, :hybrid-float-float, and :hybrid-float-int
     1301;;; can also be used to express some struct-by-value cases.
    13001302
    13011303(defparameter *arg-spec-keywords*
    13021304  '(:double-float :single-float :address :signed-doubleword
    13031305    :unsigned-doubleword :signed-fullword :unsigned-fullword
    1304     :signed-halfword :unsigned-halfword :signed-byte :unsigned-byte))
     1306    :signed-halfword :unsigned-halfword :signed-byte :unsigned-byte
     1307    :hybrid-int-float :hybrid-float-int :hybrid-float-float))
    13051308
    13061309
     
    20422045              (nx1-form arg)))
    20432046
    2044 (defnx1 nx1-%fixnum-to-double ((%fixnum-to-single)) (arg)
     2047(defnx1 nx1-%fixnum-to-single ((%fixnum-to-single)) (arg)
    20452048  (make-acode (%nx1-operator %fixnum-to-single)
    20462049              (nx1-form arg)))
     2050
     2051(defnx1 nx1-%double-float ((%double-float)) (&whole whole arg &optional (result nil result-p))
     2052  (declare (ignore result))
     2053  (if result-p
     2054    (nx1-treat-as-call whole)
     2055    (make-acode (%nx1-operator %double-float) (nx1-form arg))))
     2056
     2057(defnx1 nx1-%short-float ((%short-float)) (&whole whole arg &optional (result nil result-p))
     2058  (declare (ignore result))       
     2059  (if result-p
     2060    (nx1-treat-as-call whole)
     2061    (make-acode (%nx1-operator %single-float) (nx1-form arg))))
     2062
    20472063
    20482064(defnx1 nx1-symvector ((%symptr->symvector) (%symvector->symptr)) (arg)
Note: See TracChangeset for help on using the changeset viewer.