Index: kernel/arch/mips32/src/context.S
===================================================================
--- kernel/arch/mips32/src/context.S	(revision f93ba6d5f7e19b94e89a6ccab96897a149761b41)
+++ kernel/arch/mips32/src/context.S	(revision 309a894300ff4341efadc0328ec245dbabf3f105)
@@ -27,5 +27,5 @@
 #
 
-#include <arch/context_offset.h>
+#include <arch/context_struct.h>
 
 .text
@@ -39,5 +39,17 @@
 
 context_save_arch:
-	CONTEXT_SAVE_ARCH_CORE $a0
+	sw $s0, CONTEXT_OFFSET_S0($a0)
+	sw $s1, CONTEXT_OFFSET_S1($a0)
+	sw $s2, CONTEXT_OFFSET_S2($a0)
+	sw $s3, CONTEXT_OFFSET_S3($a0)
+	sw $s4, CONTEXT_OFFSET_S4($a0)
+	sw $s5, CONTEXT_OFFSET_S5($a0)
+	sw $s6, CONTEXT_OFFSET_S6($a0)
+	sw $s7, CONTEXT_OFFSET_S7($a0)
+	sw $s8, CONTEXT_OFFSET_S8($a0)
+	sw $gp, CONTEXT_OFFSET_GP($a0)
+	
+	sw $ra, CONTEXT_OFFSET_PC($a0)
+	sw $sp, CONTEXT_OFFSET_SP($a0)
 	
 	# context_save returns 1
@@ -46,5 +58,17 @@
 
 context_restore_arch:
-	CONTEXT_RESTORE_ARCH_CORE $a0
+	lw $s0, CONTEXT_OFFSET_S0($a0)
+	lw $s1, CONTEXT_OFFSET_S1($a0)
+	lw $s2, CONTEXT_OFFSET_S2($a0)
+	lw $s3, CONTEXT_OFFSET_S3($a0)
+	lw $s4, CONTEXT_OFFSET_S4($a0)
+	lw $s5, CONTEXT_OFFSET_S5($a0)
+	lw $s6, CONTEXT_OFFSET_S6($a0)
+	lw $s7, CONTEXT_OFFSET_S7($a0)
+	lw $s8, CONTEXT_OFFSET_S8($a0)
+	lw $gp, CONTEXT_OFFSET_GP($a0)
+	
+	lw $ra, CONTEXT_OFFSET_PC($a0)
+	lw $sp, CONTEXT_OFFSET_SP($a0)
 	
 	# context_restore returns 0
Index: kernel/arch/mips32/src/start.S
===================================================================
--- kernel/arch/mips32/src/start.S	(revision f93ba6d5f7e19b94e89a6ccab96897a149761b41)
+++ kernel/arch/mips32/src/start.S	(revision 309a894300ff4341efadc0328ec245dbabf3f105)
@@ -30,5 +30,4 @@
 #include <arch/mm/page.h>
 #include <arch/asm/boot.h>
-#include <arch/context_offset.h>
 #include <arch/stack.h>
 #include <arch/istate_struct.h>
