X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fhppa%2Fchar.lisp;h=06b59dd19a561dd2fa439d9d401badc1864c4e83;hb=9c510b74eca61bbcc2014dc2b1d02049dff50508;hp=aec3e691159e9cc3a59eb52d0a4f10a651cc71e9;hpb=52cfe54802db8736f1f4e2b67764c43bba9b78b3;p=sbcl.git diff --git a/src/compiler/hppa/char.lisp b/src/compiler/hppa/char.lisp index aec3e69..06b59dd 100644 --- a/src/compiler/hppa/char.lisp +++ b/src/compiler/hppa/char.lisp @@ -15,6 +15,7 @@ ;;; Move a tagged char to an untagged representation. (define-vop (move-to-character) + (:note "character untagging") (:args (x :scs (any-reg descriptor-reg))) (:results (y :scs (character-reg))) (:generator 1 @@ -24,6 +25,7 @@ ;;; Move an untagged char to a tagged representation. (define-vop (move-from-character) + (:note "character tagging") (:args (x :scs (character-reg))) (:results (y :scs (any-reg descriptor-reg))) (:generator 1 @@ -34,6 +36,7 @@ ;;; Move untagged character values. (define-vop (character-move) + (:note "character move") (:args (x :target y :scs (character-reg) :load-if (not (location= x y)))) @@ -48,6 +51,7 @@ ;;; Move untagged character args/return-values. (define-vop (move-character-arg) + (:note "character arg move") (:args (x :target y :scs (character-reg)) (fp :scs (any-reg) @@ -73,20 +77,20 @@ (:policy :fast-safe) (:args (ch :scs (character-reg) :target res)) (:arg-types character) - (:results (res :scs (unsigned-reg))) + (:results (res :scs (any-reg))) (:result-types positive-fixnum) (:generator 1 - (move ch res))) + (inst sll ch 2 res))) (define-vop (code-char) (:translate code-char) (:policy :fast-safe) - (:args (code :scs (unsigned-reg) :target res)) + (:args (code :scs (any-reg) :target res)) (:arg-types positive-fixnum) (:results (res :scs (character-reg))) (:result-types character) (:generator 1 - (move code res))) + (inst srl code 2 res))) ;;; Comparison of characters. (define-vop (character-compare) @@ -112,3 +116,4 @@ (define-vop (fast-char>/character character-compare) (:translate char>) (:variant :>>)) +