1 // Copyright 2014 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 //go:build 386 || arm || mips || mipsle || amd64p32 || armbe || m68k || mips64p32 || mips64p32le || nios2 || ppc || riscv || s390 || sh || shbe || sparc
6 // +build 386 arm mips mipsle amd64p32 armbe m68k mips64p32 mips64p32le nios2 ppc riscv s390 sh shbe sparc
12 // On 32-bit systems, the stored uint64 has a 32-bit pointer and 32-bit count.
14 func lfstackPack(node
*lfnode
, cnt
uintptr) uint64 {
15 return uint64(uintptr(unsafe
.Pointer(node
)))<<32 |
uint64(cnt
)
18 func lfstackUnpack(val
uint64) *lfnode
{
19 return (*lfnode
)(unsafe
.Pointer(uintptr(val
>> 32)))