X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86-64%2Ftype-vops.lisp;h=0727ca69052e43f5c706c6aa4f0225565d1bcf75;hb=69e6aef5e6fb3bd682c7a2cbf774034d2ea58ee8;hp=5f2e78f69374eb9aa75fd027e7b8dc5c0b3418bf;hpb=49ab16a1ebe3184cebd6a7954a113f934278b715;p=sbcl.git diff --git a/src/compiler/x86-64/type-vops.lisp b/src/compiler/x86-64/type-vops.lisp index 5f2e78f..0727ca6 100644 --- a/src/compiler/x86-64/type-vops.lisp +++ b/src/compiler/x86-64/type-vops.lisp @@ -264,9 +264,10 @@ (if not-p (values not-target target) (values target not-target)) - (generate-fixnum-test value) - (inst jmp :e yep) (move-qword-to-eax value) + (inst test al-tn fixnum-tag-mask) + (inst jmp :e yep) + (inst and al-tn lowtag-mask) (inst cmp al-tn other-pointer-lowtag) (inst jmp :ne nope) @@ -306,7 +307,6 @@ (values not-target target) (values target not-target)) ;; Is it a fixnum? - ;; Is it a fixnum? (move rax-tn value) (inst test al-tn fixnum-tag-mask) (inst jmp :e fixnum)