Documentation
¶
Index ¶
- Constants
- func MaskAddr(roDataAddr int32, maskBaseAddr MaskBaseAddr, t abi.Type) int32
- func PutInt16(code Buffer, value int16)
- func PutInt32(code Buffer, value int32)
- func PutInt64(code Buffer, value int64)
- func PutInt8(code Buffer, value int8)
- func RegCategoryInvalid(cat RegCategory) bool
- func RegCategoryMask(cat RegCategory, callRegs *[]regs.R, available ...bool) (mask uint64)
- func RegMask(intMask, floatMask uint64) uint64
- type Buffer
- type Coder
- type MaskBaseAddr
- type RegCategory
- type RegCoder
Constants ¶
View Source
const ( // Masks are 16-byte aligned for x86-64 SSE. ROMask7fAddr32 = iota * 16 ROMask7fAddr64 ROMask80Addr32 ROMask80Addr64 ROMask5f00Addr32 // 01011111000000000000000000000000 ROMask43e0Addr64 // 0100001111100000000000000000000000000000000000000000000000000000 ROTableAddr )
View Source
const ( WordSize = 8 // stack entry size StackReserve = WordSize + 128 // trap/import call return address + red zone )
View Source
const ( Mask7fBase = MaskBaseAddr(ROMask7fAddr32) Mask80Base = MaskBaseAddr(ROMask80Addr32) MaskTruncBase = MaskBaseAddr(ROMask5f00Addr32) )
View Source
const ( RegCategoryInt = RegCategory(0) RegCategoryFloat = RegCategory(1) )
Variables ¶
This section is empty.
Functions ¶
func MaskAddr ¶
func MaskAddr(roDataAddr int32, maskBaseAddr MaskBaseAddr, t abi.Type) int32
MaskAddr calculates the absolute read-only data address for reading a mask for the given type size. maskBaseAddr should be one of the Mask*Base constants.
func RegCategoryInvalid ¶
func RegCategoryInvalid(cat RegCategory) bool
func RegCategoryMask ¶
func RegCategoryMask(cat RegCategory, callRegs *[]regs.R, available ...bool) (mask uint64)
Types ¶
type MaskBaseAddr ¶
type MaskBaseAddr int32
type RegCategory ¶
type RegCategory uint8
func TypeRegCategory ¶
func TypeRegCategory(t abi.Type) RegCategory
func (RegCategory) String ¶
func (cat RegCategory) String() string
Click to show internal directories.
Click to hide internal directories.