Index: /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp
===================================================================
--- /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp	(revision 14192)
+++ /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp	(revision 14193)
@@ -1173,19 +1173,8 @@
   (jmp (:@ spno)))
 
-;;; "call" a subprimitive that manipulates the stack in some way,
-;;; using an lea/jmp calling convention.
-(define-x8664-vinsn (lea-jmp-subprim :call)  (()
-                                              ((spno :s32const))
-                                              ((entry (:label 1))))
-  (leaq (:@ (:^ :back) (:%q x8664::fn)) (:%q x8664::ra0))
-  (:talign 4)
-  (jmp (:@ spno))
-  :back
-  (leaq (:@ (:^ entry) (:% x8664::rip)) (:%q x8664::fn)))
-
 ;;; Call a subprimitive using a tail-aligned CALL instruction.
-(define-x8664-vinsn (call-subprim :call)  (()
-                                           ((spno :s32const))
-                                           ((entry (:label 1))))
+(define-x8664-vinsn (call-subprim :call :subprim-call) (()
+							((spno :s32const))
+							((entry (:label 1))))
   (:talign 4)
   (call (:@ spno))
@@ -1361,5 +1350,5 @@
 
 
-(define-x8664-vinsn (fix-fixnum-overflow-ool :call)
+(define-x8664-vinsn (fix-fixnum-overflow-ool :call :subprim-call)
     (((val :lisp))
      ((val :lisp))
@@ -1385,5 +1374,5 @@
   (jmp :done))
 
-(define-x8664-vinsn (fix-fixnum-overflow-ool-and-branch :call)
+(define-x8664-vinsn (fix-fixnum-overflow-ool-and-branch :call :subprim-call)
     (((val :lisp))
      ((val :lisp)
@@ -1467,5 +1456,5 @@
                  (:apply %hard-regspec-value dest)))
     (leaq (:@ (:%q x) (:%q y)) (:%q dest)))))
-   
+
 (define-x8664-vinsn copy-gpr (((dest t))
 			      ((src t)))
@@ -1782,6 +1771,6 @@
 
 ;;; %ra0 is pointing into %fn, so no need to copy %fn here.
-(define-x8664-vinsn pass-multiple-values-symbol (()
-                                                 ())
+(define-x8664-vinsn (pass-multiple-values-symbol :jumplr) (()
+							 ())
   (pushq (:@ (:apply + (:apply target-nil-value) (x8664::%kernel-global 'x86::ret1valaddr)))) 
   (jmp (:@ x8664::symbol.fcell (:% x8664::fname))))
@@ -1789,7 +1778,7 @@
 ;;; It'd be good to have a variant that deals with a known function
 ;;; as well as this. 
-(define-x8664-vinsn pass-multiple-values (()
-                                          ()
-                                          ((tag :u8)))
+(define-x8664-vinsn (pass-multiple-values :jumplr) (()
+						  ()
+						  ((tag :u8)))
   :resume
   (movl (:%l x8664::temp0) (:%l tag))
@@ -1822,5 +1811,6 @@
 
 (define-x8664-vinsn (jump-known-function :jumplr) (()
-                                                   ())
+						   ()
+                                                   ((xfn (:lisp #.x8664::xfn))))
   (movq (:%q x8664::fn) (:%q x8664::xfn))
   (movq (:%q x8664::temp0)  (:%q x8664::fn))
@@ -2051,8 +2041,8 @@
 ;;; Call something callable and obtain the single value that it
 ;;; returns.
-(define-x8664-vinsn funcall (()
-                             ()
-                             ((tag :u8)
-                              (entry (:label 1))))
+(define-x8664-vinsn (funcall :call) (()
+				     ()
+				     ((tag :u8)
+				      (entry (:label 1))))
   :resume
   (movl (:%l x8664::temp0) (:%l tag))
@@ -2069,7 +2059,7 @@
   (:anchored-uuo (uuo-error-not-callable)))
 
-(define-x8664-vinsn tail-funcall (()
-                                  ()
-                                  ((tag (:u8 #.x8664::imm0))))
+(define-x8664-vinsn (tail-funcall :jumplr) (()
+					    ()
+					    ((tag (:u8 #.x8664::imm0))))
   :resume
   (movl (:%l x8664::temp0) (:%l tag))
