mirror of
https://github.com/haproxy/haproxy.git
synced 2026-02-19 02:29:31 -05:00
The asm code shows multiple conversions. Gcc has always been terribly bad at dealing with chars, which are constantly converted to ints for every operation and zero-extended after each operation. But here in addition there are conversions before and after the flsnz(). Let's just mark the variables as long and use flsnz_long() to process them without any conversion. This shortens the code and makes it slightly faster. Note that the fls operations could make use of __builtin_clz() on gcc 4.6 and above, and it would be useful to implement native support for ARM as well. This is cbtree commit 1f0f83ba26f2279c8bba0080a2e09a803dddde47. This is ebtree commit 9c38dcae22a84f0b0d9c5a56facce1ca2ad0aaef. |
||
|---|---|---|
| .. | ||
| atomic-ops.h | ||
| eb32sctree.h | ||
| eb32tree.h | ||
| eb64tree.h | ||
| ebimtree.h | ||
| ebistree.h | ||
| ebmbtree.h | ||
| ebpttree.h | ||
| ebsttree.h | ||
| ebtree-t.h | ||
| ebtree.h | ||
| ist.h | ||
| lru.h | ||
| mjson.h | ||
| plock.h | ||
| sha1.h | ||
| slz-tables.h | ||
| slz.h | ||
| xxhash.h | ||