Index: kernel/arch/sparc64/include/arch/context_struct.h
===================================================================
--- kernel/arch/sparc64/include/arch/context_struct.h	(revision 3b10ae36878d75cf8f68c881e6a4c03090c97415)
+++ kernel/arch/sparc64/include/arch/context_struct.h	(revision 0c27956d1f5181f0ff35db6c84835e3ecd3d27be)
@@ -48,6 +48,7 @@
 #define CONTEXT_OFFSET_L6   0x80
 #define CONTEXT_OFFSET_L7   0x88
-#define CONTEXT_OFFSET_IPL  0x90
-#define CONTEXT_SIZE        0x98
+#define CONTEXT_OFFSET_TP   0x90
+#define CONTEXT_OFFSET_IPL  0x98
+#define CONTEXT_SIZE        0xa0
 
 #ifndef __ASSEMBLER__
@@ -74,4 +75,5 @@
 	uint64_t l6;
 	uint64_t l7;
+	uint64_t tp;  // %g7
 	ipl_t ipl;
 } context_t;
Index: kernel/arch/sparc64/src/context.S
===================================================================
--- kernel/arch/sparc64/src/context.S	(revision 3b10ae36878d75cf8f68c881e6a4c03090c97415)
+++ kernel/arch/sparc64/src/context.S	(revision 0c27956d1f5181f0ff35db6c84835e3ecd3d27be)
@@ -63,4 +63,5 @@
 	stx %l6, [%o0 + CONTEXT_OFFSET_L6]
 	stx %l7, [%o0 + CONTEXT_OFFSET_L7]
+	stx %g7, [%o0 + CONTEXT_OFFSET_TP]
 	retl
 	mov 1, %o0		! context_save_arch returns 1
@@ -103,4 +104,5 @@
 	ldx [%o0 + CONTEXT_OFFSET_L6], %l6
 	ldx [%o0 + CONTEXT_OFFSET_L7], %l7
+	ldx [%o0 + CONTEXT_OFFSET_TP], %g7
 	retl
 	xor %o0, %o0, %o0	! context_restore_arch returns 0
