projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.4.63: Don't zeroize dynamic-extent simple-unboxed-arrays on x86 and x86-64
[sbcl.git]
/
src
/
compiler
/
ppc
/
arith.lisp
diff --git
a/src/compiler/ppc/arith.lisp
b/src/compiler/ppc/arith.lisp
index
c8f1eae
..
67365c1
100644
(file)
--- a/
src/compiler/ppc/arith.lisp
+++ b/
src/compiler/ppc/arith.lisp
@@
-664,10
+664,11
@@
;;;; %LDB
(defknown %%ldb (integer unsigned-byte unsigned-byte) unsigned-byte
;;;; %LDB
(defknown %%ldb (integer unsigned-byte unsigned-byte) unsigned-byte
- (movable foldable flushable))
+ (movable foldable flushable always-translatable))
+;;; only for constant folding within the compiler
(defun %%ldb (integer size posn)
(defun %%ldb (integer size posn)
- (sb-kernel::%ldb size posn integer))
+ (sb!kernel::%ldb size posn integer))
(define-vop (ldb-c/fixnum)
(:translate %%ldb)
(define-vop (ldb-c/fixnum)
(:translate %%ldb)
@@
-830,9
+831,10
@@
(define-logtest-vops))
(defknown %logbitp (integer unsigned-byte) boolean
(define-logtest-vops))
(defknown %logbitp (integer unsigned-byte) boolean
- (movable foldable flushable))
+ (movable foldable flushable always-translatable))
-(defun %logbitp (index integer)
+;;; only for constant folding within the compiler
+(defun %logbitp (integer index)
(logbitp index integer))
;;; We only handle the constant cases because those are the only ones
(logbitp index integer))
;;; We only handle the constant cases because those are the only ones
@@
-840,6
+842,7
@@
;;; --njf, 06-02-2006
(define-vop (fast-logbitp-c/fixnum fast-conditional-c/fixnum)
(:translate %logbitp)
;;; --njf, 06-02-2006
(define-vop (fast-logbitp-c/fixnum fast-conditional-c/fixnum)
(:translate %logbitp)
+ (:arg-types tagged-num (:constant (integer 0 29)))
(:temporary (:scs (any-reg) :to (:result 0)) test)
(:generator 4
(if (< y 14)
(:temporary (:scs (any-reg) :to (:result 0)) test)
(:generator 4
(if (< y 14)
@@
-849,6
+852,7
@@
(define-vop (fast-logbitp-c/signed fast-conditional-c/signed)
(:translate %logbitp)
(define-vop (fast-logbitp-c/signed fast-conditional-c/signed)
(:translate %logbitp)
+ (:arg-types signed-num (:constant (integer 0 31)))
(:temporary (:scs (signed-reg) :to (:result 0)) test)
(:generator 4
(if (< y 16)
(:temporary (:scs (signed-reg) :to (:result 0)) test)
(:generator 4
(if (< y 16)
@@
-858,6
+862,7
@@
(define-vop (fast-logbitp-c/unsigned fast-conditional-c/unsigned)
(:translate %logbitp)
(define-vop (fast-logbitp-c/unsigned fast-conditional-c/unsigned)
(:translate %logbitp)
+ (:arg-types unsigned-num (:constant (integer 0 31)))
(:temporary (:scs (unsigned-reg) :to (:result 0)) test)
(:generator 4
(if (< y 16)
(:temporary (:scs (unsigned-reg) :to (:result 0)) test)
(:generator 4
(if (< y 16)