0.8.1.22:
authorChristophe Rhodes <csr21@cam.ac.uk>
Thu, 3 Jul 2003 19:06:43 +0000 (19:06 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Thu, 3 Jul 2003 19:06:43 +0000 (19:06 +0000)
Since I'm playing with PPC assembler anyway...
... might as well implement the necessary stuff so that
ROTATE-BYTE (and SB-MD5) can perform acceptably
... couple of new instruction macros in the base system,
and use them in the rotate-byte system

contrib/sb-rotate-byte/sb-rotate-byte.asd
src/compiler/ppc/insts.lisp
version.lisp-expr

index 7df4f29..a5d7a72 100644 (file)
@@ -6,15 +6,19 @@
 
 (defsystem sb-rotate-byte
   :version "0.1"
-  :components ((:file "package")
-              (:file "compiler" :depends-on ("package"))
-              (:module "vm"
-                       :depends-on ("compiler")
-                       :components ((:file "x86-vm"
-                                           :in-order-to ((compile-op (feature :x86)))))
-                       :pathname #.(make-pathname :directory '(:relative))
-                       :if-component-dep-fails :ignore)
-              (:file "rotate-byte" :depends-on ("compiler"))))
+  :components 
+  ((:file "package")
+   (:file "compiler" :depends-on ("package"))
+   (:module "vm"
+           :depends-on ("compiler")
+           :components 
+           ((:file "x86-vm"
+                   :in-order-to ((compile-op (feature :x86))))
+            (:file "ppc-vm"
+                   :in-order-to ((compile-op (feature :ppc)))))
+           :pathname #.(make-pathname :directory '(:relative))
+           :if-component-dep-fails :ignore)
+   (:file "rotate-byte" :depends-on ("compiler"))))
 
 (defmethod perform :after ((o load-op) (c (eql (find-system :sb-rotate-byte))))
   (provide 'sb-rotate-byte))
index aff233f..b782a2f 100644 (file)
@@ -1,14 +1,19 @@
-;;;
-;;; Written by William Lott
-;;;
+;;;; the instruction set definition for the PPC
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; This software is derived from the CMU CL system, which was
+;;;; written at Carnegie Mellon University and released into the
+;;;; public domain. The software is in the public domain and is
+;;;; provided with absolutely no warranty. See the COPYING and CREDITS
+;;;; files for more information.
 
 (in-package "SB!VM")
 
 ;(def-assembler-params
 ;    :scheduler-p nil ; t when we trust the scheduler not to "fill delay slots"
 ;  :max-locations 70)
-
-
 \f
 ;;;; Constants, types, conversion functions, some disassembler stuff.
 
   (define-instruction-macro rotlw. (ra rs rb)
     `(inst rlwnm. ,ra ,rs ,rb 0 31))
   
+  (define-instruction-macro rotlwi (ra rs n)
+    `(inst rlwinm ,ra ,rs ,n 0 31))
+
+  (define-instruction-macro rotrwi (ra rs n)
+    `(inst rlwinm ,ra ,rs (- 32 ,n) 0 31))
+
   (define-instruction-macro slwi (ra rs n)
     `(inst rlwinm ,ra ,rs ,n 0 (- 31 ,n)))
 
index 429f72e..22d1b9e 100644 (file)
@@ -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.8.1.21"
+"0.8.1.22"