diff --git a/src/runtime/tagptr_64bit.go b/src/runtime/tagptr_64bit.go
index 31cbce03b742016e8e928d0235a276516026e333..586d155dc5b24ff62688849b1d937390f348a43e 100644
--- a/src/runtime/tagptr_64bit.go
+++ b/src/runtime/tagptr_64bit.go
@@ -66,6 +66,9 @@ func (tp taggedPointer) pointer() unsafe.Pointer {
 		// val before unpacking.
 		return unsafe.Pointer(uintptr(int64(tp) >> tagBits << tagAlignBits))
 	}
+	if GOOS == "aix" {
+		return unsafe.Pointer(uintptr((tp >> tagBits << tagAlignBits) | 0xa<<56))
+	}
 	return unsafe.Pointer(uintptr(tp >> tagBits << tagAlignBits))
 }