|
[Sbcl-commits] CVS: sbcl/src/compiler saptran.lisp,1.11,1.12
From: Christophe Rhodes <crhodes@us...> - 2006-05-28 14:35
|
Update of /cvsroot/sbcl/sbcl/src/compiler
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv16993/src/compiler
Modified Files:
saptran.lisp
Log Message:
0.9.13.8:
Fix the compiler transform for %set-sap-ref-foo and sap+
Index: saptran.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/saptran.lisp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- saptran.lisp 14 Jul 2005 18:57:01 -0000 1.11
+++ saptran.lisp 28 May 2006 14:35:44 -0000 1.12
@@ -166,39 +166,39 @@
'(lambda (sap offset1 offset2)
(sap+ sap (+ offset1 offset2))))))
-(macrolet ((def (fun)
- `(deftransform ,fun ((sap offset) * *)
+(macrolet ((def (fun &optional setp)
+ `(deftransform ,fun ((sap offset ,@(when setp `(new-value))) * *)
(extract-fun-args sap 'sap+ 2)
- `(lambda (sap offset1 offset2)
- (,',fun sap (+ offset1 offset2))))))
+ `(lambda (sap offset1 offset2 ,@',(when setp `(new-value)))
+ (,',fun sap (+ offset1 offset2) ,@',(when setp `(new-value)))))))
(def sap-ref-8)
- (def %set-sap-ref-8)
+ (def %set-sap-ref-8 t)
(def signed-sap-ref-8)
- (def %set-signed-sap-ref-8)
+ (def %set-signed-sap-ref-8 t)
(def sap-ref-16)
- (def %set-sap-ref-16)
+ (def %set-sap-ref-16 t)
(def signed-sap-ref-16)
- (def %set-signed-sap-ref-16)
+ (def %set-signed-sap-ref-16 t)
(def sap-ref-32)
- (def %set-sap-ref-32)
+ (def %set-sap-ref-32 t)
(def signed-sap-ref-32)
- (def %set-signed-sap-ref-32)
+ (def %set-signed-sap-ref-32 t)
(def sap-ref-64)
- (def %set-sap-ref-64)
+ (def %set-sap-ref-64 t)
(def signed-sap-ref-64)
- (def %set-signed-sap-ref-64)
+ (def %set-signed-sap-ref-64 t)
(def sap-ref-sap)
- (def %set-sap-ref-sap)
+ (def %set-sap-ref-sap t)
(def sap-ref-single)
- (def %set-sap-ref-single)
+ (def %set-sap-ref-single t)
(def sap-ref-double)
- (def %set-sap-ref-double)
+ (def %set-sap-ref-double t)
;; The original CMUCL code had #!+(and x86 long-float) for this first one,
;; but only #!+long-float for the second. This was redundant, since the
;; LONG-FLOAT target feature only exists on X86. So we removed the
;; redundancy. --njf 2002-01-08
#!+long-float (def sap-ref-long)
- #!+long-float (def %set-sap-ref-long))
+ #!+long-float (def %set-sap-ref-long t))
(macrolet ((def (fun args 32-bit 64-bit)
`(deftransform ,fun (,args)
|
| Thread | Author | Date |
|---|---|---|
| [Sbcl-commits] CVS: sbcl/src/compiler saptran.lisp,1.11,1.12 | Christophe Rhodes <crhodes@us...> |