Index: kernel/arch/amd64/src/context.S
===================================================================
--- kernel/arch/amd64/src/context.S	(revision f93ba6d5f7e19b94e89a6ccab96897a149761b41)
+++ kernel/arch/amd64/src/context.S	(revision 3a07767b559b42edd9322e3695bf488d98a8849e)
@@ -32,5 +32,5 @@
 .global context_restore_arch
 
-#include <arch/context_offset.h>
+#include <arch/context_struct.h>
 
 ## Save current CPU context
@@ -43,5 +43,13 @@
 	
 	# 1st argument passed in %edi
-	CONTEXT_SAVE_ARCH_CORE %rdi %rdx
+	movq %rdx, CONTEXT_OFFSET_PC(%rdi)
+	movq %rsp, CONTEXT_OFFSET_SP(%rdi)
+	
+	movq %rbx, CONTEXT_OFFSET_RBX(%rdi)
+	movq %rbp, CONTEXT_OFFSET_RBP(%rdi)
+	movq %r12, CONTEXT_OFFSET_R12(%rdi)
+	movq %r13, CONTEXT_OFFSET_R13(%rdi)
+	movq %r14, CONTEXT_OFFSET_R14(%rdi)
+	movq %r15, CONTEXT_OFFSET_R15(%rdi)
 	
 	xorl %eax, %eax       # context_save returns 1
@@ -56,5 +64,14 @@
 #
 context_restore_arch:
-	CONTEXT_RESTORE_ARCH_CORE %rdi %rdx
+	movq CONTEXT_OFFSET_R15(%rdi), %r15
+	movq CONTEXT_OFFSET_R14(%rdi), %r14
+	movq CONTEXT_OFFSET_R13(%rdi), %r13
+	movq CONTEXT_OFFSET_R12(%rdi), %r12
+	movq CONTEXT_OFFSET_RBP(%rdi), %rbp
+	movq CONTEXT_OFFSET_RBX(%rdi), %rbx
+	
+	movq CONTEXT_OFFSET_SP(%rdi), %rsp   # ctx->sp -> %rsp
+	
+	movq CONTEXT_OFFSET_PC(%rdi), %rdx 
 	
 	movq %rdx, (%rsp)
@@ -62,2 +79,3 @@
 	xorl %eax, %eax       # context_restore returns 0
 	ret
+
