for :EXTERNAL-FORMAT in DEFKNOWN OPEN (and LOAD) is a workaround for
the problem (and should be removed when the problem is fixed).
+245:
+ On X86 IMUL instruction with an immediate operand is printed
+ incorrectly.
+
DEFUNCT CATEGORIES OF BUGS
IR1-#:
These labels were used for bugs related to the old IR1 interpreter.
(:policy :fast-safe)
(:args (arg :scs (signed-reg) :target res))
(:arg-types signed-num)
- (:results (res :scs (any-reg)))
- (:result-types positive-fixnum)
- (:generator 30
+ (:results (res :scs (unsigned-reg)))
+ (:result-types unsigned-num)
+ (:generator 28
(move res arg)
(inst cmp res 0)
(inst jmp :ge POS)
(inst bsr res res)
(inst jmp :z zero)
(inst inc res)
- (inst shl res 2)
+ (inst jmp done)
+ ZERO
+ (inst xor res res)
+ DONE))
+
+(define-vop (unsigned-byte-32-len)
+ (:translate integer-length)
+ (:note "inline (unsigned-byte 32) integer-length")
+ (:policy :fast-safe)
+ (:args (arg :scs (unsigned-reg)))
+ (:arg-types unsigned-num)
+ (:results (res :scs (unsigned-reg)))
+ (:result-types unsigned-num)
+ (:generator 26
+ (inst bsr res arg)
+ (inst jmp :z zero)
+ (inst inc res)
(inst jmp done)
ZERO
(inst xor res res)
;;;; bit manipulation
(define-instruction bsf (segment dst src)
+ (:printer ext-reg-reg/mem ((op #b1011110) (width 0)))
(:emitter
(let ((size (matching-operand-size dst src)))
(when (eq size :byte)
(emit-ea segment src (reg-tn-encoding dst)))))
(define-instruction bsr (segment dst src)
+ (:printer ext-reg-reg/mem ((op #b1011110) (width 1)))
(:emitter
(let ((size (matching-operand-size dst src)))
(when (eq size :byte)
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.pre8.58"
+"0.pre8.59"