X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fsparc%2Fmove.lisp;h=72080a2e1cab31c1ea244ef2b3fea62007d22314;hb=5745b5a5b2e3b967bf3876b4306f31b3c78495fa;hp=5b4bc1be66ec03db7581b76bdf8038c244e03816;hpb=52cfe54802db8736f1f4e2b67764c43bba9b78b3;p=sbcl.git diff --git a/src/compiler/sparc/move.lisp b/src/compiler/sparc/move.lisp index 5b4bc1b..72080a2 100644 --- a/src/compiler/sparc/move.lisp +++ b/src/compiler/sparc/move.lisp @@ -150,7 +150,11 @@ (:results (y :scs (signed-reg unsigned-reg))) (:note "constant load") (:generator 1 - (inst li y (tn-value x)))) + (cond ((sb!c::tn-leaf x) + (inst li y (tn-value x))) + (t + (loadw y code-tn (tn-offset x) other-pointer-lowtag) + (inst sra y y n-fixnum-tag-bits))))) (define-move-vop move-to-word-c :move (constant) (signed-reg unsigned-reg))