|
|
1 | 0x00010001 |
|
|
2 | - add ecb_is_pot32/64. |
|
|
3 | - add intptr_t/uintptr_t. |
|
|
4 | - add ECB_PTRSIZE. |
|
|
5 | |
1 | TODO: ffs/clz |
6 | TODO: ffs/clz |
2 | 64 bit variants of everything |
7 | 64 bit variants of everything |
3 | TODO: examples from X for clz/ctz |
8 | TODO: examples from X for clz/ctz |
4 | TODO: arithmetic right shift |
9 | TODO: arithmetic right shift |
5 | TODO: bit reversal |
|
|
6 | TODO: template/generic functions for x32/x64 and so on |
10 | TODO: template/generic functions for x32/x64 and so on |
7 | TODO: #define ecb_integer_multiples_of(n,d) ((char (*)[d])(n) - (char (*)[d])0) |
11 | TODO: #define ecb_integer_multiples_of(n,d) ((char (*)[d])(n) - (char (*)[d])0) |
8 | TODO: is_pot |
|
|
9 | TODO: uintptr_t |
|
|
10 | TODO: generalised shift |
12 | TODO: generalised shift |
11 | unsigned long gensh(unsigned long v, int x) { |
13 | unsigned long gensh(unsigned long v, int x) { |
12 | int a, b; |
14 | int a, b; |
13 | a = (v << x) & -(((unsigned int)x) < 32); |
15 | a = (v << x) & -(((unsigned int)x) < 32); |
14 | x = -x; |
16 | x = -x; |