From: Christophe Rhodes Date: Thu, 3 Jul 2003 19:06:43 +0000 (+0000) Subject: 0.8.1.22: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=e6663cb07e78f85b1eca3a5121e177377a3d8044;p=sbcl.git 0.8.1.22: 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 --- diff --git a/contrib/sb-rotate-byte/sb-rotate-byte.asd b/contrib/sb-rotate-byte/sb-rotate-byte.asd index 7df4f29..a5d7a72 100644 --- a/contrib/sb-rotate-byte/sb-rotate-byte.asd +++ b/contrib/sb-rotate-byte/sb-rotate-byte.asd @@ -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)) diff --git a/src/compiler/ppc/insts.lisp b/src/compiler/ppc/insts.lisp index aff233f..b782a2f 100644 --- a/src/compiler/ppc/insts.lisp +++ b/src/compiler/ppc/insts.lisp @@ -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) - - ;;;; Constants, types, conversion functions, some disassembler stuff. @@ -1799,6 +1804,12 @@ (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))) diff --git a/version.lisp-expr b/version.lisp-expr index 429f72e..22d1b9e 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.8.1.21" +"0.8.1.22"