From 4ac1973c1277f6f4e6d3f1ebf08fbe905fd253b0 Mon Sep 17 00:00:00 2001
From: dtc <dtc>
Date: Sat, 12 Aug 2000 07:33:42 +0000
Subject: [PATCH] Add transforms for the sap-ref-64 operations.

---
 compiler/sparc/sap.lisp | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/compiler/sparc/sap.lisp b/compiler/sparc/sap.lisp
index 18388e10d..ae19ff542 100644
--- a/compiler/sparc/sap.lisp
+++ b/compiler/sparc/sap.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/sap.lisp,v 1.9 1998/03/21 08:05:24 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/sap.lisp,v 1.10 2000/08/12 07:33:42 dtc Rel $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -296,3 +296,24 @@
     (inst add sap vector
 	  (- (* vector-data-offset word-bytes) other-pointer-type))))
 
+
+
+;;; 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))))
-- 
GitLab