Index: arch/ia64/Makefile.inc
===================================================================
--- arch/ia64/Makefile.inc	(revision 4533601fda687d5bb82b7297dab6960ee8eddd68)
+++ arch/ia64/Makefile.inc	(revision 5e2455ab71113160c1e2923cc751c703ba776ab4)
@@ -7,4 +7,8 @@
 AS=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-as
 LD=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-ld
+OBJCOPY=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-objcopy
+BFD_NAME=elf64-little
+BFD_ARCH=ia64-elf64
+
 
 ASFLAGS=-mconstant-gp
Index: arch/ia64/_link.ld
===================================================================
--- arch/ia64/_link.ld	(revision 4533601fda687d5bb82b7297dab6960ee8eddd68)
+++ arch/ia64/_link.ld	(revision 5e2455ab71113160c1e2923cc751c703ba776ab4)
@@ -29,4 +29,8 @@
 		*(.bss)
 		*(COMMON);
+
+                symbol_table = .;
+                *(symtab.*);            /* Symbol table, must be LAST symbol!*/
+
 		kdata_end = .;
 	}
Index: arch/ia64/include/asm.h
===================================================================
--- arch/ia64/include/asm.h	(revision 4533601fda687d5bb82b7297dab6960ee8eddd68)
+++ arch/ia64/include/asm.h	(revision 5e2455ab71113160c1e2923cc751c703ba776ab4)
@@ -62,3 +62,8 @@
 
 
+void cpu_halt(void);
+
+
+
+
 #endif
Index: arch/ia64/src/cpu/cpu.c
===================================================================
--- arch/ia64/src/cpu/cpu.c	(revision 4533601fda687d5bb82b7297dab6960ee8eddd68)
+++ arch/ia64/src/cpu/cpu.c	(revision 5e2455ab71113160c1e2923cc751c703ba776ab4)
@@ -23,7 +23,7 @@
 	__asm__  volatile (
 		"mov cr2 = %0;;\n"
-		"mov psr.l = %1;;\n"
-		"srlz.i;"
-		"srlz.d;;"
+		"{mov psr.l = %1;;}\n"
+		"{srlz.i;"
+		"srlz.d;;}"
 		: 
 		: "r" (p), "r" (psr)
Index: arch/ia64/src/interrupt_handler.c
===================================================================
--- arch/ia64/src/interrupt_handler.c	(revision 4533601fda687d5bb82b7297dab6960ee8eddd68)
+++ arch/ia64/src/interrupt_handler.c	(revision 5e2455ab71113160c1e2923cc751c703ba776ab4)
@@ -33,4 +33,5 @@
 #include <arch/types.h>
 #include <arch/asm.h>
+#include <symtab.h>
 
 extern __u64 REG_DUMP;
@@ -52,13 +53,14 @@
 
 
-#define cr_dump(r) {__u64 val; get_control_register(r,val); printf("cr"#r":%Q\n",val);}
-#define ar_dump(r) {__u64 val; get_aplication_register(r,val); printf("ar"#r":%Q\n",val);}
+#define cr_dump(r) {__u64 val; get_control_register(r,val); printf("\ncr"#r":%Q",val);}
+#define ar_dump(r) {__u64 val; get_aplication_register(r,val); printf("\nar"#r":%Q",val);}
 
 void universal_handler(void);
 void universal_handler(void)
 {
-	__u64 vector,psr;
+	__u64 vector,psr,PC;
 	__u64 *p;
 	int i;
+	char *sym;
 	
 	
@@ -77,8 +79,8 @@
 	cr_dump(16);	
 	cr_dump(17);	
-	cr_dump(19);	
-	cr_dump(20);	
+	cr_dump(19);get_control_register(19,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym);
+	cr_dump(20);get_control_register(20,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym);	
 	cr_dump(21);	
-	cr_dump(22);	
+	cr_dump(22);get_control_register(22,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym);	
 	cr_dump(23);	
 	cr_dump(24);	
Index: arch/ia64/src/start.S
===================================================================
--- arch/ia64/src/start.S	(revision 4533601fda687d5bb82b7297dab6960ee8eddd68)
+++ arch/ia64/src/start.S	(revision 5e2455ab71113160c1e2923cc751c703ba776ab4)
@@ -35,7 +35,7 @@
 	.auto
 	# initialize PSR
-	mov psr.l = r0;;
-	srlz.i;
-	srlz.d;;
+	{mov psr.l = r0;;}
+	{srlz.i;
+	srlz.d;;}
 	
 	# initialize register stack
