Index: kernel/arch/sparc64/include/trap/trap_table.h
===================================================================
--- kernel/arch/sparc64/include/trap/trap_table.h	(revision df4ed852a2d1b242f9bdce0a873009a2cb77cec7)
+++ kernel/arch/sparc64/include/trap/trap_table.h	(revision bc50fc42c6550ecdf5e89f83b811c2db9ff38684)
@@ -78,20 +78,24 @@
 
 /*
- * The following needs to be in sync with the
- * definition of the istate structure.
+ * The following needs to be in sync with the definition of the istate
+ * structure. The one STACK_ITEM_SIZE is counted for space holding the 7th
+ * argument to syscall_handler (i.e. syscall number) and the other
+ * STACK_ITEM_SIZE is counted because of the required alignment.
  */
-#define PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE	(STACK_WINDOW_SAVE_AREA_SIZE+(12*8))
-#define SAVED_TSTATE	-(1*8)
-#define SAVED_TPC	-(2*8)
-#define SAVED_TNPC	-(3*8)		/* <-- istate_t begins here */
-#define SAVED_Y		-(4*8)
-#define SAVED_I0	-(5*8)
-#define SAVED_I1	-(6*8)
-#define SAVED_I2	-(7*8)
-#define SAVED_I3	-(8*8)
-#define SAVED_I4	-(9*8)
-#define SAVED_I5	-(10*8)
-#define SAVED_I6	-(11*8)
-#define SAVED_I7	-(12*8)
+#define PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE	\
+    (STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE + \
+    (2 * STACK_ITEM_SIZE) + (12 * 8))
+#define SAVED_TSTATE	-(1 * 8)
+#define SAVED_TPC	-(2 * 8)
+#define SAVED_TNPC	-(3 * 8)	/* <-- istate_t begins here */
+#define SAVED_Y		-(4 * 8)
+#define SAVED_I0	-(5 * 8)
+#define SAVED_I1	-(6 * 8)
+#define SAVED_I2	-(7 * 8)
+#define SAVED_I3	-(8 * 8)
+#define SAVED_I4	-(9 * 8)
+#define SAVED_I5	-(10 * 8)
+#define SAVED_I6	-(11 * 8)
+#define SAVED_I7	-(12 * 8)
 
 .macro PREEMPTIBLE_HANDLER f
