]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix tag pointers on aix, take 2
authorKeith Randall <khr@golang.org>
Fri, 25 Apr 2025 17:09:44 +0000 (10:09 -0700)
committerKeith Randall <khr@golang.org>
Wed, 7 May 2025 21:10:02 +0000 (14:10 -0700)
Previous fix in CL 667715 wasn't correct for aix.

Change-Id: I44042786079463967165507b15756cf24b9a213a
Reviewed-on: https://go-review.googlesource.com/c/go/+/668036
Reviewed-by: Keith Randall <khr@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/runtime/tagptr_64bit.go

index 31cbce03b742016e8e928d0235a276516026e333..586d155dc5b24ff62688849b1d937390f348a43e 100644 (file)
@@ -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))
 }