diff --git a/libgo/go/runtime/lfstack_64bit.go b/libgo/go/runtime/lfstack_64bit.go
index b314a3b..8a39fee 100644
--- a/libgo/go/runtime/lfstack_64bit.go
+++ b/libgo/go/runtime/lfstack_64bit.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build amd64 arm64 mips64 mips64le ppc64 ppc64le s390x arm64be alpha mipsn64 sparc64
+// +build amd64 arm64 mips64 mips64le ppc64 ppc64le s390x arm64be alpha mipsn64 sparc64 ia64
 
 package runtime
 
@@ -38,12 +38,22 @@
 	// room in the bottom for the count.
 	sparcLinuxAddrBits = 52
 	sparcLinuxCntBits  = 64 - sparcLinuxAddrBits + 3
+
+	// On IA64, the virtual address space is devided into 8 regions, with
+	// 52 address bits each (with 64k page size).
+	ia64AddrBits = 55
+	ia64CntBits  = 64 - ia64AddrBits + 3
 )
 
 func lfstackPack(node *lfnode, cnt uintptr) uint64 {
 	if GOARCH == "sparc64" && GOOS == "linux" {
 		return uint64(uintptr(unsafe.Pointer(node)))<<(64-sparcLinuxAddrBits) | uint64(cnt&(1<<sparcLinuxCntBits-1))
 	}
+	if GOARCH == "ia64" {
+		// Top three bits are the region number
+		val := uint64(uintptr(unsafe.Pointer(node)))
+		return (val<<(64-ia64AddrBits))&(1<<(64-3)-1) | val&^(1<<(64-3)-1) | uint64(cnt&(1<<ia64CntBits-1))
+	}
 	return uint64(uintptr(unsafe.Pointer(node)))<<(64-addrBits) | uint64(cnt&(1<<cntBits-1))
 }
 
@@ -56,5 +66,8 @@
 	if GOARCH == "sparc64" && GOOS == "linux" {
 		return (*lfnode)(unsafe.Pointer(uintptr(int64(val) >> sparcLinuxCntBits << 3)))
 	}
+	if GOARCH == "ia64" {
+		return (*lfnode)(unsafe.Pointer(uintptr((val>>ia64CntBits<<3)&(1<<(64-3)-1) | val&^(1<<(64-3)-1))))
+	}
 	return (*lfnode)(unsafe.Pointer(uintptr(val >> cntBits << 3)))
 }
