|
|
1 | TODO: naming of cutnions, index_to_coord, xy_to_s, xy_to_linear/seq, 32/64 |
|
|
2 | TODO: returning packed coordinates, really |
|
|
3 | TODO: support order=0? |
|
|
4 | 0x0001000c |
|
|
5 | - added ecb_hilbert2d function family. |
|
|
6 | |
|
|
7 | 0x0001000b |
|
|
8 | - added ecb_gray*_{de,en}code functions. |
|
|
9 | |
|
|
10 | 0x0001000a |
|
|
11 | - added ecb_ptrmix. |
|
|
12 | |
|
|
13 | 0x00010009 |
|
|
14 | - added ecb_i2a family of functions. |
|
|
15 | - added ECB_64BIT_NATIVE. |
|
|
16 | |
1 | TODO: |
17 | TODO: |
2 | 08:30:06 <b_jonas> I think it could be worth to add a macro that works like alignof or _Alignof on sane |
18 | 08:30:06 <b_jonas> I think it could be worth to add a macro that works like alignof or _Alignof on sane |
3 | compilers, and like __alignof on MS compilers that support it, see |
19 | compilers, and like __alignof on MS compilers that support it, see |
4 | http://msdn.microsoft.com/en-us/library/45t0s5f4.aspx |
20 | http://msdn.microsoft.com/en-us/library/45t0s5f4.aspx |
5 | 08:30:24 <b_jonas> even if you can't support it on all the old compilers |
21 | 08:30:24 <b_jonas> even if you can't support it on all the old compilers |
… | |
… | |
10 | 08:32:23 <b_jonas> probably not, because it would just account to making a union with a highly aligned type, |
26 | 08:32:23 <b_jonas> probably not, because it would just account to making a union with a highly aligned type, |
11 | which is something I can do on any compiler portably |
27 | which is something I can do on any compiler portably |
12 | |
28 | |
13 | TODO: #define ECB_IS_INTEGRAL(x) !((1 ? 1 : (x)) / 2) |
29 | TODO: #define ECB_IS_INTEGRAL(x) !((1 ? 1 : (x)) / 2) |
14 | #define ECB_IS_INTEGRAL(x) (sizeof ((x) + 1.0f) != sizeof((x) + 1ULL)) |
30 | #define ECB_IS_INTEGRAL(x) (sizeof ((x) + 1.0f) != sizeof((x) + 1ULL)) |
|
|
31 | |
|
|
32 | TODO: ecb_minpot, either using bit tricks or ecb_ldXX |
|
|
33 | |
|
|
34 | TODO: __builtin_popcountll exists... |
15 | |
35 | |
16 | TODO: __builtin_powi |
36 | TODO: __builtin_powi |
17 | |
37 | |
18 | TODO: https://gustedt.wordpress.com/2010/06/08/detect-empty-macro-arguments/ |
38 | TODO: https://gustedt.wordpress.com/2010/06/08/detect-empty-macro-arguments/ |
19 | |
39 | |
… | |
… | |
63 | |
83 | |
64 | #include <byteswap.h> |
84 | #include <byteswap.h> |
65 | |
85 | |
66 | #endif |
86 | #endif |
67 | |
87 | |
|
|
88 | TODO: generic poprcount etc., also fast_t for them? |
|
|
89 | |
|
|
90 | - allow any rotate count in rcb_rot*, at the expense |
|
|
91 | of bad optimisation results on some platforms or with |
|
|
92 | some word sizes. |
|
|
93 | - try to use inttypes.h on mingw. |
|
|
94 | |
|
|
95 | 0x00010008 |
|
|
96 | - aligned/unaligned load/store, bswap, host order |
|
|
97 | conversion. |
|
|
98 | - generic C++ ecb_rot[lr], ecb_popcount, ecb_ctz, |
|
|
99 | ecb_is_pot32 and ecb_bitrev functions. |
|
|
100 | |
|
|
101 | 0x00010007 |
|
|
102 | - new ECB_OPTIMIZE_SIZE symbol. |
|
|
103 | |
|
|
104 | 0x00010006 |
|
|
105 | - new ECB_MEMORY_FENCE_RELAXED memory fence. |
|
|
106 | - use acquire/eelease memory barriers on sun workshop pro, not read/write. |
|
|
107 | - rely on c++ compiler barriers to do the right thing in gcc/clang. |
68 | - change release memory fence to memory barrier on ia32/ia64. |
108 | - change release memory fence to memory barrier on ia32/ia64. |
69 | - apply ctz/ld patch for msc by Zsbán Ambrus. |
109 | - apply ctz/ld patch for msc by Zsbán Ambrus. |
70 | - ECB_PTRSIZE erroneously was 8 on most 32bit systems ( |
110 | - ECB_PTRSIZE erroneously was 8 on most 32bit systems ( |
71 | found by Zsbán Ambrus). |
111 | found by Zsbán Ambrus). |
72 | - improved compiletime detection of endianness, also, allow |
112 | - improved compiletime detection of endianness, also, allow |