Index: /branches/working-0711/ccl/level-0/X86/x86-misc.lisp
===================================================================
--- /branches/working-0711/ccl/level-0/X86/x86-misc.lisp	(revision 8026)
+++ /branches/working-0711/ccl/level-0/X86/x86-misc.lisp	(revision 8027)
@@ -513,110 +513,4 @@
   (single-value-return))
 
-#+are-you-kidding
-(defx86lapfunction %%apply-in-frame ((catch-count imm0) (srv temp0) (tsp-count imm0) (db-link imm0)
-                                     (parent arg_x) (function arg_y) (arglist arg_z))
-  (check-nargs 7)
-
-  ; Throw through catch-count catch frames
-  (lwz imm0 12 vsp)                      ; catch-count
-  (vpush parent)
-  (vpush function)
-  (vpush arglist)
-  (bla .SPnthrowvalues)
-
-  ; Pop tsp-count TSP frames
-  (lwz tsp-count 16 vsp)
-  (cmpi cr0 tsp-count 0)
-  (b @test)
-@loop
-  (subi tsp-count tsp-count '1)
-  (cmpi cr0 tsp-count 0)
-  (lwz tsp 0 tsp)
-@test
-  (bne cr0 @loop)
-
-  ; Pop dynamic bindings until we get to db-link
-  (lwz imm0 12 vsp)                     ; db-link
-  (lwz imm1 x8664::tcr.db-link :rcontext)
-  (cmp cr0 imm0 imm1)
-  (beq cr0 @restore-regs)               ; .SPunbind-to expects there to be something to do
-  (bla .SPunbind-to)
-
-@restore-regs
-  ; restore the saved registers from srv
-  (lwz srv 20 vsp)
-@get0
-  (svref imm0 1 srv)
-  (cmpwi cr0 imm0 x8664::nil-value)
-  (beq @get1)
-  (lwz save0 0 imm0)
-@get1
-  (svref imm0 2 srv)
-  (cmpwi cr0 imm0 x8664::nil-value)
-  (beq @get2)
-  (lwz save1 0 imm0)
-@get2
-  (svref imm0 3 srv)
-  (cmpwi cr0 imm0 x8664::nil-value)
-  (beq @get3)
-  (lwz save2 0 imm0)
-@get3
-  (svref imm0 4 srv)
-  (cmpwi cr0 imm0 x8664::nil-value)
-  (beq @get4)
-  (lwz save3 0 imm0)
-@get4
-  (svref imm0 5 srv)
-  (cmpwi cr0 imm0 x8664::nil-value)
-  (beq @get5)
-  (lwz save4 0 imm0)
-@get5
-  (svref imm0 6 srv)
-  (cmpwi cr0 imm0 x8664::nil-value)
-  (beq @get6)
-  (lwz save5 0 imm0)
-@get6
-  (svref imm0 7 srv)
-  (cmpwi cr0 imm0 x8664::nil-value)
-  (beq @get7)
-  (lwz save6 0 imm0)
-@get7
-  (svref imm0 8 srv)
-  (cmpwi cr0 imm0 x8664::nil-value)
-  (beq @got)
-  (lwz save7 0 imm0)
-@got
-
-  (vpop arg_z)                          ; arglist
-  (vpop temp0)                          ; function
-  (vpop parent)                         ; parent
-  (extract-lisptag imm0 parent)
-  (cmpi cr0 imm0 x8664::tag-fixnum)
-  (if (:cr0 :ne)
-    ; Parent is a fake-stack-frame. Make it real
-    (progn
-      (svref sp %fake-stack-frame.sp parent)
-      (stwu sp (- x8664::lisp-frame.size) sp)
-      (svref fn %fake-stack-frame.fn parent)
-      (stw fn x8664::lisp-frame.savefn sp)
-      (svref temp1 %fake-stack-frame.vsp parent)
-      (stw temp1 x8664::lisp-frame.savevsp sp)
-      (svref temp1 %fake-stack-frame.lr parent)
-      (extract-lisptag imm0 temp1)
-      (cmpi cr0 imm0 x8664::tag-fixnum)
-      (if (:cr0 :ne)
-        ;; must be a macptr encoding the actual link register
-        (macptr-ptr loc-pc temp1)
-        ;; Fixnum is offset from start of function vector
-        (progn
-          (svref temp2 0 fn)        ; function vector
-          (unbox-fixnum temp1 temp1)
-          (add loc-pc temp2 temp1)))
-      (stw loc-pc x8664::lisp-frame.savelr sp))
-    ;; Parent is a real stack frame
-    (mr sp parent))
-  (set-nargs 0)
-  (bla .SPspreadargz)
-  (ba .SPtfuncallgen))
 
 
@@ -769,4 +663,5 @@
   (:fixed-constants (target-frame target-catch target-db-link target-xcf target-tsp target-foreign-sp save0-offset save1-offset save2-offset save3-offset function args))
   (check-nargs 0)
+  ;;(uuo-error-debug-trap)
   (movq (@ 'target-catch (% fn)) (% temp0))
   (xorl (%l imm0) (%l imm0))
@@ -875,4 +770,5 @@
   @back-from-spread
   (recover-fn-from-rip)                 ; .SPspreadargz preserves %fn, but ...
+  (push (% temp0))                      ; return address
   (jmp (@ 'function (% fn))))
   
