Mercurial > repo
view nasmbuild/nasm-2.13rc9/misc/crcgen.c @ 10554:587a0a262d22
<moonythedwarf> ` cd nasmbuild; tar -xf nasm.tar.gz
author | HackBot |
---|---|
date | Thu, 30 Mar 2017 20:58:41 +0000 |
parents | |
children |
line wrap: on
line source
#include <inttypes.h> #include <stdio.h> int main(int argc, char *argv[]) { /* Polynomial in bit-reversed notation */ uint64_t poly; uint64_t crctab[256], v; int i, j; poly = strtoumax(argv[1], NULL, 0); printf("/* C */\n"); printf("static const uint64_t crc64_tab[256] = {\n"); for (i = 0; i < 256; i++) { v = i; for (j = 0; j < 8; j++) v = (v >> 1) ^ ((v & 1) ? poly : 0); crctab[i] = v; } for (i = 0; i < 256; i += 2) { printf(" /* %02x */ UINT64_C(0x%016"PRIx64"), " "UINT64_C(0x%016"PRIx64")%s\n", i, crctab[i], crctab[i+1], (i == 254) ? "" : ","); } printf("};\n\n"); printf("# perl\n"); printf("@crc64_tab = (\n"); for (i = 0; i < 256; i += 2) { printf(" [0x%08"PRIx32", 0x%08"PRIx32"], " "[0x%08"PRIx32", 0x%08"PRIx32"]%-1s # %02x\n", (uint32_t)(crctab[i] >> 32), (uint32_t)(crctab[i]), (uint32_t)(crctab[i+1] >> 32), (uint32_t)(crctab[i+1]), (i == 254) ? "" : ",", i); } printf(");\n"); return 0; }