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