Changeset 5498
- Timestamp:
- Nov 6, 2006, 9:00:39 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/compiler/nx1.lisp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/nx1.lisp
r5447 r5498 858 858 859 859 (defnx1 nx1-%aset2 ((%aset2)) (&whole whole &environment env arr i j new) 860 (let* ((subtype 861 (cond ((nx-form-typep arr '(simple-array double-float (* *)) env) 862 :double-float-vector) 863 ((nx-form-typep arr '(simple-array single-float (* *)) env) 864 :single-float-vector)))) 865 (if subtype 866 (let* ((ctype (specifier-type (nx-form-type arr env))) 867 (dims (array-ctype-dimensions ctype)) 868 (dim0 (car dims)) 869 (dim1 (cadr dims))) 870 (make-acode (%nx1-operator aset2) 871 (nx1-form subtype) 872 (nx1-form arr) 873 (nx1-form i) 874 (nx1-form j) 875 (nx1-form new) 876 (nx1-form dim0) 877 (nx1-form dim1))) 878 (nx1-treat-as-call whole)))) 860 (let* ((arch (backend-target-arch *target-backend*)) 861 (ctype (specifier-type (nx-form-type arr env))) 862 (atype (if (csubtypep ctype (specifier-type '(array * (* *)))) ctype)) 863 (simple-atype (if (and atype 864 (csubtypep atype (specifier-type '(simple-array * (* *))))) 865 atype)) 866 (type-keyword (if atype 867 (funcall 868 (arch::target-array-type-name-from-ctype-function arch) 869 atype)))) 870 871 (if (and type-keyword simple-atype) 872 (let* ((dims (array-ctype-dimensions atype)) 873 (dim0 (car dims)) 874 (dim1 (cadr dims))) 875 (make-acode (%nx1-operator simple-typed-aset2) 876 (nx1-form type-keyword) 877 (nx1-form arr) 878 (nx1-form i) 879 (nx1-form j) 880 (nx1-form new) 881 (nx1-form (if (typep dim0 'fixnum) dim0)) 882 (nx1-form (if (typep dim1 'fixnum) dim1)))) 883 (make-acode (%nx1-operator general-aset2) 884 (nx1-form arr) 885 (nx1-form i) 886 (nx1-form j) 887 (nx1-form new))))) 879 888 880 889 (defnx1 nx1-prog1 (prog1 multiple-value-prog1) (save &body args
Note:
See TracChangeset
for help on using the changeset viewer.
