Index: /branches/arm/level-0/ARM/arm-clos.lisp
===================================================================
--- /branches/arm/level-0/ARM/arm-clos.lisp	(revision 13850)
+++ /branches/arm/level-0/ARM/arm-clos.lisp	(revision 13851)
@@ -164,5 +164,30 @@
 )
 
-
+(defparameter *gf-proto*
+  (nfunction
+   gag
+   (lambda (&lap &lexpr args)
+     (arm-lap-function 
+      gag 
+      ()
+      (vpush-argregs)
+      (vpush1 nargs)
+      (ref-global arg_x ret1valaddr)
+      (add imm1 vsp nargs)
+      (add imm1 imm1 (:$ arm::node-size))                  ; caller's vsp
+      (cmp lr arg_x)
+      (build-lisp-frame imm0 imm1)
+      (mov fn (:$ 0))
+      (moveq lr (:$ (- arm::nil-value arm::fulltag-nil)))
+      (ldreq lr (:@ lr (:$ (arm::%kernel-global 'arm::lexpr-return))))
+      (stmdbeq (:! vsp) (imm0 imm1 fn lr))
+      (moveq lr arg_x)
+      (movne lr (:$ (- arm::nil-value arm::fulltag-nil)))
+      (ldrne lr (:@ lr (:$ (arm::%kernel-global 'arm::lexpr-return1v))))
+      (mov arg_z vsp)
+      (svref arg_y gf.dispatch-table nfn) ; dispatch-table
+      (set-nargs 2)
+      (svref nfn gf.dcode nfn) ; dcode function
+      (ldr pc (:@ nfn (:$ arm::function.entrypoint)))))))
 
 
