0.7.3.10: Fix the SIGILL with ev6 and later Alphas: icache needs flushing
[sbcl.git] / src / compiler / x86 / system.lisp
index e076a09..2bbfa62 100644 (file)
@@ -13,8 +13,8 @@
 \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))
@@ -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)
     (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)))
 \f
-(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)))
     (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)
     (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)
 \f
 ;;;; 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)))
 
   (: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)))))