From: Nikodemus Siivola Date: Sun, 3 Jul 2005 01:11:04 +0000 (+0000) Subject: 0.9.2.16: restore buildability on PPC X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=40859b35c1bff1d7d8773bbcda7b25bca4e553e3;p=sbcl.git 0.9.2.16: restore buildability on PPC * missing VOPs from arith.lisp are here, I hope. --- diff --git a/NEWS b/NEWS index 7b529f3..c7bf089 100644 --- a/NEWS +++ b/NEWS @@ -9,7 +9,6 @@ changes in sbcl-0.9.3 relative to sbcl-0.9.2: * bug fix: no more highly sporadic "couldn't check whether ~S is readable" when reading a stream and an interrupt hits in the middle of a select system call - * compiler better recognizes complex arrays (reported by Eduardo Muñoz) * bug fix: out-of-line SB-SYS:FOREIGN-SYMBOL-ADDRESS did not work diff --git a/make-target-contrib.sh b/make-target-contrib.sh index e861382..28945a9 100644 --- a/make-target-contrib.sh +++ b/make-target-contrib.sh @@ -26,7 +26,7 @@ find_gnumake SBCL_HOME=`pwd`/contrib export SBCL_HOME -SBCL="`pwd`/src/runtime/sbcl --noinform --core `pwd`/output/sbcl.core --userinit /dev/null --sysinit /dev/null --disable-debugger" +SBCL="`pwd`/src/runtime/sbcl --noinform --core `pwd`/output/sbcl.core --userinit /dev/null --sysinit /dev/null" # --disable-debugger" SBCL_BUILDING_CONTRIB=1 export SBCL SBCL_BUILDING_CONTRIB diff --git a/src/compiler/ppc/arith.lisp b/src/compiler/ppc/arith.lisp index 09a4f82..916ed0f 100644 --- a/src/compiler/ppc/arith.lisp +++ b/src/compiler/ppc/arith.lisp @@ -134,6 +134,15 @@ (:result-types unsigned-num) (:note "inline (unsigned-byte 32) arithmetic")) +(define-vop (fast-signed-binop32-c fast-safe-arith-op) + (:args (x :target r :scs (signed-reg zero))) + (:info y) + (:arg-types signed-num + (:constant (and (signed-byte 32) (not (integer 0 0))))) + (:results (r :scs (signed-reg))) + (:result-types signed-num) + (:note "inline (signed-byte 32) arithmetic")) + (define-vop (fast-unsigned-logop-c fast-safe-arith-op) (:args (x :target r :scs (unsigned-reg zero))) (:info y) @@ -152,26 +161,32 @@ (:result-types unsigned-num) (:note "inline (unsigned-byte 32) logical op")) +(define-vop (fast-signed-logop32-c fast-safe-arith-op) + (:args (x :target r :scs (signed-reg zero))) + (:info y) + (:arg-types signed-num + (:constant (and (unsigned-byte 32) (not (integer 0 0))))) + (:results (r :scs (signed-reg))) + (:result-types signed-num) + (:note "inline (signed-byte 32) logical op")) - -(define-vop (fast-unsigned-binop-c fast-safe-arith-op) - (:args (x :target r :scs (unsigned-reg zero))) +(define-vop (fast-signed-binop-c fast-safe-arith-op) + (:args (x :target r :scs (signed-reg zero))) (:info y) - (:arg-types unsigned-num + (:arg-types signed-num (:constant (and (signed-byte 16) (not (integer 0 0))))) - (:results (r :scs (unsigned-reg))) - (:result-types unsigned-num) - (:note "inline (unsigned-byte 32) arithmetic")) + (:results (r :scs (signed-reg))) + (:result-types signed-num) + (:note "inline (signed-byte 32) arithmetic")) -(define-vop (fast-unsigned-logop-c fast-safe-arith-op) - (:args (x :target r :scs (unsigned-reg zero))) +(define-vop (fast-signed-logop-c fast-safe-arith-op) + (:args (x :target r :scs (signed-reg zero))) (:info y) - (:arg-types unsigned-num + (:arg-types signed-num (:constant (and (unsigned-byte 16) (not (integer 0 0))))) - (:results (r :scs (unsigned-reg))) - (:result-types unsigned-num) - (:note "inline (unsigned-byte 32) logical op")) - + (:results (r :scs (signed-reg))) + (:result-types signed-num) + (:note "inline (signed-byte 32) logical op")) (eval-when (:compile-toplevel :load-toplevel :execute) @@ -426,7 +441,6 @@ fixnum-additive-overflow-trap)) (emit-label no-overflow)))) - (define-vop (-/fixnum fast--/fixnum=>fixnum) (:policy :safe) (:results (r :scs (any-reg descriptor-reg))) @@ -731,7 +745,6 @@ (:arg-types unsigned-num (:constant (unsigned-byte 16))) (:info target not-p y)) - (define-vop (fast-if-