X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fmips%2Fsystem.lisp;h=e5841e52db6abbce6f71e100e1c5c65c89ca1fe9;hb=7deecae2d959173eda6a153d490c752c32050a9e;hp=4ac025c6df297700978b7834a9bfd74de63f0507;hpb=4cb16425e2ffce3f70ad6ca10f0cde4f1545fa9d;p=sbcl.git diff --git a/src/compiler/mips/system.lisp b/src/compiler/mips/system.lisp index 4ac025c..e5841e5 100644 --- a/src/compiler/mips/system.lisp +++ b/src/compiler/mips/system.lisp @@ -39,7 +39,7 @@ (inst beq ndescr function-ptr) ;; Pick off fixnums. - (inst and result object 3) + (inst and result object fixnum-tag-mask) (inst beq result done) ;; Pick off structure and list pointers. @@ -122,7 +122,7 @@ (inst and t1 widetag-mask) (sc-case data (any-reg - (inst sll t2 data (- n-widetag-bits 2)) + (inst sll t2 data (- n-widetag-bits n-fixnum-tag-bits)) (inst or t1 t2)) (immediate (inst or t1 (ash (tn-value data) n-widetag-bits))) @@ -153,8 +153,8 @@ (inst sll temp val n-widetag-bits) (inst or res temp (tn-value type))) (t - (inst sra temp type 2) - (inst sll res val (- n-widetag-bits 2)) + (inst sra temp type n-fixnum-tag-bits) + (inst sll res val (- n-widetag-bits n-fixnum-tag-bits)) (inst or res res temp)))))