X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fx86%2Fsystem.lisp;h=2bbfa625476c8d7c84370fd8342b4bb01b302a46;hb=bc46c8bcdd6ac8918df8ea9e9db49808e4924fcf;hp=e076a09f3ef33b1ab3fbef4c8b21b762ce7d057d;hpb=3c65762b927af861c9c8bc416e4cbac9a14ec0c3;p=sbcl.git diff --git a/src/compiler/x86/system.lisp b/src/compiler/x86/system.lisp index e076a09..2bbfa62 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,28 +52,28 @@ (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))) -(define-vop (function-subtype) - (:translate function-subtype) +(define-vop (fun-subtype) + (:translate fun-subtype) (:policy :fast-safe) (:args (function :scs (descriptor-reg))) (:temporary (:sc byte-reg :from (:eval 0) :to (:eval 1)) temp) (: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) - (:translate (setf function-subtype)) +(define-vop (set-fun-subtype) + (:translate (setf fun-subtype)) (:policy :fast-safe) (:args (type :scs (unsigned-reg) :target eax) (function :scs (descriptor-reg))) @@ -201,7 +201,7 @@ (inst lea sap (make-ea :byte :base code :index sap :scale 4 :disp (- other-pointer-lowtag))))) -(define-vop (compute-function) +(define-vop (compute-fun) (:args (code :scs (descriptor-reg) :to (:result 0)) (offset :scs (signed-reg unsigned-reg) :to (:result 0))) (:arg-types * positive-fixnum) @@ -224,15 +224,15 @@ (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 ;;; to reference the function object given the closure object. -(def-source-transform %closure-fun (closure) +(define-source-transform %closure-fun (closure) `(%simple-fun-self ,closure)) -(def-source-transform %funcallable-instance-fun (fin) +(define-source-transform %funcallable-instance-fun (fin) `(%simple-fun-self ,fin)) (define-vop (%set-fun-self) @@ -266,10 +266,10 @@ ;;;; other miscellaneous VOPs -(defknown sb!unix::do-pending-interrupt () (values)) -(define-vop (sb!unix::do-pending-interrupt) +(defknown sb!unix::receive-pending-interrupt () (values)) +(define-vop (sb!unix::receive-pending-interrupt) (:policy :fast-safe) - (:translate sb!unix::do-pending-interrupt) + (:translate sb!unix::receive-pending-interrupt) (:generator 1 (inst break pending-interrupt-trap))) @@ -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)))))