X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Falpha%2Fmove.lisp;h=ce7fd880f210a60bd6056eca7af73caddb3b97ad;hb=f7c047cafd84b556398014c4932c90dba55a5c0d;hp=bfdb4fe2998ff7796a77deddb35a8d2330064086;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/src/compiler/alpha/move.lisp b/src/compiler/alpha/move.lisp index bfdb4fe..ce7fd88 100644 --- a/src/compiler/alpha/move.lisp +++ b/src/compiler/alpha/move.lisp @@ -161,7 +161,11 @@ (:results (y :scs (signed-reg unsigned-reg))) (:note "constant load") (:generator 1 - (inst li (tn-value x) y))) + (cond ((sb!c::tn-leaf x) + (inst li (tn-value x) y)) + (t + (loadw y code-tn (tn-offset x) other-pointer-lowtag) + (inst sra y n-fixnum-tag-bits y))))) (define-move-vop move-to-word-c :move (constant) (signed-reg unsigned-reg))