blob: 6ed28061b2b82b7d17c8a938ce72c92dbb572e59 [file] [log] [blame]
Abhay Kumar40252eb2025-10-13 13:25:53 +00001package flate
2
3const (
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)