Index: /branches/arm/lisp-kernel/arm-spentry.s
===================================================================
--- /branches/arm/lisp-kernel/arm-spentry.s	(revision 13746)
+++ /branches/arm/lisp-kernel/arm-spentry.s	(revision 13747)
@@ -343,9 +343,4 @@
         __(jump_builtin(_builtin_aset1,3))
                 	
-_spentry(jmpsym)
-	__(jump_fname())
-
-_spentry(jmpnfn)
-	__(jump_nfn())
 
 	/*  Call nfn if it's either a symbol or function */
@@ -361,9 +356,4 @@
 	__(bx lr)
 
-_spentry(mkunwind)
-	__(mov arg_z,#unbound_marker)
-	__(mov imm2,#fixnum_one)
-	__(mkcatch())
-	__(bx lr)
 
 _spentry(mkcatchmv)
@@ -371,4 +361,22 @@
 	__(mkcatch())
 	__(bx lr)
+
+_spentry(mkunwind)
+        __(mov imm2,#-fixnumone)
+        __(mov imm1,#INTERRUPT_LEVEL_BINDING_INDEX)
+        __(ldr temp0,[rcontext,#tcr.tlb_pointer])
+        __(ldr arg_y,[temp0,#INTERRUPT_LEVEL_BINDING_INDEX])
+        __(ldr imm0,[rcontext,#tcr.db_link])
+        __(vpush1(arg_y))
+        __(vpush1(imm1))
+        __(vpush1(imm0))
+        __(str imm2,[temp0,#INTERRUPT_LEVEL_BINDING_INDEX])
+        __(str vsp,[rcontext,#tcr.db_link])
+        __(mov arg_z,#unbound_marker)
+        __(mov imm2,#fixnum_one)
+        __(mkcatch())
+        __(mov arg_z,arg_y)
+        __(b _SPbind_interrupt_level)
+        
 
 /* This never affects the symbol's vcell  */
@@ -885,5 +893,5 @@
 dnl /* as well. */
         .globl C(egc_set_hash_key)        
-dnl _spentry(set_hash_key)
+_spentry(set_hash_key)
 C(egc_set_hash_key):
 dnl         __(cmplr(cr2,arg_z,arg_x))
@@ -951,5 +959,5 @@
             .globl C(egc_store_node_conditional)
             .globl C(egc_write_barrier_end)
-dnl _spentry(store_node_conditional)
+_spentry(store_node_conditional)
 C(egc_store_node_conditional):
 dnl         __(cmplr(cr2,arg_z,arg_x))
@@ -988,5 +996,5 @@
 dnl    Interrupt-related issues are as in store_node_conditional, but
 dnl    we have to do more work to actually do the memoization.*/
-dnl _spentry(set_hash_key_conditional)
+_spentry(set_hash_key_conditional)
         .globl C(egc_set_hash_key_conditional)
 C(egc_set_hash_key_conditional):
@@ -1111,5 +1119,5 @@
 
 
-dnl _spentry(progvsave)
+_spentry(progvsave)
 dnl  /* Error if arg_z isn't a proper list.  That's unlikely, */
 dnl  /* but it's better to check now than to crash later. */
@@ -1372,10 +1380,10 @@
 
 
-dnl _spentry(simple_keywords)
+_spentry(simple_keywords)
 dnl  __(mov imm0,#0)
 dnl         __(vpush_argregs())
 dnl         __(b _SPkeyword_bind)
 dnl                 
-dnl _spentry(keyword_args)
+_spentry(keyword_args)
 dnl  __(vpush_argregs())
 dnl         __(b _SPkeyword_bind)
@@ -1403,5 +1411,5 @@
 dnl define(`limit',`save2')
 dnl 
-dnl _spentry(keyword_bind)
+_spentry(keyword_bind)
 dnl         /* Before we can really do anything, we have to  */
 dnl         /* save the caller's context.  To do so, we need to know  */
@@ -1838,8 +1846,4 @@
         __(jump_fname)
 
-/* No args were vpushed; recover saved context & call symbol  */
-_spentry(tcallsymvsp)
-        __(restore_lisp_frame(imm0))
-        __(jump_fname)
 
 /* Tail-recursively call the function in nfn.  */
@@ -1847,7 +1851,8 @@
 _spentry(tcallnfngen)
         __(cmp nargs,#nargregs<<fixnumshift)
-        __(ble _SPtcallnfnvsp)
-        __(b _SPtcallnfnslide)
- 
+        __(bgt _SPtcallnfnslide)
+        __(restore_lisp_frame(imm0))
+        __(jump_nfn())
+         
 /* Some args were vpushed.  Slide them down to the base of  */
 /* the current frame, then do funcall.  */
@@ -1868,7 +1873,4 @@
         __(jump_nfn())
 
-_spentry(tcallnfnvsp)
-        __(restore_lisp_frame(imm0))
-        __(jump_nfn())
 
 /* Reference index arg_z of a misc-tagged object (arg_y).  */
@@ -2102,5 +2104,5 @@
 dnl /* Discard the tsp frame; leave values atop the vsp.  */
 dnl 
-dnl _spentry(recover_values)
+_spentry(recover_values)
 dnl 
 dnl /* First, walk the segments reversing the pointer to previous segment pointers  */
@@ -2140,10 +2142,4 @@
 
 
-/* Go out of line to do this.  Sheesh.  */
-_spentry(vpopargregs)
-        __(cmp nargs,#0)
-        __(bxeq lr)
-        __(vpop_argregs_nz)
-        __(bx lr)
 
 /* If arg_z is an integer, return in imm0 something whose sign  */
@@ -2291,5 +2287,5 @@
 dnl /* .SPrecover_values is therefore pretty simple.  */
 dnl 
-dnl _spentry(save_values)
+_spentry(save_values)
 dnl  __(mov imm1,tsp)
 dnl 
@@ -2326,5 +2322,5 @@
 dnl /* values. This makes recover_values harder.  */
 dnl 
-dnl _spentry(add_values)
+_spentry(add_values)
 dnl  __(cmpri(nargs,0))
 dnl  __(ldr imm1,[tsp,#0])
@@ -2386,15 +2382,4 @@
         __(return_lisp_frame(imm0))
 
-dnl 
-dnl _spentry(restorefullcontext)
-dnl  __(mflr loc_pc)
-dnl  __(mtctr loc_pc)
-dnl  __(ldr loc_pc,[sp,#lisp_frame.savelr])
-dnl  __(mtlr loc_pc)
-dnl  __(ldr vsp,[sp,#lisp_frame.savevsp])
-dnl  __(ldr fn,[sp,#lisp_frame.savefn])
-dnl  __(discard_lisp_frame())
-dnl  __(bctr)
-dnl
 
 dnl 
@@ -2406,5 +2391,5 @@
 dnl /* If we can detect that the caller's caller didn't expect  */
 dnl /* multiple values, then things are even simpler.  */
-dnl _spentry(lexpr_entry)
+_spentry(lexpr_entry)
 dnl  __(ref_global(imm1,ret1val_addr))
 dnl  __(cmpr(imm1,loc_pc))
@@ -2428,12 +2413,4 @@
 dnl  __(bx lr)
 
-
-
-
-/* Enter the debugger  */
-_spentry(breakpoint)
-        __(mov r3,#0)
-        __(uuo_debug_trap(al))
-        __(bx lr)  /* if handler didn't  */
 
 
@@ -2561,5 +2538,5 @@
 /*  */
 
- _spentry(getu32)
+_spentry(getu32)
         __(test_fixnum(arg_z))
         __(moveq imm0,arg_z,asr #fixnumshift)
@@ -2709,5 +2686,5 @@
 /* any interrupt polling  */
          
- _spentry(unbind_interrupt_level)
+_spentry(unbind_interrupt_level)
         __(ldr imm0,[rcontext,#tcr.flags])
         __(ldr temp2,[rcontext,#tcr.tlb_pointer])
@@ -2879,20 +2856,4 @@
 
 
-_spentry(nmkunwind)
-        __(mov imm2,#-fixnumone)
-        __(mov imm1,#INTERRUPT_LEVEL_BINDING_INDEX)
-        __(ldr temp0,[rcontext,#tcr.tlb_pointer])
-        __(ldr arg_y,[temp0,#INTERRUPT_LEVEL_BINDING_INDEX])
-        __(ldr imm0,[rcontext,#tcr.db_link])
-        __(vpush1(arg_y))
-        __(vpush1(imm1))
-        __(vpush1(imm0))
-        __(str imm2,[temp0,#INTERRUPT_LEVEL_BINDING_INDEX])
-        __(str vsp,[rcontext,#tcr.db_link])
-        __(mov arg_z,#unbound_marker)
-        __(mov imm2,#fixnum_one)
-        __(mkcatch())
-        __(mov arg_z,arg_y)
-        __(b _SPbind_interrupt_level)
 
 /*  EOF, basically  */
