Index: kernel/arch/sparc64/include/trap/trap_table.h
===================================================================
--- kernel/arch/sparc64/include/trap/trap_table.h	(revision 33b1903874cd850ebac379b21a620e3f022b3fe1)
+++ kernel/arch/sparc64/include/trap/trap_table.h	(revision 7ba7c6d0898977b10d41e9c2ac96eda606bd8e2f)
@@ -85,5 +85,5 @@
 #define SAVED_TPC	-(2*8)
 #define SAVED_TNPC	-(3*8)		/* <-- istate_t begins here */
-/* alignment gap */
+#define SAVED_Y		-(4*8)
 #define SAVED_I0	-(5*8)
 #define SAVED_I1	-(6*8)
Index: kernel/arch/sparc64/src/dummy.s
===================================================================
--- kernel/arch/sparc64/src/dummy.s	(revision 33b1903874cd850ebac379b21a620e3f022b3fe1)
+++ kernel/arch/sparc64/src/dummy.s	(revision 7ba7c6d0898977b10d41e9c2ac96eda606bd8e2f)
@@ -34,6 +34,6 @@
 .global dummy
 
-cpu_sleep:
-sys_tls_set:
+cpu_sleep:		! not supported by architecture
+sys_tls_set:		! not needed on architecture
 
 dummy:
Index: kernel/arch/sparc64/src/trap/trap_table.S
===================================================================
--- kernel/arch/sparc64/src/trap/trap_table.S	(revision 33b1903874cd850ebac379b21a620e3f022b3fe1)
+++ kernel/arch/sparc64/src/trap/trap_table.S	(revision 7ba7c6d0898977b10d41e9c2ac96eda606bd8e2f)
@@ -747,4 +747,14 @@
 	stx %g2, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TPC]
 	stx %g3, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TNPC]
+
+	/*
+	 * Save the Y register.
+	 * This register is deprecated according to SPARC V9 specification
+	 * and is only present for backward compatibility with previous
+	 * versions of the SPARC architecture.
+	 * Surprisingly, gcc makes use of this register without a notice.
+	 */
+	rd %y, %g4
+	stx %g4, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_Y]
 	
 	wrpr %g0, 0, %tl
@@ -776,4 +786,10 @@
 	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TPC], %g2
 	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TNPC], %g3
+
+	/*
+	 * Restore Y.
+	 */
+	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_Y], %g4
+	wr %g4, %y
 
 	/*
