(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))
-;;;
-;;; 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)))
;;; 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"