X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fppc%2Fchar.lisp;h=a7400ab1ef67a2acb653079ba0f58eec587bdaaa;hb=711f75f20284c41f53485fda882fc7cc9e8e930f;hp=af3355f315d0aafec846fa5637135a2692b1e3de;hpb=94023958a1013881e38745f443240f905c1b4a0b;p=sbcl.git diff --git a/src/compiler/ppc/char.lisp b/src/compiler/ppc/char.lisp index af3355f..a7400ab 100644 --- a/src/compiler/ppc/char.lisp +++ b/src/compiler/ppc/char.lisp @@ -119,13 +119,19 @@ (:translate char>) (:variant :gt :le)) -#!-sb-unicode (progn -;; We can't use these when unicode is enabled because cmplwi has -;; an immediate field far smaller than the width of some unicode -;; code points. -- AB, 2010-Apr-24. (define-vop (character-compare/c) (:args (x :scs (character-reg))) - (:arg-types character (:constant character)) + (:arg-types character + ;; KLUDGE: having a SATISFIES type here is too hairy for + ;; the cross-compiler (running on an arbitrary CL host) + ;; to cope with. Since we know we only have standard + ;; characters in the build anyway, we can restrict the + ;; cross-compiler's arg type to standard char, and all + ;; is well. + #+sb-xc-host + (:constant standard-char) + #-sb-xc-host + (:constant (satisfies inlinable-character-constant-p))) (:conditional) (:info target not-p y) (:policy :fast-safe) @@ -146,4 +152,3 @@ (define-vop (fast-char>/character/c character-compare/c) (:translate char>) (:variant :gt :le)) -) ;; Not sb-unicode