| Revision: | 1.3 |
| Committed: | Sat Dec 10 11:58:38 2011 UTC (14 years, 5 months ago) by root |
| Branch: | MAIN |
| CVS Tags: | rel-9_14, rxvt-unicode-rel-9_15 |
| Changes since 1.2: | +11 -0 lines |
| Log Message: | add bitrev |
| # | User | Rev | Content |
|---|---|---|---|
| 1 | root | 1.1 | TODO: ffs/clz |
| 2 | 64 bit variants of everything | ||
| 3 | root | 1.2 | TODO: examples from X for clz/ctz |
| 4 | root | 1.3 | TODO: arithmetic right shift |
| 5 | TODO: bit reversal | ||
| 6 | TODO: template/generic functions for x32/x64 and so on | ||
| 7 | TODO: generalised shift | ||
| 8 | unsigned long gensh(unsigned long v, int x) { | ||
| 9 | int a, b; | ||
| 10 | a = (v << x) & -(((unsigned int)x) < 32); | ||
| 11 | x = -x; | ||
| 12 | b = (v >> x) & -(((unsigned int)x) < 32); | ||
| 13 | return a|b; | ||
| 14 | } |