:load-if (not (location= x y))))
(:note "character untagging")
(:generator 1
- (let ((y-dword (make-dword-tn y)))
- (move y-dword (make-dword-tn x))
- (inst shr y-dword n-widetag-bits))))
+ (cond ((and (sc-is y character-reg) (sc-is x any-reg descriptor-reg))
+ (let ((y-dword (make-dword-tn y)))
+ (unless (location= x y)
+ (inst mov y-dword (make-dword-tn x)))
+ (inst shr y-dword n-widetag-bits)))
+ (t
+ (move y x)
+ (inst shr y n-widetag-bits)))))
#!-sb-unicode
(define-vop (move-to-character)
(:args (x :scs (any-reg control-stack)))
;;; 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".)
-"1.0.4.68"
+"1.0.4.69"