| Abhay Kumar | 40252eb | 2025-10-13 13:25:53 +0000 | [diff] [blame^] | 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 | ) |