xref: /aosp_15_r20/external/lzma/CPP/7zip/Compress/BitlDecoder.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1 // BitlDecoder.cpp
2 
3 #include "StdAfx.h"
4 
5 #include "BitlDecoder.h"
6 
7 namespace NBitl {
8 
9 #if defined(Z7_BITL_USE_REVERSE_BITS_TABLE)
10 
11 MY_ALIGN(64)
12 Byte kReverseTable[256];
13 
14 static
15 struct CReverseerTableInitializer
16 {
CReverseerTableInitializerNBitl::CReverseerTableInitializer17   CReverseerTableInitializer()
18   {
19     for (unsigned i = 0; i < 256; i++)
20     {
21       unsigned
22       x = ((i & 0x55) << 1) | ((i >> 1) & 0x55);
23       x = ((x & 0x33) << 2) | ((x >> 2) & 0x33);
24       kReverseTable[i] = (Byte)((x << 4) | (x >> 4));
25     }
26   }
27 } g_ReverseerTableInitializer;
28 
29 #elif 0
30 unsigned ReverseBits8test(unsigned i) { return ReverseBits8(i); }
31 #endif
32 }
33