Advertisement
Guest User

Threaded WebAssembly Text Format

a guest
Jan 20th, 2020
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64)
  2. (local $2 i64)
  3. (local $3 i64)
  4. (local $4 i64)
  5. (local $5 i64)
  6. (local $6 i64)
  7. (local $7 i64)
  8. (local $8 i64)
  9. ┌─local.get $0
  10. ┌─i64.reinterpret_f64
  11. ┌─local.tee $2
  12. ├─i64.const 52
  13. ┌─i64.shr_u
  14. ├─i64.const 2047
  15. ┌─i64.and
  16. local.set $4
  17. ┌─local.get $1
  18. ┌─i64.reinterpret_f64
  19. ┌─local.tee $3
  20. ├─i64.const 52
  21. ┌─i64.shr_u
  22. ├─i64.const 2047
  23. ┌─i64.and
  24. local.set $5
  25. ┌─local.get $3
  26. ├─i64.const 1
  27. ┌─i64.shl
  28. ┌─local.tee $6
  29. ┌─i64.eqz
  30. if (result i32)
  31. i32.const 1
  32. else
  33. ┌─local.get $4
  34. ├─i64.const 2047
  35. i64.eq
  36. ┌─end
  37. if (result i32)
  38. i32.const 1
  39. else
  40. ┌─local.get $1
  41. ├─local.get $1
  42. f64.ne
  43. ┌─end
  44. if
  45. ┌─local.get $0
  46. ├─local.get $1
  47. ┌─f64.mul
  48. ┌─local.tee $0
  49. ├─local.get $0
  50. ┌─f64.div
  51. return
  52. end
  53. ┌─local.get $2
  54. ├─i64.const 63
  55. ┌─i64.shr_u
  56. local.set $7
  57. block $folding-inner0
  58. ┌─local.get $2
  59. ├─i64.const 1
  60. ┌─i64.shl
  61. ┌─local.tee $8
  62. ├─local.get $6
  63. ┌─i64.le_u
  64. if
  65. ┌─local.get $6
  66. ├─local.get $8
  67. ┌─i64.eq
  68. br_if $folding-inner0
  69. ┌─local.get $0
  70. return
  71. end
  72. ┌─local.get $4
  73. ┌─i64.eqz
  74. if (result i64)
  75. ┌─local.get $2
  76. │ ┌─i64.const 0
  77. │ │ ┌─local.get $4
  78. │ │ │ ┌─local.get $2
  79. │ │ │ ├─i64.const 12
  80. │ │ │ ┌─i64.shl
  81. │ │ ├─i64.clz
  82. │ │ ┌─i64.sub
  83. │ ├─local.tee $4
  84. │ ┌─i64.sub
  85. │ ├─i64.const 1
  86. ├─i64.add
  87. i64.shl
  88. else
  89. ┌─local.get $2
  90. ├─i64.const 4503599627370495
  91. ┌─i64.and
  92. ├─i64.const 4503599627370496
  93. i64.or
  94. ┌─end
  95. local.set $2
  96. ┌─local.get $5
  97. ┌─i64.eqz
  98. if (result i64)
  99. ┌─local.get $3
  100. │ ┌─i64.const 0
  101. │ │ ┌─local.get $5
  102. │ │ │ ┌─local.get $3
  103. │ │ │ ├─i64.const 12
  104. │ │ │ ┌─i64.shl
  105. │ │ ├─i64.clz
  106. │ │ ┌─i64.sub
  107. │ ├─local.tee $5
  108. │ ┌─i64.sub
  109. │ ├─i64.const 1
  110. ├─i64.add
  111. i64.shl
  112. else
  113. ┌─local.get $3
  114. ├─i64.const 4503599627370495
  115. ┌─i64.and
  116. ├─i64.const 4503599627370496
  117. i64.or
  118. ┌─end
  119. local.set $3
  120. loop $while-continue|0
  121. ┌─local.get $4
  122. ├─local.get $5
  123. ┌─i64.gt_s
  124. if
  125. ┌─local.get $2
  126. ├─local.get $3
  127. ┌─i64.ge_u
  128. if (result i64)
  129. ┌─local.get $2
  130. ├─local.get $3
  131. ┌─i64.eq
  132. br_if $folding-inner0
  133. ┌─local.get $2
  134. ├─local.get $3
  135. i64.sub
  136. else
  137. local.get $2
  138. ┌─end
  139. ├─i64.const 1
  140. i64.shl
  141. ┌─local.set $2
  142. local.get $4
  143. ┌─i64.const 1
  144. ├─i64.sub
  145. local.set $4
  146. br $while-continue|0
  147. end
  148. end
  149. ┌─local.get $2
  150. ├─local.get $3
  151. ┌─i64.ge_u
  152. if
  153. ┌─local.get $2
  154. ├─local.get $3
  155. ┌─i64.eq
  156. br_if $folding-inner0
  157. ┌─local.get $2
  158. ├─local.get $3
  159. ┌─i64.sub
  160. local.set $2
  161. end
  162. ┌─local.get $2
  163. │ ┌─local.get $2
  164. │ ├─i64.const 11
  165. │ ┌─i64.shl
  166. │ ┌─i64.clz
  167. ├─local.tee $3
  168. ┌─i64.shl
  169. local.set $2
  170. ┌─local.get $4
  171. ├─local.get $3
  172. ┌─i64.sub
  173. ┌─local.tee $4
  174. ├─i64.const 0
  175. ┌─i64.gt_s
  176. if (result i64)
  177. ┌─local.get $2
  178. ├─i64.const 4503599627370496
  179. ┌─i64.sub
  180. │ ┌─local.get $4
  181. │ ├─i64.const 52
  182. ├─i64.shl
  183. i64.or
  184. else
  185. ┌─local.get $2
  186. │ ┌─i64.const 0
  187. │ ├─local.get $4
  188. │ ┌─i64.sub
  189. │ ├─i64.const 1
  190. ├─i64.add
  191. i64.shr_u
  192. ┌─end
  193. │ ┌─local.get $7
  194. │ ├─i64.const 63
  195. ├─i64.shl
  196. ┌─i64.or
  197. ┌─f64.reinterpret_i64
  198. return
  199. end
  200. ┌─f64.const 0
  201. ├─local.get $0
  202. f64.mul
  203. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement