diff --git a/compiler/rt/char.lisp b/compiler/rt/char.lisp index 6dab4b2c5c3261fc7f06710d2943175a723b8428..62837a0db0e9d06b125a916b2ccb0c731cbdbebf 100644 --- a/compiler/rt/char.lisp +++ b/compiler/rt/char.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/rt/char.lisp,v 1.2 1991/11/09 02:37:16 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/rt/char.lisp,v 1.3 1992/03/10 10:00:34 wlott Exp $ ;;; ;;; This file contains the RT VM definition of character operations. ;;; @@ -139,10 +139,20 @@ ;;; Comparison of base-chars. ;;; -(define-vop (base-char-compare pointer-compare) +(define-vop (base-char-compare) (:args (x :scs (base-char-reg)) (y :scs (base-char-reg))) - (:arg-types base-char base-char)) + (:arg-types base-char base-char) + (:conditional) + (:info target not-p) + (:policy :fast-safe) + (:note "inline comparison") + (:variant-vars condition) + (:generator 6 + (inst cl x y) + (if not-p + (inst bnc condition target) + (inst bc condition target)))) (define-vop (fast-char=/base-char base-char-compare) (:translate char=)