X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86-64%2Fmove.lisp;h=b5c628bbea651c898c82b599e73db6c8e12dc474;hb=49e8403800426f37a54d9b87353a31af36e7af40;hp=cd6642b8198cea1acfa581ec0ce268cbe304994f;hpb=952d16ab5880823c1864eb9105bb269e2e00760d;p=sbcl.git diff --git a/src/compiler/x86-64/move.lisp b/src/compiler/x86-64/move.lisp index cd6642b..b5c628b 100644 --- a/src/compiler/x86-64/move.lisp +++ b/src/compiler/x86-64/move.lisp @@ -248,7 +248,11 @@ (:results (y :scs (signed-reg unsigned-reg))) (:note "constant load") (:generator 1 - (inst mov y (tn-value x)))) + (cond ((sb!c::tn-leaf x) + (inst mov y (tn-value x))) + (t + (inst mov y x) + (inst sar y n-fixnum-tag-bits))))) (define-move-vop move-to-word-c :move (constant) (signed-reg unsigned-reg))