return x;\r
}\r
\r
-static int selecttbl[8*256];\r
+int selecttbl[8*256];\r
static int selecttbl_init = 0;\r
+static void prbin(unsigned int x)\r
+{\r
+ int i;\r
+ // for(i = 31; i >= 0; i--){\r
+ for (i = 0 ; i < 32; i ++) {\r
+ fprintf(stderr,"%.1u", (x >> i)&1);\r
+ if (i % 4 == 3)\r
+ fprintf(stderr, " ");\r
+ }\r
+\r
+}\r
+int clz(unsigned int x)\r
+{\r
+ if (x == 0)\r
+ return -1;\r
+ else\r
+ __builtin_clz(x);\r
+}\r
\r
static void make_selecttbl(void)\r
{\r
int i,x,r;\r
pb buf[1];\r
+ unsigned int mask;\r
if (selecttbl_init) return;\r
\r
selecttbl_init = 1;\r
r = 0;\r
for (i=0; i<8; i++) {\r
if (bp_getbit(buf,i)) {\r
+ // fprintf(stderr, "Init: setting %i to %i (r= %i, x = %i)\n", (r<<8)+x, i, r, x);\r
selecttbl[(r<<8)+x] = i;\r
r++;\r
}\r
}\r
}\r
+ /*\r
+ fprintf(stderr, "Select table:\n");\r
+ for (i = 0; i < 8 * 256; i++){\r
+ mask = i / 256 + 1;\r
+ x = __builtin_clz((i + (i << 8)));\r
+ prbin(i);\r
+ fprintf(stderr, " (%.4i): %08i, %08i\n", i, selecttbl[i], x);\r
+ };\r
+ */\r
}\r
\r
\r