X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86-64%2Ftype-vops.lisp;h=9d9670261751f26abc6983daca2b48a45e22559c;hb=3fe0010d2777b41e01ea9b4a0f894cfa40f7df1b;hp=e77d167109b50745c47a16a11a98c80406cc85ce;hpb=a3649ba68e298d9203e8bb1de5629ff788586fe1;p=sbcl.git diff --git a/src/compiler/x86-64/type-vops.lisp b/src/compiler/x86-64/type-vops.lisp index e77d167..9d96702 100644 --- a/src/compiler/x86-64/type-vops.lisp +++ b/src/compiler/x86-64/type-vops.lisp @@ -199,12 +199,12 @@ ;; (and (fixnum) (or (no bits set >31) (all bits set >31)) (move rax-tn value) (inst test rax-tn 7) - (inst jmp :ne (if not-p target not-target)) + (inst jmp :ne (if not-p target NOT-TARGET)) (inst sar rax-tn (+ 32 3 -1)) (if not-p (progn - (inst jmp :nz maybe) - (inst jmp not-target)) + (inst jmp :nz MAYBE) + (inst jmp NOT-TARGET)) (inst jmp :z target)) MAYBE (inst cmp rax-tn -1) @@ -224,7 +224,7 @@ (inst jmp :z ok) (inst cmp rax-tn -1) (inst jmp :ne nope) - (emit-label OK) + (emit-label ok) (move result value)))) @@ -234,7 +234,7 @@ ;; (and (fixnum) (no bits set >31)) (move rax-tn value) (inst test rax-tn 7) - (inst jmp :ne (if not-p target not-target)) + (inst jmp :ne (if not-p target NOT-TARGET)) (inst shr rax-tn (+ 32 sb!vm::n-fixnum-tag-bits)) (inst jmp (if not-p :nz :z) target) NOT-TARGET)) @@ -265,35 +265,35 @@ (values target not-target)) ;; Is it a fixnum? (generate-fixnum-test value) - (move eax-tn value) + (move rax-tn value) (inst jmp :e fixnum) ;; If not, is it an other pointer? - (inst and eax-tn lowtag-mask) - (inst cmp eax-tn other-pointer-lowtag) + (inst and rax-tn lowtag-mask) + (inst cmp rax-tn other-pointer-lowtag) (inst jmp :ne nope) ;; Get the header. - (loadw eax-tn value 0 other-pointer-lowtag) + (loadw rax-tn value 0 other-pointer-lowtag) ;; Is it one? - (inst cmp eax-tn (+ (ash 1 n-widetag-bits) bignum-widetag)) + (inst cmp rax-tn (+ (ash 1 n-widetag-bits) bignum-widetag)) (inst jmp :e single-word) ;; If it's other than two, we can't be an (unsigned-byte 64) - (inst cmp eax-tn (+ (ash 2 n-widetag-bits) bignum-widetag)) + (inst cmp rax-tn (+ (ash 2 n-widetag-bits) bignum-widetag)) (inst jmp :ne nope) ;; Get the second digit. - (loadw eax-tn value (1+ bignum-digits-offset) other-pointer-lowtag) + (loadw rax-tn value (1+ bignum-digits-offset) other-pointer-lowtag) ;; All zeros, its an (unsigned-byte 64). - (inst or eax-tn eax-tn) + (inst or rax-tn rax-tn) (inst jmp :z yep) (inst jmp nope) (emit-label single-word) ;; Get the single digit. - (loadw eax-tn value bignum-digits-offset other-pointer-lowtag) + (loadw rax-tn value bignum-digits-offset other-pointer-lowtag) ;; positive implies (unsigned-byte 64). (emit-label fixnum) - (inst or eax-tn eax-tn) + (inst or rax-tn rax-tn) (inst jmp (if not-p :s :ns) target) (emit-label not-target))))) @@ -308,35 +308,35 @@ ;; Is it a fixnum? (generate-fixnum-test value) - (move eax-tn value) + (move rax-tn value) (inst jmp :e fixnum) ;; If not, is it an other pointer? - (inst and eax-tn lowtag-mask) - (inst cmp eax-tn other-pointer-lowtag) + (inst and rax-tn lowtag-mask) + (inst cmp rax-tn other-pointer-lowtag) (inst jmp :ne nope) ;; Get the header. - (loadw eax-tn value 0 other-pointer-lowtag) + (loadw rax-tn value 0 other-pointer-lowtag) ;; Is it one? - (inst cmp eax-tn (+ (ash 1 n-widetag-bits) bignum-widetag)) + (inst cmp rax-tn (+ (ash 1 n-widetag-bits) bignum-widetag)) (inst jmp :e single-word) ;; If it's other than two, we can't be an (unsigned-byte 64) - (inst cmp eax-tn (+ (ash 2 n-widetag-bits) bignum-widetag)) + (inst cmp rax-tn (+ (ash 2 n-widetag-bits) bignum-widetag)) (inst jmp :ne nope) ;; Get the second digit. - (loadw eax-tn value (1+ bignum-digits-offset) other-pointer-lowtag) + (loadw rax-tn value (1+ bignum-digits-offset) other-pointer-lowtag) ;; All zeros, its an (unsigned-byte 64). - (inst or eax-tn eax-tn) + (inst or rax-tn rax-tn) (inst jmp :z yep) (inst jmp nope) (emit-label single-word) ;; Get the single digit. - (loadw eax-tn value bignum-digits-offset other-pointer-lowtag) + (loadw rax-tn value bignum-digits-offset other-pointer-lowtag) ;; positive implies (unsigned-byte 64). (emit-label fixnum) - (inst or eax-tn eax-tn) + (inst or rax-tn rax-tn) (inst jmp :s nope) (emit-label yep) @@ -350,7 +350,7 @@ (define-vop (symbolp type-predicate) (:translate symbolp) (:generator 12 - (let ((is-symbol-label (if not-p drop-thru target))) + (let ((is-symbol-label (if not-p DROP-THRU target))) (inst cmp value nil-value) (inst jmp :e is-symbol-label) (test-type value target not-p (symbol-header-widetag))) @@ -360,7 +360,7 @@ (:generator 12 (let ((error (generate-error-code vop object-not-symbol-error value))) (inst cmp value nil-value) - (inst jmp :e drop-thru) + (inst jmp :e DROP-THRU) (test-type value error t (symbol-header-widetag))) DROP-THRU (move result value))) @@ -368,7 +368,7 @@ (define-vop (consp type-predicate) (:translate consp) (:generator 8 - (let ((is-not-cons-label (if not-p target drop-thru))) + (let ((is-not-cons-label (if not-p target DROP-THRU))) (inst cmp value nil-value) (inst jmp :e is-not-cons-label) (test-type value target not-p (list-pointer-lowtag)))