Index: /branches/x8664-call/ccl/compiler/X86/X8664/x8664-vinsns.lisp
===================================================================
--- /branches/x8664-call/ccl/compiler/X86/X8664/x8664-vinsns.lisp	(revision 6299)
+++ /branches/x8664-call/ccl/compiler/X86/X8664/x8664-vinsns.lisp	(revision 6300)
@@ -277,5 +277,6 @@
 
 (define-x8664-vinsn (call-known-symbol :call) (((result (:lisp x8664::arg_z)))
-					       ())
+                                               ()
+					       ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (movq (:@ x8664::symbol.fcell (:% x8664::fname)) (:%q x8664::fn))
@@ -284,6 +285,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp)
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 ;;; It's neccessary to use x8664:xfn to reference the current function
@@ -992,5 +992,6 @@
 
 (define-x8664-vinsn (call-subprim :call)  (()
-                                  ((spno :s32const)))
+                                           ((spno :s32const))
+                                           ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (jmp (:@ spno))
@@ -998,7 +999,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp
-)
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn fixnum-subtract-from (((dest t)
@@ -1143,5 +1142,6 @@
      ((val :lisp))
      ((unboxed (:s64 #.x8664::imm1))
-      (header (:u64 #.x8664::imm0))))
+      (header (:u64 #.x8664::imm0))
+      (entry (:label 1))))
   (jno.pt :done)
   ((:not (:pred = x8664::arg_z
@@ -1153,6 +1153,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn))
   ((:not (:pred = x8664::arg_z
                 (:apply %hard-regspec-value val)))
@@ -1165,5 +1164,6 @@
       (lab :label))
      ((unboxed (:s64 #.x8664::imm1))
-      (header (:u64 #.x8664::imm0))))
+      (header (:u64 #.x8664::imm0))
+      (entry (:label 1))))
   (jno.pt lab)
   ((:not (:pred = x8664::arg_z
@@ -1175,6 +1175,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn))
   ((:not (:pred = x8664::arg_z
                 (:apply %hard-regspec-value val)))
@@ -1296,5 +1295,6 @@
 
 (define-x8664-vinsn (call-label :call) (()
-					((label :label)))
+					((label :label))
+                                        ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (jmp label)
@@ -1302,7 +1302,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp
-  )
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn double-float-compare (()
@@ -1592,5 +1590,6 @@
 
 (define-x8664-vinsn (call-known-function :call) (()
-						 ())
+						 ()
+                                                 ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (movq (:%q x8664::temp0) (:%q x8664::fn))
@@ -1599,7 +1598,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp
-)
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn (jump-known-function :jumplr) (()
@@ -1610,5 +1607,6 @@
 
 (define-x8664-vinsn (list :call) (()
-                                  ())
+                                  ()
+                                  ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (jmp (:@ .SPconslist))
@@ -1616,6 +1614,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp  )
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 
@@ -1689,5 +1686,5 @@
 
 (defmacro define-x8664-subprim-call-vinsn ((name &rest other-attrs) spno)
-  `(define-x8664-vinsn (,name :call :subprim-call ,@other-attrs) (() ())
+  `(define-x8664-vinsn (,name :call :subprim-call ,@other-attrs) (() () ((entry (:label 1))))
     (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
     (jmp (:@ ,spno))
@@ -1695,6 +1692,5 @@
     (:long (:^ :back))
     :back
-    (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-    :disp))
+    (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn))))
 
 (defmacro define-x8664-subprim-jump-vinsn ((name &rest other-attrs) spno)
@@ -1779,5 +1775,6 @@
 
 (define-x8664-vinsn (mkcatchmv :call :subprim-call) (()
-                                                     ((lab :label)))
+                                                     ((lab :label))
+                                                     ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (leaq (:@ (:^ lab)  (:%q x8664::fn)) (:%q x8664::xfn))
@@ -1786,9 +1783,9 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp )
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn (mkcatch1v :call :subprim-call) (()
-                                                     ((lab :label)))
+                                                     ((lab :label))
+                                                     ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (leaq (:@ (:^ lab)  (:%q x8664::fn)) (:%q x8664::xfn))
@@ -1797,6 +1794,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp)
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn (mkunwind :call :subprim-call) (()
@@ -1816,5 +1812,6 @@
 (define-x8664-vinsn funcall (()
                              ()
-                             ((tag :u8)))
+                             ((tag :u8)
+                              (entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (movb (:%b x8664::temp0) (:%b tag))
@@ -1830,6 +1827,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp)
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn tail-funcall (()
@@ -1866,5 +1862,6 @@
 (define-x8664-vinsn (ref-symbol-value :call :subprim-call)
     (((val :lisp))
-     ((sym (:lisp (:ne val)))))
+     ((sym (:lisp (:ne val))))
+     ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (jmp (:@ .SPspecrefcheck))
@@ -1872,6 +1869,5 @@
   (:long (:^ :back))  
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp )
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)) )
 
 (define-x8664-vinsn ref-symbol-value-inline (((dest :lisp))
@@ -1897,5 +1893,6 @@
 (define-x8664-vinsn (%ref-symbol-value :call :subprim-call)
     (((val :lisp))
-     ((sym (:lisp (:ne val)))))
+     ((sym (:lisp (:ne val))))
+     ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (jmp (:@ .SPspecref))
@@ -1903,6 +1900,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp  )
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn %ref-symbol-value-inline (((dest :lisp))
@@ -2976,5 +2972,6 @@
 							   (x t)
 							   (y t)
-							   (z t)))
+							   (z t))
+                                                          ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (jmp (:@ spno))
@@ -2982,6 +2979,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp)
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn setup-vcell-allocation (()
@@ -3199,5 +3195,6 @@
     (()
      ((sym :lisp)
-      (val :lisp)))
+      (val :lisp))
+     ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (jmp (:@ .SPspecset))
@@ -3205,6 +3202,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp)
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn set-z-flag-if-istruct-typep (()
@@ -3280,5 +3276,6 @@
 							  ((spno :s32const)
 							   (y t)
-							   (z t)))
+							   (z t))
+                                                          ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (jmp (:@ spno))
@@ -3286,6 +3283,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp)
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 (define-x8664-vinsn set-macptr-address (()
@@ -3348,5 +3344,6 @@
 ;;; transfer & jump ...)
 (define-x8664-vinsn (throw :jump :jump-unknown) (()
-						 ())
+						 ()
+                                                 ((entry (:label 1))))
   (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
   (jmp (:@ .SPthrow))
@@ -3354,6 +3351,5 @@
   (:long (:^ :back))
   :back
-  (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-  :disp )
+  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
 
 
@@ -3566,5 +3562,6 @@
 (define-x8664-vinsn (dpayback :call :subprim-call) (()
                                                     ((n :s16const))
-                                                    ((temp (:u32 #.x8664::imm0))))
+                                                    ((temp (:u32 #.x8664::imm0))
+                                                     (entry (:label 1))))
   ((:pred > n 0)
    (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
@@ -3577,6 +3574,5 @@
    (:long (:^ :back))   
    :back
-   (leaq (:@ (:apply - (:^ :disp)) (:% x8664::rip)) (:%q x8664::fn))
-   :disp))  
+   (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn))))  
 
 (define-x8664-subprim-jump-vinsn (tail-call-sym-gen) .SPtcallsymgen)
