function local variables +----------+ +---------------+ +--------------------+ | | | | | | | cRED | a-32(SP) +-------| var a bool |<--------=->| var a bool | | | | | cBLU | | cBLU | | | | +---------------+ +--------------------+ | | | | | | | | | b-30(SP) +-------| var b int16 |<--------=->| var b int16 | | | : | cPNK | | cPNK | | | | +---------------+ +--------------------+ | | | | | | | | | | | var c []byte |<-----+--=->| var c.Data uintptr |----+ | | | | cGRE | | | cGRE | | | stack | | +---------------+ | +--------------------+ | | | | | | | | | | | +--=->| var c.Len int |----+ | | | | | cGRE | | | | | | +--------------------+ | | | | | | | | | | | +--=->| var c.Cap int |--==+ ---=- +----------+ | | cGRE | | ^ | | | +--------------------+ | : | | | | | | arguments| | | argsize| returns | | | : | | | local_top-0(SP)---=-+ | v | cYEL |arg+0(FP) | | | --=-- +----------+ <----------=--- +-------------------------------------+ <-+ | ^ | cGRE |var-0(SP) | | cGRE | | : | local | | | c.Cap | | | | | | | 64bit | | | | | | +-------------------------------------+ <-=-------------+c.Cap-8(SP) | | | | | cGRE | | | | | | | c.Len | | | | | | | 64bit | | | | | | +-------------------------------------+ <-=-------------+c.Len-16(SP) | | | | | cGRE | | framesize| | | | c.Data | | | | | | | 64bit | | | | | | +----+----+--------+------------------+ <-=-------------+c.Data-24(SP) | | | : |cBLU|cAAA|cPNK |cAAA | | | | +----> | a | | b | | | | | |8bit|8bit| 16bit | 32bit | | +----------+ <----------=--- +----+----+--------+------------------+ <--=a-32(SP) | |for callee| var-32(SP) ^ ^ | | | | | | : | | | | +-=-b-30(SP) v |cPNK v | | -=-- +----------+0(SP) +-=-a-32(SP) | unused | | cAAA | +----------+