* missing VOPs from arith.lisp are here, I hope.
* 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
* 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
* compiler better recognizes complex arrays (reported by Eduardo
Muñoz)
* bug fix: out-of-line SB-SYS:FOREIGN-SYMBOL-ADDRESS did not work
SBCL_HOME=`pwd`/contrib
export SBCL_HOME
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
SBCL_BUILDING_CONTRIB=1
export SBCL SBCL_BUILDING_CONTRIB
(:result-types unsigned-num)
(:note "inline (unsigned-byte 32) arithmetic"))
(: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)
(define-vop (fast-unsigned-logop-c fast-safe-arith-op)
(:args (x :target r :scs (unsigned-reg zero)))
(:info y)
(:result-types unsigned-num)
(:note "inline (unsigned-byte 32) logical op"))
(: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)))
- (:arg-types unsigned-num
(:constant (and (signed-byte 16) (not (integer 0 0)))))
(: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)))
- (:arg-types unsigned-num
(:constant (and (unsigned-byte 16) (not (integer 0 0)))))
(: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)
(eval-when (:compile-toplevel :load-toplevel :execute)
fixnum-additive-overflow-trap))
(emit-label no-overflow))))
fixnum-additive-overflow-trap))
(emit-label no-overflow))))
(define-vop (-/fixnum fast--/fixnum=>fixnum)
(:policy :safe)
(:results (r :scs (any-reg descriptor-reg)))
(define-vop (-/fixnum fast--/fixnum=>fixnum)
(:policy :safe)
(:results (r :scs (any-reg descriptor-reg)))
(:arg-types unsigned-num (:constant (unsigned-byte 16)))
(:info target not-p y))
(:arg-types unsigned-num (:constant (unsigned-byte 16)))
(:info target not-p y))
(define-vop (fast-if-</fixnum fast-conditional/fixnum)
(:translate <)
(:generator 4
(define-vop (fast-if-</fixnum fast-conditional/fixnum)
(:translate <)
(:generator 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".)
;;; 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".)