Index: /branches/arm/lisp-kernel/arm-macros.s
===================================================================
--- /branches/arm/lisp-kernel/arm-macros.s	(revision 13799)
+++ /branches/arm/lisp-kernel/arm-macros.s	(revision 13800)
@@ -279,10 +279,10 @@
 /* "jump" to the code-vector of the function in nfn. */
 define(`jump_nfn',`
-        __(ldr pc,[nfn,#_function.codevector])
+        __(ldr pc,[nfn,#_function.entrypoint])
 ')
 
 /* "call the code-vector of the function in nfn. */
 define(`call_nfn',`
-        __(ldr lr,[nfn,#_function.codevector])
+        __(ldr lr,[nfn,#_function.entrypoint])
         __(blx lr)
 ')
@@ -314,6 +314,10 @@
 
 define(`mkcatch',`
+        new_macro_labels()
 	__(build_lisp_frame(imm0))
         __(movc16(imm0,make_header(catch_frame.element_count,subtag_u32_vector)))
+        __(movs temp2,fn)
+        __(ldrne temp2,[temp2,_function.codevector])
+        __(ldr temp1,[rcontext,#tcr.last_lisp_frame])
 	__(ldr imm1,[rcontext,#tcr.catch_top])
         /* imm2 is mvflag */
@@ -321,5 +325,5 @@
         __(ldr arg_x,[rcontext,#tcr.db_link])
         __(ldr temp0,[rcontext,#tcr.xframe])
-        __(stmdb sp!,{imm0,imm1,imm2,arg_z,arg_x,temp0})
+        __(stmdb sp!,{imm0,imm1,imm2,arg_z,arg_x,temp0,temp1,temp2})
         __(add imm0,sp,#fulltag_misc)
         __(str imm0,[rcontext,#tcr.catch_top])
