Index: arch/ia64/include/faddr.h
===================================================================
--- arch/ia64/include/faddr.h	(revision 9cbd27bda027a69ffbcba03ec98a8179d37e83f0)
+++ arch/ia64/include/faddr.h	(revision 11cb08ca33a0f7bd8c6e3af60aac90dfb5e39ac2)
@@ -40,10 +40,5 @@
  *
  */
-static inline __address FADDR(void (* fptr)()) {
-	__address faddr;
-
-	faddr = *((__address *)(fptr));;
-	return faddr;
-}
+#define FADDR(f)	 (*((__address *)(f)));
 
 #endif
Index: arch/ia64/src/context.S
===================================================================
--- arch/ia64/src/context.S	(revision 9cbd27bda027a69ffbcba03ec98a8179d37e83f0)
+++ arch/ia64/src/context.S	(revision 11cb08ca33a0f7bd8c6e3af60aac90dfb5e39ac2)
@@ -105,30 +105,31 @@
 	 */
 	mov loc2 = pr		;;
-	st8 [in0] = loc2, 16;; /*Next fpu registers should be spilled to 16B aligned address*/
-
-
-	stf.spill [in0]=f2,16;;
-	stf.spill [in0]=f3,16;;
-	stf.spill [in0]=f4,16;;
-	stf.spill [in0]=f5,16;;
-
-	stf.spill [in0]=f16,16;;
-	stf.spill [in0]=f17,16;;
-	stf.spill [in0]=f18,16;;
-	stf.spill [in0]=f19,16;;
-	stf.spill [in0]=f20,16;;
-	stf.spill [in0]=f21,16;;
-	stf.spill [in0]=f22,16;;
-	stf.spill [in0]=f23,16;;
-	stf.spill [in0]=f24,16;;
-	stf.spill [in0]=f25,16;;
-	stf.spill [in0]=f26,16;;
-	stf.spill [in0]=f27,16;;
-	stf.spill [in0]=f28,16;;
-	stf.spill [in0]=f29,16;;
-	stf.spill [in0]=f30,16;;
-	stf.spill [in0]=f31,16;;
-
-	
+	st8 [in0] = loc2, 16;; 		/* Next fpu registers should be spilled to 16B aligned address */
+
+	/*
+	 * Save floating-point registers.
+	 */
+	stf.spill [in0] = f2, 16 ;;
+	stf.spill [in0] = f3, 16 ;;
+	stf.spill [in0] = f4, 16 ;;
+	stf.spill [in0] = f5, 16 ;;
+
+	stf.spill [in0] = f16, 16 ;;
+	stf.spill [in0] = f17, 16 ;;
+	stf.spill [in0] = f18, 16 ;;
+	stf.spill [in0] = f19, 16 ;;
+	stf.spill [in0] = f20, 16 ;;
+	stf.spill [in0] = f21, 16 ;;
+	stf.spill [in0] = f22, 16 ;;
+	stf.spill [in0] = f23, 16 ;;
+	stf.spill [in0] = f24, 16 ;;
+	stf.spill [in0] = f25, 16 ;;
+	stf.spill [in0] = f26, 16 ;;
+	stf.spill [in0] = f27, 16 ;;
+	stf.spill [in0] = f28, 16 ;;
+	stf.spill [in0] = f29, 16 ;;
+	stf.spill [in0] = f30, 16 ;;
+	stf.spill [in0] = f31, 16 ;;
+
 	mov ar.unat = loc1
 	
@@ -215,27 +216,28 @@
 	mov pr = loc2, ~0
 	
-	ldf.fill f2=[in0],16;;
-	ldf.fill f3=[in0],16;;
-	ldf.fill f4=[in0],16;;
-	ldf.fill f5=[in0],16;;
-
-	ldf.fill f16=[in0],16;;
-	ldf.fill f17=[in0],16;;
-	ldf.fill f18=[in0],16;;
-	ldf.fill f19=[in0],16;;
-	ldf.fill f20=[in0],16;;
-	ldf.fill f21=[in0],16;;
-	ldf.fill f22=[in0],16;;
-	ldf.fill f23=[in0],16;;
-	ldf.fill f24=[in0],16;;
-	ldf.fill f25=[in0],16;;
-	ldf.fill f26=[in0],16;;
-	ldf.fill f27=[in0],16;;
-	ldf.fill f28=[in0],16;;
-	ldf.fill f29=[in0],16;;
-	ldf.fill f30=[in0],16;;
-	ldf.fill f31=[in0],16;;
-
-
+	/*
+	 * Restore floating-point registers.
+	 */
+	ldf.fill f2 = [in0], 16 ;;
+	ldf.fill f3 = [in0], 16 ;;
+	ldf.fill f4 = [in0], 16 ;;
+	ldf.fill f5 = [in0], 16 ;;
+
+	ldf.fill f16 = [in0], 16 ;;
+	ldf.fill f17 = [in0], 16 ;;
+	ldf.fill f18 = [in0], 16 ;;
+	ldf.fill f19 = [in0], 16 ;;
+	ldf.fill f20 = [in0], 16 ;;
+	ldf.fill f21 = [in0], 16 ;;
+	ldf.fill f22 = [in0], 16 ;;
+	ldf.fill f23 = [in0], 16 ;;
+	ldf.fill f24 = [in0], 16 ;;
+	ldf.fill f25 = [in0], 16 ;;
+	ldf.fill f26 = [in0], 16 ;;
+	ldf.fill f27 = [in0], 16 ;;
+	ldf.fill f28 = [in0], 16 ;;
+	ldf.fill f29 = [in0], 16 ;;
+	ldf.fill f30 = [in0], 16 ;;
+	ldf.fill f31 = [in0], 16 ;;
 	
 	mov ar.unat = loc1
Index: arch/ppc32/src/dummy.s
===================================================================
--- arch/ppc32/src/dummy.s	(revision 9cbd27bda027a69ffbcba03ec98a8179d37e83f0)
+++ arch/ppc32/src/dummy.s	(revision 11cb08ca33a0f7bd8c6e3af60aac90dfb5e39ac2)
@@ -31,4 +31,5 @@
 .global asm_delay_loop
 .global userspace
+.global sys_tls_set
 .global tlb_invalidate_all
 .global tlb_invalidate_asid
@@ -47,4 +48,7 @@
 	b userspace
 
+sys_tls_set:
+	b sys_tls_set
+
 asm_delay_loop:
 	blr
Index: arch/sparc64/src/dummy.s
===================================================================
--- arch/sparc64/src/dummy.s	(revision 9cbd27bda027a69ffbcba03ec98a8179d37e83f0)
+++ arch/sparc64/src/dummy.s	(revision 11cb08ca33a0f7bd8c6e3af60aac90dfb5e39ac2)
@@ -41,4 +41,5 @@
 .global fpu_init
 .global userspace
+.global sys_tls_set
 
 .global dummy
@@ -56,4 +57,5 @@
 fpu_init:
 userspace:
+sys_tls_set:
 
 dummy:
