Index: arch/ia64/src/start.S
===================================================================
--- arch/ia64/src/start.S	(revision 6a27d63e7b18736b0881629dbb6394d379111ab4)
+++ arch/ia64/src/start.S	(revision c884ef19af0005f2be0d384cfd86abf181406d2a)
@@ -33,28 +33,16 @@
 k_text_start:
 
-.section K_TEXT_END
-.global k_text_end
-k_text_end:
-
-.section K_DATA_START
-.global k_data_start
-k_data_start:
-
-.section K_DATA_END
-.global k_data_end
-k_data_end:
-
-
-.text
-
 .global kernel_image_start
 
 stack0:
 kernel_image_start:
+	# initialize register stack
+	alloc r1 = ar.pfs, 0, 0, 0, 0	;;
+
+	# initialize memory stack to some sane value
+	movl r12=stack0
+
 	# initialize gp (Global Pointer) register
-	movl r1=k_text_start;
-
-	# set stack pointer to some sane value
-	movl r12=stack0
+	movl r1=k_text_start
 
 	#
@@ -86,2 +74,13 @@
 	br 0b
 
+.section K_TEXT_END
+.global k_text_end
+k_text_end:
+
+.section K_DATA_START
+.global k_data_start
+k_data_start:
+
+.section K_DATA_END
+.global k_data_end
+k_data_end:
