X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Falpha%2Fmove.lisp;h=6416dc622f88a78823e192905564602f708a0508;hb=95591ed483dbb8c0846c129953acac1554f28809;hp=bfdb4fe2998ff7796a77deddb35a8d2330064086;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/src/compiler/alpha/move.lisp b/src/compiler/alpha/move.lisp index bfdb4fe..6416dc6 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 ((sc!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))