Index: /branches/arm/lisp-kernel/arm-constants.s
===================================================================
--- /branches/arm/lisp-kernel/arm-constants.s	(revision 13784)
+++ /branches/arm/lisp-kernel/arm-constants.s	(revision 13785)
@@ -172,5 +172,5 @@
 /* set in the result. */
 
-t_offset = ((dnode_size-fulltag_nil)+fulltag_misc)
+t_offset = (dnode_size+(dnode_size-fulltag_nil)+fulltag_misc)
 t_value = nil_value+t_offset
 
@@ -395,5 +395,5 @@
 	
 	_struct(nrs,0)
-	 _struct_pad(dnode_size-fulltag_nil)
+	 _struct_pad(dnode_size+dnode_size-fulltag_nil)
 
 	 _struct_pad(fulltag_misc)
@@ -664,17 +664,12 @@
 /* registers, as used in destrucuring-bind/macro-bind */
 
-define(`whole_reg',`temp1')
-define(`arg_reg',`temp0')
+define(`arg_reg',`arg_z')
 define(`keyvect_reg',`temp2')
-define(`mask_req_start',`24')
-define(`mask_req_width',`8')
-define(`mask_opt_start',`16')
-define(`mask_opt_width',`8')
-define(`mask_key_start',`8')
-define(`mask_key_width',`8')
-define(`mask_initopt',`7')
-define(`mask_keyp',`6') /*  note that keyp can be true even when 0 keys. */
-define(`mask_aok',`5')
-define(`mask_restp',`4')
+define(`mask_keyp',`(1<<24)') /*  note that keyp can be true even when 0 keys. */
+define(`mask_aok',`(1<<25)')
+define(`mask_restp',`(1<<26)')
+define(`mask_aok_seen',`(1<<27)')
+define(`mask_unknown_keyword_seen',`(1<<28)')                
+define(`mask_initopt',`(1<<29)')
 
 define(`STACK_ALIGN',8)
Index: /branches/arm/lisp-kernel/lisp_globals.h
===================================================================
--- /branches/arm/lisp-kernel/lisp_globals.h	(revision 13784)
+++ /branches/arm/lisp-kernel/lisp_globals.h	(revision 13785)
@@ -112,5 +112,5 @@
 #ifdef ARM
 #define lisp_global(g) (((LispObj *) (0x10000000))[(g)])
-#define nrs_symbol(s) (((lispsymbol *) (0x10000008))[(s)]) 
+#define nrs_symbol(s) (((lispsymbol *) (0x10000010))[(s)]) 
 #endif
 
