regmask_amd64.go (1177B)
1 package flate 2 3 const ( 4 // Masks for shifts with register sizes of the shift value. 5 // This can be used to work around the x86 design of shifting by mod register size. 6 // It can be used when a variable shift is always smaller than the register size. 7 8 // reg8SizeMaskX - shift value is 8 bits, shifted is X 9 reg8SizeMask8 = 7 10 reg8SizeMask16 = 15 11 reg8SizeMask32 = 31 12 reg8SizeMask64 = 63 13 14 // reg16SizeMaskX - shift value is 16 bits, shifted is X 15 reg16SizeMask8 = reg8SizeMask8 16 reg16SizeMask16 = reg8SizeMask16 17 reg16SizeMask32 = reg8SizeMask32 18 reg16SizeMask64 = reg8SizeMask64 19 20 // reg32SizeMaskX - shift value is 32 bits, shifted is X 21 reg32SizeMask8 = reg8SizeMask8 22 reg32SizeMask16 = reg8SizeMask16 23 reg32SizeMask32 = reg8SizeMask32 24 reg32SizeMask64 = reg8SizeMask64 25 26 // reg64SizeMaskX - shift value is 64 bits, shifted is X 27 reg64SizeMask8 = reg8SizeMask8 28 reg64SizeMask16 = reg8SizeMask16 29 reg64SizeMask32 = reg8SizeMask32 30 reg64SizeMask64 = reg8SizeMask64 31 32 // regSizeMaskUintX - shift value is uint, shifted is X 33 regSizeMaskUint8 = reg8SizeMask8 34 regSizeMaskUint16 = reg8SizeMask16 35 regSizeMaskUint32 = reg8SizeMask32 36 regSizeMaskUint64 = reg8SizeMask64 37 )