clz32.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function AsmModule(glob, imp, b) {
  6. "use asm"
  7. var clz = glob.Math.clz32;
  8. function f1(a)
  9. {
  10. a = a|0;
  11. return clz(a|0)|0;
  12. }
  13. function f2()
  14. {
  15. return clz(0)|0;
  16. }
  17. function f3()
  18. {
  19. return clz(0x80000000)|0;
  20. }
  21. function f4()
  22. {
  23. return clz(32768)|0;
  24. }
  25. return {
  26. f1:f1,
  27. f2:f2,
  28. f3:f3,
  29. f4:f4
  30. }
  31. }
  32. var global = this;
  33. var env = {}
  34. var heap = new ArrayBuffer(1<<20);
  35. var asmModule = AsmModule(global, env, heap);
  36. print(asmModule.f1(0));
  37. print(asmModule.f1(0x80000000));
  38. print(asmModule.f1(32768));
  39. print(asmModule.f2());
  40. print(asmModule.f3());
  41. print(asmModule.f4());