__clzsi2.c 309 B

123456789101112131415161718192021222324252627282930
  1. #include "libgcc.h"
  2. u32 __clzsi2(u32 v)
  3. {
  4. int p = 31;
  5. if (v & 0xffff0000) {
  6. p -= 16;
  7. v >>= 16;
  8. }
  9. if (v & 0xff00) {
  10. p -= 8;
  11. v >>= 8;
  12. }
  13. if (v & 0xf0) {
  14. p -= 4;
  15. v >>= 4;
  16. }
  17. if (v & 0xc) {
  18. p -= 2;
  19. v >>= 2;
  20. }
  21. if (v & 0x2) {
  22. p -= 1;
  23. v >>= 1;
  24. }
  25. return p;
  26. }
  27. EXPORT_SYMBOL(__clzsi2);