diff --git a/compiler/mips/type-vops.lisp b/compiler/mips/type-vops.lisp index 272baefa2426cab5fee82fc2b96f4793418d8e64..4b96f903663b4dc2570a7aecaef0779b3d2b341c 100644 --- a/compiler/mips/type-vops.lisp +++ b/compiler/mips/type-vops.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/type-vops.lisp,v 1.34 1992/07/28 20:37:57 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/type-vops.lisp,v 1.35 1992/08/04 14:16:36 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -458,7 +458,6 @@ ;; Is it one? (inst xor temp (+ (ash 1 type-bits) bignum-type)) (inst beq temp zero-tn single-word) - (inst nop) ;; If it's other than two, we can't be an (unsigned-byte 32) (inst xor temp (logxor (+ (ash 1 type-bits) bignum-type) (+ (ash 2 type-bits) bignum-type))) @@ -466,9 +465,12 @@ ;; Get the second digit. (loadw temp value (1+ bignum-digits-offset) other-pointer-type) ;; All zeros, its an (unsigned-byte 32). - (if not-p - (inst beq temp zero-tn target) - (inst bne temp zero-tn target)) + (cond (not-p + (inst beq temp zero-tn not-target) + (inst bne temp zero-tn target)) + (t + (inst beq temp zero-tn target) + (inst bne temp zero-tn not-target))) (inst nop) SINGLE-WORD