Index: xen-unstable.hg/xen/arch/ia64/linux-xen/head.S
===================================================================
--- xen-unstable.hg.orig/xen/arch/ia64/linux-xen/head.S	2007-12-05 20:19:26.000000000 +0900
+++ xen-unstable.hg/xen/arch/ia64/linux-xen/head.S	2007-12-05 20:19:30.000000000 +0900
@@ -266,7 +266,7 @@ start_ap:
 	;;
 	/* XEN HEAP is identity mapped */
 	mov r16 = IA64_TR_XEN_HEAP_REGS
-	dep r17 = -1, r2, 60, 4
+	movl r17 = XEN_HEAP_ADDR
 	;;
 	mov cr.ifa = r17
 	;;
Index: xen-unstable.hg/xen/include/asm-ia64/xensystem.h
===================================================================
--- xen-unstable.hg.orig/xen/include/asm-ia64/xensystem.h	2007-12-05 20:19:26.000000000 +0900
+++ xen-unstable.hg/xen/include/asm-ia64/xensystem.h	2007-12-05 20:19:30.000000000 +0900
@@ -31,6 +31,7 @@
 #define XEN_VIRT_UC_BIT	 57
 
 #define KERNEL_START		 0xf000000004000000
+#define XEN_HEAP_ADDR		 0xf400000004000000
 #define GATE_ADDR		 KERNEL_START
 
 /* In order for Kexec between Xen and Linux to work EFI needs
Index: xen-unstable.hg/xen/arch/ia64/xen/xenasm.S
===================================================================
--- xen-unstable.hg.orig/xen/arch/ia64/xen/xenasm.S	2007-12-05 20:19:26.000000000 +0900
+++ xen-unstable.hg/xen/arch/ia64/xen/xenasm.S	2007-12-05 20:19:30.000000000 +0900
@@ -95,14 +95,18 @@ GLOBAL_ENTRY(ia64_new_rr7)
 	;;
 	/* xen heap is also identity mapped */
 	mov r16 = IA64_TR_XEN_HEAP_REGS  
-	dep r17=-1,loc6,60,4
+	movl r17 = XEN_HEAP_ADDR
 	;;
 	ptr.d r17,r24
 	;;
+	srlz.d
+	;;
 	mov cr.ifa=r17
 	;;
 	itr.d dtr[r16]=r18
 	;;
+	srlz.d
+	;;
 	// re-pin mappings for stack (current)
 
 	// unless overlaps with KERNEL_TR
