type RegArgs … func (r *RegArgs) Dump() { … } // IntRegArgAddr returns a pointer inside of r.Ints[reg] that is appropriately // offset for an argument of size argSize. // // argSize must be non-zero, fit in a register, and a power-of-two. // // This method is a helper for dealing with the endianness of different CPU // architectures, since sub-word-sized arguments in big endian architectures // need to be "aligned" to the upper edge of the register to be interpreted // by the CPU correctly. func (r *RegArgs) IntRegArgAddr(reg int, argSize uintptr) unsafe.Pointer { … } type IntArgRegBitmap … // Set sets the i'th bit of the bitmap to 1. func (b *IntArgRegBitmap) Set(i int) { … } // Get returns whether the i'th bit of the bitmap is set. // // nosplit because it's called in extremely sensitive contexts, like // on the reflectcall return path. // //go:nosplit func (b *IntArgRegBitmap) Get(i int) bool { … }