Index: kernel/arch/amd64/include/interrupt.h
===================================================================
--- kernel/arch/amd64/include/interrupt.h	(revision 80c941658b6963ac942c8ada940935259b73c370)
+++ kernel/arch/amd64/include/interrupt.h	(revision 91ef7cfd03b95d74c09164250fa9eecf96889b91)
@@ -74,18 +74,27 @@
 typedef struct istate {
 	uint64_t rax;
+	uint64_t rbx;
 	uint64_t rcx;
 	uint64_t rdx;
 	uint64_t rsi;
 	uint64_t rdi;
+	uint64_t rbp;
 	uint64_t r8;
 	uint64_t r9;
 	uint64_t r10;
 	uint64_t r11;
-	uint64_t rbp;
-	uint64_t error_word;
+	uint64_t r12;
+	uint64_t r13;
+	uint64_t r14;
+	uint64_t r15;
+	uint64_t alignment;	/* align rbp_frame on multiple of 16 */
+	uint64_t rbp_frame;	/* imitation of frame pointer linkage */
+	uint64_t rip_frame;	/* imitation of return address linkage */
+	uint64_t error_word;	/* real or fake error word */
 	uint64_t rip;
 	uint64_t cs;
 	uint64_t rflags;
-	uint64_t stack[];  /* Additional data on stack */
+	uint64_t rsp;		/* only if istate_t is from uspace */
+	uint64_t ss;		/* only if istate_t is from uspace */
 } istate_t;
 
