From d489eb74491a9541b09b56ec04b849da3ffb60ed Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Sun, 28 May 2006 14:35:43 +0000 Subject: [PATCH] 0.9.13.8: Fix the compiler transform for %set-sap-ref-foo and sap+ --- src/compiler/saptran.lisp | 32 ++++++++++++++++---------------- version.lisp-expr | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/compiler/saptran.lisp b/src/compiler/saptran.lisp index cf84c28..9f2c643 100644 --- a/src/compiler/saptran.lisp +++ b/src/compiler/saptran.lisp @@ -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) diff --git a/version.lisp-expr b/version.lisp-expr index c5022ea..12a5ae5 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; 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".) -"0.9.13.7" +"0.9.13.8" -- 1.7.10.4