X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fsystem.lisp;h=4dfe83b70ab008ca0c8b980db6aaff70cb34af6d;hb=4eb1a6d3ad2b7dcc19ac0ec979a1eb1eb049659a;hp=3b17ce644bf862f0d3fec3a88f31f9fa6ec69abe;hpb=6fb6e66f531dfb6140ec3e0cc8f84f6ecd1927ca;p=sbcl.git diff --git a/src/compiler/x86/system.lisp b/src/compiler/x86/system.lisp index 3b17ce6..4dfe83b 100644 --- a/src/compiler/x86/system.lisp +++ b/src/compiler/x86/system.lisp @@ -13,8 +13,8 @@ ;;;; type frobbing VOPs -(define-vop (get-lowtag) - (:translate get-lowtag) +(define-vop (lowtag-of) + (:translate lowtag-of) (:policy :fast-safe) (:args (object :scs (any-reg descriptor-reg control-stack) :target result)) @@ -24,8 +24,8 @@ (move result object) (inst and result lowtag-mask))) -(define-vop (get-type) - (:translate get-type) +(define-vop (widetag-of) + (:translate widetag-of) (:policy :fast-safe) (:args (object :scs (descriptor-reg))) (:temporary (:sc unsigned-reg :offset eax-offset :to (:result 0)) eax) @@ -52,11 +52,11 @@ (inst jmp done) FUNCTION-PTR - (load-type al-tn object (- sb!vm:fun-pointer-lowtag)) + (load-type al-tn object (- fun-pointer-lowtag)) (inst jmp done) OTHER-PTR - (load-type al-tn object (- sb!vm:other-pointer-lowtag)) + (load-type al-tn object (- other-pointer-lowtag)) DONE (inst movzx result al-tn))) @@ -69,7 +69,7 @@ (:results (result :scs (unsigned-reg))) (:result-types positive-fixnum) (:generator 6 - (load-type temp function (- sb!vm:fun-pointer-lowtag)) + (load-type temp function (- fun-pointer-lowtag)) (inst movzx result temp))) (define-vop (set-function-subtype) @@ -98,7 +98,7 @@ (:result-types positive-fixnum) (:generator 6 (loadw res x 0 other-pointer-lowtag) - (inst shr res type-bits))) + (inst shr res n-widetag-bits))) (define-vop (get-closure-length) (:translate get-closure-length) @@ -108,7 +108,7 @@ (:result-types positive-fixnum) (:generator 6 (loadw res x 0 fun-pointer-lowtag) - (inst shr res type-bits))) + (inst shr res n-widetag-bits))) (define-vop (set-header-data) (:translate set-header-data) @@ -121,7 +121,7 @@ :from (:argument 1) :to (:result 0)) eax) (:generator 6 (move eax data) - (inst shl eax (- type-bits 2)) + (inst shl eax (- n-widetag-bits 2)) (inst mov al-tn (make-ea :byte :base x :disp (- other-pointer-lowtag))) (storew eax x 0 other-pointer-lowtag) (move res x))) @@ -142,7 +142,7 @@ (:results (res :scs (any-reg descriptor-reg) :from (:argument 0))) (:generator 2 (move res val) - (inst shl res (- type-bits 2)) + (inst shl res (- n-widetag-bits 2)) (inst or res (sc-case type (unsigned-reg type) (immediate (tn-value type)))))) @@ -197,7 +197,7 @@ (:result-types system-area-pointer) (:generator 10 (loadw sap code 0 other-pointer-lowtag) - (inst shr sap type-bits) + (inst shr sap n-widetag-bits) (inst lea sap (make-ea :byte :base code :index sap :scale 4 :disp (- other-pointer-lowtag))))) @@ -208,7 +208,7 @@ (:results (func :scs (descriptor-reg) :from (:argument 0))) (:generator 10 (loadw func code 0 other-pointer-lowtag) - (inst shr func type-bits) + (inst shr func n-widetag-bits) (inst lea func (make-ea :byte :base offset :index func :scale 4 :disp (- fun-pointer-lowtag other-pointer-lowtag))) @@ -224,7 +224,7 @@ (inst lea result (make-ea :byte :base result :disp (- fun-pointer-lowtag - (* simple-fun-code-offset word-bytes)))))) + (* simple-fun-code-offset n-word-bytes)))))) ;;; The closure function slot is a pointer to raw code on X86 instead ;;; of a pointer to the code function object itself. This VOP is used @@ -295,5 +295,5 @@ (:info index) (:generator 0 (inst inc (make-ea :dword :base count-vector - :disp (- (* (+ vector-data-offset index) word-bytes) + :disp (- (* (+ vector-data-offset index) n-word-bytes) other-pointer-lowtag)))))