\f
;;;; 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))
(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)
(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)))
(: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)
(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
(: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)))))