runtime: fix lfstackUnpack on ia64
The top three region number bits must be masked out before right-shifting the address bits into place, otherwise they will be copied down into the lower always-zero address bits. Reviewed-on: https://go-review.googlesource.com/84535 From-SVN: r257061
This commit is contained in:
parent
19e502d413
commit
a88d1f8bb2
2 changed files with 2 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
|||
016ea21c4cba324c6ea6424da7988c6f985e671b
|
||||
553e04735d1be372c596c720bcaea27e050b13a6
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
|
|
@ -78,7 +78,7 @@ func lfstackUnpack(val uint64) *lfnode {
|
|||
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 & (1<<(64-3) - 1)) >> ia64CntBits << 3) | val&^(1<<(64-3)-1))))
|
||||
}
|
||||
if GOARCH == "ppc64" && GOOS == "aix" {
|
||||
if val&(1<<63) != 0 {
|
||||
|
|
Loading…
Add table
Reference in a new issue