xref: /aosp_15_r20/external/lzma/CPP/7zip/Compress/BZip2Crc.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1 // BZip2Crc.cpp
2 
3 #include "StdAfx.h"
4 
5 #include "BZip2Crc.h"
6 
7 MY_ALIGN(64)
8 UInt32 CBZip2Crc::Table[256];
9 
10 static const UInt32 kBZip2CrcPoly = 0x04c11db7;  /* AUTODIN II, Ethernet, & FDDI */
11 
InitTable()12 void CBZip2Crc::InitTable()
13 {
14   for (UInt32 i = 0; i < 256; i++)
15   {
16     UInt32 r = i << 24;
17     for (unsigned j = 0; j < 8; j++)
18       r = (r << 1) ^ (kBZip2CrcPoly & ((UInt32)0 - (r >> 31)));
19     Table[i] = r;
20   }
21 }
22 
23 static
24 class CBZip2CrcTableInit
25 {
26 public:
CBZip2CrcTableInit()27   CBZip2CrcTableInit() { CBZip2Crc::InitTable(); }
28 } g_BZip2CrcTableInit;
29