(:generator 2
(inst addi (- (* vector-data-offset n-word-bytes) other-pointer-lowtag)
vector sap)))
-\f
-;;; Transforms for 64-bit SAP accessors.
-
-(deftransform sap-ref-64 ((sap offset) (* *))
- '(logior (ash (sap-ref-32 sap offset) 32)
- (sap-ref-32 sap (+ offset 4))))
-
-(deftransform signed-sap-ref-64 ((sap offset) (* *))
- '(logior (ash (signed-sap-ref-32 sap offset) 32)
- (sap-ref-32 sap (+ 4 offset))))
-
-(deftransform %set-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-sap-ref-32 sap offset (ash value -32))
- (%set-sap-ref-32 sap (+ offset 4) (logand value #xffffffff))))
-
-(deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-signed-sap-ref-32 sap offset (ash value -32))
- (%set-sap-ref-32 sap (+ 4 offset) (logand value #xffffffff))))
(:generator 2
(inst addu sap vector
(- (* vector-data-offset n-word-bytes) other-pointer-lowtag))))
-\f
-;;; Transforms for 64-bit SAP accessors.
-#!+little-endian
-(progn
- (deftransform sap-ref-64 ((sap offset) (* *))
- '(logior (sap-ref-32 sap offset)
- (ash (sap-ref-32 sap (+ offset 4)) 32)))
-
- (deftransform signed-sap-ref-64 ((sap offset) (* *))
- '(logior (sap-ref-32 sap offset)
- (ash (signed-sap-ref-32 sap (+ offset 4)) 32)))
-
- (deftransform %set-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-sap-ref-32 sap offset (logand value #xffffffff))
- (%set-sap-ref-32 sap (+ offset 4) (ash value -32))))
-
- (deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-sap-ref-32 sap offset (logand value #xffffffff))
- (%set-signed-sap-ref-32 sap (+ offset 4) (ash value -32)))))
-
-#!-little-endian
-(progn
- (deftransform sap-ref-64 ((sap offset) (* *))
- '(logior (ash (sap-ref-32 sap offset) 32)
- (sap-ref-32 sap (+ offset 4))))
-
- (deftransform signed-sap-ref-64 ((sap offset) (* *))
- '(logior (ash (signed-sap-ref-32 sap offset) 32)
- (sap-ref-32 sap (+ 4 offset))))
-
- (deftransform %set-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-sap-ref-32 sap offset (ash value -32))
- (%set-sap-ref-32 sap (+ offset 4) (logand value #xffffffff))))
-
- (deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-signed-sap-ref-32 sap offset (ash value -32))
- (%set-sap-ref-32 sap (+ 4 offset) (logand value #xffffffff)))))
(:generator 2
(inst addi sap vector
(- (* vector-data-offset n-word-bytes) other-pointer-lowtag))))
-\f
-;;; Transforms for 64-bit SAP accessors.
-(deftransform sap-ref-64 ((sap offset) (* *))
- '(logior (ash (sap-ref-32 sap offset) 32)
- (sap-ref-32 sap (+ offset 4))))
-
-(deftransform signed-sap-ref-64 ((sap offset) (* *))
- '(logior (ash (signed-sap-ref-32 sap offset) 32)
- (sap-ref-32 sap (+ 4 offset))))
-
-(deftransform %set-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-sap-ref-32 sap offset (ash value -32))
- (%set-sap-ref-32 sap (+ offset 4) (logand value #xffffffff))))
-
-(deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-signed-sap-ref-32 sap offset (ash value -32))
- (%set-sap-ref-32 sap (+ 4 offset) (logand value #xffffffff))))
%set-sap-ref-32 %set-sap-ref-64)
(def %set-signed-sap-ref-word (sap offset value)
%set-signed-sap-ref-32 %set-signed-sap-ref-64))
+\f
+;;; Transforms for 64-bit SAP accessors on 32-bit platforms.
+
+#!+#.(cl:if (cl:= 32 sb!vm:n-machine-word-bits) '(and) '(or))
+(progn
+#!+#.(cl:if (cl:eq :little-endian sb!c:*backend-byte-order*) '(and) '(or))
+(progn
+ (deftransform sap-ref-64 ((sap offset) (* *))
+ '(logior (sap-ref-32 sap offset)
+ (ash (sap-ref-32 sap (+ offset 4)) 32)))
+
+ (deftransform signed-sap-ref-64 ((sap offset) (* *))
+ '(logior (sap-ref-32 sap offset)
+ (ash (signed-sap-ref-32 sap (+ offset 4)) 32)))
+
+ (deftransform %set-sap-ref-64 ((sap offset value) (* * *))
+ '(progn
+ (%set-sap-ref-32 sap offset (logand value #xffffffff))
+ (%set-sap-ref-32 sap (+ offset 4) (ash value -32))))
+
+ (deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *))
+ '(progn
+ (%set-sap-ref-32 sap offset (logand value #xffffffff))
+ (%set-signed-sap-ref-32 sap (+ offset 4) (ash value -32)))))
+
+#!+#.(cl:if (cl:eq :big-endian sb!c:*backend-byte-order*) '(and) '(or))
+(progn
+ (deftransform sap-ref-64 ((sap offset) (* *))
+ '(logior (ash (sap-ref-32 sap offset) 32)
+ (sap-ref-32 sap (+ offset 4))))
+
+ (deftransform signed-sap-ref-64 ((sap offset) (* *))
+ '(logior (ash (signed-sap-ref-32 sap offset) 32)
+ (sap-ref-32 sap (+ 4 offset))))
+
+ (deftransform %set-sap-ref-64 ((sap offset value) (* * *))
+ '(progn
+ (%set-sap-ref-32 sap offset (ash value -32))
+ (%set-sap-ref-32 sap (+ offset 4) (logand value #xffffffff))))
+
+ (deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *))
+ '(progn
+ (%set-signed-sap-ref-32 sap offset (ash value -32))
+ (%set-sap-ref-32 sap (+ 4 offset) (logand value #xffffffff)))))
+) ; (= 32 SB!VM:N-MACHINE-WORD-BITS)
(:generator 2
(inst add sap vector
(- (* vector-data-offset n-word-bytes) other-pointer-lowtag))))
-\f
-;;; Transforms for 64-bit SAP accessors.
-(deftransform sap-ref-64 ((sap offset) (* *))
- '(logior (ash (sap-ref-32 sap offset) 32)
- (sap-ref-32 sap (+ offset 4))))
-
-(deftransform signed-sap-ref-64 ((sap offset) (* *))
- '(logior (ash (signed-sap-ref-32 sap offset) 32)
- (sap-ref-32 sap (+ 4 offset))))
-
-(deftransform %set-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-sap-ref-32 sap offset (ash value -32))
- (%set-sap-ref-32 sap (+ offset 4) (logand value #xffffffff))))
-
-(deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-signed-sap-ref-32 sap offset (ash value -32))
- (%set-sap-ref-32 sap (+ 4 offset) (logand value #xffffffff))))
(inst add
sap
(- (* vector-data-offset n-word-bytes) other-pointer-lowtag))))
-
-;;; Transforms for 64-bit SAP accessors.
-
-(deftransform sap-ref-64 ((sap offset) (* *))
- '(logior (sap-ref-32 sap offset)
- (ash (sap-ref-32 sap (+ offset 4)) 32)))
-
-(deftransform signed-sap-ref-64 ((sap offset) (* *))
- '(logior (sap-ref-32 sap offset)
- (ash (signed-sap-ref-32 sap (+ offset 4)) 32)))
-
-(deftransform %set-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-sap-ref-32 sap offset (logand value #xffffffff))
- (%set-sap-ref-32 sap (+ offset 4) (ash value -32))))
-
-(deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *))
- '(progn
- (%set-sap-ref-32 sap offset (logand value #xffffffff))
- (%set-signed-sap-ref-32 sap (+ offset 4) (ash value -32))))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.31.20"
+"1.0.31.21"