ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libecb/ecb.h
(Generate patch)

Comparing libecb/ecb.h (file contents):
Revision 1.69 by root, Sun Sep 25 21:27:02 2011 UTC vs.
Revision 1.70 by root, Sat Dec 10 11:58:38 2011 UTC

289 289
290 return r + ecb_ld32 (x); 290 return r + ecb_ld32 (x);
291 } 291 }
292#endif 292#endif
293 293
294ecb_function_ uint8_t ecb_bitrev8 (uint8_t x)
295{
296 return ( (x * 0x0802U & 0x22110U)
297 | (x * 0x8020U & 0x88440U)) * 0x10101U >> 16;
298}
299
300ecb_function_ uint16_t ecb_bitrev16 (uint16_t x)
301{
302 x = ((x >> 1) & 0x5555) | ((x & 0x5555) << 1);
303 x = ((x >> 2) & 0x3333) | ((x & 0x3333) << 2);
304 x = ((x >> 4) & 0x0f0f) | ((x & 0x0f0f) << 4);
305 x = ( x >> 8 ) | ( x << 8);
306
307 return x;
308}
309
310ecb_function_ uint32_t ecb_bitrev32 (uint32_t x)
311{
312 x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1);
313 x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2);
314 x = ((x >> 4) & 0x0f0f0f0f) | ((x & 0x0f0f0f0f) << 4);
315 x = ((x >> 8) & 0x00ff00ff) | ((x & 0x00ff00ff) << 8);
316 x = ( x >> 16 ) | ( x << 16);
317
318 return x;
319}
320
294/* popcount64 is only available on 64 bit cpus as gcc builtin */ 321/* popcount64 is only available on 64 bit cpus as gcc builtin */
295/* so for this version we are lazy */ 322/* so for this version we are lazy */
296ecb_function_ int ecb_popcount64 (uint64_t x) ecb_const; 323ecb_function_ int ecb_popcount64 (uint64_t x) ecb_const;
297ecb_function_ int 324ecb_function_ int
298ecb_popcount64 (uint64_t x) 325ecb_popcount64 (uint64_t x)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines