projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.9.9.27:
[sbcl.git]
/
src
/
compiler
/
generic
/
vm-tran.lisp
diff --git
a/src/compiler/generic/vm-tran.lisp
b/src/compiler/generic/vm-tran.lisp
index
06009ee
..
0557abc
100644
(file)
--- a/
src/compiler/generic/vm-tran.lisp
+++ b/
src/compiler/generic/vm-tran.lisp
@@
-32,6
+32,10
@@
`(truly-the layout (%instance-ref ,x 0)))
(define-source-transform %set-instance-layout (x val)
`(%instance-set ,x 0 (the layout ,val)))
`(truly-the layout (%instance-ref ,x 0)))
(define-source-transform %set-instance-layout (x val)
`(%instance-set ,x 0 (the layout ,val)))
+(define-source-transform %funcallable-instance-layout (x)
+ `(truly-the layout (%funcallable-instance-info ,x 0)))
+(define-source-transform %set-funcallable-instance-layout (x val)
+ `(setf (%funcallable-instance-info ,x 0) (the layout ,val)))
\f
;;;; character support
\f
;;;; character support
@@
-75,6
+79,8
@@
`(the ,(type-specifier declared-element-ctype)
,bare-form)))))))
`(the ,(type-specifier declared-element-ctype)
,bare-form)))))))
+;;; Transform multi-dimensional array to one dimensional data vector
+;;; access.
(deftransform data-vector-ref ((array index)
(simple-array t))
(let ((array-type (lvar-type array)))
(deftransform data-vector-ref ((array index)
(simple-array t))
(let ((array-type (lvar-type array)))