wasmtime 20.0.2 → 22.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2470) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +137 -139
  3. data/ext/Cargo.toml +8 -6
  4. data/ext/cargo-vendor/cobs-0.2.3/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cobs-0.2.3/Cargo.toml +39 -0
  6. data/ext/cargo-vendor/cobs-0.2.3/LICENSE-APACHE +202 -0
  7. data/ext/cargo-vendor/cobs-0.2.3/LICENSE-MIT +19 -0
  8. data/ext/cargo-vendor/cobs-0.2.3/README.md +23 -0
  9. data/ext/cargo-vendor/cobs-0.2.3/src/dec.rs +360 -0
  10. data/ext/cargo-vendor/cobs-0.2.3/src/enc.rs +216 -0
  11. data/ext/cargo-vendor/cobs-0.2.3/src/lib.rs +14 -0
  12. data/ext/cargo-vendor/cobs-0.2.3/tests/test.rs +265 -0
  13. data/ext/cargo-vendor/cranelift-bforest-0.109.0/.cargo-checksum.json +1 -0
  14. data/ext/cargo-vendor/cranelift-bforest-0.109.0/Cargo.toml +41 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.109.0/.cargo-checksum.json +1 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.109.0/Cargo.toml +193 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.109.0/build.rs +266 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/alias_analysis.rs +403 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/context.rs +384 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ctxhash.rs +167 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/dominator_tree.rs +727 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/egraph/elaborate.rs +835 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/egraph.rs +835 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/incremental_cache.rs +256 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/inst_predicates.rs +230 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/dfg.rs +1777 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/extfunc.rs +402 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/immediates.rs +1612 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/instructions.rs +1020 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/stackslot.rs +208 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/types.rs +627 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/abi.rs +1556 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/args.rs +711 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/emit.rs +3584 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/emit_tests.rs +7901 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/imms.rs +1213 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/mod.rs +3060 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/regs.rs +269 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/unwind/systemv.rs +174 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst.isle +4218 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/lower/isle.rs +810 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/pcc.rs +568 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/mod.rs +449 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/abi.rs +1029 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/args.rs +2054 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/emit.rs +2682 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/emit_tests.rs +2215 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/encode.rs +675 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/imms.rs +374 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/mod.rs +1938 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/regs.rs +168 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/unwind/systemv.rs +170 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/vector.rs +1150 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst.isle +3127 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst_vector.isle +1907 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/lower/isle.rs +649 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/lower.isle +2923 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/mod.rs +260 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/abi.rs +1016 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/args.rs +298 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/emit.rs +3401 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/emit_tests.rs +13388 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/imms.rs +202 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/mod.rs +3401 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/regs.rs +169 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/unwind/systemv.rs +212 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst.isle +5028 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/lower.isle +3995 -0
  69. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/abi.rs +1390 -0
  70. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/args.rs +2240 -0
  71. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit.rs +4287 -0
  72. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit_state.rs +52 -0
  73. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit_tests.rs +5171 -0
  74. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/mod.rs +2821 -0
  75. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/regs.rs +275 -0
  76. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/unwind/systemv.rs +198 -0
  77. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst.isle +5289 -0
  78. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/lower/isle.rs +1064 -0
  79. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/lower.isle +4810 -0
  80. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/lower.rs +337 -0
  81. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/pcc.rs +1014 -0
  82. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isle_prelude.rs +986 -0
  83. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/lib.rs +106 -0
  84. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/abi.rs +2419 -0
  85. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/blockorder.rs +465 -0
  86. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/buffer.rs +2508 -0
  87. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/isle.rs +909 -0
  88. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/lower.rs +1432 -0
  89. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/mod.rs +551 -0
  90. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/reg.rs +479 -0
  91. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/valueregs.rs +138 -0
  92. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/vcode.rs +1741 -0
  93. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/nan_canonicalization.rs +130 -0
  94. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/arithmetic.isle +240 -0
  95. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/cprop.isle +297 -0
  96. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/icmp.isle +215 -0
  97. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/shifts.isle +307 -0
  98. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/prelude.isle +664 -0
  99. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/prelude_lower.isle +1073 -0
  100. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ranges.rs +131 -0
  101. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/remove_constant_phis.rs +419 -0
  102. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/scoped_hash_map.rs +310 -0
  103. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/settings.rs +590 -0
  104. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/timing.rs +296 -0
  105. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/traversals.rs +216 -0
  106. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/verifier/mod.rs +1957 -0
  107. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/write.rs +638 -0
  108. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/.cargo-checksum.json +1 -0
  109. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/Cargo.toml +36 -0
  110. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/cdsl/types.rs +496 -0
  111. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/gen_inst.rs +1278 -0
  112. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/gen_isle.rs +519 -0
  113. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/gen_settings.rs +508 -0
  114. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/gen_types.rs +75 -0
  115. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/isa/riscv64.rs +174 -0
  116. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/isa/x86.rs +414 -0
  117. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/isle.rs +126 -0
  118. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/lib.rs +98 -0
  119. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/shared/settings.rs +348 -0
  120. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/srcgen.rs +464 -0
  121. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/.cargo-checksum.json +1 -0
  122. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/Cargo.toml +22 -0
  123. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/src/constants.rs +28 -0
  124. data/ext/cargo-vendor/cranelift-control-0.109.0/.cargo-checksum.json +1 -0
  125. data/ext/cargo-vendor/cranelift-control-0.109.0/Cargo.toml +30 -0
  126. data/ext/cargo-vendor/cranelift-entity-0.109.0/.cargo-checksum.json +1 -0
  127. data/ext/cargo-vendor/cranelift-entity-0.109.0/Cargo.toml +53 -0
  128. data/ext/cargo-vendor/cranelift-entity-0.109.0/src/lib.rs +381 -0
  129. data/ext/cargo-vendor/cranelift-entity-0.109.0/src/set.rs +290 -0
  130. data/ext/cargo-vendor/cranelift-frontend-0.109.0/.cargo-checksum.json +1 -0
  131. data/ext/cargo-vendor/cranelift-frontend-0.109.0/Cargo.toml +68 -0
  132. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/frontend.rs +1857 -0
  133. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/lib.rs +187 -0
  134. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/ssa.rs +1328 -0
  135. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/switch.rs +696 -0
  136. data/ext/cargo-vendor/cranelift-isle-0.109.0/.cargo-checksum.json +1 -0
  137. data/ext/cargo-vendor/cranelift-isle-0.109.0/Cargo.toml +47 -0
  138. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/codegen.rs +886 -0
  139. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/disjointsets.rs +169 -0
  140. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/lib.rs +33 -0
  141. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/sema.rs +2492 -0
  142. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/serialize.rs +846 -0
  143. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/stablemapset.rs +79 -0
  144. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/trie_again.rs +684 -0
  145. data/ext/cargo-vendor/cranelift-native-0.109.0/.cargo-checksum.json +1 -0
  146. data/ext/cargo-vendor/cranelift-native-0.109.0/Cargo.toml +43 -0
  147. data/ext/cargo-vendor/cranelift-native-0.109.0/src/lib.rs +188 -0
  148. data/ext/cargo-vendor/cranelift-native-0.109.0/src/riscv.rs +128 -0
  149. data/ext/cargo-vendor/cranelift-wasm-0.109.0/.cargo-checksum.json +1 -0
  150. data/ext/cargo-vendor/cranelift-wasm-0.109.0/Cargo.toml +110 -0
  151. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/code_translator.rs +3695 -0
  152. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/environ/dummy.rs +906 -0
  153. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/environ/spec.rs +945 -0
  154. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/func_translator.rs +296 -0
  155. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/module_translator.rs +120 -0
  156. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/sections_translator.rs +343 -0
  157. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/state.rs +522 -0
  158. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/.cargo-checksum.json +1 -0
  159. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/Cargo.toml +48 -0
  160. data/ext/cargo-vendor/embedded-io-0.4.0/.cargo-checksum.json +1 -0
  161. data/ext/cargo-vendor/embedded-io-0.4.0/CHANGELOG.md +28 -0
  162. data/ext/cargo-vendor/embedded-io-0.4.0/Cargo.toml +73 -0
  163. data/ext/cargo-vendor/embedded-io-0.4.0/LICENSE-MIT +25 -0
  164. data/ext/cargo-vendor/embedded-io-0.4.0/README.md +33 -0
  165. data/ext/cargo-vendor/embedded-io-0.4.0/ci.sh +21 -0
  166. data/ext/cargo-vendor/embedded-io-0.4.0/rust-toolchain.toml +3 -0
  167. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/futures_io.rs +65 -0
  168. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/mod.rs +40 -0
  169. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/std_io.rs +107 -0
  170. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/tokio.rs +108 -0
  171. data/ext/cargo-vendor/embedded-io-0.4.0/src/asynch.rs +230 -0
  172. data/ext/cargo-vendor/embedded-io-0.4.0/src/blocking.rs +309 -0
  173. data/ext/cargo-vendor/embedded-io-0.4.0/src/fmt.rs +228 -0
  174. data/ext/cargo-vendor/embedded-io-0.4.0/src/lib.rs +125 -0
  175. data/ext/cargo-vendor/libm-0.2.8/.cargo-checksum.json +1 -0
  176. data/ext/cargo-vendor/libm-0.2.8/CHANGELOG.md +123 -0
  177. data/ext/cargo-vendor/libm-0.2.8/CONTRIBUTING.md +95 -0
  178. data/ext/cargo-vendor/libm-0.2.8/Cargo.toml +45 -0
  179. data/ext/cargo-vendor/libm-0.2.8/LICENSE-APACHE +201 -0
  180. data/ext/cargo-vendor/libm-0.2.8/LICENSE-MIT +25 -0
  181. data/ext/cargo-vendor/libm-0.2.8/README.md +51 -0
  182. data/ext/cargo-vendor/libm-0.2.8/build.rs +463 -0
  183. data/ext/cargo-vendor/libm-0.2.8/src/lib.rs +59 -0
  184. data/ext/cargo-vendor/libm-0.2.8/src/libm_helper.rs +171 -0
  185. data/ext/cargo-vendor/libm-0.2.8/src/math/acos.rs +112 -0
  186. data/ext/cargo-vendor/libm-0.2.8/src/math/acosf.rs +79 -0
  187. data/ext/cargo-vendor/libm-0.2.8/src/math/acosh.rs +27 -0
  188. data/ext/cargo-vendor/libm-0.2.8/src/math/acoshf.rs +26 -0
  189. data/ext/cargo-vendor/libm-0.2.8/src/math/asin.rs +119 -0
  190. data/ext/cargo-vendor/libm-0.2.8/src/math/asinf.rs +72 -0
  191. data/ext/cargo-vendor/libm-0.2.8/src/math/asinh.rs +40 -0
  192. data/ext/cargo-vendor/libm-0.2.8/src/math/asinhf.rs +39 -0
  193. data/ext/cargo-vendor/libm-0.2.8/src/math/atan.rs +184 -0
  194. data/ext/cargo-vendor/libm-0.2.8/src/math/atan2.rs +126 -0
  195. data/ext/cargo-vendor/libm-0.2.8/src/math/atan2f.rs +91 -0
  196. data/ext/cargo-vendor/libm-0.2.8/src/math/atanf.rs +112 -0
  197. data/ext/cargo-vendor/libm-0.2.8/src/math/atanh.rs +37 -0
  198. data/ext/cargo-vendor/libm-0.2.8/src/math/atanhf.rs +37 -0
  199. data/ext/cargo-vendor/libm-0.2.8/src/math/cbrt.rs +113 -0
  200. data/ext/cargo-vendor/libm-0.2.8/src/math/cbrtf.rs +75 -0
  201. data/ext/cargo-vendor/libm-0.2.8/src/math/ceil.rs +82 -0
  202. data/ext/cargo-vendor/libm-0.2.8/src/math/ceilf.rs +65 -0
  203. data/ext/cargo-vendor/libm-0.2.8/src/math/copysign.rs +12 -0
  204. data/ext/cargo-vendor/libm-0.2.8/src/math/copysignf.rs +12 -0
  205. data/ext/cargo-vendor/libm-0.2.8/src/math/cos.rs +73 -0
  206. data/ext/cargo-vendor/libm-0.2.8/src/math/cosf.rs +83 -0
  207. data/ext/cargo-vendor/libm-0.2.8/src/math/cosh.rs +38 -0
  208. data/ext/cargo-vendor/libm-0.2.8/src/math/coshf.rs +38 -0
  209. data/ext/cargo-vendor/libm-0.2.8/src/math/erf.rs +318 -0
  210. data/ext/cargo-vendor/libm-0.2.8/src/math/erff.rs +230 -0
  211. data/ext/cargo-vendor/libm-0.2.8/src/math/exp.rs +154 -0
  212. data/ext/cargo-vendor/libm-0.2.8/src/math/exp10.rs +22 -0
  213. data/ext/cargo-vendor/libm-0.2.8/src/math/exp10f.rs +22 -0
  214. data/ext/cargo-vendor/libm-0.2.8/src/math/exp2.rs +394 -0
  215. data/ext/cargo-vendor/libm-0.2.8/src/math/exp2f.rs +135 -0
  216. data/ext/cargo-vendor/libm-0.2.8/src/math/expf.rs +101 -0
  217. data/ext/cargo-vendor/libm-0.2.8/src/math/expm1.rs +144 -0
  218. data/ext/cargo-vendor/libm-0.2.8/src/math/expm1f.rs +134 -0
  219. data/ext/cargo-vendor/libm-0.2.8/src/math/expo2.rs +14 -0
  220. data/ext/cargo-vendor/libm-0.2.8/src/math/fabs.rs +41 -0
  221. data/ext/cargo-vendor/libm-0.2.8/src/math/fabsf.rs +41 -0
  222. data/ext/cargo-vendor/libm-0.2.8/src/math/fdim.rs +22 -0
  223. data/ext/cargo-vendor/libm-0.2.8/src/math/fdimf.rs +22 -0
  224. data/ext/cargo-vendor/libm-0.2.8/src/math/fenv.rs +27 -0
  225. data/ext/cargo-vendor/libm-0.2.8/src/math/floor.rs +81 -0
  226. data/ext/cargo-vendor/libm-0.2.8/src/math/floorf.rs +66 -0
  227. data/ext/cargo-vendor/libm-0.2.8/src/math/fma.rs +232 -0
  228. data/ext/cargo-vendor/libm-0.2.8/src/math/fmaf.rs +117 -0
  229. data/ext/cargo-vendor/libm-0.2.8/src/math/fmax.rs +12 -0
  230. data/ext/cargo-vendor/libm-0.2.8/src/math/fmaxf.rs +12 -0
  231. data/ext/cargo-vendor/libm-0.2.8/src/math/fmin.rs +12 -0
  232. data/ext/cargo-vendor/libm-0.2.8/src/math/fminf.rs +12 -0
  233. data/ext/cargo-vendor/libm-0.2.8/src/math/fmod.rs +80 -0
  234. data/ext/cargo-vendor/libm-0.2.8/src/math/fmodf.rs +89 -0
  235. data/ext/cargo-vendor/libm-0.2.8/src/math/frexp.rs +20 -0
  236. data/ext/cargo-vendor/libm-0.2.8/src/math/frexpf.rs +21 -0
  237. data/ext/cargo-vendor/libm-0.2.8/src/math/hypot.rs +74 -0
  238. data/ext/cargo-vendor/libm-0.2.8/src/math/hypotf.rs +43 -0
  239. data/ext/cargo-vendor/libm-0.2.8/src/math/ilogb.rs +32 -0
  240. data/ext/cargo-vendor/libm-0.2.8/src/math/ilogbf.rs +32 -0
  241. data/ext/cargo-vendor/libm-0.2.8/src/math/j0.rs +422 -0
  242. data/ext/cargo-vendor/libm-0.2.8/src/math/j0f.rs +359 -0
  243. data/ext/cargo-vendor/libm-0.2.8/src/math/j1.rs +414 -0
  244. data/ext/cargo-vendor/libm-0.2.8/src/math/j1f.rs +380 -0
  245. data/ext/cargo-vendor/libm-0.2.8/src/math/jn.rs +343 -0
  246. data/ext/cargo-vendor/libm-0.2.8/src/math/jnf.rs +259 -0
  247. data/ext/cargo-vendor/libm-0.2.8/src/math/k_cos.rs +62 -0
  248. data/ext/cargo-vendor/libm-0.2.8/src/math/k_cosf.rs +29 -0
  249. data/ext/cargo-vendor/libm-0.2.8/src/math/k_expo2.rs +14 -0
  250. data/ext/cargo-vendor/libm-0.2.8/src/math/k_expo2f.rs +14 -0
  251. data/ext/cargo-vendor/libm-0.2.8/src/math/k_sin.rs +57 -0
  252. data/ext/cargo-vendor/libm-0.2.8/src/math/k_sinf.rs +30 -0
  253. data/ext/cargo-vendor/libm-0.2.8/src/math/k_tan.rs +105 -0
  254. data/ext/cargo-vendor/libm-0.2.8/src/math/k_tanf.rs +46 -0
  255. data/ext/cargo-vendor/libm-0.2.8/src/math/ldexp.rs +4 -0
  256. data/ext/cargo-vendor/libm-0.2.8/src/math/ldexpf.rs +4 -0
  257. data/ext/cargo-vendor/libm-0.2.8/src/math/lgamma.rs +6 -0
  258. data/ext/cargo-vendor/libm-0.2.8/src/math/lgamma_r.rs +320 -0
  259. data/ext/cargo-vendor/libm-0.2.8/src/math/lgammaf.rs +6 -0
  260. data/ext/cargo-vendor/libm-0.2.8/src/math/lgammaf_r.rs +255 -0
  261. data/ext/cargo-vendor/libm-0.2.8/src/math/log.rs +117 -0
  262. data/ext/cargo-vendor/libm-0.2.8/src/math/log10.rs +117 -0
  263. data/ext/cargo-vendor/libm-0.2.8/src/math/log10f.rs +91 -0
  264. data/ext/cargo-vendor/libm-0.2.8/src/math/log1p.rs +143 -0
  265. data/ext/cargo-vendor/libm-0.2.8/src/math/log1pf.rs +98 -0
  266. data/ext/cargo-vendor/libm-0.2.8/src/math/log2.rs +106 -0
  267. data/ext/cargo-vendor/libm-0.2.8/src/math/log2f.rs +87 -0
  268. data/ext/cargo-vendor/libm-0.2.8/src/math/logf.rs +65 -0
  269. data/ext/cargo-vendor/libm-0.2.8/src/math/mod.rs +370 -0
  270. data/ext/cargo-vendor/libm-0.2.8/src/math/modf.rs +34 -0
  271. data/ext/cargo-vendor/libm-0.2.8/src/math/modff.rs +33 -0
  272. data/ext/cargo-vendor/libm-0.2.8/src/math/nextafter.rs +37 -0
  273. data/ext/cargo-vendor/libm-0.2.8/src/math/nextafterf.rs +37 -0
  274. data/ext/cargo-vendor/libm-0.2.8/src/math/pow.rs +637 -0
  275. data/ext/cargo-vendor/libm-0.2.8/src/math/powf.rs +342 -0
  276. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2.rs +233 -0
  277. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2_large.rs +470 -0
  278. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2f.rs +67 -0
  279. data/ext/cargo-vendor/libm-0.2.8/src/math/remainder.rs +5 -0
  280. data/ext/cargo-vendor/libm-0.2.8/src/math/remainderf.rs +5 -0
  281. data/ext/cargo-vendor/libm-0.2.8/src/math/remquo.rs +110 -0
  282. data/ext/cargo-vendor/libm-0.2.8/src/math/remquof.rs +97 -0
  283. data/ext/cargo-vendor/libm-0.2.8/src/math/rint.rs +58 -0
  284. data/ext/cargo-vendor/libm-0.2.8/src/math/rintf.rs +58 -0
  285. data/ext/cargo-vendor/libm-0.2.8/src/math/round.rs +28 -0
  286. data/ext/cargo-vendor/libm-0.2.8/src/math/roundf.rs +30 -0
  287. data/ext/cargo-vendor/libm-0.2.8/src/math/scalbn.rs +33 -0
  288. data/ext/cargo-vendor/libm-0.2.8/src/math/scalbnf.rs +29 -0
  289. data/ext/cargo-vendor/libm-0.2.8/src/math/sin.rs +88 -0
  290. data/ext/cargo-vendor/libm-0.2.8/src/math/sincos.rs +134 -0
  291. data/ext/cargo-vendor/libm-0.2.8/src/math/sincosf.rs +185 -0
  292. data/ext/cargo-vendor/libm-0.2.8/src/math/sinf.rs +93 -0
  293. data/ext/cargo-vendor/libm-0.2.8/src/math/sinh.rs +49 -0
  294. data/ext/cargo-vendor/libm-0.2.8/src/math/sinhf.rs +30 -0
  295. data/ext/cargo-vendor/libm-0.2.8/src/math/sqrt.rs +280 -0
  296. data/ext/cargo-vendor/libm-0.2.8/src/math/sqrtf.rs +170 -0
  297. data/ext/cargo-vendor/libm-0.2.8/src/math/tan.rs +70 -0
  298. data/ext/cargo-vendor/libm-0.2.8/src/math/tanf.rs +78 -0
  299. data/ext/cargo-vendor/libm-0.2.8/src/math/tanh.rs +53 -0
  300. data/ext/cargo-vendor/libm-0.2.8/src/math/tanhf.rs +39 -0
  301. data/ext/cargo-vendor/libm-0.2.8/src/math/tgamma.rs +208 -0
  302. data/ext/cargo-vendor/libm-0.2.8/src/math/tgammaf.rs +6 -0
  303. data/ext/cargo-vendor/libm-0.2.8/src/math/trunc.rs +40 -0
  304. data/ext/cargo-vendor/libm-0.2.8/src/math/truncf.rs +42 -0
  305. data/ext/cargo-vendor/object-0.36.3/.cargo-checksum.json +1 -0
  306. data/ext/cargo-vendor/object-0.36.3/CHANGELOG.md +1028 -0
  307. data/ext/cargo-vendor/object-0.36.3/Cargo.toml +180 -0
  308. data/ext/cargo-vendor/object-0.36.3/LICENSE-APACHE +201 -0
  309. data/ext/cargo-vendor/object-0.36.3/README.md +60 -0
  310. data/ext/cargo-vendor/object-0.36.3/src/build/bytes.rs +146 -0
  311. data/ext/cargo-vendor/object-0.36.3/src/build/elf.rs +3113 -0
  312. data/ext/cargo-vendor/object-0.36.3/src/common.rs +590 -0
  313. data/ext/cargo-vendor/object-0.36.3/src/elf.rs +6303 -0
  314. data/ext/cargo-vendor/object-0.36.3/src/endian.rs +831 -0
  315. data/ext/cargo-vendor/object-0.36.3/src/macho.rs +3303 -0
  316. data/ext/cargo-vendor/object-0.36.3/src/pod.rs +281 -0
  317. data/ext/cargo-vendor/object-0.36.3/src/read/any.rs +1334 -0
  318. data/ext/cargo-vendor/object-0.36.3/src/read/archive.rs +1133 -0
  319. data/ext/cargo-vendor/object-0.36.3/src/read/coff/comdat.rs +220 -0
  320. data/ext/cargo-vendor/object-0.36.3/src/read/coff/file.rs +381 -0
  321. data/ext/cargo-vendor/object-0.36.3/src/read/coff/relocation.rs +113 -0
  322. data/ext/cargo-vendor/object-0.36.3/src/read/coff/section.rs +619 -0
  323. data/ext/cargo-vendor/object-0.36.3/src/read/coff/symbol.rs +669 -0
  324. data/ext/cargo-vendor/object-0.36.3/src/read/elf/attributes.rs +340 -0
  325. data/ext/cargo-vendor/object-0.36.3/src/read/elf/comdat.rs +186 -0
  326. data/ext/cargo-vendor/object-0.36.3/src/read/elf/file.rs +959 -0
  327. data/ext/cargo-vendor/object-0.36.3/src/read/elf/hash.rs +236 -0
  328. data/ext/cargo-vendor/object-0.36.3/src/read/elf/note.rs +302 -0
  329. data/ext/cargo-vendor/object-0.36.3/src/read/elf/relocation.rs +661 -0
  330. data/ext/cargo-vendor/object-0.36.3/src/read/elf/section.rs +1241 -0
  331. data/ext/cargo-vendor/object-0.36.3/src/read/elf/segment.rs +365 -0
  332. data/ext/cargo-vendor/object-0.36.3/src/read/elf/symbol.rs +654 -0
  333. data/ext/cargo-vendor/object-0.36.3/src/read/elf/version.rs +513 -0
  334. data/ext/cargo-vendor/object-0.36.3/src/read/gnu_compression.rs +36 -0
  335. data/ext/cargo-vendor/object-0.36.3/src/read/macho/dyld_cache.rs +384 -0
  336. data/ext/cargo-vendor/object-0.36.3/src/read/macho/file.rs +779 -0
  337. data/ext/cargo-vendor/object-0.36.3/src/read/macho/load_command.rs +404 -0
  338. data/ext/cargo-vendor/object-0.36.3/src/read/macho/section.rs +420 -0
  339. data/ext/cargo-vendor/object-0.36.3/src/read/macho/segment.rs +317 -0
  340. data/ext/cargo-vendor/object-0.36.3/src/read/macho/symbol.rs +532 -0
  341. data/ext/cargo-vendor/object-0.36.3/src/read/mod.rs +1018 -0
  342. data/ext/cargo-vendor/object-0.36.3/src/read/pe/file.rs +1033 -0
  343. data/ext/cargo-vendor/object-0.36.3/src/read/pe/import.rs +381 -0
  344. data/ext/cargo-vendor/object-0.36.3/src/read/pe/relocation.rs +109 -0
  345. data/ext/cargo-vendor/object-0.36.3/src/read/pe/section.rs +476 -0
  346. data/ext/cargo-vendor/object-0.36.3/src/read/read_cache.rs +261 -0
  347. data/ext/cargo-vendor/object-0.36.3/src/read/traits.rs +589 -0
  348. data/ext/cargo-vendor/object-0.36.3/src/read/wasm.rs +983 -0
  349. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/file.rs +716 -0
  350. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/relocation.rs +138 -0
  351. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/section.rs +452 -0
  352. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/symbol.rs +836 -0
  353. data/ext/cargo-vendor/object-0.36.3/src/write/coff/object.rs +681 -0
  354. data/ext/cargo-vendor/object-0.36.3/src/write/coff/writer.rs +520 -0
  355. data/ext/cargo-vendor/object-0.36.3/src/write/elf/object.rs +897 -0
  356. data/ext/cargo-vendor/object-0.36.3/src/write/elf/writer.rs +2361 -0
  357. data/ext/cargo-vendor/object-0.36.3/src/write/macho.rs +1124 -0
  358. data/ext/cargo-vendor/object-0.36.3/src/write/mod.rs +1023 -0
  359. data/ext/cargo-vendor/object-0.36.3/src/write/pe.rs +849 -0
  360. data/ext/cargo-vendor/object-0.36.3/src/write/xcoff.rs +588 -0
  361. data/ext/cargo-vendor/object-0.36.3/tests/build/elf.rs +254 -0
  362. data/ext/cargo-vendor/object-0.36.3/tests/build/mod.rs +3 -0
  363. data/ext/cargo-vendor/object-0.36.3/tests/integration.rs +3 -0
  364. data/ext/cargo-vendor/object-0.36.3/tests/read/macho.rs +49 -0
  365. data/ext/cargo-vendor/object-0.36.3/tests/read/mod.rs +5 -0
  366. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/bss.rs +244 -0
  367. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/comdat.rs +217 -0
  368. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/common.rs +241 -0
  369. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/elf.rs +302 -0
  370. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/mod.rs +682 -0
  371. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/section_flags.rs +89 -0
  372. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/tls.rs +308 -0
  373. data/ext/cargo-vendor/postcard-1.0.8/.cargo-checksum.json +1 -0
  374. data/ext/cargo-vendor/postcard-1.0.8/CHANGELOG.md +141 -0
  375. data/ext/cargo-vendor/postcard-1.0.8/Cargo.toml +100 -0
  376. data/ext/cargo-vendor/postcard-1.0.8/LICENSE-APACHE +201 -0
  377. data/ext/cargo-vendor/postcard-1.0.8/LICENSE-MIT +25 -0
  378. data/ext/cargo-vendor/postcard-1.0.8/README.md +146 -0
  379. data/ext/cargo-vendor/postcard-1.0.8/spec/LICENSE-CC-BY-SA +427 -0
  380. data/ext/cargo-vendor/postcard-1.0.8/spec/book.toml +6 -0
  381. data/ext/cargo-vendor/postcard-1.0.8/spec/src/SUMMARY.md +6 -0
  382. data/ext/cargo-vendor/postcard-1.0.8/spec/src/glossary.md +17 -0
  383. data/ext/cargo-vendor/postcard-1.0.8/spec/src/intro.md +12 -0
  384. data/ext/cargo-vendor/postcard-1.0.8/spec/src/serde-data-model.md +190 -0
  385. data/ext/cargo-vendor/postcard-1.0.8/spec/src/wire-format.md +327 -0
  386. data/ext/cargo-vendor/postcard-1.0.8/src/accumulator.rs +367 -0
  387. data/ext/cargo-vendor/postcard-1.0.8/src/de/deserializer.rs +599 -0
  388. data/ext/cargo-vendor/postcard-1.0.8/src/de/flavors.rs +468 -0
  389. data/ext/cargo-vendor/postcard-1.0.8/src/de/mod.rs +568 -0
  390. data/ext/cargo-vendor/postcard-1.0.8/src/error.rs +95 -0
  391. data/ext/cargo-vendor/postcard-1.0.8/src/fixint.rs +189 -0
  392. data/ext/cargo-vendor/postcard-1.0.8/src/lib.rs +143 -0
  393. data/ext/cargo-vendor/postcard-1.0.8/src/max_size.rs +233 -0
  394. data/ext/cargo-vendor/postcard-1.0.8/src/schema.rs +282 -0
  395. data/ext/cargo-vendor/postcard-1.0.8/src/ser/flavors.rs +722 -0
  396. data/ext/cargo-vendor/postcard-1.0.8/src/ser/mod.rs +866 -0
  397. data/ext/cargo-vendor/postcard-1.0.8/src/ser/serializer.rs +564 -0
  398. data/ext/cargo-vendor/postcard-1.0.8/src/varint.rs +103 -0
  399. data/ext/cargo-vendor/postcard-1.0.8/tests/accumulator.rs +57 -0
  400. data/ext/cargo-vendor/postcard-1.0.8/tests/crc.rs +60 -0
  401. data/ext/cargo-vendor/postcard-1.0.8/tests/loopback.rs +248 -0
  402. data/ext/cargo-vendor/postcard-1.0.8/tests/max_size.rs +101 -0
  403. data/ext/cargo-vendor/postcard-1.0.8/tests/schema.rs +107 -0
  404. data/ext/cargo-vendor/rb-sys-0.9.100/.cargo-checksum.json +1 -0
  405. data/ext/cargo-vendor/rb-sys-0.9.100/Cargo.toml +58 -0
  406. data/ext/cargo-vendor/rb-sys-0.9.100/build/main.rs +267 -0
  407. data/ext/cargo-vendor/rb-sys-0.9.100/build/stable_api_config.rs +139 -0
  408. data/ext/cargo-vendor/rb-sys-0.9.100/src/bindings.rs +21 -0
  409. data/ext/cargo-vendor/rb-sys-0.9.100/src/tracking_allocator.rs +266 -0
  410. data/ext/cargo-vendor/rb-sys-build-0.9.100/.cargo-checksum.json +1 -0
  411. data/ext/cargo-vendor/rb-sys-build-0.9.100/Cargo.toml +62 -0
  412. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/bindings/stable_api.rs +203 -0
  413. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/bindings.rs +254 -0
  414. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/cc.rs +374 -0
  415. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/utils.rs +52 -0
  416. data/ext/cargo-vendor/wasi-common-22.0.0/.cargo-checksum.json +1 -0
  417. data/ext/cargo-vendor/wasi-common-22.0.0/Cargo.toml +224 -0
  418. data/ext/cargo-vendor/wasi-common-22.0.0/src/snapshots/preview_0.rs +1080 -0
  419. data/ext/cargo-vendor/wasi-common-22.0.0/src/snapshots/preview_1.rs +1562 -0
  420. data/ext/cargo-vendor/wasi-common-22.0.0/src/string_array.rs +75 -0
  421. data/ext/cargo-vendor/wasi-common-22.0.0/src/sync/sched/windows.rs +221 -0
  422. data/ext/cargo-vendor/wasi-common-22.0.0/src/tokio/file.rs +247 -0
  423. data/ext/cargo-vendor/wasi-common-22.0.0/tests/all/async_.rs +293 -0
  424. data/ext/cargo-vendor/wasi-common-22.0.0/tests/all/main.rs +21 -0
  425. data/ext/cargo-vendor/wasi-common-22.0.0/tests/all/sync.rs +279 -0
  426. data/ext/cargo-vendor/wasmparser-0.209.1/.cargo-checksum.json +1 -0
  427. data/ext/cargo-vendor/wasmparser-0.209.1/Cargo.lock +662 -0
  428. data/ext/cargo-vendor/wasmparser-0.209.1/Cargo.toml +109 -0
  429. data/ext/cargo-vendor/wasmparser-0.209.1/src/binary_reader.rs +1929 -0
  430. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/hash.rs +120 -0
  431. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_map/detail.rs +1094 -0
  432. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_map/tests.rs +183 -0
  433. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_map.rs +656 -0
  434. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_set.rs +316 -0
  435. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/map.rs +840 -0
  436. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/mod.rs +24 -0
  437. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/set.rs +660 -0
  438. data/ext/cargo-vendor/wasmparser-0.209.1/src/features.rs +164 -0
  439. data/ext/cargo-vendor/wasmparser-0.209.1/src/lib.rs +814 -0
  440. data/ext/cargo-vendor/wasmparser-0.209.1/src/limits.rs +79 -0
  441. data/ext/cargo-vendor/wasmparser-0.209.1/src/parser.rs +1682 -0
  442. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/canonicals.rs +121 -0
  443. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/imports.rs +130 -0
  444. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/instances.rs +166 -0
  445. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/names.rs +99 -0
  446. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/start.rs +31 -0
  447. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/types.rs +553 -0
  448. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/branch_hinting.rs +59 -0
  449. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/code.rs +142 -0
  450. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/coredumps.rs +278 -0
  451. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/custom.rs +128 -0
  452. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/data.rs +96 -0
  453. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/dylink0.rs +110 -0
  454. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/elements.rs +146 -0
  455. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/globals.rs +61 -0
  456. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/init.rs +57 -0
  457. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/linking.rs +457 -0
  458. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/memories.rs +57 -0
  459. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/names.rs +159 -0
  460. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/operators.rs +423 -0
  461. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/producers.rs +84 -0
  462. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/reloc.rs +300 -0
  463. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/tables.rs +93 -0
  464. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/types/matches.rs +277 -0
  465. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/types.rs +1788 -0
  466. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core.rs +43 -0
  467. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers.rs +315 -0
  468. data/ext/cargo-vendor/wasmparser-0.209.1/src/resources.rs +235 -0
  469. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/component.rs +3236 -0
  470. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/core/canonical.rs +233 -0
  471. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/core.rs +1464 -0
  472. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/func.rs +331 -0
  473. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/names.rs +1016 -0
  474. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/operators.rs +4231 -0
  475. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/types.rs +4550 -0
  476. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator.rs +1633 -0
  477. data/ext/cargo-vendor/wasmprinter-0.209.1/.cargo-checksum.json +1 -0
  478. data/ext/cargo-vendor/wasmprinter-0.209.1/Cargo.toml +51 -0
  479. data/ext/cargo-vendor/wasmprinter-0.209.1/src/lib.rs +3225 -0
  480. data/ext/cargo-vendor/wasmprinter-0.209.1/src/operator.rs +1171 -0
  481. data/ext/cargo-vendor/wasmprinter-0.209.1/tests/all.rs +293 -0
  482. data/ext/cargo-vendor/wasmtime-22.0.0/.cargo-checksum.json +1 -0
  483. data/ext/cargo-vendor/wasmtime-22.0.0/Cargo.toml +387 -0
  484. data/ext/cargo-vendor/wasmtime-22.0.0/build.rs +42 -0
  485. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile/code_builder.rs +275 -0
  486. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile/runtime.rs +167 -0
  487. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile.rs +917 -0
  488. data/ext/cargo-vendor/wasmtime-22.0.0/src/config.rs +2943 -0
  489. data/ext/cargo-vendor/wasmtime-22.0.0/src/engine/serialization.rs +890 -0
  490. data/ext/cargo-vendor/wasmtime-22.0.0/src/engine.rs +728 -0
  491. data/ext/cargo-vendor/wasmtime-22.0.0/src/lib.rs +389 -0
  492. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/jitdump.rs +67 -0
  493. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/perfmap.rs +48 -0
  494. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/vtune.rs +81 -0
  495. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent.rs +106 -0
  496. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/code.rs +102 -0
  497. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/code_memory.rs +338 -0
  498. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_0_hello_world.rs +9 -0
  499. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_1_world_imports.rs +17 -0
  500. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_2_world_exports.rs +18 -0
  501. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_3_interface_imports.rs +20 -0
  502. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_4_imported_resources.rs +45 -0
  503. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_5_all_world_export_kinds.rs +29 -0
  504. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_6_exported_resources.rs +26 -0
  505. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/mod.rs +489 -0
  506. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/component.rs +656 -0
  507. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/host.rs +440 -0
  508. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/options.rs +555 -0
  509. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/typed.rs +2498 -0
  510. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func.rs +689 -0
  511. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/instance.rs +810 -0
  512. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/linker.rs +854 -0
  513. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/matching.rs +217 -0
  514. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/mod.rs +657 -0
  515. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/resource_table.rs +355 -0
  516. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/resources.rs +1133 -0
  517. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/storage.rs +43 -0
  518. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/store.rs +29 -0
  519. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/types.rs +897 -0
  520. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/values.rs +980 -0
  521. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/coredump.rs +342 -0
  522. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/debug.rs +166 -0
  523. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals/global.rs +310 -0
  524. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals/table.rs +481 -0
  525. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals.rs +236 -0
  526. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/func/typed.rs +780 -0
  527. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/func.rs +2564 -0
  528. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/disabled/anyref.rs +46 -0
  529. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/disabled/externref.rs +50 -0
  530. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/disabled/rooting.rs +224 -0
  531. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/anyref.rs +410 -0
  532. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/externref.rs +592 -0
  533. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/i31.rs +299 -0
  534. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/rooting.rs +1588 -0
  535. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/noextern.rs +154 -0
  536. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc.rs +92 -0
  537. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/instance.rs +992 -0
  538. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/instantiate.rs +337 -0
  539. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/limits.rs +399 -0
  540. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/linker.rs +1499 -0
  541. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/memory.rs +998 -0
  542. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/module/registry.rs +353 -0
  543. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/module.rs +1322 -0
  544. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/profiling.rs +221 -0
  545. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/resources.rs +33 -0
  546. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/signatures.rs +216 -0
  547. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/stack.rs +73 -0
  548. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store/context.rs +243 -0
  549. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store/data.rs +301 -0
  550. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store/func_refs.rs +90 -0
  551. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store.rs +2824 -0
  552. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/func.rs +94 -0
  553. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/global.rs +68 -0
  554. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/memory.rs +287 -0
  555. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/table.rs +29 -0
  556. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline.rs +78 -0
  557. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trap.rs +642 -0
  558. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/type_registry.rs +1015 -0
  559. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/types/matching.rs +421 -0
  560. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/types.rs +2580 -0
  561. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/unix.rs +40 -0
  562. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/v128.rs +116 -0
  563. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/values.rs +966 -0
  564. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/arch/aarch64.rs +76 -0
  565. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/arch/x86_64.rs +41 -0
  566. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/async_yield.rs +35 -0
  567. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component/libcalls.rs +571 -0
  568. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component/resources.rs +352 -0
  569. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component.rs +857 -0
  570. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/const_expr.rs +102 -0
  571. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/cow.rs +972 -0
  572. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/debug_builtins.rs +59 -0
  573. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/export.rs +108 -0
  574. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/disabled.rs +24 -0
  575. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled/drc.rs +968 -0
  576. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled/externref.rs +116 -0
  577. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled/free_list.rs +771 -0
  578. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled.rs +18 -0
  579. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/gc_ref.rs +491 -0
  580. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/gc_runtime.rs +506 -0
  581. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/host_data.rs +82 -0
  582. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/i31.rs +87 -0
  583. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc.rs +245 -0
  584. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/imports.rs +29 -0
  585. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/on_demand.rs +220 -0
  586. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/decommit_queue.rs +194 -0
  587. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +94 -0
  588. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +78 -0
  589. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +707 -0
  590. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +975 -0
  591. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/table_pool.rs +245 -0
  592. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +278 -0
  593. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling.rs +794 -0
  594. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator.rs +801 -0
  595. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance.rs +1514 -0
  596. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/libcalls.rs +834 -0
  597. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/memory.rs +736 -0
  598. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mmap.rs +220 -0
  599. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mmap_vec.rs +162 -0
  600. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/module_id.rs +43 -0
  601. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/enabled.rs +214 -0
  602. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/mod.rs +54 -0
  603. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/pkru.rs +104 -0
  604. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/sys.rs +114 -0
  605. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/send_sync_ptr.rs +106 -0
  606. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/store_box.rs +37 -0
  607. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/capi.rs +200 -0
  608. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/mmap.rs +112 -0
  609. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/mod.rs +34 -0
  610. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/traphandlers.rs +55 -0
  611. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/vm.rs +105 -0
  612. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/mmap.rs +95 -0
  613. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/mod.rs +24 -0
  614. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/traphandlers.rs +47 -0
  615. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/vm.rs +59 -0
  616. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/mod.rs +36 -0
  617. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/machports.rs +416 -0
  618. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/mmap.rs +162 -0
  619. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/mod.rs +35 -0
  620. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/signals.rs +407 -0
  621. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/unwind.rs +150 -0
  622. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/vm.rs +190 -0
  623. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/mmap.rs +221 -0
  624. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/mod.rs +20 -0
  625. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/traphandlers.rs +104 -0
  626. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/vm.rs +75 -0
  627. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/table.rs +899 -0
  628. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/threads/parking_spot.rs +623 -0
  629. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/threads/shared_memory.rs +233 -0
  630. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/threads/shared_memory_disabled.rs +101 -0
  631. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers/backtrace.rs +267 -0
  632. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers/coredump_disabled.rs +16 -0
  633. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers/coredump_enabled.rs +42 -0
  634. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers.rs +768 -0
  635. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/vmcontext/vm_host_func_context.rs +79 -0
  636. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/vmcontext.rs +1302 -0
  637. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm.rs +277 -0
  638. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/windows.rs +35 -0
  639. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime.rs +113 -0
  640. data/ext/cargo-vendor/wasmtime-22.0.0/src/sync_nostd.rs +255 -0
  641. data/ext/cargo-vendor/wasmtime-22.0.0/src/sync_std.rs +52 -0
  642. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/.cargo-checksum.json +1 -0
  643. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/Cargo.toml +22 -0
  644. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/src/lib.rs +83 -0
  645. data/ext/cargo-vendor/wasmtime-cache-22.0.0/.cargo-checksum.json +1 -0
  646. data/ext/cargo-vendor/wasmtime-cache-22.0.0/Cargo.toml +89 -0
  647. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/config.rs +584 -0
  648. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/lib.rs +235 -0
  649. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/tests.rs +91 -0
  650. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/worker/tests.rs +758 -0
  651. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/worker.rs +890 -0
  652. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/.cargo-checksum.json +1 -0
  653. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/Cargo.toml +86 -0
  654. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/src/bindgen.rs +493 -0
  655. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/src/component.rs +1330 -0
  656. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/codegen.rs +651 -0
  657. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/codegen_no_std.rs +16 -0
  658. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/char.rs +198 -0
  659. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/char_async.rs +215 -0
  660. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/conventions.rs +586 -0
  661. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/conventions_async.rs +631 -0
  662. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/dead-code.rs +165 -0
  663. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/dead-code_async.rs +178 -0
  664. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/direct-import.rs +91 -0
  665. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/direct-import_async.rs +97 -0
  666. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/empty.rs +45 -0
  667. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/empty_async.rs +45 -0
  668. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/flags.rs +637 -0
  669. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/flags_async.rs +679 -0
  670. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/floats.rs +255 -0
  671. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/floats_async.rs +282 -0
  672. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/function-new.rs +59 -0
  673. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/function-new_async.rs +62 -0
  674. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/integers.rs +722 -0
  675. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/integers_async.rs +819 -0
  676. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/lists.rs +1743 -0
  677. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/lists_async.rs +1927 -0
  678. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/many-arguments.rs +543 -0
  679. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/many-arguments_async.rs +561 -0
  680. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multi-return.rs +270 -0
  681. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multi-return_async.rs +298 -0
  682. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multiversion.rs +251 -0
  683. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multiversion_async.rs +270 -0
  684. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/records.rs +815 -0
  685. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/records_async.rs +877 -0
  686. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/rename.rs +154 -0
  687. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/rename_async.rs +167 -0
  688. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-export.rs +467 -0
  689. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-export_async.rs +516 -0
  690. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-import.rs +1014 -0
  691. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-import_async.rs +1086 -0
  692. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/share-types.rs +249 -0
  693. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/share-types_async.rs +265 -0
  694. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-functions.rs +313 -0
  695. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-functions_async.rs +347 -0
  696. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-lists.rs +350 -0
  697. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-lists_async.rs +381 -0
  698. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-wasi.rs +216 -0
  699. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-wasi_async.rs +229 -0
  700. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/small-anonymous.rs +275 -0
  701. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/small-anonymous_async.rs +287 -0
  702. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-default.rs +59 -0
  703. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-default_async.rs +62 -0
  704. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-export.rs +86 -0
  705. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-export_async.rs +89 -0
  706. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke.rs +104 -0
  707. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke_async.rs +111 -0
  708. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/strings.rs +247 -0
  709. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/strings_async.rs +269 -0
  710. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/unversioned-foo.rs +136 -0
  711. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/unversioned-foo_async.rs +143 -0
  712. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/use-paths.rs +288 -0
  713. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/use-paths_async.rs +314 -0
  714. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/variants.rs +1750 -0
  715. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/variants_async.rs +1867 -0
  716. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/wat.rs +84 -0
  717. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/wat_async.rs +84 -0
  718. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/worlds-with-types.rs +138 -0
  719. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/worlds-with-types_async.rs +148 -0
  720. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded.rs +65 -0
  721. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/.cargo-checksum.json +1 -0
  722. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/Cargo.toml +25 -0
  723. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/src/lib.rs +182 -0
  724. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/.cargo-checksum.json +1 -0
  725. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/Cargo.toml +115 -0
  726. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/compiler/component.rs +957 -0
  727. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/compiler.rs +1067 -0
  728. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/gc.rs +252 -0
  729. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/address_transform.rs +783 -0
  730. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/attr.rs +320 -0
  731. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/expression.rs +1248 -0
  732. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/line_program.rs +287 -0
  733. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/mod.rs +256 -0
  734. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/simulate.rs +411 -0
  735. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/unit.rs +529 -0
  736. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/utils.rs +186 -0
  737. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/write_debuginfo.rs +196 -0
  738. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug.rs +18 -0
  739. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/func_environ.rs +2910 -0
  740. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/gc/enabled.rs +648 -0
  741. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/gc.rs +198 -0
  742. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/lib.rs +462 -0
  743. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/obj.rs +545 -0
  744. data/ext/cargo-vendor/wasmtime-environ-22.0.0/.cargo-checksum.json +1 -0
  745. data/ext/cargo-vendor/wasmtime-environ-22.0.0/Cargo.lock +774 -0
  746. data/ext/cargo-vendor/wasmtime-environ-22.0.0/Cargo.toml +161 -0
  747. data/ext/cargo-vendor/wasmtime-environ-22.0.0/examples/factc.rs +198 -0
  748. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/address_map.rs +73 -0
  749. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/mod.rs +374 -0
  750. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_artifacts.rs +315 -0
  751. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_environ.rs +1348 -0
  752. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_types.rs +455 -0
  753. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/trap_encoding.rs +70 -0
  754. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/artifacts.rs +68 -0
  755. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/compiler.rs +20 -0
  756. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/dfg.rs +691 -0
  757. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/info.rs +672 -0
  758. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/translate/adapt.rs +455 -0
  759. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/translate.rs +985 -0
  760. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types.rs +1038 -0
  761. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types_builder/resources.rs +233 -0
  762. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types_builder.rs +1004 -0
  763. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component.rs +107 -0
  764. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/demangling.rs +28 -0
  765. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/core_types.rs +25 -0
  766. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/signature.rs +119 -0
  767. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/trampoline.rs +3234 -0
  768. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/transcode.rs +90 -0
  769. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/traps.rs +116 -0
  770. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact.rs +714 -0
  771. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/lib.rs +151 -0
  772. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module.rs +704 -0
  773. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module_artifacts.rs +144 -0
  774. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module_types.rs +139 -0
  775. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/ref_bits.rs +36 -0
  776. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/scopevec.rs +80 -0
  777. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/stack_map.rs +37 -0
  778. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/trap_encoding.rs +189 -0
  779. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/tunables.rs +175 -0
  780. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/vmoffsets.rs +989 -0
  781. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/.cargo-checksum.json +1 -0
  782. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/Cargo.toml +65 -0
  783. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/build.rs +39 -0
  784. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/src/lib.rs +340 -0
  785. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/src/unix.rs +494 -0
  786. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/src/windows.rs +170 -0
  787. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/.cargo-checksum.json +1 -0
  788. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/Cargo.toml +68 -0
  789. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/src/gdb_jit_int.rs +130 -0
  790. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/src/perf_jitdump.rs +293 -0
  791. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/.cargo-checksum.json +1 -0
  792. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/Cargo.toml +52 -0
  793. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/src/lib.rs +109 -0
  794. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/src/libc.rs +164 -0
  795. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/src/miri.rs +10 -0
  796. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/src/win.rs +49 -0
  797. data/ext/cargo-vendor/wasmtime-slab-22.0.0/.cargo-checksum.json +1 -0
  798. data/ext/cargo-vendor/wasmtime-slab-22.0.0/Cargo.toml +21 -0
  799. data/ext/cargo-vendor/wasmtime-slab-22.0.0/src/lib.rs +498 -0
  800. data/ext/cargo-vendor/wasmtime-types-22.0.0/.cargo-checksum.json +1 -0
  801. data/ext/cargo-vendor/wasmtime-types-22.0.0/Cargo.toml +56 -0
  802. data/ext/cargo-vendor/wasmtime-types-22.0.0/src/error.rs +81 -0
  803. data/ext/cargo-vendor/wasmtime-types-22.0.0/src/lib.rs +1737 -0
  804. data/ext/cargo-vendor/wasmtime-versioned-export-macros-22.0.0/.cargo-checksum.json +1 -0
  805. data/ext/cargo-vendor/wasmtime-versioned-export-macros-22.0.0/Cargo.toml +32 -0
  806. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/.cargo-checksum.json +1 -0
  807. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/Cargo.toml +201 -0
  808. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/bindings.rs +289 -0
  809. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/ctx.rs +704 -0
  810. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/filesystem.rs +446 -0
  811. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/clocks.rs +109 -0
  812. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/env.rs +18 -0
  813. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/exit.rs +14 -0
  814. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/filesystem/sync.rs +525 -0
  815. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/filesystem.rs +1091 -0
  816. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/instance_network.rs +18 -0
  817. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/io.rs +388 -0
  818. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/network.rs +545 -0
  819. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/random.rs +45 -0
  820. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/tcp.rs +547 -0
  821. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/tcp_create_socket.rs +18 -0
  822. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/udp.rs +762 -0
  823. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/udp_create_socket.rs +18 -0
  824. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/ip_name_lookup.rs +132 -0
  825. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/lib.rs +417 -0
  826. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/network.rs +113 -0
  827. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/pipe.rs +826 -0
  828. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/poll.rs +245 -0
  829. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/preview0.rs +983 -0
  830. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/preview1.rs +2801 -0
  831. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/stdio.rs +533 -0
  832. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/api.rs +198 -0
  833. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/async_.rs +397 -0
  834. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/main.rs +91 -0
  835. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/preview1.rs +251 -0
  836. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/sync.rs +331 -0
  837. data/ext/cargo-vendor/wasmtime-winch-22.0.0/.cargo-checksum.json +1 -0
  838. data/ext/cargo-vendor/wasmtime-winch-22.0.0/Cargo.toml +82 -0
  839. data/ext/cargo-vendor/wasmtime-winch-22.0.0/src/compiler.rs +239 -0
  840. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/.cargo-checksum.json +1 -0
  841. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/Cargo.toml +47 -0
  842. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/lib.rs +2639 -0
  843. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/rust.rs +427 -0
  844. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/types.rs +202 -0
  845. data/ext/cargo-vendor/wiggle-22.0.0/.cargo-checksum.json +1 -0
  846. data/ext/cargo-vendor/wiggle-22.0.0/Cargo.toml +124 -0
  847. data/ext/cargo-vendor/wiggle-22.0.0/src/guest_type.rs +200 -0
  848. data/ext/cargo-vendor/wiggle-22.0.0/src/lib.rs +605 -0
  849. data/ext/cargo-vendor/wiggle-generate-22.0.0/.cargo-checksum.json +1 -0
  850. data/ext/cargo-vendor/wiggle-generate-22.0.0/Cargo.toml +67 -0
  851. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/funcs.rs +434 -0
  852. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/module_trait.rs +89 -0
  853. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/names.rs +299 -0
  854. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/flags.rs +92 -0
  855. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/handle.rs +84 -0
  856. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/mod.rs +129 -0
  857. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/record.rs +129 -0
  858. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/variant.rs +186 -0
  859. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/wasmtime.rs +172 -0
  860. data/ext/cargo-vendor/wiggle-macro-22.0.0/.cargo-checksum.json +1 -0
  861. data/ext/cargo-vendor/wiggle-macro-22.0.0/Cargo.toml +51 -0
  862. data/ext/cargo-vendor/wiggle-macro-22.0.0/build.rs +5 -0
  863. data/ext/cargo-vendor/wiggle-macro-22.0.0/src/lib.rs +233 -0
  864. data/ext/cargo-vendor/winch-codegen-0.20.0/.cargo-checksum.json +1 -0
  865. data/ext/cargo-vendor/winch-codegen-0.20.0/Cargo.toml +77 -0
  866. data/ext/cargo-vendor/winch-codegen-0.20.0/src/abi/mod.rs +671 -0
  867. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/context.rs +536 -0
  868. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/control.rs +972 -0
  869. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/env.rs +448 -0
  870. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/mod.rs +882 -0
  871. data/ext/cargo-vendor/winch-codegen-0.20.0/src/frame/mod.rs +258 -0
  872. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/abi.rs +291 -0
  873. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/address.rs +143 -0
  874. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/asm.rs +430 -0
  875. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/masm.rs +572 -0
  876. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/mod.rs +158 -0
  877. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/regs.rs +161 -0
  878. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/reg.rs +73 -0
  879. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/x64/asm.rs +1423 -0
  880. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/x64/masm.rs +1120 -0
  881. data/ext/cargo-vendor/winch-codegen-0.20.0/src/masm.rs +941 -0
  882. data/ext/cargo-vendor/winch-codegen-0.20.0/src/regalloc.rs +65 -0
  883. data/ext/cargo-vendor/winch-codegen-0.20.0/src/regset.rs +194 -0
  884. data/ext/cargo-vendor/winch-codegen-0.20.0/src/stack.rs +439 -0
  885. data/ext/cargo-vendor/winch-codegen-0.20.0/src/visitor.rs +2149 -0
  886. data/ext/cargo-vendor/wit-parser-0.209.1/.cargo-checksum.json +1 -0
  887. data/ext/cargo-vendor/wit-parser-0.209.1/Cargo.toml +112 -0
  888. data/ext/cargo-vendor/wit-parser-0.209.1/src/ast/resolve.rs +1524 -0
  889. data/ext/cargo-vendor/wit-parser-0.209.1/src/ast.rs +1668 -0
  890. data/ext/cargo-vendor/wit-parser-0.209.1/src/decoding.rs +1795 -0
  891. data/ext/cargo-vendor/wit-parser-0.209.1/src/lib.rs +873 -0
  892. data/ext/cargo-vendor/wit-parser-0.209.1/src/live.rs +126 -0
  893. data/ext/cargo-vendor/wit-parser-0.209.1/src/metadata.rs +772 -0
  894. data/ext/cargo-vendor/wit-parser-0.209.1/src/resolve.rs +2498 -0
  895. data/ext/cargo-vendor/wit-parser-0.209.1/src/serde_.rs +124 -0
  896. data/ext/cargo-vendor/wit-parser-0.209.1/tests/all.rs +154 -0
  897. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/complex-include.wit.json +200 -0
  898. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/diamond1.wit.json +59 -0
  899. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/disambiguate-diamond.wit.json +115 -0
  900. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/feature-gates.wit +118 -0
  901. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/feature-gates.wit.json +288 -0
  902. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/foreign-deps-union.wit.json +410 -0
  903. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/foreign-deps.wit.json +362 -0
  904. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/ignore-files-deps.wit.json +41 -0
  905. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/import-export-overlap2.wit.json +43 -0
  906. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/include-reps.wit.json +68 -0
  907. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/kinds-of-deps.wit.json +95 -0
  908. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/many-names.wit.json +42 -0
  909. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/multi-file.wit.json +304 -0
  910. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate1.wit +8 -0
  911. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate1.wit.result +5 -0
  912. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate2.wit +8 -0
  913. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate2.wit.result +5 -0
  914. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate3.wit +6 -0
  915. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate3.wit.result +8 -0
  916. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate4.wit +8 -0
  917. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate4.wit.result +8 -0
  918. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate5.wit +11 -0
  919. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate5.wit.result +8 -0
  920. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since1.wit +4 -0
  921. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since1.wit.result +5 -0
  922. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since3.wit +5 -0
  923. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since3.wit.result +5 -0
  924. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/conflicting-package.wit.result +10 -0
  925. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/multiple-package-docs.wit.result +10 -0
  926. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +8 -0
  927. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/resources-return-borrow.wit.result +8 -0
  928. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow1.wit +7 -0
  929. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow1.wit.result +8 -0
  930. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow2.wit +8 -0
  931. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow2.wit.result +8 -0
  932. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow3.wit +7 -0
  933. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow3.wit.result +5 -0
  934. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow4.wit +7 -0
  935. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow4.wit.result +5 -0
  936. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow5.wit +7 -0
  937. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow5.wit.result +5 -0
  938. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow6.wit +7 -0
  939. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow6.wit.result +8 -0
  940. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow7.wit +11 -0
  941. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow7.wit.result +8 -0
  942. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow8/deps/baz.wit +9 -0
  943. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow8/foo.wit +7 -0
  944. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow8.wit.result +9 -0
  945. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/shared-types.wit.json +87 -0
  946. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/since-and-unstable.wit +89 -0
  947. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/since-and-unstable.wit.json +549 -0
  948. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/stress-export-elaborate.wit.json +1156 -0
  949. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-diamond.wit.json +124 -0
  950. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-iface-no-collide.wit.json +68 -0
  951. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-implicit-import1.wit.json +81 -0
  952. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-implicit-import2.wit.json +72 -0
  953. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-implicit-import3.wit.json +73 -0
  954. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-same-fields4.wit.json +82 -0
  955. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-top-level-resources.wit +24 -0
  956. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-top-level-resources.wit.json +237 -0
  957. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/worlds-union-dedup.wit.json +112 -0
  958. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/worlds-with-types.wit.json +204 -0
  959. data/ext/src/lib.rs +1 -0
  960. data/ext/src/ruby_api/config.rs +1 -12
  961. data/ext/src/ruby_api/engine.rs +3 -6
  962. data/ext/src/ruby_api/pooling_allocation_config.rs +6 -6
  963. data/ext/src/ruby_api/store.rs +68 -5
  964. data/lib/wasmtime/version.rb +1 -1
  965. metadata +1766 -1507
  966. data/ext/cargo-vendor/bincode-1.3.3/.cargo-checksum.json +0 -1
  967. data/ext/cargo-vendor/bincode-1.3.3/Cargo.toml +0 -37
  968. data/ext/cargo-vendor/bincode-1.3.3/LICENSE.md +0 -21
  969. data/ext/cargo-vendor/bincode-1.3.3/readme.md +0 -112
  970. data/ext/cargo-vendor/bincode-1.3.3/src/byteorder.rs +0 -385
  971. data/ext/cargo-vendor/bincode-1.3.3/src/config/endian.rs +0 -27
  972. data/ext/cargo-vendor/bincode-1.3.3/src/config/int.rs +0 -682
  973. data/ext/cargo-vendor/bincode-1.3.3/src/config/legacy.rs +0 -253
  974. data/ext/cargo-vendor/bincode-1.3.3/src/config/limit.rs +0 -49
  975. data/ext/cargo-vendor/bincode-1.3.3/src/config/mod.rs +0 -408
  976. data/ext/cargo-vendor/bincode-1.3.3/src/config/trailing.rs +0 -37
  977. data/ext/cargo-vendor/bincode-1.3.3/src/de/mod.rs +0 -515
  978. data/ext/cargo-vendor/bincode-1.3.3/src/de/read.rs +0 -202
  979. data/ext/cargo-vendor/bincode-1.3.3/src/error.rs +0 -115
  980. data/ext/cargo-vendor/bincode-1.3.3/src/internal.rs +0 -124
  981. data/ext/cargo-vendor/bincode-1.3.3/src/lib.rs +0 -201
  982. data/ext/cargo-vendor/bincode-1.3.3/src/ser/mod.rs +0 -772
  983. data/ext/cargo-vendor/bincode-1.3.3/tests/test.rs +0 -899
  984. data/ext/cargo-vendor/cranelift-bforest-0.107.2/.cargo-checksum.json +0 -1
  985. data/ext/cargo-vendor/cranelift-bforest-0.107.2/Cargo.toml +0 -40
  986. data/ext/cargo-vendor/cranelift-codegen-0.107.2/.cargo-checksum.json +0 -1
  987. data/ext/cargo-vendor/cranelift-codegen-0.107.2/Cargo.toml +0 -178
  988. data/ext/cargo-vendor/cranelift-codegen-0.107.2/build.rs +0 -396
  989. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/alias_analysis.rs +0 -403
  990. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/context.rs +0 -386
  991. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ctxhash.rs +0 -167
  992. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/dce.rs +0 -37
  993. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/dominator_tree.rs +0 -803
  994. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph/elaborate.rs +0 -835
  995. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph.rs +0 -838
  996. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/fx.rs +0 -105
  997. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/incremental_cache.rs +0 -256
  998. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/inst_predicates.rs +0 -236
  999. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/dfg.rs +0 -1777
  1000. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/extfunc.rs +0 -411
  1001. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/immediates.rs +0 -1612
  1002. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/instructions.rs +0 -1019
  1003. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/stackslot.rs +0 -216
  1004. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/types.rs +0 -629
  1005. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/abi.rs +0 -1707
  1006. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/args.rs +0 -779
  1007. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/emit.rs +0 -3932
  1008. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/emit_tests.rs +0 -7919
  1009. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/imms.rs +0 -1218
  1010. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/mod.rs +0 -3083
  1011. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/regs.rs +0 -292
  1012. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/unwind/systemv.rs +0 -174
  1013. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst.isle +0 -4218
  1014. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/lower/isle.rs +0 -884
  1015. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/pcc.rs +0 -565
  1016. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/mod.rs +0 -432
  1017. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/abi.rs +0 -1109
  1018. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/args.rs +0 -1968
  1019. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/emit.rs +0 -3466
  1020. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/emit_tests.rs +0 -2146
  1021. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/encode.rs +0 -654
  1022. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/imms.rs +0 -374
  1023. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/mod.rs +0 -2041
  1024. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/regs.rs +0 -175
  1025. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/unwind/systemv.rs +0 -170
  1026. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/vector.rs +0 -1162
  1027. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst.isle +0 -2944
  1028. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst_vector.isle +0 -1899
  1029. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower/isle.rs +0 -625
  1030. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower.isle +0 -2872
  1031. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/mod.rs +0 -260
  1032. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/abi.rs +0 -1047
  1033. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/args.rs +0 -347
  1034. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/emit.rs +0 -3646
  1035. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/emit_tests.rs +0 -13389
  1036. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/imms.rs +0 -202
  1037. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/mod.rs +0 -3423
  1038. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/regs.rs +0 -187
  1039. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/unwind/systemv.rs +0 -212
  1040. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst.isle +0 -5033
  1041. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/lower.isle +0 -3995
  1042. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/abi.rs +0 -1369
  1043. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/args.rs +0 -2289
  1044. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit.rs +0 -4383
  1045. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit_state.rs +0 -74
  1046. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit_tests.rs +0 -5131
  1047. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/mod.rs +0 -2798
  1048. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/regs.rs +0 -276
  1049. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/unwind/systemv.rs +0 -198
  1050. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst.isle +0 -5304
  1051. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower/isle.rs +0 -1066
  1052. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.isle +0 -4809
  1053. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.rs +0 -339
  1054. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/pcc.rs +0 -1003
  1055. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isle_prelude.rs +0 -957
  1056. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/lib.rs +0 -106
  1057. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/abi.rs +0 -2594
  1058. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/blockorder.rs +0 -465
  1059. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/buffer.rs +0 -2512
  1060. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/isle.rs +0 -914
  1061. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/lower.rs +0 -1452
  1062. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/mod.rs +0 -555
  1063. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/reg.rs +0 -562
  1064. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/valueregs.rs +0 -132
  1065. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/vcode.rs +0 -1807
  1066. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/nan_canonicalization.rs +0 -110
  1067. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/arithmetic.isle +0 -179
  1068. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/cprop.isle +0 -281
  1069. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/icmp.isle +0 -197
  1070. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/shifts.isle +0 -307
  1071. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/prelude.isle +0 -646
  1072. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/prelude_lower.isle +0 -1073
  1073. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/remove_constant_phis.rs +0 -420
  1074. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/scoped_hash_map.rs +0 -310
  1075. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/settings.rs +0 -591
  1076. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/timing.rs +0 -297
  1077. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/verifier/mod.rs +0 -1957
  1078. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/write.rs +0 -631
  1079. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/.cargo-checksum.json +0 -1
  1080. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/Cargo.toml +0 -35
  1081. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/cdsl/types.rs +0 -496
  1082. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_inst.rs +0 -1784
  1083. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_settings.rs +0 -508
  1084. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_types.rs +0 -75
  1085. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/isa/riscv64.rs +0 -160
  1086. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/isa/x86.rs +0 -402
  1087. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/lib.rs +0 -59
  1088. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/shared/settings.rs +0 -355
  1089. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/srcgen.rs +0 -470
  1090. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/.cargo-checksum.json +0 -1
  1091. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/Cargo.toml +0 -22
  1092. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/src/constants.rs +0 -28
  1093. data/ext/cargo-vendor/cranelift-control-0.107.2/.cargo-checksum.json +0 -1
  1094. data/ext/cargo-vendor/cranelift-control-0.107.2/Cargo.toml +0 -30
  1095. data/ext/cargo-vendor/cranelift-entity-0.107.2/.cargo-checksum.json +0 -1
  1096. data/ext/cargo-vendor/cranelift-entity-0.107.2/Cargo.toml +0 -50
  1097. data/ext/cargo-vendor/cranelift-entity-0.107.2/src/lib.rs +0 -317
  1098. data/ext/cargo-vendor/cranelift-entity-0.107.2/src/set.rs +0 -290
  1099. data/ext/cargo-vendor/cranelift-frontend-0.107.2/.cargo-checksum.json +0 -1
  1100. data/ext/cargo-vendor/cranelift-frontend-0.107.2/Cargo.toml +0 -69
  1101. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/frontend.rs +0 -1854
  1102. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/lib.rs +0 -189
  1103. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/ssa.rs +0 -1328
  1104. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/switch.rs +0 -654
  1105. data/ext/cargo-vendor/cranelift-isle-0.107.2/.cargo-checksum.json +0 -1
  1106. data/ext/cargo-vendor/cranelift-isle-0.107.2/Cargo.toml +0 -46
  1107. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/codegen.rs +0 -886
  1108. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/lib.rs +0 -271
  1109. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/sema.rs +0 -2492
  1110. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/serialize.rs +0 -846
  1111. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/trie_again.rs +0 -683
  1112. data/ext/cargo-vendor/cranelift-native-0.107.2/.cargo-checksum.json +0 -1
  1113. data/ext/cargo-vendor/cranelift-native-0.107.2/Cargo.toml +0 -45
  1114. data/ext/cargo-vendor/cranelift-native-0.107.2/src/lib.rs +0 -188
  1115. data/ext/cargo-vendor/cranelift-native-0.107.2/src/riscv.rs +0 -128
  1116. data/ext/cargo-vendor/cranelift-wasm-0.107.2/.cargo-checksum.json +0 -1
  1117. data/ext/cargo-vendor/cranelift-wasm-0.107.2/Cargo.toml +0 -107
  1118. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/code_translator.rs +0 -3683
  1119. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/dummy.rs +0 -912
  1120. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/spec.rs +0 -945
  1121. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/func_translator.rs +0 -296
  1122. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/module_translator.rs +0 -128
  1123. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/sections_translator.rs +0 -409
  1124. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/state.rs +0 -522
  1125. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/.cargo-checksum.json +0 -1
  1126. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/Cargo.toml +0 -48
  1127. data/ext/cargo-vendor/object-0.33.0/.cargo-checksum.json +0 -1
  1128. data/ext/cargo-vendor/object-0.33.0/CHANGELOG.md +0 -797
  1129. data/ext/cargo-vendor/object-0.33.0/Cargo.toml +0 -179
  1130. data/ext/cargo-vendor/object-0.33.0/README.md +0 -56
  1131. data/ext/cargo-vendor/object-0.33.0/src/build/bytes.rs +0 -141
  1132. data/ext/cargo-vendor/object-0.33.0/src/build/elf.rs +0 -3033
  1133. data/ext/cargo-vendor/object-0.33.0/src/common.rs +0 -568
  1134. data/ext/cargo-vendor/object-0.33.0/src/elf.rs +0 -6291
  1135. data/ext/cargo-vendor/object-0.33.0/src/endian.rs +0 -831
  1136. data/ext/cargo-vendor/object-0.33.0/src/macho.rs +0 -3309
  1137. data/ext/cargo-vendor/object-0.33.0/src/pod.rs +0 -239
  1138. data/ext/cargo-vendor/object-0.33.0/src/read/any.rs +0 -1328
  1139. data/ext/cargo-vendor/object-0.33.0/src/read/archive.rs +0 -759
  1140. data/ext/cargo-vendor/object-0.33.0/src/read/coff/comdat.rs +0 -211
  1141. data/ext/cargo-vendor/object-0.33.0/src/read/coff/file.rs +0 -383
  1142. data/ext/cargo-vendor/object-0.33.0/src/read/coff/relocation.rs +0 -108
  1143. data/ext/cargo-vendor/object-0.33.0/src/read/coff/section.rs +0 -585
  1144. data/ext/cargo-vendor/object-0.33.0/src/read/coff/symbol.rs +0 -635
  1145. data/ext/cargo-vendor/object-0.33.0/src/read/elf/attributes.rs +0 -306
  1146. data/ext/cargo-vendor/object-0.33.0/src/read/elf/comdat.rs +0 -162
  1147. data/ext/cargo-vendor/object-0.33.0/src/read/elf/file.rs +0 -918
  1148. data/ext/cargo-vendor/object-0.33.0/src/read/elf/hash.rs +0 -224
  1149. data/ext/cargo-vendor/object-0.33.0/src/read/elf/note.rs +0 -271
  1150. data/ext/cargo-vendor/object-0.33.0/src/read/elf/relocation.rs +0 -629
  1151. data/ext/cargo-vendor/object-0.33.0/src/read/elf/section.rs +0 -1150
  1152. data/ext/cargo-vendor/object-0.33.0/src/read/elf/segment.rs +0 -356
  1153. data/ext/cargo-vendor/object-0.33.0/src/read/elf/symbol.rs +0 -595
  1154. data/ext/cargo-vendor/object-0.33.0/src/read/elf/version.rs +0 -424
  1155. data/ext/cargo-vendor/object-0.33.0/src/read/macho/dyld_cache.rs +0 -345
  1156. data/ext/cargo-vendor/object-0.33.0/src/read/macho/file.rs +0 -783
  1157. data/ext/cargo-vendor/object-0.33.0/src/read/macho/load_command.rs +0 -386
  1158. data/ext/cargo-vendor/object-0.33.0/src/read/macho/section.rs +0 -389
  1159. data/ext/cargo-vendor/object-0.33.0/src/read/macho/segment.rs +0 -303
  1160. data/ext/cargo-vendor/object-0.33.0/src/read/macho/symbol.rs +0 -492
  1161. data/ext/cargo-vendor/object-0.33.0/src/read/mod.rs +0 -880
  1162. data/ext/cargo-vendor/object-0.33.0/src/read/pe/file.rs +0 -1053
  1163. data/ext/cargo-vendor/object-0.33.0/src/read/pe/import.rs +0 -339
  1164. data/ext/cargo-vendor/object-0.33.0/src/read/pe/relocation.rs +0 -92
  1165. data/ext/cargo-vendor/object-0.33.0/src/read/pe/section.rs +0 -440
  1166. data/ext/cargo-vendor/object-0.33.0/src/read/read_cache.rs +0 -213
  1167. data/ext/cargo-vendor/object-0.33.0/src/read/traits.rs +0 -551
  1168. data/ext/cargo-vendor/object-0.33.0/src/read/wasm.rs +0 -966
  1169. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/file.rs +0 -697
  1170. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/relocation.rs +0 -134
  1171. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/section.rs +0 -433
  1172. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/symbol.rs +0 -784
  1173. data/ext/cargo-vendor/object-0.33.0/src/write/coff/object.rs +0 -678
  1174. data/ext/cargo-vendor/object-0.33.0/src/write/coff/writer.rs +0 -518
  1175. data/ext/cargo-vendor/object-0.33.0/src/write/elf/object.rs +0 -885
  1176. data/ext/cargo-vendor/object-0.33.0/src/write/elf/writer.rs +0 -2309
  1177. data/ext/cargo-vendor/object-0.33.0/src/write/macho.rs +0 -1107
  1178. data/ext/cargo-vendor/object-0.33.0/src/write/mod.rs +0 -990
  1179. data/ext/cargo-vendor/object-0.33.0/src/write/pe.rs +0 -847
  1180. data/ext/cargo-vendor/object-0.33.0/src/write/xcoff.rs +0 -589
  1181. data/ext/cargo-vendor/object-0.33.0/tests/integration.rs +0 -2
  1182. data/ext/cargo-vendor/object-0.33.0/tests/read/mod.rs +0 -4
  1183. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/bss.rs +0 -255
  1184. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/comdat.rs +0 -225
  1185. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/common.rs +0 -245
  1186. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/elf.rs +0 -289
  1187. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/mod.rs +0 -704
  1188. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/section_flags.rs +0 -90
  1189. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/tls.rs +0 -316
  1190. data/ext/cargo-vendor/rb-sys-0.9.97/.cargo-checksum.json +0 -1
  1191. data/ext/cargo-vendor/rb-sys-0.9.97/Cargo.toml +0 -54
  1192. data/ext/cargo-vendor/rb-sys-0.9.97/build/main.rs +0 -238
  1193. data/ext/cargo-vendor/rb-sys-0.9.97/build/stable_api_config.rs +0 -133
  1194. data/ext/cargo-vendor/rb-sys-0.9.97/src/bindings.rs +0 -20
  1195. data/ext/cargo-vendor/rb-sys-0.9.97/src/tracking_allocator.rs +0 -265
  1196. data/ext/cargo-vendor/rb-sys-build-0.9.97/.cargo-checksum.json +0 -1
  1197. data/ext/cargo-vendor/rb-sys-build-0.9.97/Cargo.toml +0 -62
  1198. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/bindings/stable_api.rs +0 -202
  1199. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/bindings.rs +0 -250
  1200. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/cc.rs +0 -365
  1201. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/utils.rs +0 -52
  1202. data/ext/cargo-vendor/wasi-common-20.0.2/.cargo-checksum.json +0 -1
  1203. data/ext/cargo-vendor/wasi-common-20.0.2/Cargo.toml +0 -220
  1204. data/ext/cargo-vendor/wasi-common-20.0.2/src/snapshots/preview_0.rs +0 -1145
  1205. data/ext/cargo-vendor/wasi-common-20.0.2/src/snapshots/preview_1.rs +0 -1497
  1206. data/ext/cargo-vendor/wasi-common-20.0.2/src/string_array.rs +0 -74
  1207. data/ext/cargo-vendor/wasi-common-20.0.2/src/sync/sched/windows.rs +0 -221
  1208. data/ext/cargo-vendor/wasi-common-20.0.2/src/tokio/file.rs +0 -247
  1209. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/async_.rs +0 -293
  1210. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/main.rs +0 -21
  1211. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/sync.rs +0 -279
  1212. data/ext/cargo-vendor/wasm-encoder-0.202.0/.cargo-checksum.json +0 -1
  1213. data/ext/cargo-vendor/wasm-encoder-0.202.0/Cargo.toml +0 -43
  1214. data/ext/cargo-vendor/wasm-encoder-0.202.0/README.md +0 -80
  1215. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/aliases.rs +0 -160
  1216. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/builder.rs +0 -455
  1217. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/canonicals.rs +0 -159
  1218. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/components.rs +0 -29
  1219. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/exports.rs +0 -124
  1220. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/imports.rs +0 -175
  1221. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/instances.rs +0 -200
  1222. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/modules.rs +0 -29
  1223. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/names.rs +0 -149
  1224. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/start.rs +0 -52
  1225. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/types.rs +0 -792
  1226. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component.rs +0 -168
  1227. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/code.rs +0 -3444
  1228. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/custom.rs +0 -73
  1229. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/data.rs +0 -185
  1230. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/dump.rs +0 -627
  1231. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/elements.rs +0 -220
  1232. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/exports.rs +0 -98
  1233. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/functions.rs +0 -63
  1234. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/globals.rs +0 -101
  1235. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/imports.rs +0 -156
  1236. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/linking.rs +0 -263
  1237. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/memories.rs +0 -111
  1238. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/names.rs +0 -298
  1239. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/producers.rs +0 -180
  1240. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/start.rs +0 -39
  1241. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/tables.rs +0 -116
  1242. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/tags.rs +0 -104
  1243. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/types.rs +0 -673
  1244. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core.rs +0 -168
  1245. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/lib.rs +0 -215
  1246. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/raw.rs +0 -30
  1247. data/ext/cargo-vendor/wasmparser-0.202.0/.cargo-checksum.json +0 -1
  1248. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.lock +0 -744
  1249. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.toml +0 -66
  1250. data/ext/cargo-vendor/wasmparser-0.202.0/src/binary_reader.rs +0 -1849
  1251. data/ext/cargo-vendor/wasmparser-0.202.0/src/lib.rs +0 -766
  1252. data/ext/cargo-vendor/wasmparser-0.202.0/src/limits.rs +0 -64
  1253. data/ext/cargo-vendor/wasmparser-0.202.0/src/parser.rs +0 -1611
  1254. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/canonicals.rs +0 -120
  1255. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/imports.rs +0 -129
  1256. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/instances.rs +0 -163
  1257. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/names.rs +0 -102
  1258. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/start.rs +0 -30
  1259. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/types.rs +0 -549
  1260. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/branch_hinting.rs +0 -59
  1261. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/code.rs +0 -146
  1262. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/coredumps.rs +0 -243
  1263. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/custom.rs +0 -63
  1264. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/data.rs +0 -96
  1265. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/dylink0.rs +0 -109
  1266. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/elements.rs +0 -152
  1267. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/globals.rs +0 -49
  1268. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/init.rs +0 -51
  1269. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/linking.rs +0 -449
  1270. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/memories.rs +0 -56
  1271. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/names.rs +0 -156
  1272. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/operators.rs +0 -411
  1273. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/producers.rs +0 -83
  1274. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/tables.rs +0 -87
  1275. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/types/matches.rs +0 -277
  1276. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/types.rs +0 -1680
  1277. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core.rs +0 -41
  1278. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers.rs +0 -316
  1279. data/ext/cargo-vendor/wasmparser-0.202.0/src/resources.rs +0 -235
  1280. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/component.rs +0 -3238
  1281. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/core/canonical.rs +0 -233
  1282. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/core.rs +0 -1400
  1283. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/func.rs +0 -338
  1284. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/names.rs +0 -929
  1285. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/operators.rs +0 -4076
  1286. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/types.rs +0 -4449
  1287. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator.rs +0 -1619
  1288. data/ext/cargo-vendor/wasmprinter-0.202.0/.cargo-checksum.json +0 -1
  1289. data/ext/cargo-vendor/wasmprinter-0.202.0/Cargo.toml +0 -45
  1290. data/ext/cargo-vendor/wasmprinter-0.202.0/src/lib.rs +0 -3202
  1291. data/ext/cargo-vendor/wasmprinter-0.202.0/src/operator.rs +0 -1131
  1292. data/ext/cargo-vendor/wasmprinter-0.202.0/tests/all.rs +0 -279
  1293. data/ext/cargo-vendor/wasmtime-20.0.2/.cargo-checksum.json +0 -1
  1294. data/ext/cargo-vendor/wasmtime-20.0.2/Cargo.toml +0 -268
  1295. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile/code_builder.rs +0 -201
  1296. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile/runtime.rs +0 -175
  1297. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile.rs +0 -897
  1298. data/ext/cargo-vendor/wasmtime-20.0.2/src/config.rs +0 -2695
  1299. data/ext/cargo-vendor/wasmtime-20.0.2/src/engine/serialization.rs +0 -849
  1300. data/ext/cargo-vendor/wasmtime-20.0.2/src/engine.rs +0 -741
  1301. data/ext/cargo-vendor/wasmtime-20.0.2/src/lib.rs +0 -303
  1302. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/jitdump.rs +0 -66
  1303. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/perfmap.rs +0 -47
  1304. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/vtune.rs +0 -80
  1305. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent.rs +0 -105
  1306. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/code.rs +0 -102
  1307. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/code_memory.rs +0 -335
  1308. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/component.rs +0 -661
  1309. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/host.rs +0 -439
  1310. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/options.rs +0 -554
  1311. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/typed.rs +0 -2484
  1312. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func.rs +0 -747
  1313. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/instance.rs +0 -804
  1314. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/linker.rs +0 -786
  1315. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/matching.rs +0 -217
  1316. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/mod.rs +0 -756
  1317. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/resource_table.rs +0 -350
  1318. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/resources.rs +0 -1133
  1319. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/storage.rs +0 -43
  1320. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/store.rs +0 -28
  1321. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/types.rs +0 -892
  1322. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/values.rs +0 -978
  1323. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/coredump.rs +0 -336
  1324. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/debug.rs +0 -165
  1325. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals/global.rs +0 -300
  1326. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals/table.rs +0 -480
  1327. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals.rs +0 -236
  1328. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/func/typed.rs +0 -898
  1329. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/func.rs +0 -2633
  1330. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/anyref.rs +0 -46
  1331. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/externref.rs +0 -50
  1332. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/rooting.rs +0 -222
  1333. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/anyref.rs +0 -472
  1334. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/externref.rs +0 -644
  1335. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/i31.rs +0 -345
  1336. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/rooting.rs +0 -1543
  1337. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc.rs +0 -87
  1338. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/instance.rs +0 -992
  1339. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/instantiate.rs +0 -345
  1340. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/limits.rs +0 -398
  1341. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/linker.rs +0 -1521
  1342. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/memory.rs +0 -999
  1343. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/module/registry.rs +0 -354
  1344. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/module.rs +0 -1295
  1345. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/profiling.rs +0 -224
  1346. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/resources.rs +0 -33
  1347. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/signatures.rs +0 -216
  1348. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/stack.rs +0 -73
  1349. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/context.rs +0 -243
  1350. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/data.rs +0 -289
  1351. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/func_refs.rs +0 -85
  1352. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store.rs +0 -2796
  1353. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/func.rs +0 -138
  1354. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/global.rs +0 -68
  1355. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/memory.rs +0 -286
  1356. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/table.rs +0 -34
  1357. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline.rs +0 -77
  1358. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trap.rs +0 -641
  1359. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/type_registry.rs +0 -632
  1360. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/types/matching.rs +0 -367
  1361. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/types.rs +0 -1378
  1362. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/unix.rs +0 -39
  1363. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/v128.rs +0 -131
  1364. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/values.rs +0 -945
  1365. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/windows.rs +0 -34
  1366. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime.rs +0 -112
  1367. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/.cargo-checksum.json +0 -1
  1368. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/Cargo.toml +0 -22
  1369. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/src/lib.rs +0 -81
  1370. data/ext/cargo-vendor/wasmtime-cache-20.0.2/.cargo-checksum.json +0 -1
  1371. data/ext/cargo-vendor/wasmtime-cache-20.0.2/Cargo.toml +0 -81
  1372. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/config.rs +0 -584
  1373. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/lib.rs +0 -235
  1374. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/tests.rs +0 -91
  1375. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/worker/tests.rs +0 -758
  1376. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/worker.rs +0 -890
  1377. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/.cargo-checksum.json +0 -1
  1378. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/Cargo.toml +0 -67
  1379. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/src/bindgen.rs +0 -390
  1380. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/src/component.rs +0 -1295
  1381. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/tests/codegen.rs +0 -342
  1382. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/.cargo-checksum.json +0 -1
  1383. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/Cargo.toml +0 -25
  1384. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/src/lib.rs +0 -180
  1385. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/.cargo-checksum.json +0 -1
  1386. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/Cargo.toml +0 -114
  1387. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/compiler/component.rs +0 -962
  1388. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/compiler.rs +0 -1369
  1389. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/gc.rs +0 -239
  1390. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/address_transform.rs +0 -783
  1391. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/attr.rs +0 -345
  1392. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/expression.rs +0 -1252
  1393. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/line_program.rs +0 -282
  1394. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/mod.rs +0 -126
  1395. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/simulate.rs +0 -411
  1396. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/unit.rs +0 -522
  1397. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/utils.rs +0 -187
  1398. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/write_debuginfo.rs +0 -187
  1399. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug.rs +0 -18
  1400. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/func_environ.rs +0 -2672
  1401. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/gc/enabled.rs +0 -649
  1402. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/gc.rs +0 -198
  1403. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/lib.rs +0 -505
  1404. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/obj.rs +0 -545
  1405. data/ext/cargo-vendor/wasmtime-environ-20.0.2/.cargo-checksum.json +0 -1
  1406. data/ext/cargo-vendor/wasmtime-environ-20.0.2/Cargo.lock +0 -782
  1407. data/ext/cargo-vendor/wasmtime-environ-20.0.2/Cargo.toml +0 -144
  1408. data/ext/cargo-vendor/wasmtime-environ-20.0.2/examples/factc.rs +0 -205
  1409. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/address_map.rs +0 -72
  1410. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/mod.rs +0 -389
  1411. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/module_artifacts.rs +0 -300
  1412. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/trap_encoding.rs +0 -69
  1413. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/artifacts.rs +0 -72
  1414. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/compiler.rs +0 -19
  1415. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/dfg.rs +0 -690
  1416. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/info.rs +0 -672
  1417. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/translate/adapt.rs +0 -459
  1418. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/translate.rs +0 -965
  1419. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/types/resources.rs +0 -234
  1420. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/types.rs +0 -1972
  1421. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component.rs +0 -103
  1422. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/demangling.rs +0 -28
  1423. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/core_types.rs +0 -24
  1424. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/signature.rs +0 -135
  1425. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/trampoline.rs +0 -3233
  1426. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/transcode.rs +0 -89
  1427. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/traps.rs +0 -115
  1428. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact.rs +0 -711
  1429. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/lib.rs +0 -70
  1430. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module.rs +0 -780
  1431. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_artifacts.rs +0 -145
  1432. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_environ.rs +0 -1288
  1433. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_types.rs +0 -122
  1434. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/ref_bits.rs +0 -36
  1435. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/scopevec.rs +0 -78
  1436. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/stack_map.rs +0 -36
  1437. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/trap_encoding.rs +0 -188
  1438. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/tunables.rs +0 -158
  1439. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/vmoffsets.rs +0 -952
  1440. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/.cargo-checksum.json +0 -1
  1441. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/Cargo.toml +0 -63
  1442. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/build.rs +0 -26
  1443. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/lib.rs +0 -328
  1444. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/unix.rs +0 -265
  1445. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/windows.rs +0 -166
  1446. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/.cargo-checksum.json +0 -1
  1447. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/Cargo.toml +0 -67
  1448. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/src/gdb_jit_int.rs +0 -130
  1449. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/src/perf_jitdump.rs +0 -293
  1450. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/.cargo-checksum.json +0 -1
  1451. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/Cargo.toml +0 -47
  1452. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/lib.rs +0 -108
  1453. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/libc.rs +0 -149
  1454. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/miri.rs +0 -10
  1455. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/win.rs +0 -45
  1456. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/.cargo-checksum.json +0 -1
  1457. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/Cargo.toml +0 -147
  1458. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/build.rs +0 -24
  1459. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/arch/aarch64.rs +0 -76
  1460. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/arch/x86_64.rs +0 -41
  1461. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/async_yield.rs +0 -35
  1462. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component/libcalls.rs +0 -571
  1463. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component/resources.rs +0 -351
  1464. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component.rs +0 -860
  1465. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/cow.rs +0 -888
  1466. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/debug_builtins.rs +0 -59
  1467. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/export.rs +0 -108
  1468. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/disabled.rs +0 -23
  1469. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/drc.rs +0 -963
  1470. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/externref.rs +0 -115
  1471. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/free_list.rs +0 -767
  1472. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled.rs +0 -18
  1473. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/gc_ref.rs +0 -486
  1474. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/gc_runtime.rs +0 -503
  1475. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/host_data.rs +0 -81
  1476. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/i31.rs +0 -86
  1477. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc.rs +0 -244
  1478. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/imports.rs +0 -27
  1479. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/on_demand.rs +0 -217
  1480. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/gc_heap_pool.rs +0 -92
  1481. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/index_allocator.rs +0 -704
  1482. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/memory_pool.rs +0 -996
  1483. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/stack_pool.rs +0 -242
  1484. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/table_pool.rs +0 -231
  1485. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling.rs +0 -699
  1486. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator.rs +0 -780
  1487. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance.rs +0 -1566
  1488. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/lib.rs +0 -289
  1489. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/libcalls.rs +0 -777
  1490. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/memory.rs +0 -751
  1491. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mmap.rs +0 -214
  1492. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mmap_vec.rs +0 -201
  1493. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/module_id.rs +0 -43
  1494. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/enabled.rs +0 -213
  1495. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/mod.rs +0 -54
  1496. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/pkru.rs +0 -104
  1497. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/sys.rs +0 -113
  1498. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/send_sync_ptr.rs +0 -106
  1499. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/store_box.rs +0 -35
  1500. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/capi.rs +0 -189
  1501. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/mmap.rs +0 -111
  1502. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/mod.rs +0 -24
  1503. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/traphandlers.rs +0 -55
  1504. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/vm.rs +0 -108
  1505. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/mmap.rs +0 -94
  1506. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/mod.rs +0 -10
  1507. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/traphandlers.rs +0 -47
  1508. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/vm.rs +0 -63
  1509. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/mod.rs +0 -33
  1510. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/machports.rs +0 -416
  1511. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/mmap.rs +0 -151
  1512. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/mod.rs +0 -21
  1513. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/signals.rs +0 -401
  1514. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/unwind.rs +0 -149
  1515. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/vm.rs +0 -208
  1516. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/mmap.rs +0 -216
  1517. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/mod.rs +0 -6
  1518. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/traphandlers.rs +0 -104
  1519. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/vm.rs +0 -79
  1520. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/table.rs +0 -851
  1521. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/parking_spot.rs +0 -621
  1522. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/shared_memory.rs +0 -230
  1523. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/shared_memory_disabled.rs +0 -100
  1524. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/backtrace.rs +0 -265
  1525. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/coredump_disabled.rs +0 -16
  1526. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/coredump_enabled.rs +0 -40
  1527. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers.rs +0 -785
  1528. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/vmcontext/vm_host_func_context.rs +0 -137
  1529. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/vmcontext.rs +0 -1293
  1530. data/ext/cargo-vendor/wasmtime-slab-20.0.2/.cargo-checksum.json +0 -1
  1531. data/ext/cargo-vendor/wasmtime-slab-20.0.2/Cargo.toml +0 -21
  1532. data/ext/cargo-vendor/wasmtime-slab-20.0.2/src/lib.rs +0 -493
  1533. data/ext/cargo-vendor/wasmtime-types-20.0.2/.cargo-checksum.json +0 -1
  1534. data/ext/cargo-vendor/wasmtime-types-20.0.2/Cargo.toml +0 -36
  1535. data/ext/cargo-vendor/wasmtime-types-20.0.2/src/error.rs +0 -59
  1536. data/ext/cargo-vendor/wasmtime-types-20.0.2/src/lib.rs +0 -832
  1537. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.2/.cargo-checksum.json +0 -1
  1538. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.2/Cargo.toml +0 -32
  1539. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/.cargo-checksum.json +0 -1
  1540. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/Cargo.toml +0 -194
  1541. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/bindings.rs +0 -283
  1542. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/ctx.rs +0 -659
  1543. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/filesystem.rs +0 -433
  1544. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/clocks.rs +0 -103
  1545. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/env.rs +0 -15
  1546. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/exit.rs +0 -11
  1547. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/filesystem/sync.rs +0 -518
  1548. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/filesystem.rs +0 -1079
  1549. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/instance_network.rs +0 -15
  1550. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/io.rs +0 -367
  1551. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/network.rs +0 -539
  1552. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/random.rs +0 -36
  1553. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/tcp.rs +0 -306
  1554. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/tcp_create_socket.rs +0 -15
  1555. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/udp.rs +0 -532
  1556. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/udp_create_socket.rs +0 -15
  1557. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/ip_name_lookup.rs +0 -126
  1558. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/lib.rs +0 -404
  1559. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/network.rs +0 -107
  1560. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/pipe.rs +0 -826
  1561. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/poll.rs +0 -233
  1562. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/preview0.rs +0 -879
  1563. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/preview1.rs +0 -2601
  1564. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/stdio.rs +0 -507
  1565. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/api.rs +0 -194
  1566. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/async_.rs +0 -397
  1567. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/main.rs +0 -91
  1568. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/preview1.rs +0 -251
  1569. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/sync.rs +0 -333
  1570. data/ext/cargo-vendor/wasmtime-winch-20.0.2/.cargo-checksum.json +0 -1
  1571. data/ext/cargo-vendor/wasmtime-winch-20.0.2/Cargo.toml +0 -81
  1572. data/ext/cargo-vendor/wasmtime-winch-20.0.2/src/compiler.rs +0 -257
  1573. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/.cargo-checksum.json +0 -1
  1574. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/Cargo.toml +0 -41
  1575. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/lib.rs +0 -2213
  1576. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/rust.rs +0 -421
  1577. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/types.rs +0 -202
  1578. data/ext/cargo-vendor/wiggle-20.0.2/.cargo-checksum.json +0 -1
  1579. data/ext/cargo-vendor/wiggle-20.0.2/Cargo.toml +0 -122
  1580. data/ext/cargo-vendor/wiggle-20.0.2/LICENSE +0 -220
  1581. data/ext/cargo-vendor/wiggle-20.0.2/src/borrow.rs +0 -113
  1582. data/ext/cargo-vendor/wiggle-20.0.2/src/guest_type.rs +0 -237
  1583. data/ext/cargo-vendor/wiggle-20.0.2/src/lib.rs +0 -1184
  1584. data/ext/cargo-vendor/wiggle-20.0.2/src/wasmtime.rs +0 -97
  1585. data/ext/cargo-vendor/wiggle-generate-20.0.2/.cargo-checksum.json +0 -1
  1586. data/ext/cargo-vendor/wiggle-generate-20.0.2/Cargo.toml +0 -65
  1587. data/ext/cargo-vendor/wiggle-generate-20.0.2/LICENSE +0 -220
  1588. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/funcs.rs +0 -435
  1589. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/module_trait.rs +0 -102
  1590. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/names.rs +0 -303
  1591. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/flags.rs +0 -92
  1592. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/handle.rs +0 -84
  1593. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/mod.rs +0 -129
  1594. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/record.rs +0 -132
  1595. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/variant.rs +0 -191
  1596. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/wasmtime.rs +0 -170
  1597. data/ext/cargo-vendor/wiggle-macro-20.0.2/.cargo-checksum.json +0 -1
  1598. data/ext/cargo-vendor/wiggle-macro-20.0.2/Cargo.toml +0 -55
  1599. data/ext/cargo-vendor/wiggle-macro-20.0.2/LICENSE +0 -220
  1600. data/ext/cargo-vendor/wiggle-macro-20.0.2/src/lib.rs +0 -210
  1601. data/ext/cargo-vendor/winch-codegen-0.18.2/.cargo-checksum.json +0 -1
  1602. data/ext/cargo-vendor/winch-codegen-0.18.2/Cargo.toml +0 -81
  1603. data/ext/cargo-vendor/winch-codegen-0.18.2/src/abi/mod.rs +0 -671
  1604. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/context.rs +0 -534
  1605. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/control.rs +0 -972
  1606. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/env.rs +0 -435
  1607. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/mod.rs +0 -756
  1608. data/ext/cargo-vendor/winch-codegen-0.18.2/src/frame/mod.rs +0 -258
  1609. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/abi.rs +0 -291
  1610. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/address.rs +0 -144
  1611. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/asm.rs +0 -252
  1612. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/masm.rs +0 -573
  1613. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/mod.rs +0 -154
  1614. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/regs.rs +0 -149
  1615. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/reg.rs +0 -86
  1616. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/x64/asm.rs +0 -1423
  1617. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/x64/masm.rs +0 -1256
  1618. data/ext/cargo-vendor/winch-codegen-0.18.2/src/masm.rs +0 -947
  1619. data/ext/cargo-vendor/winch-codegen-0.18.2/src/regalloc.rs +0 -65
  1620. data/ext/cargo-vendor/winch-codegen-0.18.2/src/regset.rs +0 -194
  1621. data/ext/cargo-vendor/winch-codegen-0.18.2/src/stack.rs +0 -439
  1622. data/ext/cargo-vendor/winch-codegen-0.18.2/src/visitor.rs +0 -2149
  1623. data/ext/cargo-vendor/wit-parser-0.202.0/.cargo-checksum.json +0 -1
  1624. data/ext/cargo-vendor/wit-parser-0.202.0/Cargo.toml +0 -101
  1625. data/ext/cargo-vendor/wit-parser-0.202.0/src/ast/resolve.rs +0 -1443
  1626. data/ext/cargo-vendor/wit-parser-0.202.0/src/ast.rs +0 -1348
  1627. data/ext/cargo-vendor/wit-parser-0.202.0/src/decoding.rs +0 -1764
  1628. data/ext/cargo-vendor/wit-parser-0.202.0/src/docs.rs +0 -389
  1629. data/ext/cargo-vendor/wit-parser-0.202.0/src/lib.rs +0 -765
  1630. data/ext/cargo-vendor/wit-parser-0.202.0/src/live.rs +0 -111
  1631. data/ext/cargo-vendor/wit-parser-0.202.0/src/resolve.rs +0 -2240
  1632. data/ext/cargo-vendor/wit-parser-0.202.0/src/serde_.rs +0 -108
  1633. data/ext/cargo-vendor/wit-parser-0.202.0/tests/all.rs +0 -153
  1634. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/complex-include.wit.json +0 -168
  1635. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/diamond1.wit.json +0 -55
  1636. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/disambiguate-diamond.wit.json +0 -107
  1637. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/foreign-deps-union.wit.json +0 -380
  1638. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/foreign-deps.wit.json +0 -344
  1639. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/ignore-files-deps.wit.json +0 -39
  1640. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/import-export-overlap2.wit.json +0 -41
  1641. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/include-reps.wit.json +0 -60
  1642. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/kinds-of-deps.wit.json +0 -87
  1643. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/many-names.wit.json +0 -40
  1644. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/multi-file.wit.json +0 -298
  1645. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/parse-fail/conflicting-package.wit.result +0 -9
  1646. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/parse-fail/multiple-package-docs.wit.result +0 -9
  1647. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-multiple-returns-borrow.wit.json +0 -74
  1648. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-return-borrow.wit.json +0 -69
  1649. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/shared-types.wit.json +0 -83
  1650. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/stress-export-elaborate.wit.json +0 -1136
  1651. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-diamond.wit.json +0 -118
  1652. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-iface-no-collide.wit.json +0 -66
  1653. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-implicit-import1.wit.json +0 -75
  1654. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-implicit-import2.wit.json +0 -70
  1655. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-implicit-import3.wit.json +0 -71
  1656. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-same-fields4.wit.json +0 -76
  1657. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-top-level-resources.wit +0 -24
  1658. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-top-level-resources.wit.json +0 -240
  1659. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/worlds-union-dedup.wit.json +0 -100
  1660. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/worlds-with-types.wit.json +0 -202
  1661. data/ext/src/ruby_api/config/tracked_memory_creator.rs +0 -82
  1662. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/LICENSE +0 -0
  1663. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/README.md +0 -0
  1664. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/lib.rs +0 -0
  1665. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/map.rs +0 -0
  1666. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/node.rs +0 -0
  1667. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/path.rs +0 -0
  1668. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/pool.rs +0 -0
  1669. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/set.rs +0 -0
  1670. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/LICENSE +0 -0
  1671. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/README.md +0 -0
  1672. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/benches/x64-evex-encoding.rs +0 -0
  1673. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/binemit/mod.rs +0 -0
  1674. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/binemit/stack_map.rs +0 -0
  1675. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/bitset.rs +0 -0
  1676. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/cfg_printer.rs +0 -0
  1677. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/constant_hash.rs +0 -0
  1678. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/cursor.rs +0 -0
  1679. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/data_value.rs +0 -0
  1680. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/dbg.rs +0 -0
  1681. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/egraph/cost.rs +0 -0
  1682. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/flowgraph.rs +0 -0
  1683. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/atomic_rmw_op.rs +0 -0
  1684. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/builder.rs +0 -0
  1685. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/condcodes.rs +0 -0
  1686. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/constant.rs +0 -0
  1687. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/dynamic_type.rs +0 -0
  1688. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/entities.rs +0 -0
  1689. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/extname.rs +0 -0
  1690. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/function.rs +0 -0
  1691. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/globalvalue.rs +0 -0
  1692. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/jumptable.rs +0 -0
  1693. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/known_symbol.rs +0 -0
  1694. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/layout.rs +0 -0
  1695. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/libcall.rs +0 -0
  1696. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/memflags.rs +0 -0
  1697. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/memtype.rs +0 -0
  1698. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/mod.rs +0 -0
  1699. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/pcc.rs +0 -0
  1700. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/progpoint.rs +0 -0
  1701. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/sourceloc.rs +0 -0
  1702. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/trapcode.rs +0 -0
  1703. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/inst/unwind.rs +0 -0
  1704. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/inst_neon.isle +0 -0
  1705. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1706. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower.isle +0 -0
  1707. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower.rs +0 -0
  1708. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1709. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/mod.rs +0 -0
  1710. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/settings.rs +0 -0
  1711. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/call_conv.rs +0 -0
  1712. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/riscv64/inst/unwind.rs +0 -0
  1713. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1714. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/riscv64/lower.rs +0 -0
  1715. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/riscv64/settings.rs +0 -0
  1716. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/inst/unwind.rs +0 -0
  1717. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1718. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/lower/isle.rs +0 -0
  1719. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/lower.rs +0 -0
  1720. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/mod.rs +0 -0
  1721. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/settings.rs +0 -0
  1722. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/unwind/systemv.rs +0 -0
  1723. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/unwind/winx64.rs +0 -0
  1724. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/unwind.rs +0 -0
  1725. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/evex.rs +0 -0
  1726. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/mod.rs +0 -0
  1727. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/rex.rs +0 -0
  1728. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/vex.rs +0 -0
  1729. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1730. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/inst/unwind.rs +0 -0
  1731. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1732. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/mod.rs +0 -0
  1733. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/settings.rs +0 -0
  1734. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/iterators.rs +0 -0
  1735. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/legalizer/globalvalue.rs +0 -0
  1736. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/legalizer/mod.rs +0 -0
  1737. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/loop_analysis.rs +0 -0
  1738. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/machinst/compile.rs +0 -0
  1739. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/machinst/helpers.rs +0 -0
  1740. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/machinst/inst_common.rs +0 -0
  1741. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/machinst/pcc.rs +0 -0
  1742. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/README.md +0 -0
  1743. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/bitops.isle +0 -0
  1744. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/extends.isle +0 -0
  1745. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/generated_code.rs +0 -0
  1746. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/remat.isle +0 -0
  1747. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/selects.isle +0 -0
  1748. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/spaceship.isle +0 -0
  1749. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/spectre.isle +0 -0
  1750. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/vector.isle +0 -0
  1751. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts.rs +0 -0
  1752. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/prelude_opt.isle +0 -0
  1753. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/print_errors.rs +0 -0
  1754. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/result.rs +0 -0
  1755. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/souper_harvest.rs +0 -0
  1756. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/unionfind.rs +0 -0
  1757. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/unreachable_code.rs +0 -0
  1758. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/value_label.rs +0 -0
  1759. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/LICENSE +0 -0
  1760. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/README.md +0 -0
  1761. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/formats.rs +0 -0
  1762. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/instructions.rs +0 -0
  1763. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/isa.rs +0 -0
  1764. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/mod.rs +0 -0
  1765. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/operands.rs +0 -0
  1766. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/settings.rs +0 -0
  1767. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/typevar.rs +0 -0
  1768. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/constant_hash.rs +0 -0
  1769. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/error.rs +0 -0
  1770. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/isa/arm64.rs +0 -0
  1771. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/isa/mod.rs +0 -0
  1772. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/isa/s390x.rs +0 -0
  1773. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/entities.rs +0 -0
  1774. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/formats.rs +0 -0
  1775. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/immediates.rs +0 -0
  1776. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/instructions.rs +0 -0
  1777. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/mod.rs +0 -0
  1778. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/types.rs +0 -0
  1779. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/unique_table.rs +0 -0
  1780. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.109.0}/LICENSE +0 -0
  1781. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.109.0}/README.md +0 -0
  1782. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.109.0}/src/constant_hash.rs +0 -0
  1783. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.109.0}/src/lib.rs +0 -0
  1784. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/LICENSE +0 -0
  1785. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/README.md +0 -0
  1786. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/src/chaos.rs +0 -0
  1787. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/src/lib.rs +0 -0
  1788. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/src/zero_sized.rs +0 -0
  1789. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/LICENSE +0 -0
  1790. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/README.md +0 -0
  1791. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/boxed_slice.rs +0 -0
  1792. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/iter.rs +0 -0
  1793. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/keys.rs +0 -0
  1794. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/list.rs +0 -0
  1795. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/map.rs +0 -0
  1796. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/packed_option.rs +0 -0
  1797. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/primary.rs +0 -0
  1798. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/sparse.rs +0 -0
  1799. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/unsigned.rs +0 -0
  1800. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.109.0}/LICENSE +0 -0
  1801. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.109.0}/README.md +0 -0
  1802. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.109.0}/src/variable.rs +0 -0
  1803. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/README.md +0 -0
  1804. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/build.rs +0 -0
  1805. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/bad_converters.isle +0 -0
  1806. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1807. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1808. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/error1.isle +0 -0
  1809. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/extra_parens.isle +0 -0
  1810. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/impure_expression.isle +0 -0
  1811. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/impure_rhs.isle +0 -0
  1812. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1813. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/multi_prio.isle +0 -0
  1814. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/borrows.isle +0 -0
  1815. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/borrows_main.rs +0 -0
  1816. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/iflets.isle +0 -0
  1817. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/iflets_main.rs +0 -0
  1818. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/multi_constructor.isle +0 -0
  1819. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/multi_constructor_main.rs +0 -0
  1820. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/multi_extractor.isle +0 -0
  1821. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/multi_extractor_main.rs +0 -0
  1822. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/test.isle +0 -0
  1823. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/test_main.rs +0 -0
  1824. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/bound_var.isle +0 -0
  1825. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/construct_and_extract.isle +0 -0
  1826. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/conversions.isle +0 -0
  1827. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/conversions_extern.isle +0 -0
  1828. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/let.isle +0 -0
  1829. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/nodebug.isle +0 -0
  1830. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1831. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/test2.isle +0 -0
  1832. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/test3.isle +0 -0
  1833. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/test4.isle +0 -0
  1834. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/tutorial.isle +0 -0
  1835. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/run/iconst.isle +0 -0
  1836. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/run/iconst_main.rs +0 -0
  1837. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/run/let_shadowing.isle +0 -0
  1838. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/run/let_shadowing_main.rs +0 -0
  1839. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/ast.rs +0 -0
  1840. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/compile.rs +0 -0
  1841. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/error.rs +0 -0
  1842. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/lexer.rs +0 -0
  1843. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/log.rs +0 -0
  1844. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/overlap.rs +0 -0
  1845. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/parser.rs +0 -0
  1846. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/tests/run_tests.rs +0 -0
  1847. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.109.0}/LICENSE +0 -0
  1848. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.109.0}/README.md +0 -0
  1849. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/LICENSE +0 -0
  1850. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/README.md +0 -0
  1851. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/code_translator/bounds_checks.rs +0 -0
  1852. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/environ/mod.rs +0 -0
  1853. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/heap.rs +0 -0
  1854. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/lib.rs +0 -0
  1855. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/table.rs +0 -0
  1856. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/translation_utils.rs +0 -0
  1857. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/README.md +0 -0
  1858. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/clocks.rs +0 -0
  1859. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/lib.rs +0 -0
  1860. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/noop_scheduler.rs +0 -0
  1861. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/clocks.rs +0 -0
  1862. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/common/mod.rs +0 -0
  1863. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/random.rs +0 -0
  1864. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/scheduler.rs +0 -0
  1865. /data/ext/cargo-vendor/{object-0.33.0 → embedded-io-0.4.0}/LICENSE-APACHE +0 -0
  1866. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/LICENSE-MIT +0 -0
  1867. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/archive.rs +0 -0
  1868. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/build/error.rs +0 -0
  1869. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/build/mod.rs +0 -0
  1870. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/build/table.rs +0 -0
  1871. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/lib.rs +0 -0
  1872. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/pe.rs +0 -0
  1873. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/coff/import.rs +0 -0
  1874. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/coff/mod.rs +0 -0
  1875. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/elf/compression.rs +0 -0
  1876. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/elf/dynamic.rs +0 -0
  1877. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/elf/mod.rs +0 -0
  1878. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/macho/fat.rs +0 -0
  1879. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/macho/mod.rs +0 -0
  1880. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/macho/relocation.rs +0 -0
  1881. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/data_directory.rs +0 -0
  1882. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/export.rs +0 -0
  1883. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/mod.rs +0 -0
  1884. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/resource.rs +0 -0
  1885. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/rich.rs +0 -0
  1886. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/read_ref.rs +0 -0
  1887. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/util.rs +0 -0
  1888. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/xcoff/comdat.rs +0 -0
  1889. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/xcoff/mod.rs +0 -0
  1890. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/xcoff/segment.rs +0 -0
  1891. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/coff/mod.rs +0 -0
  1892. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/elf/mod.rs +0 -0
  1893. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/string.rs +0 -0
  1894. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/util.rs +0 -0
  1895. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/xcoff.rs +0 -0
  1896. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/parse_self.rs +0 -0
  1897. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/read/coff.rs +0 -0
  1898. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/read/elf.rs +0 -0
  1899. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/round_trip/coff.rs +0 -0
  1900. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/round_trip/macho.rs +0 -0
  1901. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/LICENSE-APACHE +0 -0
  1902. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/LICENSE-MIT +0 -0
  1903. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/bin/release.sh +0 -0
  1904. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/build/features.rs +0 -0
  1905. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/build/version.rs +0 -0
  1906. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/readme.md +0 -0
  1907. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/hidden.rs +0 -0
  1908. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/lib.rs +0 -0
  1909. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/macros.rs +0 -0
  1910. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/memory.rs +0 -0
  1911. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/ruby_abi_version.rs +0 -0
  1912. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/special_consts.rs +0 -0
  1913. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/compiled.c +0 -0
  1914. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/compiled.rs +0 -0
  1915. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_2_6.rs +0 -0
  1916. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_2_7.rs +0 -0
  1917. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_0.rs +0 -0
  1918. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_1.rs +0 -0
  1919. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_2.rs +0 -0
  1920. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_3.rs +0 -0
  1921. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api.rs +0 -0
  1922. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/symbol.rs +0 -0
  1923. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/utils.rs +0 -0
  1924. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/value_type.rs +0 -0
  1925. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/LICENSE-APACHE +0 -0
  1926. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/LICENSE-MIT +0 -0
  1927. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/bindings/sanitizer.rs +0 -0
  1928. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/bindings/wrapper.h +0 -0
  1929. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/lib.rs +0 -0
  1930. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/flags.rs +0 -0
  1931. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/library.rs +0 -0
  1932. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/search_path.rs +0 -0
  1933. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config.rs +0 -0
  1934. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/LICENSE +0 -0
  1935. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/README.md +0 -0
  1936. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/clocks.rs +0 -0
  1937. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/ctx.rs +0 -0
  1938. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/dir.rs +0 -0
  1939. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/error.rs +0 -0
  1940. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/file.rs +0 -0
  1941. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/lib.rs +0 -0
  1942. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/pipe.rs +0 -0
  1943. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/random.rs +0 -0
  1944. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sched/subscription.rs +0 -0
  1945. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sched.rs +0 -0
  1946. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/snapshots/mod.rs +0 -0
  1947. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/snapshots/preview_1/error.rs +0 -0
  1948. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/clocks.rs +0 -0
  1949. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/dir.rs +0 -0
  1950. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/file.rs +0 -0
  1951. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/mod.rs +0 -0
  1952. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/net.rs +0 -0
  1953. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/sched/unix.rs +0 -0
  1954. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/sched.rs +0 -0
  1955. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/stdio.rs +0 -0
  1956. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/table.rs +0 -0
  1957. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/dir.rs +0 -0
  1958. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/mod.rs +0 -0
  1959. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/net.rs +0 -0
  1960. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/sched/unix.rs +0 -0
  1961. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/sched/windows.rs +0 -0
  1962. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/sched.rs +0 -0
  1963. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/stdio.rs +0 -0
  1964. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/witx/preview0/typenames.witx +0 -0
  1965. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  1966. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/witx/preview1/typenames.witx +0 -0
  1967. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1968. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/README.md +0 -0
  1969. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/benches/benchmark.rs +0 -0
  1970. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/examples/simple.rs +0 -0
  1971. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/component/aliases.rs +0 -0
  1972. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/component/exports.rs +0 -0
  1973. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/component.rs +0 -0
  1974. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/core/exports.rs +0 -0
  1975. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/core/functions.rs +0 -0
  1976. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/core/imports.rs +0 -0
  1977. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/core/tags.rs +0 -0
  1978. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/tests/big-module.rs +0 -0
  1979. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasmprinter-0.209.1}/LICENSE +0 -0
  1980. /data/ext/cargo-vendor/{wasmprinter-0.202.0 → wasmprinter-0.209.1}/README.md +0 -0
  1981. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmtime-22.0.0}/LICENSE +0 -0
  1982. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/README.md +0 -0
  1983. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/proptest-regressions → wasmtime-22.0.0/proptest-regressions/runtime/vm}/instance/allocator/pooling/memory_pool.txt +0 -0
  1984. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/src/runtime/gc/disabled/i31.rs +0 -0
  1985. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/src/runtime/gc/disabled.rs +0 -0
  1986. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/src/runtime/gc/enabled.rs +0 -0
  1987. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/src/runtime/uninhabited.rs +0 -0
  1988. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/arch/mod.rs +0 -0
  1989. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/arch/riscv64.rs +0 -0
  1990. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/arch/s390x.S +0 -0
  1991. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/arch/s390x.rs +0 -0
  1992. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/helpers.c +0 -0
  1993. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/mpk/disabled.rs +0 -0
  1994. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/sys/custom/unwind.rs +0 -0
  1995. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/sys/miri/unwind.rs +0 -0
  1996. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/sys/unix/macos_traphandlers.rs +0 -0
  1997. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/sys/windows/unwind.rs +0 -0
  1998. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/threads/mod.rs +0 -0
  1999. /data/ext/cargo-vendor/{wasmprinter-0.202.0 → wasmtime-cache-22.0.0}/LICENSE +0 -0
  2000. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-22.0.0}/build.rs +0 -0
  2001. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-22.0.0}/src/config/tests.rs +0 -0
  2002. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-22.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  2003. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-22.0.0}/tests/cache_write_default_config.rs +0 -0
  2004. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/build.rs +0 -0
  2005. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/src/lib.rs +0 -0
  2006. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/char.wit +0 -0
  2007. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/conventions.wit +0 -0
  2008. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/dead-code.wit +0 -0
  2009. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/direct-import.wit +0 -0
  2010. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/empty.wit +0 -0
  2011. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/flags.wit +0 -0
  2012. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/floats.wit +0 -0
  2013. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/function-new.wit +0 -0
  2014. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/integers.wit +0 -0
  2015. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/lists.wit +0 -0
  2016. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/many-arguments.wit +0 -0
  2017. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/multi-return.wit +0 -0
  2018. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  2019. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  2020. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/multiversion/root.wit +0 -0
  2021. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/records.wit +0 -0
  2022. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/rename.wit +0 -0
  2023. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/resources-export.wit +0 -0
  2024. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/resources-import.wit +0 -0
  2025. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/share-types.wit +0 -0
  2026. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/simple-functions.wit +0 -0
  2027. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/simple-lists.wit +0 -0
  2028. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/simple-wasi.wit +0 -0
  2029. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/small-anonymous.wit +0 -0
  2030. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/smoke-default.wit +0 -0
  2031. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/smoke-export.wit +0 -0
  2032. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/smoke.wit +0 -0
  2033. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/strings.wit +0 -0
  2034. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/unversioned-foo.wit +0 -0
  2035. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/use-paths.wit +0 -0
  2036. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/variants.wit +0 -0
  2037. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/wat.wit +0 -0
  2038. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  2039. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-cranelift-22.0.0}/LICENSE +0 -0
  2040. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/SECURITY.md +0 -0
  2041. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/builder.rs +0 -0
  2042. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/compiled_function.rs +0 -0
  2043. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  2044. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/debug/transform/refs.rs +0 -0
  2045. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/gc/disabled.rs +0 -0
  2046. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/isa_builder.rs +0 -0
  2047. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-environ-22.0.0}/LICENSE +0 -0
  2048. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/address_map.rs +0 -0
  2049. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/builtin.rs +0 -0
  2050. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/component/translate/inline.rs +0 -0
  2051. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  2052. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/gc.rs +0 -0
  2053. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/obj.rs +0 -0
  2054. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-fiber-22.0.0}/LICENSE +0 -0
  2055. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/aarch64.rs +0 -0
  2056. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/arm.rs +0 -0
  2057. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/riscv64.rs +0 -0
  2058. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/s390x.S +0 -0
  2059. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/x86.rs +0 -0
  2060. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/x86_64.rs +0 -0
  2061. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/windows.c +0 -0
  2062. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-22.0.0}/README.md +0 -0
  2063. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-22.0.0}/src/lib.rs +0 -0
  2064. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-types-22.0.0}/LICENSE +0 -0
  2065. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-20.0.2 → wasmtime-versioned-export-macros-22.0.0}/src/lib.rs +0 -0
  2066. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-wasi-22.0.0}/LICENSE +0 -0
  2067. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/README.md +0 -0
  2068. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/clocks/host.rs +0 -0
  2069. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/clocks.rs +0 -0
  2070. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/error.rs +0 -0
  2071. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/host/mod.rs +0 -0
  2072. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/random.rs +0 -0
  2073. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/runtime.rs +0 -0
  2074. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/stdio/worker_thread_stdin.rs +0 -0
  2075. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/stream.rs +0 -0
  2076. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/tcp.rs +0 -0
  2077. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/udp.rs +0 -0
  2078. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/write_stream.rs +0 -0
  2079. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/tests/process_stdin.rs +0 -0
  2080. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/command-extended.wit +0 -0
  2081. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/command.wit +0 -0
  2082. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/environment.wit +0 -0
  2083. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/exit.wit +0 -0
  2084. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/imports.wit +0 -0
  2085. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/run.wit +0 -0
  2086. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/stdio.wit +0 -0
  2087. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/terminal.wit +0 -0
  2088. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/clocks/monotonic-clock.wit +0 -0
  2089. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/clocks/wall-clock.wit +0 -0
  2090. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/clocks/world.wit +0 -0
  2091. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/filesystem/preopens.wit +0 -0
  2092. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/filesystem/types.wit +0 -0
  2093. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/filesystem/world.wit +0 -0
  2094. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/http/handler.wit +0 -0
  2095. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/http/proxy.wit +0 -0
  2096. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/http/types.wit +0 -0
  2097. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/io/error.wit +0 -0
  2098. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/io/poll.wit +0 -0
  2099. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/io/streams.wit +0 -0
  2100. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/io/world.wit +0 -0
  2101. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/random/insecure-seed.wit +0 -0
  2102. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/random/insecure.wit +0 -0
  2103. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/random/random.wit +0 -0
  2104. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/random/world.wit +0 -0
  2105. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/instance-network.wit +0 -0
  2106. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  2107. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/network.wit +0 -0
  2108. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  2109. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/tcp.wit +0 -0
  2110. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/udp-create-socket.wit +0 -0
  2111. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/udp.wit +0 -0
  2112. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/world.wit +0 -0
  2113. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/test.wit +0 -0
  2114. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/witx/preview0/typenames.witx +0 -0
  2115. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  2116. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/witx/preview1/typenames.witx +0 -0
  2117. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  2118. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-22.0.0}/LICENSE +0 -0
  2119. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-22.0.0}/src/builder.rs +0 -0
  2120. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-22.0.0}/src/lib.rs +0 -0
  2121. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-20.0.2 → wasmtime-wit-bindgen-22.0.0}/src/source.rs +0 -0
  2122. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2 → wiggle-22.0.0}/LICENSE +0 -0
  2123. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-22.0.0}/README.md +0 -0
  2124. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-22.0.0}/src/error.rs +0 -0
  2125. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-22.0.0}/src/region.rs +0 -0
  2126. /data/ext/cargo-vendor/{wasmtime-types-20.0.2 → wiggle-generate-22.0.0}/LICENSE +0 -0
  2127. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/README.md +0 -0
  2128. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/codegen_settings.rs +0 -0
  2129. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/config.rs +0 -0
  2130. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/lib.rs +0 -0
  2131. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/lifetimes.rs +0 -0
  2132. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/types/error.rs +0 -0
  2133. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wiggle-macro-22.0.0}/LICENSE +0 -0
  2134. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/LICENSE +0 -0
  2135. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/build.rs +0 -0
  2136. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/abi/local.rs +0 -0
  2137. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/codegen/bounds.rs +0 -0
  2138. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/codegen/builtin.rs +0 -0
  2139. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/codegen/call.rs +0 -0
  2140. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/mod.rs +0 -0
  2141. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/x64/abi.rs +0 -0
  2142. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/x64/address.rs +0 -0
  2143. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/x64/mod.rs +0 -0
  2144. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/x64/regs.rs +0 -0
  2145. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/lib.rs +0 -0
  2146. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/README.md +0 -0
  2147. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/src/abi.rs +0 -0
  2148. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/src/ast/lex.rs +0 -0
  2149. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/src/ast/toposort.rs +0 -0
  2150. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/src/sizealign.rs +0 -0
  2151. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/comments.wit +0 -0
  2152. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/comments.wit.json +0 -0
  2153. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/complex-include/deps/bar/root.wit +0 -0
  2154. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/complex-include/deps/baz/root.wit +0 -0
  2155. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/complex-include/root.wit +0 -0
  2156. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/cross-package-resource/deps/foo/foo.wit +0 -0
  2157. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/cross-package-resource/foo.wit +0 -0
  2158. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/cross-package-resource.wit.json +0 -0
  2159. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/diamond1/deps/dep1/types.wit +0 -0
  2160. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/diamond1/deps/dep2/types.wit +0 -0
  2161. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/diamond1/join.wit +0 -0
  2162. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/disambiguate-diamond/shared1.wit +0 -0
  2163. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/disambiguate-diamond/shared2.wit +0 -0
  2164. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/disambiguate-diamond/world.wit +0 -0
  2165. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/empty.wit +0 -0
  2166. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/empty.wit.json +0 -0
  2167. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -0
  2168. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/corp/saas.wit +0 -0
  2169. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -0
  2170. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -0
  2171. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -0
  2172. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -0
  2173. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -0
  2174. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/root.wit +0 -0
  2175. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit +0 -0
  2176. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/corp/saas.wit +0 -0
  2177. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit +0 -0
  2178. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit +0 -0
  2179. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit +0 -0
  2180. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/wasi/clocks.wit +0 -0
  2181. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit +0 -0
  2182. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/wasi/wasi.wit +0 -0
  2183. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/root.wit +0 -0
  2184. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/functions.wit +0 -0
  2185. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/functions.wit.json +0 -0
  2186. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/ignore-files-deps/deps/bar/types.wit +0 -0
  2187. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/ignore-files-deps/deps/ignore-me.txt +0 -0
  2188. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/ignore-files-deps/world.wit +0 -0
  2189. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/import-export-overlap1.wit +0 -0
  2190. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/import-export-overlap1.wit.json +0 -0
  2191. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/import-export-overlap2.wit +0 -0
  2192. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/include-reps.wit +0 -0
  2193. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kebab-name-include-with.wit +0 -0
  2194. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kebab-name-include-with.wit.json +0 -0
  2195. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/a.wit +0 -0
  2196. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/b/root.wit +0 -0
  2197. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/c.wit +0 -0
  2198. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/d.wat +0 -0
  2199. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/e.wasm +0 -0
  2200. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/many-names/a.wit +0 -0
  2201. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/many-names/b.wit +0 -0
  2202. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/multi-file/bar.wit +0 -0
  2203. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/multi-file/cycle-a.wit +0 -0
  2204. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/multi-file/cycle-b.wit +0 -0
  2205. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/multi-file/foo.wit +0 -0
  2206. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/name-both-resource-and-type/deps/dep/foo.wit +0 -0
  2207. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/name-both-resource-and-type/foo.wit +0 -0
  2208. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/name-both-resource-and-type.wit.json +0 -0
  2209. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax1.wit +0 -0
  2210. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax1.wit.json +0 -0
  2211. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax3.wit +0 -0
  2212. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax3.wit.json +0 -0
  2213. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax4.wit +0 -0
  2214. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax4.wit.json +0 -0
  2215. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  2216. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/alias-no-type.wit.result +0 -0
  2217. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/async.wit.result +0 -0
  2218. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/async1.wit.result +0 -0
  2219. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function.wit +0 -0
  2220. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function.wit.result +0 -0
  2221. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function2.wit +0 -0
  2222. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function2.wit.result +0 -0
  2223. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include1.wit +0 -0
  2224. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include1.wit.result +0 -0
  2225. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include2.wit +0 -0
  2226. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include2.wit.result +0 -0
  2227. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include3.wit +0 -0
  2228. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include3.wit.result +0 -0
  2229. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-list.wit +0 -0
  2230. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  2231. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg1/root.wit +0 -0
  2232. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg1.wit.result +0 -0
  2233. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +0 -0
  2234. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg2/root.wit +0 -0
  2235. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg2.wit.result +0 -0
  2236. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  2237. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg3/root.wit +0 -0
  2238. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg3.wit.result +0 -0
  2239. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -0
  2240. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg4/root.wit +0 -0
  2241. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg4.wit.result +0 -0
  2242. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -0
  2243. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg5/root.wit +0 -0
  2244. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg5.wit.result +0 -0
  2245. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  2246. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg6/root.wit +0 -0
  2247. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg6.wit.result +0 -0
  2248. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource1.wit +0 -0
  2249. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource1.wit.result +0 -0
  2250. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource10.wit +0 -0
  2251. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource10.wit.result +0 -0
  2252. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource11.wit +0 -0
  2253. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource11.wit.result +0 -0
  2254. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource12.wit +0 -0
  2255. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource12.wit.result +0 -0
  2256. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource13.wit +0 -0
  2257. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource13.wit.result +0 -0
  2258. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource14.wit +0 -0
  2259. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource14.wit.result +0 -0
  2260. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit +0 -0
  2261. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource15/foo.wit +0 -0
  2262. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource15.wit.result +0 -0
  2263. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource2.wit +0 -0
  2264. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource2.wit.result +0 -0
  2265. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource3.wit +0 -0
  2266. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource3.wit.result +0 -0
  2267. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource4.wit +0 -0
  2268. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource4.wit.result +0 -0
  2269. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource5.wit +0 -0
  2270. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource5.wit.result +0 -0
  2271. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource6.wit +0 -0
  2272. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource6.wit.result +0 -0
  2273. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource7.wit +0 -0
  2274. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource7.wit.result +0 -0
  2275. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource8.wit +0 -0
  2276. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource8.wit.result +0 -0
  2277. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource9.wit +0 -0
  2278. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource9.wit.result +0 -0
  2279. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-world-type1.wit +0 -0
  2280. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-world-type1.wit.result +0 -0
  2281. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/conflicting-package/a.wit +0 -0
  2282. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/conflicting-package/b.wit +0 -0
  2283. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle.wit +0 -0
  2284. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle.wit.result +0 -0
  2285. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle2.wit +0 -0
  2286. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle2.wit.result +0 -0
  2287. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle3.wit +0 -0
  2288. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle3.wit.result +0 -0
  2289. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle4.wit +0 -0
  2290. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle4.wit.result +0 -0
  2291. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle5.wit +0 -0
  2292. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle5.wit.result +0 -0
  2293. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/dangling-type.wit +0 -0
  2294. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  2295. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-function-params.wit +0 -0
  2296. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-function-params.wit.result +0 -0
  2297. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-functions.wit +0 -0
  2298. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-functions.wit.result +0 -0
  2299. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface.wit +0 -0
  2300. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface.wit.result +0 -0
  2301. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface2/foo.wit +0 -0
  2302. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface2/foo2.wit +0 -0
  2303. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface2.wit.result +0 -0
  2304. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-type.wit +0 -0
  2305. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-type.wit.result +0 -0
  2306. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-enum.wit +0 -0
  2307. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-enum.wit.result +0 -0
  2308. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-variant1.wit +0 -0
  2309. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-variant1.wit.result +0 -0
  2310. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/export-twice.wit +0 -0
  2311. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/export-twice.wit.result +0 -0
  2312. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export1.wit +0 -0
  2313. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export1.wit.result +0 -0
  2314. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export2.wit +0 -0
  2315. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export2.wit.result +0 -0
  2316. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export3.wit +0 -0
  2317. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export3.wit.result +0 -0
  2318. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export4.wit +0 -0
  2319. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export4.wit.result +0 -0
  2320. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export5.wit +0 -0
  2321. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export5.wit.result +0 -0
  2322. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-twice.wit +0 -0
  2323. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-twice.wit.result +0 -0
  2324. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-cycle.wit +0 -0
  2325. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-cycle.wit.result +0 -0
  2326. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit +0 -0
  2327. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-foreign/root.wit +0 -0
  2328. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-foreign.wit.result +0 -0
  2329. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-id.wit +0 -0
  2330. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-id.wit.result +0 -0
  2331. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-on-id.wit +0 -0
  2332. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-on-id.wit.result +0 -0
  2333. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  2334. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  2335. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference.wit +0 -0
  2336. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -0
  2337. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference2.wit +0 -0
  2338. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -0
  2339. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include-not-found.wit +0 -0
  2340. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include-not-found.wit.result +0 -0
  2341. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include.wit +0 -0
  2342. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include.wit.result +0 -0
  2343. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/keyword.wit +0 -0
  2344. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/keyword.wit.result +0 -0
  2345. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/missing-package.wit +0 -0
  2346. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/missing-package.wit.result +0 -0
  2347. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/multiple-package-docs/a.wit +0 -0
  2348. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/multiple-package-docs/b.wit +0 -0
  2349. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +0 -0
  2350. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +0 -0
  2351. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +0 -0
  2352. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit +0 -0
  2353. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/non-existance-world-include/root.wit +0 -0
  2354. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/non-existance-world-include.wit.result +0 -0
  2355. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -0
  2356. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle/root.wit +0 -0
  2357. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle.wit.result +0 -0
  2358. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -0
  2359. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -0
  2360. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -0
  2361. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -0
  2362. /data/ext/cargo-vendor/{wit-parser-0.202.0/tests/ui → wit-parser-0.209.1/tests/ui/parse-fail}/resources-multiple-returns-borrow.wit +0 -0
  2363. /data/ext/cargo-vendor/{wit-parser-0.202.0/tests/ui → wit-parser-0.209.1/tests/ui/parse-fail}/resources-return-borrow.wit +0 -0
  2364. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit +0 -0
  2365. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/type-and-resource-same-name/foo.wit +0 -0
  2366. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/type-and-resource-same-name.wit.result +0 -0
  2367. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/undefined-typed.wit +0 -0
  2368. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/undefined-typed.wit.result +0 -0
  2369. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unknown-interface.wit +0 -0
  2370. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unknown-interface.wit.result +0 -0
  2371. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface1.wit +0 -0
  2372. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -0
  2373. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface2.wit +0 -0
  2374. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -0
  2375. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface3.wit +0 -0
  2376. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -0
  2377. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface4.wit +0 -0
  2378. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -0
  2379. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use1.wit +0 -0
  2380. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use1.wit.result +0 -0
  2381. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -0
  2382. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  2383. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use10.wit.result +0 -0
  2384. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use2.wit +0 -0
  2385. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use2.wit.result +0 -0
  2386. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use3.wit +0 -0
  2387. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use3.wit.result +0 -0
  2388. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use7.wit +0 -0
  2389. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use7.wit.result +0 -0
  2390. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use8.wit +0 -0
  2391. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use8.wit.result +0 -0
  2392. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use9.wit +0 -0
  2393. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use9.wit.result +0 -0
  2394. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
  2395. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit +0 -0
  2396. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-and-include-world/root.wit +0 -0
  2397. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-and-include-world.wit.result +0 -0
  2398. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict.wit +0 -0
  2399. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict.wit.result +0 -0
  2400. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict2.wit +0 -0
  2401. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict2.wit.result +0 -0
  2402. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict3.wit +0 -0
  2403. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict3.wit.result +0 -0
  2404. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle1.wit +0 -0
  2405. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle1.wit.result +0 -0
  2406. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle4.wit +0 -0
  2407. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle4.wit.result +0 -0
  2408. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-shadow1.wit +0 -0
  2409. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-shadow1.wit.result +0 -0
  2410. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-world/deps/bar/baz.wit +0 -0
  2411. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-world/root.wit +0 -0
  2412. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-world.wit.result +0 -0
  2413. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-interface-clash.wit +0 -0
  2414. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-interface-clash.wit.result +0 -0
  2415. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields2.wit +0 -0
  2416. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields2.wit.result +0 -0
  2417. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields3.wit +0 -0
  2418. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields3.wit.result +0 -0
  2419. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func.wit +0 -0
  2420. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func.wit.result +0 -0
  2421. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func2.wit +0 -0
  2422. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -0
  2423. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/random.wit +0 -0
  2424. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/random.wit.json +0 -0
  2425. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-empty.wit +0 -0
  2426. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-empty.wit.json +0 -0
  2427. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-multiple-returns-own.wit +0 -0
  2428. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-multiple-returns-own.wit.json +0 -0
  2429. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-multiple.wit +0 -0
  2430. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-multiple.wit.json +0 -0
  2431. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-return-own.wit +0 -0
  2432. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-return-own.wit.json +0 -0
  2433. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources.wit +0 -0
  2434. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources.wit.json +0 -0
  2435. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources1.wit +0 -0
  2436. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources1.wit.json +0 -0
  2437. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/same-name-import-export.wit +0 -0
  2438. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/same-name-import-export.wit.json +0 -0
  2439. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/shared-types.wit +0 -0
  2440. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/simple-wasm-text.wat +0 -0
  2441. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/simple-wasm-text.wit.json +0 -0
  2442. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/stress-export-elaborate.wit +0 -0
  2443. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/type-then-eof.wit +0 -0
  2444. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/type-then-eof.wit.json +0 -0
  2445. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/types.wit +0 -0
  2446. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/types.wit.json +0 -0
  2447. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-1.wit +0 -0
  2448. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-1.wit.json +0 -0
  2449. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-2.wit +0 -0
  2450. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-2.wit.json +0 -0
  2451. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/use-chain.wit +0 -0
  2452. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/use-chain.wit.json +0 -0
  2453. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/use.wit +0 -0
  2454. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/use.wit.json +0 -0
  2455. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/versions/deps/a1/foo.wit +0 -0
  2456. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/versions/deps/a2/foo.wit +0 -0
  2457. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/versions/foo.wit +0 -0
  2458. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/versions.wit.json +0 -0
  2459. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/wasi.wit +0 -0
  2460. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/wasi.wit.json +0 -0
  2461. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-diamond.wit +0 -0
  2462. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-iface-no-collide.wit +0 -0
  2463. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-implicit-import1.wit +0 -0
  2464. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-implicit-import2.wit +0 -0
  2465. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-implicit-import3.wit +0 -0
  2466. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-same-fields4.wit +0 -0
  2467. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-top-level-funcs.wit +0 -0
  2468. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-top-level-funcs.wit.json +0 -0
  2469. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/worlds-union-dedup.wit +0 -0
  2470. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/worlds-with-types.wit +0 -0
@@ -0,0 +1,3695 @@
1
+ //! This module contains the bulk of the interesting code performing the translation between
2
+ //! WebAssembly and Cranelift IR.
3
+ //!
4
+ //! The translation is done in one pass, opcode by opcode. Two main data structures are used during
5
+ //! code translations: the value stack and the control stack. The value stack mimics the execution
6
+ //! of the WebAssembly stack machine: each instruction result is pushed onto the stack and
7
+ //! instruction arguments are popped off the stack. Similarly, when encountering a control flow
8
+ //! block, it is pushed onto the control stack and popped off when encountering the corresponding
9
+ //! `End`.
10
+ //!
11
+ //! Another data structure, the translation state, records information concerning unreachable code
12
+ //! status and about if inserting a return at the end of the function is necessary.
13
+ //!
14
+ //! Some of the WebAssembly instructions need information about the environment for which they
15
+ //! are being translated:
16
+ //!
17
+ //! - the loads and stores need the memory base address;
18
+ //! - the `get_global` and `set_global` instructions depend on how the globals are implemented;
19
+ //! - `memory.size` and `memory.grow` are runtime functions;
20
+ //! - `call_indirect` has to translate the function index into the address of where this
21
+ //! is;
22
+ //!
23
+ //! That is why `translate_function_body` takes an object having the `WasmRuntime` trait as
24
+ //! argument.
25
+ //!
26
+ //! There is extra complexity associated with translation of 128-bit SIMD instructions.
27
+ //! Wasm only considers there to be a single 128-bit vector type. But CLIF's type system
28
+ //! distinguishes different lane configurations, so considers 8X16, 16X8, 32X4 and 64X2 to be
29
+ //! different types. The result is that, in wasm, it's perfectly OK to take the output of (eg)
30
+ //! an `add.16x8` and use that as an operand of a `sub.32x4`, without using any cast. But when
31
+ //! translated into CLIF, that will cause a verifier error due to the apparent type mismatch.
32
+ //!
33
+ //! This file works around that problem by liberally inserting `bitcast` instructions in many
34
+ //! places -- mostly, before the use of vector values, either as arguments to CLIF instructions
35
+ //! or as block actual parameters. These are no-op casts which nevertheless have different
36
+ //! input and output types, and are used (mostly) to "convert" 16X8, 32X4 and 64X2-typed vectors
37
+ //! to the "canonical" type, 8X16. Hence the functions `optionally_bitcast_vector`,
38
+ //! `bitcast_arguments`, `pop*_with_bitcast`, `canonicalise_then_jump`,
39
+ //! `canonicalise_then_br{z,nz}`, `is_non_canonical_v128` and `canonicalise_v128_values`.
40
+ //! Note that the `bitcast*` functions are occasionally used to convert to some type other than
41
+ //! 8X16, but the `canonicalise*` functions always convert to type 8X16.
42
+ //!
43
+ //! Be careful when adding support for new vector instructions. And when adding new jumps, even
44
+ //! if they are apparently don't have any connection to vectors. Never generate any kind of
45
+ //! (inter-block) jump directly. Instead use `canonicalise_then_jump` and
46
+ //! `canonicalise_then_br{z,nz}`.
47
+ //!
48
+ //! The use of bitcasts is ugly and inefficient, but currently unavoidable:
49
+ //!
50
+ //! * they make the logic in this file fragile: miss out a bitcast for any reason, and there is
51
+ //! the risk of the system failing in the verifier. At least for debug builds.
52
+ //!
53
+ //! * in the new backends, they potentially interfere with pattern matching on CLIF -- the
54
+ //! patterns need to take into account the presence of bitcast nodes.
55
+ //!
56
+ //! * in the new backends, they get translated into machine-level vector-register-copy
57
+ //! instructions, none of which are actually necessary. We then depend on the register
58
+ //! allocator to coalesce them all out.
59
+ //!
60
+ //! * they increase the total number of CLIF nodes that have to be processed, hence slowing down
61
+ //! the compilation pipeline. Also, the extra coalescing work generates a slowdown.
62
+ //!
63
+ //! A better solution which would avoid all four problems would be to remove the 8X16, 16X8,
64
+ //! 32X4 and 64X2 types from CLIF and instead have a single V128 type.
65
+ //!
66
+ //! For further background see also:
67
+ //! <https://github.com/bytecodealliance/wasmtime/issues/1147>
68
+ //! ("Too many raw_bitcasts in SIMD code")
69
+ //! <https://github.com/bytecodealliance/cranelift/pull/1251>
70
+ //! ("Add X128 type to represent WebAssembly's V128 type")
71
+ //! <https://github.com/bytecodealliance/cranelift/pull/1236>
72
+ //! ("Relax verification to allow I8X16 to act as a default vector type")
73
+
74
+ mod bounds_checks;
75
+
76
+ use super::{hash_map, HashMap};
77
+ use crate::environ::{FuncEnvironment, GlobalVariable};
78
+ use crate::state::{ControlStackFrame, ElseData, FuncTranslationState};
79
+ use crate::translation_utils::{
80
+ block_with_params, blocktype_params_results, f32_translation, f64_translation,
81
+ };
82
+ use crate::wasm_unsupported;
83
+ use crate::{FuncIndex, GlobalIndex, MemoryIndex, TableIndex, TypeIndex, WasmResult};
84
+ use core::{i32, u32};
85
+ use cranelift_codegen::ir::condcodes::{FloatCC, IntCC};
86
+ use cranelift_codegen::ir::immediates::Offset32;
87
+ use cranelift_codegen::ir::types::*;
88
+ use cranelift_codegen::ir::{
89
+ self, AtomicRmwOp, ConstantData, InstBuilder, JumpTableData, MemFlags, Value, ValueLabel,
90
+ };
91
+ use cranelift_codegen::packed_option::ReservedValue;
92
+ use cranelift_frontend::{FunctionBuilder, Variable};
93
+ use itertools::Itertools;
94
+ use smallvec::SmallVec;
95
+ use std::vec::Vec;
96
+ use wasmparser::{FuncValidator, MemArg, Operator, WasmModuleResources};
97
+
98
+ /// Given a `Reachability<T>`, unwrap the inner `T` or, when unreachable, set
99
+ /// `state.reachable = false` and return.
100
+ ///
101
+ /// Used in combination with calling `prepare_addr` and `prepare_atomic_addr`
102
+ /// when we can statically determine that a Wasm access will unconditionally
103
+ /// trap.
104
+ macro_rules! unwrap_or_return_unreachable_state {
105
+ ($state:ident, $value:expr) => {
106
+ match $value {
107
+ Reachability::Reachable(x) => x,
108
+ Reachability::Unreachable => {
109
+ $state.reachable = false;
110
+ return Ok(());
111
+ }
112
+ }
113
+ };
114
+ }
115
+
116
+ /// Translates wasm operators into Cranelift IR instructions.
117
+ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
118
+ validator: &mut FuncValidator<impl WasmModuleResources>,
119
+ op: &Operator,
120
+ builder: &mut FunctionBuilder,
121
+ state: &mut FuncTranslationState,
122
+ environ: &mut FE,
123
+ ) -> WasmResult<()> {
124
+ if !state.reachable {
125
+ translate_unreachable_operator(validator, &op, builder, state, environ)?;
126
+ return Ok(());
127
+ }
128
+
129
+ // Given that we believe the current block is reachable, the FunctionBuilder ought to agree.
130
+ debug_assert!(!builder.is_unreachable());
131
+
132
+ // This big match treats all Wasm code operators.
133
+ match op {
134
+ /********************************** Locals ****************************************
135
+ * `get_local` and `set_local` are treated as non-SSA variables and will completely
136
+ * disappear in the Cranelift Code
137
+ ***********************************************************************************/
138
+ Operator::LocalGet { local_index } => {
139
+ let val = builder.use_var(Variable::from_u32(*local_index));
140
+ state.push1(val);
141
+ let label = ValueLabel::from_u32(*local_index);
142
+ builder.set_val_label(val, label);
143
+ }
144
+ Operator::LocalSet { local_index } => {
145
+ let mut val = state.pop1();
146
+
147
+ // Ensure SIMD values are cast to their default Cranelift type, I8x16.
148
+ let ty = builder.func.dfg.value_type(val);
149
+ if ty.is_vector() {
150
+ val = optionally_bitcast_vector(val, I8X16, builder);
151
+ }
152
+
153
+ builder.def_var(Variable::from_u32(*local_index), val);
154
+ let label = ValueLabel::from_u32(*local_index);
155
+ builder.set_val_label(val, label);
156
+ }
157
+ Operator::LocalTee { local_index } => {
158
+ let mut val = state.peek1();
159
+
160
+ // Ensure SIMD values are cast to their default Cranelift type, I8x16.
161
+ let ty = builder.func.dfg.value_type(val);
162
+ if ty.is_vector() {
163
+ val = optionally_bitcast_vector(val, I8X16, builder);
164
+ }
165
+
166
+ builder.def_var(Variable::from_u32(*local_index), val);
167
+ let label = ValueLabel::from_u32(*local_index);
168
+ builder.set_val_label(val, label);
169
+ }
170
+ /********************************** Globals ****************************************
171
+ * `get_global` and `set_global` are handled by the environment.
172
+ ***********************************************************************************/
173
+ Operator::GlobalGet { global_index } => {
174
+ let val = match state.get_global(builder.func, *global_index, environ)? {
175
+ GlobalVariable::Const(val) => val,
176
+ GlobalVariable::Memory { gv, offset, ty } => {
177
+ let addr = builder.ins().global_value(environ.pointer_type(), gv);
178
+ let mut flags = ir::MemFlags::trusted();
179
+ // Put globals in the "table" abstract heap category as well.
180
+ flags.set_alias_region(Some(ir::AliasRegion::Table));
181
+ builder.ins().load(ty, flags, addr, offset)
182
+ }
183
+ GlobalVariable::Custom => environ.translate_custom_global_get(
184
+ builder.cursor(),
185
+ GlobalIndex::from_u32(*global_index),
186
+ )?,
187
+ };
188
+ state.push1(val);
189
+ }
190
+ Operator::GlobalSet { global_index } => {
191
+ match state.get_global(builder.func, *global_index, environ)? {
192
+ GlobalVariable::Const(_) => panic!("global #{} is a constant", *global_index),
193
+ GlobalVariable::Memory { gv, offset, ty } => {
194
+ let addr = builder.ins().global_value(environ.pointer_type(), gv);
195
+ let mut flags = ir::MemFlags::trusted();
196
+ // Put globals in the "table" abstract heap category as well.
197
+ flags.set_alias_region(Some(ir::AliasRegion::Table));
198
+ let mut val = state.pop1();
199
+ // Ensure SIMD values are cast to their default Cranelift type, I8x16.
200
+ if ty.is_vector() {
201
+ val = optionally_bitcast_vector(val, I8X16, builder);
202
+ }
203
+ debug_assert_eq!(ty, builder.func.dfg.value_type(val));
204
+ builder.ins().store(flags, val, addr, offset);
205
+ environ.update_global(builder, *global_index, val);
206
+ }
207
+ GlobalVariable::Custom => {
208
+ let val = state.pop1();
209
+ environ.translate_custom_global_set(
210
+ builder.cursor(),
211
+ GlobalIndex::from_u32(*global_index),
212
+ val,
213
+ )?;
214
+ }
215
+ }
216
+ }
217
+ /********************************* Stack misc ***************************************
218
+ * `drop`, `nop`, `unreachable` and `select`.
219
+ ***********************************************************************************/
220
+ Operator::Drop => {
221
+ state.pop1();
222
+ }
223
+ Operator::Select => {
224
+ let (mut arg1, mut arg2, cond) = state.pop3();
225
+ if builder.func.dfg.value_type(arg1).is_vector() {
226
+ arg1 = optionally_bitcast_vector(arg1, I8X16, builder);
227
+ }
228
+ if builder.func.dfg.value_type(arg2).is_vector() {
229
+ arg2 = optionally_bitcast_vector(arg2, I8X16, builder);
230
+ }
231
+ state.push1(builder.ins().select(cond, arg1, arg2));
232
+ }
233
+ Operator::TypedSelect { ty: _ } => {
234
+ // We ignore the explicit type parameter as it is only needed for
235
+ // validation, which we require to have been performed before
236
+ // translation.
237
+ let (mut arg1, mut arg2, cond) = state.pop3();
238
+ if builder.func.dfg.value_type(arg1).is_vector() {
239
+ arg1 = optionally_bitcast_vector(arg1, I8X16, builder);
240
+ }
241
+ if builder.func.dfg.value_type(arg2).is_vector() {
242
+ arg2 = optionally_bitcast_vector(arg2, I8X16, builder);
243
+ }
244
+ state.push1(builder.ins().select(cond, arg1, arg2));
245
+ }
246
+ Operator::Nop => {
247
+ // We do nothing
248
+ }
249
+ Operator::Unreachable => {
250
+ builder.ins().trap(ir::TrapCode::UnreachableCodeReached);
251
+ state.reachable = false;
252
+ }
253
+ /***************************** Control flow blocks **********************************
254
+ * When starting a control flow block, we create a new `Block` that will hold the code
255
+ * after the block, and we push a frame on the control stack. Depending on the type
256
+ * of block, we create a new `Block` for the body of the block with an associated
257
+ * jump instruction.
258
+ *
259
+ * The `End` instruction pops the last control frame from the control stack, seals
260
+ * the destination block (since `br` instructions targeting it only appear inside the
261
+ * block and have already been translated) and modify the value stack to use the
262
+ * possible `Block`'s arguments values.
263
+ ***********************************************************************************/
264
+ Operator::Block { blockty } => {
265
+ let (params, results) = blocktype_params_results(validator, *blockty)?;
266
+ let next = block_with_params(builder, results.clone(), environ)?;
267
+ state.push_block(next, params.len(), results.len());
268
+ }
269
+ Operator::Loop { blockty } => {
270
+ let (params, results) = blocktype_params_results(validator, *blockty)?;
271
+ let loop_body = block_with_params(builder, params.clone(), environ)?;
272
+ let next = block_with_params(builder, results.clone(), environ)?;
273
+ canonicalise_then_jump(builder, loop_body, state.peekn(params.len()));
274
+ state.push_loop(loop_body, next, params.len(), results.len());
275
+
276
+ // Pop the initial `Block` actuals and replace them with the `Block`'s
277
+ // params since control flow joins at the top of the loop.
278
+ state.popn(params.len());
279
+ state
280
+ .stack
281
+ .extend_from_slice(builder.block_params(loop_body));
282
+
283
+ builder.switch_to_block(loop_body);
284
+ environ.translate_loop_header(builder)?;
285
+ }
286
+ Operator::If { blockty } => {
287
+ let val = state.pop1();
288
+
289
+ let next_block = builder.create_block();
290
+ let (params, results) = blocktype_params_results(validator, *blockty)?;
291
+ let (destination, else_data) = if params.clone().eq(results.clone()) {
292
+ // It is possible there is no `else` block, so we will only
293
+ // allocate a block for it if/when we find the `else`. For now,
294
+ // we if the condition isn't true, then we jump directly to the
295
+ // destination block following the whole `if...end`. If we do end
296
+ // up discovering an `else`, then we will allocate a block for it
297
+ // and go back and patch the jump.
298
+ let destination = block_with_params(builder, results.clone(), environ)?;
299
+ let branch_inst = canonicalise_brif(
300
+ builder,
301
+ val,
302
+ next_block,
303
+ &[],
304
+ destination,
305
+ state.peekn(params.len()),
306
+ );
307
+ (
308
+ destination,
309
+ ElseData::NoElse {
310
+ branch_inst,
311
+ placeholder: destination,
312
+ },
313
+ )
314
+ } else {
315
+ // The `if` type signature is not valid without an `else` block,
316
+ // so we eagerly allocate the `else` block here.
317
+ let destination = block_with_params(builder, results.clone(), environ)?;
318
+ let else_block = block_with_params(builder, params.clone(), environ)?;
319
+ canonicalise_brif(
320
+ builder,
321
+ val,
322
+ next_block,
323
+ &[],
324
+ else_block,
325
+ state.peekn(params.len()),
326
+ );
327
+ builder.seal_block(else_block);
328
+ (destination, ElseData::WithElse { else_block })
329
+ };
330
+
331
+ builder.seal_block(next_block); // Only predecessor is the current block.
332
+ builder.switch_to_block(next_block);
333
+
334
+ // Here we append an argument to a Block targeted by an argumentless jump instruction
335
+ // But in fact there are two cases:
336
+ // - either the If does not have a Else clause, in that case ty = EmptyBlock
337
+ // and we add nothing;
338
+ // - either the If have an Else clause, in that case the destination of this jump
339
+ // instruction will be changed later when we translate the Else operator.
340
+ state.push_if(
341
+ destination,
342
+ else_data,
343
+ params.len(),
344
+ results.len(),
345
+ *blockty,
346
+ );
347
+ }
348
+ Operator::Else => {
349
+ let i = state.control_stack.len() - 1;
350
+ match state.control_stack[i] {
351
+ ControlStackFrame::If {
352
+ ref else_data,
353
+ head_is_reachable,
354
+ ref mut consequent_ends_reachable,
355
+ num_return_values,
356
+ blocktype,
357
+ destination,
358
+ ..
359
+ } => {
360
+ // We finished the consequent, so record its final
361
+ // reachability state.
362
+ debug_assert!(consequent_ends_reachable.is_none());
363
+ *consequent_ends_reachable = Some(state.reachable);
364
+
365
+ if head_is_reachable {
366
+ // We have a branch from the head of the `if` to the `else`.
367
+ state.reachable = true;
368
+
369
+ // Ensure we have a block for the `else` block (it may have
370
+ // already been pre-allocated, see `ElseData` for details).
371
+ let else_block = match *else_data {
372
+ ElseData::NoElse {
373
+ branch_inst,
374
+ placeholder,
375
+ } => {
376
+ let (params, _results) =
377
+ blocktype_params_results(validator, blocktype)?;
378
+ debug_assert_eq!(params.len(), num_return_values);
379
+ let else_block =
380
+ block_with_params(builder, params.clone(), environ)?;
381
+ canonicalise_then_jump(
382
+ builder,
383
+ destination,
384
+ state.peekn(params.len()),
385
+ );
386
+ state.popn(params.len());
387
+
388
+ builder.change_jump_destination(
389
+ branch_inst,
390
+ placeholder,
391
+ else_block,
392
+ );
393
+ builder.seal_block(else_block);
394
+ else_block
395
+ }
396
+ ElseData::WithElse { else_block } => {
397
+ canonicalise_then_jump(
398
+ builder,
399
+ destination,
400
+ state.peekn(num_return_values),
401
+ );
402
+ state.popn(num_return_values);
403
+ else_block
404
+ }
405
+ };
406
+
407
+ // You might be expecting that we push the parameters for this
408
+ // `else` block here, something like this:
409
+ //
410
+ // state.pushn(&control_stack_frame.params);
411
+ //
412
+ // We don't do that because they are already on the top of the stack
413
+ // for us: we pushed the parameters twice when we saw the initial
414
+ // `if` so that we wouldn't have to save the parameters in the
415
+ // `ControlStackFrame` as another `Vec` allocation.
416
+
417
+ builder.switch_to_block(else_block);
418
+
419
+ // We don't bother updating the control frame's `ElseData`
420
+ // to `WithElse` because nothing else will read it.
421
+ }
422
+ }
423
+ _ => unreachable!(),
424
+ }
425
+ }
426
+ Operator::End => {
427
+ let frame = state.control_stack.pop().unwrap();
428
+ let next_block = frame.following_code();
429
+ let return_count = frame.num_return_values();
430
+ let return_args = state.peekn_mut(return_count);
431
+
432
+ canonicalise_then_jump(builder, next_block, return_args);
433
+ // You might expect that if we just finished an `if` block that
434
+ // didn't have a corresponding `else` block, then we would clean
435
+ // up our duplicate set of parameters that we pushed earlier
436
+ // right here. However, we don't have to explicitly do that,
437
+ // since we truncate the stack back to the original height
438
+ // below.
439
+
440
+ builder.switch_to_block(next_block);
441
+ builder.seal_block(next_block);
442
+
443
+ // If it is a loop we also have to seal the body loop block
444
+ if let ControlStackFrame::Loop { header, .. } = frame {
445
+ builder.seal_block(header)
446
+ }
447
+
448
+ frame.truncate_value_stack_to_original_size(&mut state.stack);
449
+ state
450
+ .stack
451
+ .extend_from_slice(builder.block_params(next_block));
452
+ }
453
+ /**************************** Branch instructions *********************************
454
+ * The branch instructions all have as arguments a target nesting level, which
455
+ * corresponds to how many control stack frames do we have to pop to get the
456
+ * destination `Block`.
457
+ *
458
+ * Once the destination `Block` is found, we sometimes have to declare a certain depth
459
+ * of the stack unreachable, because some branch instructions are terminator.
460
+ *
461
+ * The `br_table` case is much more complicated because Cranelift's `br_table` instruction
462
+ * does not support jump arguments like all the other branch instructions. That is why, in
463
+ * the case where we would use jump arguments for every other branch instruction, we
464
+ * need to split the critical edges leaving the `br_tables` by creating one `Block` per
465
+ * table destination; the `br_table` will point to these newly created `Blocks` and these
466
+ * `Block`s contain only a jump instruction pointing to the final destination, this time with
467
+ * jump arguments.
468
+ *
469
+ * This system is also implemented in Cranelift's SSA construction algorithm, because
470
+ * `use_var` located in a destination `Block` of a `br_table` might trigger the addition
471
+ * of jump arguments in each predecessor branch instruction, one of which might be a
472
+ * `br_table`.
473
+ ***********************************************************************************/
474
+ Operator::Br { relative_depth } => {
475
+ let i = state.control_stack.len() - 1 - (*relative_depth as usize);
476
+ let (return_count, br_destination) = {
477
+ let frame = &mut state.control_stack[i];
478
+ // We signal that all the code that follows until the next End is unreachable
479
+ frame.set_branched_to_exit();
480
+ let return_count = if frame.is_loop() {
481
+ frame.num_param_values()
482
+ } else {
483
+ frame.num_return_values()
484
+ };
485
+ (return_count, frame.br_destination())
486
+ };
487
+ let destination_args = state.peekn_mut(return_count);
488
+ canonicalise_then_jump(builder, br_destination, destination_args);
489
+ state.popn(return_count);
490
+ state.reachable = false;
491
+ }
492
+ Operator::BrIf { relative_depth } => translate_br_if(*relative_depth, builder, state),
493
+ Operator::BrTable { targets } => {
494
+ let default = targets.default();
495
+ let mut min_depth = default;
496
+ for depth in targets.targets() {
497
+ let depth = depth?;
498
+ if depth < min_depth {
499
+ min_depth = depth;
500
+ }
501
+ }
502
+ let jump_args_count = {
503
+ let i = state.control_stack.len() - 1 - (min_depth as usize);
504
+ let min_depth_frame = &state.control_stack[i];
505
+ if min_depth_frame.is_loop() {
506
+ min_depth_frame.num_param_values()
507
+ } else {
508
+ min_depth_frame.num_return_values()
509
+ }
510
+ };
511
+ let val = state.pop1();
512
+ let mut data = Vec::with_capacity(targets.len() as usize);
513
+ if jump_args_count == 0 {
514
+ // No jump arguments
515
+ for depth in targets.targets() {
516
+ let depth = depth?;
517
+ let block = {
518
+ let i = state.control_stack.len() - 1 - (depth as usize);
519
+ let frame = &mut state.control_stack[i];
520
+ frame.set_branched_to_exit();
521
+ frame.br_destination()
522
+ };
523
+ data.push(builder.func.dfg.block_call(block, &[]));
524
+ }
525
+ let block = {
526
+ let i = state.control_stack.len() - 1 - (default as usize);
527
+ let frame = &mut state.control_stack[i];
528
+ frame.set_branched_to_exit();
529
+ frame.br_destination()
530
+ };
531
+ let block = builder.func.dfg.block_call(block, &[]);
532
+ let jt = builder.create_jump_table(JumpTableData::new(block, &data));
533
+ builder.ins().br_table(val, jt);
534
+ } else {
535
+ // Here we have jump arguments, but Cranelift's br_table doesn't support them
536
+ // We then proceed to split the edges going out of the br_table
537
+ let return_count = jump_args_count;
538
+ let mut dest_block_sequence = vec![];
539
+ let mut dest_block_map = HashMap::new();
540
+ for depth in targets.targets() {
541
+ let depth = depth?;
542
+ let branch_block = match dest_block_map.entry(depth as usize) {
543
+ hash_map::Entry::Occupied(entry) => *entry.get(),
544
+ hash_map::Entry::Vacant(entry) => {
545
+ let block = builder.create_block();
546
+ dest_block_sequence.push((depth as usize, block));
547
+ *entry.insert(block)
548
+ }
549
+ };
550
+ data.push(builder.func.dfg.block_call(branch_block, &[]));
551
+ }
552
+ let default_branch_block = match dest_block_map.entry(default as usize) {
553
+ hash_map::Entry::Occupied(entry) => *entry.get(),
554
+ hash_map::Entry::Vacant(entry) => {
555
+ let block = builder.create_block();
556
+ dest_block_sequence.push((default as usize, block));
557
+ *entry.insert(block)
558
+ }
559
+ };
560
+ let default_branch_block = builder.func.dfg.block_call(default_branch_block, &[]);
561
+ let jt = builder.create_jump_table(JumpTableData::new(default_branch_block, &data));
562
+ builder.ins().br_table(val, jt);
563
+ for (depth, dest_block) in dest_block_sequence {
564
+ builder.switch_to_block(dest_block);
565
+ builder.seal_block(dest_block);
566
+ let real_dest_block = {
567
+ let i = state.control_stack.len() - 1 - depth;
568
+ let frame = &mut state.control_stack[i];
569
+ frame.set_branched_to_exit();
570
+ frame.br_destination()
571
+ };
572
+ let destination_args = state.peekn_mut(return_count);
573
+ canonicalise_then_jump(builder, real_dest_block, destination_args);
574
+ }
575
+ state.popn(return_count);
576
+ }
577
+ state.reachable = false;
578
+ }
579
+ Operator::Return => {
580
+ let return_count = {
581
+ let frame = &mut state.control_stack[0];
582
+ frame.num_return_values()
583
+ };
584
+ {
585
+ let return_args = state.peekn_mut(return_count);
586
+ environ.handle_before_return(&return_args, builder);
587
+ bitcast_wasm_returns(environ, return_args, builder);
588
+ builder.ins().return_(return_args);
589
+ }
590
+ state.popn(return_count);
591
+ state.reachable = false;
592
+ }
593
+ /********************************** Exception handing **********************************/
594
+ Operator::Try { .. }
595
+ | Operator::Catch { .. }
596
+ | Operator::Throw { .. }
597
+ | Operator::Rethrow { .. }
598
+ | Operator::Delegate { .. }
599
+ | Operator::CatchAll => {
600
+ return Err(wasm_unsupported!(
601
+ "proposed exception handling operator {:?}",
602
+ op
603
+ ));
604
+ }
605
+ /************************************ Calls ****************************************
606
+ * The call instructions pop off their arguments from the stack and append their
607
+ * return values to it. `call_indirect` needs environment support because there is an
608
+ * argument referring to an index in the external functions table of the module.
609
+ ************************************************************************************/
610
+ Operator::Call { function_index } => {
611
+ let (fref, num_args) = state.get_direct_func(builder.func, *function_index, environ)?;
612
+
613
+ // Bitcast any vector arguments to their default type, I8X16, before calling.
614
+ let args = state.peekn_mut(num_args);
615
+ bitcast_wasm_params(
616
+ environ,
617
+ builder.func.dfg.ext_funcs[fref].signature,
618
+ args,
619
+ builder,
620
+ );
621
+
622
+ let call = environ.translate_call(
623
+ builder,
624
+ FuncIndex::from_u32(*function_index),
625
+ fref,
626
+ args,
627
+ )?;
628
+ let inst_results = builder.inst_results(call);
629
+ debug_assert_eq!(
630
+ inst_results.len(),
631
+ builder.func.dfg.signatures[builder.func.dfg.ext_funcs[fref].signature]
632
+ .returns
633
+ .len(),
634
+ "translate_call results should match the call signature"
635
+ );
636
+ state.popn(num_args);
637
+ state.pushn(inst_results);
638
+ }
639
+ Operator::CallIndirect {
640
+ type_index,
641
+ table_index,
642
+ table_byte: _,
643
+ } => {
644
+ // `type_index` is the index of the function's signature and
645
+ // `table_index` is the index of the table to search the function
646
+ // in.
647
+ let (sigref, num_args) = state.get_indirect_sig(builder.func, *type_index, environ)?;
648
+ let callee = state.pop1();
649
+
650
+ // Bitcast any vector arguments to their default type, I8X16, before calling.
651
+ let args = state.peekn_mut(num_args);
652
+ bitcast_wasm_params(environ, sigref, args, builder);
653
+
654
+ let call = environ.translate_call_indirect(
655
+ builder,
656
+ TableIndex::from_u32(*table_index),
657
+ TypeIndex::from_u32(*type_index),
658
+ sigref,
659
+ callee,
660
+ state.peekn(num_args),
661
+ )?;
662
+ let call = match call {
663
+ Some(call) => call,
664
+ None => {
665
+ state.reachable = false;
666
+ return Ok(());
667
+ }
668
+ };
669
+ let inst_results = builder.inst_results(call);
670
+ debug_assert_eq!(
671
+ inst_results.len(),
672
+ builder.func.dfg.signatures[sigref].returns.len(),
673
+ "translate_call_indirect results should match the call signature"
674
+ );
675
+ state.popn(num_args);
676
+ state.pushn(inst_results);
677
+ }
678
+ /******************************* Tail Calls ******************************************
679
+ * The tail call instructions pop their arguments from the stack and
680
+ * then permanently transfer control to their callee. The indirect
681
+ * version requires environment support (while the direct version can
682
+ * optionally be hooked but doesn't require it) it interacts with the
683
+ * VM's runtime state via tables.
684
+ ************************************************************************************/
685
+ Operator::ReturnCall { function_index } => {
686
+ let (fref, num_args) = state.get_direct_func(builder.func, *function_index, environ)?;
687
+
688
+ // Bitcast any vector arguments to their default type, I8X16, before calling.
689
+ let args = state.peekn_mut(num_args);
690
+ bitcast_wasm_params(
691
+ environ,
692
+ builder.func.dfg.ext_funcs[fref].signature,
693
+ args,
694
+ builder,
695
+ );
696
+
697
+ environ.translate_return_call(
698
+ builder,
699
+ FuncIndex::from_u32(*function_index),
700
+ fref,
701
+ args,
702
+ )?;
703
+
704
+ state.popn(num_args);
705
+ state.reachable = false;
706
+ }
707
+ Operator::ReturnCallIndirect {
708
+ type_index,
709
+ table_index,
710
+ } => {
711
+ // `type_index` is the index of the function's signature and
712
+ // `table_index` is the index of the table to search the function
713
+ // in.
714
+ let (sigref, num_args) = state.get_indirect_sig(builder.func, *type_index, environ)?;
715
+ let callee = state.pop1();
716
+
717
+ // Bitcast any vector arguments to their default type, I8X16, before calling.
718
+ let args = state.peekn_mut(num_args);
719
+ bitcast_wasm_params(environ, sigref, args, builder);
720
+
721
+ environ.translate_return_call_indirect(
722
+ builder,
723
+ TableIndex::from_u32(*table_index),
724
+ TypeIndex::from_u32(*type_index),
725
+ sigref,
726
+ callee,
727
+ state.peekn(num_args),
728
+ )?;
729
+
730
+ state.popn(num_args);
731
+ state.reachable = false;
732
+ }
733
+ Operator::ReturnCallRef { type_index } => {
734
+ // Get function signature
735
+ // `index` is the index of the function's signature and `table_index` is the index of
736
+ // the table to search the function in.
737
+ let (sigref, num_args) = state.get_indirect_sig(builder.func, *type_index, environ)?;
738
+ let callee = state.pop1();
739
+
740
+ // Bitcast any vector arguments to their default type, I8X16, before calling.
741
+ let args = state.peekn_mut(num_args);
742
+ bitcast_wasm_params(environ, sigref, args, builder);
743
+
744
+ environ.translate_return_call_ref(builder, sigref, callee, state.peekn(num_args))?;
745
+
746
+ state.popn(num_args);
747
+ state.reachable = false;
748
+ }
749
+ /******************************* Memory management ***********************************
750
+ * Memory management is handled by environment. It is usually translated into calls to
751
+ * special functions.
752
+ ************************************************************************************/
753
+ Operator::MemoryGrow { mem, mem_byte: _ } => {
754
+ // The WebAssembly MVP only supports one linear memory, but we expect the reserved
755
+ // argument to be a memory index.
756
+ let heap_index = MemoryIndex::from_u32(*mem);
757
+ let heap = state.get_heap(builder.func, *mem, environ)?;
758
+ let val = state.pop1();
759
+ environ.before_memory_grow(builder, val, heap_index);
760
+ state.push1(environ.translate_memory_grow(builder.cursor(), heap_index, heap, val)?)
761
+ }
762
+ Operator::MemorySize { mem, mem_byte: _ } => {
763
+ let heap_index = MemoryIndex::from_u32(*mem);
764
+ let heap = state.get_heap(builder.func, *mem, environ)?;
765
+ state.push1(environ.translate_memory_size(builder.cursor(), heap_index, heap)?);
766
+ }
767
+ /******************************* Load instructions ***********************************
768
+ * Wasm specifies an integer alignment flag but we drop it in Cranelift.
769
+ * The memory base address is provided by the environment.
770
+ ************************************************************************************/
771
+ Operator::I32Load8U { memarg } => {
772
+ unwrap_or_return_unreachable_state!(
773
+ state,
774
+ translate_load(memarg, ir::Opcode::Uload8, I32, builder, state, environ)?
775
+ );
776
+ }
777
+ Operator::I32Load16U { memarg } => {
778
+ unwrap_or_return_unreachable_state!(
779
+ state,
780
+ translate_load(memarg, ir::Opcode::Uload16, I32, builder, state, environ)?
781
+ );
782
+ }
783
+ Operator::I32Load8S { memarg } => {
784
+ unwrap_or_return_unreachable_state!(
785
+ state,
786
+ translate_load(memarg, ir::Opcode::Sload8, I32, builder, state, environ)?
787
+ );
788
+ }
789
+ Operator::I32Load16S { memarg } => {
790
+ unwrap_or_return_unreachable_state!(
791
+ state,
792
+ translate_load(memarg, ir::Opcode::Sload16, I32, builder, state, environ)?
793
+ );
794
+ }
795
+ Operator::I64Load8U { memarg } => {
796
+ unwrap_or_return_unreachable_state!(
797
+ state,
798
+ translate_load(memarg, ir::Opcode::Uload8, I64, builder, state, environ)?
799
+ );
800
+ }
801
+ Operator::I64Load16U { memarg } => {
802
+ unwrap_or_return_unreachable_state!(
803
+ state,
804
+ translate_load(memarg, ir::Opcode::Uload16, I64, builder, state, environ)?
805
+ );
806
+ }
807
+ Operator::I64Load8S { memarg } => {
808
+ unwrap_or_return_unreachable_state!(
809
+ state,
810
+ translate_load(memarg, ir::Opcode::Sload8, I64, builder, state, environ)?
811
+ );
812
+ }
813
+ Operator::I64Load16S { memarg } => {
814
+ unwrap_or_return_unreachable_state!(
815
+ state,
816
+ translate_load(memarg, ir::Opcode::Sload16, I64, builder, state, environ)?
817
+ );
818
+ }
819
+ Operator::I64Load32S { memarg } => {
820
+ unwrap_or_return_unreachable_state!(
821
+ state,
822
+ translate_load(memarg, ir::Opcode::Sload32, I64, builder, state, environ)?
823
+ );
824
+ }
825
+ Operator::I64Load32U { memarg } => {
826
+ unwrap_or_return_unreachable_state!(
827
+ state,
828
+ translate_load(memarg, ir::Opcode::Uload32, I64, builder, state, environ)?
829
+ );
830
+ }
831
+ Operator::I32Load { memarg } => {
832
+ unwrap_or_return_unreachable_state!(
833
+ state,
834
+ translate_load(memarg, ir::Opcode::Load, I32, builder, state, environ)?
835
+ );
836
+ }
837
+ Operator::F32Load { memarg } => {
838
+ unwrap_or_return_unreachable_state!(
839
+ state,
840
+ translate_load(memarg, ir::Opcode::Load, F32, builder, state, environ)?
841
+ );
842
+ }
843
+ Operator::I64Load { memarg } => {
844
+ unwrap_or_return_unreachable_state!(
845
+ state,
846
+ translate_load(memarg, ir::Opcode::Load, I64, builder, state, environ)?
847
+ );
848
+ }
849
+ Operator::F64Load { memarg } => {
850
+ unwrap_or_return_unreachable_state!(
851
+ state,
852
+ translate_load(memarg, ir::Opcode::Load, F64, builder, state, environ)?
853
+ );
854
+ }
855
+ Operator::V128Load { memarg } => {
856
+ unwrap_or_return_unreachable_state!(
857
+ state,
858
+ translate_load(memarg, ir::Opcode::Load, I8X16, builder, state, environ)?
859
+ );
860
+ }
861
+ Operator::V128Load8x8S { memarg } => {
862
+ //TODO(#6829): add before_load() and before_store() hooks for SIMD loads and stores.
863
+ let (flags, _, base) = unwrap_or_return_unreachable_state!(
864
+ state,
865
+ prepare_addr(memarg, 8, builder, state, environ)?
866
+ );
867
+ let loaded = builder.ins().sload8x8(flags, base, 0);
868
+ state.push1(loaded);
869
+ }
870
+ Operator::V128Load8x8U { memarg } => {
871
+ let (flags, _, base) = unwrap_or_return_unreachable_state!(
872
+ state,
873
+ prepare_addr(memarg, 8, builder, state, environ)?
874
+ );
875
+ let loaded = builder.ins().uload8x8(flags, base, 0);
876
+ state.push1(loaded);
877
+ }
878
+ Operator::V128Load16x4S { memarg } => {
879
+ let (flags, _, base) = unwrap_or_return_unreachable_state!(
880
+ state,
881
+ prepare_addr(memarg, 8, builder, state, environ)?
882
+ );
883
+ let loaded = builder.ins().sload16x4(flags, base, 0);
884
+ state.push1(loaded);
885
+ }
886
+ Operator::V128Load16x4U { memarg } => {
887
+ let (flags, _, base) = unwrap_or_return_unreachable_state!(
888
+ state,
889
+ prepare_addr(memarg, 8, builder, state, environ)?
890
+ );
891
+ let loaded = builder.ins().uload16x4(flags, base, 0);
892
+ state.push1(loaded);
893
+ }
894
+ Operator::V128Load32x2S { memarg } => {
895
+ let (flags, _, base) = unwrap_or_return_unreachable_state!(
896
+ state,
897
+ prepare_addr(memarg, 8, builder, state, environ)?
898
+ );
899
+ let loaded = builder.ins().sload32x2(flags, base, 0);
900
+ state.push1(loaded);
901
+ }
902
+ Operator::V128Load32x2U { memarg } => {
903
+ let (flags, _, base) = unwrap_or_return_unreachable_state!(
904
+ state,
905
+ prepare_addr(memarg, 8, builder, state, environ)?
906
+ );
907
+ let loaded = builder.ins().uload32x2(flags, base, 0);
908
+ state.push1(loaded);
909
+ }
910
+ /****************************** Store instructions ***********************************
911
+ * Wasm specifies an integer alignment flag but we drop it in Cranelift.
912
+ * The memory base address is provided by the environment.
913
+ ************************************************************************************/
914
+ Operator::I32Store { memarg }
915
+ | Operator::I64Store { memarg }
916
+ | Operator::F32Store { memarg }
917
+ | Operator::F64Store { memarg } => {
918
+ translate_store(memarg, ir::Opcode::Store, builder, state, environ)?;
919
+ }
920
+ Operator::I32Store8 { memarg } | Operator::I64Store8 { memarg } => {
921
+ translate_store(memarg, ir::Opcode::Istore8, builder, state, environ)?;
922
+ }
923
+ Operator::I32Store16 { memarg } | Operator::I64Store16 { memarg } => {
924
+ translate_store(memarg, ir::Opcode::Istore16, builder, state, environ)?;
925
+ }
926
+ Operator::I64Store32 { memarg } => {
927
+ translate_store(memarg, ir::Opcode::Istore32, builder, state, environ)?;
928
+ }
929
+ Operator::V128Store { memarg } => {
930
+ translate_store(memarg, ir::Opcode::Store, builder, state, environ)?;
931
+ }
932
+ /****************************** Nullary Operators ************************************/
933
+ Operator::I32Const { value } => {
934
+ state.push1(builder.ins().iconst(I32, *value as u32 as i64))
935
+ }
936
+ Operator::I64Const { value } => state.push1(builder.ins().iconst(I64, *value)),
937
+ Operator::F32Const { value } => {
938
+ state.push1(builder.ins().f32const(f32_translation(*value)));
939
+ }
940
+ Operator::F64Const { value } => {
941
+ state.push1(builder.ins().f64const(f64_translation(*value)));
942
+ }
943
+ /******************************* Unary Operators *************************************/
944
+ Operator::I32Clz | Operator::I64Clz => {
945
+ let arg = state.pop1();
946
+ state.push1(builder.ins().clz(arg));
947
+ }
948
+ Operator::I32Ctz | Operator::I64Ctz => {
949
+ let arg = state.pop1();
950
+ state.push1(builder.ins().ctz(arg));
951
+ }
952
+ Operator::I32Popcnt | Operator::I64Popcnt => {
953
+ let arg = state.pop1();
954
+ state.push1(builder.ins().popcnt(arg));
955
+ }
956
+ Operator::I64ExtendI32S => {
957
+ let val = state.pop1();
958
+ state.push1(builder.ins().sextend(I64, val));
959
+ }
960
+ Operator::I64ExtendI32U => {
961
+ let val = state.pop1();
962
+ state.push1(builder.ins().uextend(I64, val));
963
+ }
964
+ Operator::I32WrapI64 => {
965
+ let val = state.pop1();
966
+ state.push1(builder.ins().ireduce(I32, val));
967
+ }
968
+ Operator::F32Sqrt | Operator::F64Sqrt => {
969
+ let arg = state.pop1();
970
+ state.push1(builder.ins().sqrt(arg));
971
+ }
972
+ Operator::F32Ceil | Operator::F64Ceil => {
973
+ let arg = state.pop1();
974
+ state.push1(builder.ins().ceil(arg));
975
+ }
976
+ Operator::F32Floor | Operator::F64Floor => {
977
+ let arg = state.pop1();
978
+ state.push1(builder.ins().floor(arg));
979
+ }
980
+ Operator::F32Trunc | Operator::F64Trunc => {
981
+ let arg = state.pop1();
982
+ state.push1(builder.ins().trunc(arg));
983
+ }
984
+ Operator::F32Nearest | Operator::F64Nearest => {
985
+ let arg = state.pop1();
986
+ state.push1(builder.ins().nearest(arg));
987
+ }
988
+ Operator::F32Abs | Operator::F64Abs => {
989
+ let val = state.pop1();
990
+ state.push1(builder.ins().fabs(val));
991
+ }
992
+ Operator::F32Neg | Operator::F64Neg => {
993
+ let arg = state.pop1();
994
+ state.push1(builder.ins().fneg(arg));
995
+ }
996
+ Operator::F64ConvertI64U | Operator::F64ConvertI32U => {
997
+ let val = state.pop1();
998
+ state.push1(builder.ins().fcvt_from_uint(F64, val));
999
+ }
1000
+ Operator::F64ConvertI64S | Operator::F64ConvertI32S => {
1001
+ let val = state.pop1();
1002
+ state.push1(builder.ins().fcvt_from_sint(F64, val));
1003
+ }
1004
+ Operator::F32ConvertI64S | Operator::F32ConvertI32S => {
1005
+ let val = state.pop1();
1006
+ state.push1(builder.ins().fcvt_from_sint(F32, val));
1007
+ }
1008
+ Operator::F32ConvertI64U | Operator::F32ConvertI32U => {
1009
+ let val = state.pop1();
1010
+ state.push1(builder.ins().fcvt_from_uint(F32, val));
1011
+ }
1012
+ Operator::F64PromoteF32 => {
1013
+ let val = state.pop1();
1014
+ state.push1(builder.ins().fpromote(F64, val));
1015
+ }
1016
+ Operator::F32DemoteF64 => {
1017
+ let val = state.pop1();
1018
+ state.push1(builder.ins().fdemote(F32, val));
1019
+ }
1020
+ Operator::I64TruncF64S | Operator::I64TruncF32S => {
1021
+ let val = state.pop1();
1022
+ state.push1(builder.ins().fcvt_to_sint(I64, val));
1023
+ }
1024
+ Operator::I32TruncF64S | Operator::I32TruncF32S => {
1025
+ let val = state.pop1();
1026
+ state.push1(builder.ins().fcvt_to_sint(I32, val));
1027
+ }
1028
+ Operator::I64TruncF64U | Operator::I64TruncF32U => {
1029
+ let val = state.pop1();
1030
+ state.push1(builder.ins().fcvt_to_uint(I64, val));
1031
+ }
1032
+ Operator::I32TruncF64U | Operator::I32TruncF32U => {
1033
+ let val = state.pop1();
1034
+ state.push1(builder.ins().fcvt_to_uint(I32, val));
1035
+ }
1036
+ Operator::I64TruncSatF64S | Operator::I64TruncSatF32S => {
1037
+ let val = state.pop1();
1038
+ state.push1(builder.ins().fcvt_to_sint_sat(I64, val));
1039
+ }
1040
+ Operator::I32TruncSatF64S | Operator::I32TruncSatF32S => {
1041
+ let val = state.pop1();
1042
+ state.push1(builder.ins().fcvt_to_sint_sat(I32, val));
1043
+ }
1044
+ Operator::I64TruncSatF64U | Operator::I64TruncSatF32U => {
1045
+ let val = state.pop1();
1046
+ state.push1(builder.ins().fcvt_to_uint_sat(I64, val));
1047
+ }
1048
+ Operator::I32TruncSatF64U | Operator::I32TruncSatF32U => {
1049
+ let val = state.pop1();
1050
+ state.push1(builder.ins().fcvt_to_uint_sat(I32, val));
1051
+ }
1052
+ Operator::F32ReinterpretI32 => {
1053
+ let val = state.pop1();
1054
+ state.push1(builder.ins().bitcast(F32, MemFlags::new(), val));
1055
+ }
1056
+ Operator::F64ReinterpretI64 => {
1057
+ let val = state.pop1();
1058
+ state.push1(builder.ins().bitcast(F64, MemFlags::new(), val));
1059
+ }
1060
+ Operator::I32ReinterpretF32 => {
1061
+ let val = state.pop1();
1062
+ state.push1(builder.ins().bitcast(I32, MemFlags::new(), val));
1063
+ }
1064
+ Operator::I64ReinterpretF64 => {
1065
+ let val = state.pop1();
1066
+ state.push1(builder.ins().bitcast(I64, MemFlags::new(), val));
1067
+ }
1068
+ Operator::I32Extend8S => {
1069
+ let val = state.pop1();
1070
+ state.push1(builder.ins().ireduce(I8, val));
1071
+ let val = state.pop1();
1072
+ state.push1(builder.ins().sextend(I32, val));
1073
+ }
1074
+ Operator::I32Extend16S => {
1075
+ let val = state.pop1();
1076
+ state.push1(builder.ins().ireduce(I16, val));
1077
+ let val = state.pop1();
1078
+ state.push1(builder.ins().sextend(I32, val));
1079
+ }
1080
+ Operator::I64Extend8S => {
1081
+ let val = state.pop1();
1082
+ state.push1(builder.ins().ireduce(I8, val));
1083
+ let val = state.pop1();
1084
+ state.push1(builder.ins().sextend(I64, val));
1085
+ }
1086
+ Operator::I64Extend16S => {
1087
+ let val = state.pop1();
1088
+ state.push1(builder.ins().ireduce(I16, val));
1089
+ let val = state.pop1();
1090
+ state.push1(builder.ins().sextend(I64, val));
1091
+ }
1092
+ Operator::I64Extend32S => {
1093
+ let val = state.pop1();
1094
+ state.push1(builder.ins().ireduce(I32, val));
1095
+ let val = state.pop1();
1096
+ state.push1(builder.ins().sextend(I64, val));
1097
+ }
1098
+ /****************************** Binary Operators ************************************/
1099
+ Operator::I32Add | Operator::I64Add => {
1100
+ let (arg1, arg2) = state.pop2();
1101
+ state.push1(builder.ins().iadd(arg1, arg2));
1102
+ }
1103
+ Operator::I32And | Operator::I64And => {
1104
+ let (arg1, arg2) = state.pop2();
1105
+ state.push1(builder.ins().band(arg1, arg2));
1106
+ }
1107
+ Operator::I32Or | Operator::I64Or => {
1108
+ let (arg1, arg2) = state.pop2();
1109
+ state.push1(builder.ins().bor(arg1, arg2));
1110
+ }
1111
+ Operator::I32Xor | Operator::I64Xor => {
1112
+ let (arg1, arg2) = state.pop2();
1113
+ state.push1(builder.ins().bxor(arg1, arg2));
1114
+ }
1115
+ Operator::I32Shl | Operator::I64Shl => {
1116
+ let (arg1, arg2) = state.pop2();
1117
+ state.push1(builder.ins().ishl(arg1, arg2));
1118
+ }
1119
+ Operator::I32ShrS | Operator::I64ShrS => {
1120
+ let (arg1, arg2) = state.pop2();
1121
+ state.push1(builder.ins().sshr(arg1, arg2));
1122
+ }
1123
+ Operator::I32ShrU | Operator::I64ShrU => {
1124
+ let (arg1, arg2) = state.pop2();
1125
+ state.push1(builder.ins().ushr(arg1, arg2));
1126
+ }
1127
+ Operator::I32Rotl | Operator::I64Rotl => {
1128
+ let (arg1, arg2) = state.pop2();
1129
+ state.push1(builder.ins().rotl(arg1, arg2));
1130
+ }
1131
+ Operator::I32Rotr | Operator::I64Rotr => {
1132
+ let (arg1, arg2) = state.pop2();
1133
+ state.push1(builder.ins().rotr(arg1, arg2));
1134
+ }
1135
+ Operator::F32Add | Operator::F64Add => {
1136
+ let (arg1, arg2) = state.pop2();
1137
+ state.push1(builder.ins().fadd(arg1, arg2));
1138
+ }
1139
+ Operator::I32Sub | Operator::I64Sub => {
1140
+ let (arg1, arg2) = state.pop2();
1141
+ state.push1(builder.ins().isub(arg1, arg2));
1142
+ }
1143
+ Operator::F32Sub | Operator::F64Sub => {
1144
+ let (arg1, arg2) = state.pop2();
1145
+ state.push1(builder.ins().fsub(arg1, arg2));
1146
+ }
1147
+ Operator::I32Mul | Operator::I64Mul => {
1148
+ let (arg1, arg2) = state.pop2();
1149
+ state.push1(builder.ins().imul(arg1, arg2));
1150
+ }
1151
+ Operator::F32Mul | Operator::F64Mul => {
1152
+ let (arg1, arg2) = state.pop2();
1153
+ state.push1(builder.ins().fmul(arg1, arg2));
1154
+ }
1155
+ Operator::F32Div | Operator::F64Div => {
1156
+ let (arg1, arg2) = state.pop2();
1157
+ state.push1(builder.ins().fdiv(arg1, arg2));
1158
+ }
1159
+ Operator::I32DivS | Operator::I64DivS => {
1160
+ let (arg1, arg2) = state.pop2();
1161
+ state.push1(builder.ins().sdiv(arg1, arg2));
1162
+ }
1163
+ Operator::I32DivU | Operator::I64DivU => {
1164
+ let (arg1, arg2) = state.pop2();
1165
+ state.push1(builder.ins().udiv(arg1, arg2));
1166
+ }
1167
+ Operator::I32RemS | Operator::I64RemS => {
1168
+ let (arg1, arg2) = state.pop2();
1169
+ state.push1(builder.ins().srem(arg1, arg2));
1170
+ }
1171
+ Operator::I32RemU | Operator::I64RemU => {
1172
+ let (arg1, arg2) = state.pop2();
1173
+ state.push1(builder.ins().urem(arg1, arg2));
1174
+ }
1175
+ Operator::F32Min | Operator::F64Min => {
1176
+ let (arg1, arg2) = state.pop2();
1177
+ state.push1(builder.ins().fmin(arg1, arg2));
1178
+ }
1179
+ Operator::F32Max | Operator::F64Max => {
1180
+ let (arg1, arg2) = state.pop2();
1181
+ state.push1(builder.ins().fmax(arg1, arg2));
1182
+ }
1183
+ Operator::F32Copysign | Operator::F64Copysign => {
1184
+ let (arg1, arg2) = state.pop2();
1185
+ state.push1(builder.ins().fcopysign(arg1, arg2));
1186
+ }
1187
+ /**************************** Comparison Operators **********************************/
1188
+ Operator::I32LtS | Operator::I64LtS => {
1189
+ translate_icmp(IntCC::SignedLessThan, builder, state)
1190
+ }
1191
+ Operator::I32LtU | Operator::I64LtU => {
1192
+ translate_icmp(IntCC::UnsignedLessThan, builder, state)
1193
+ }
1194
+ Operator::I32LeS | Operator::I64LeS => {
1195
+ translate_icmp(IntCC::SignedLessThanOrEqual, builder, state)
1196
+ }
1197
+ Operator::I32LeU | Operator::I64LeU => {
1198
+ translate_icmp(IntCC::UnsignedLessThanOrEqual, builder, state)
1199
+ }
1200
+ Operator::I32GtS | Operator::I64GtS => {
1201
+ translate_icmp(IntCC::SignedGreaterThan, builder, state)
1202
+ }
1203
+ Operator::I32GtU | Operator::I64GtU => {
1204
+ translate_icmp(IntCC::UnsignedGreaterThan, builder, state)
1205
+ }
1206
+ Operator::I32GeS | Operator::I64GeS => {
1207
+ translate_icmp(IntCC::SignedGreaterThanOrEqual, builder, state)
1208
+ }
1209
+ Operator::I32GeU | Operator::I64GeU => {
1210
+ translate_icmp(IntCC::UnsignedGreaterThanOrEqual, builder, state)
1211
+ }
1212
+ Operator::I32Eqz | Operator::I64Eqz => {
1213
+ let arg = state.pop1();
1214
+ let val = builder.ins().icmp_imm(IntCC::Equal, arg, 0);
1215
+ state.push1(builder.ins().uextend(I32, val));
1216
+ }
1217
+ Operator::I32Eq | Operator::I64Eq => translate_icmp(IntCC::Equal, builder, state),
1218
+ Operator::F32Eq | Operator::F64Eq => translate_fcmp(FloatCC::Equal, builder, state),
1219
+ Operator::I32Ne | Operator::I64Ne => translate_icmp(IntCC::NotEqual, builder, state),
1220
+ Operator::F32Ne | Operator::F64Ne => translate_fcmp(FloatCC::NotEqual, builder, state),
1221
+ Operator::F32Gt | Operator::F64Gt => translate_fcmp(FloatCC::GreaterThan, builder, state),
1222
+ Operator::F32Ge | Operator::F64Ge => {
1223
+ translate_fcmp(FloatCC::GreaterThanOrEqual, builder, state)
1224
+ }
1225
+ Operator::F32Lt | Operator::F64Lt => translate_fcmp(FloatCC::LessThan, builder, state),
1226
+ Operator::F32Le | Operator::F64Le => {
1227
+ translate_fcmp(FloatCC::LessThanOrEqual, builder, state)
1228
+ }
1229
+ Operator::RefNull { hty } => {
1230
+ let hty = environ.convert_heap_type(*hty);
1231
+ state.push1(environ.translate_ref_null(builder.cursor(), hty)?)
1232
+ }
1233
+ Operator::RefIsNull => {
1234
+ let value = state.pop1();
1235
+ state.push1(environ.translate_ref_is_null(builder.cursor(), value)?);
1236
+ }
1237
+ Operator::RefFunc { function_index } => {
1238
+ let index = FuncIndex::from_u32(*function_index);
1239
+ state.push1(environ.translate_ref_func(builder.cursor(), index)?);
1240
+ }
1241
+ Operator::MemoryAtomicWait32 { memarg } | Operator::MemoryAtomicWait64 { memarg } => {
1242
+ // The WebAssembly MVP only supports one linear memory and
1243
+ // wasmparser will ensure that the memory indices specified are
1244
+ // zero.
1245
+ let implied_ty = match op {
1246
+ Operator::MemoryAtomicWait64 { .. } => I64,
1247
+ Operator::MemoryAtomicWait32 { .. } => I32,
1248
+ _ => unreachable!(),
1249
+ };
1250
+ let heap_index = MemoryIndex::from_u32(memarg.memory);
1251
+ let heap = state.get_heap(builder.func, memarg.memory, environ)?;
1252
+ let timeout = state.pop1(); // 64 (fixed)
1253
+ let expected = state.pop1(); // 32 or 64 (per the `Ixx` in `IxxAtomicWait`)
1254
+ assert!(builder.func.dfg.value_type(expected) == implied_ty);
1255
+ let addr = state.pop1();
1256
+ let effective_addr = if memarg.offset == 0 {
1257
+ addr
1258
+ } else {
1259
+ let index_type = environ.heaps()[heap].index_type;
1260
+ let offset = builder.ins().iconst(index_type, memarg.offset as i64);
1261
+ builder
1262
+ .ins()
1263
+ .uadd_overflow_trap(addr, offset, ir::TrapCode::HeapOutOfBounds)
1264
+ };
1265
+ // `fn translate_atomic_wait` can inspect the type of `expected` to figure out what
1266
+ // code it needs to generate, if it wants.
1267
+ let res = environ.translate_atomic_wait(
1268
+ builder.cursor(),
1269
+ heap_index,
1270
+ heap,
1271
+ effective_addr,
1272
+ expected,
1273
+ timeout,
1274
+ )?;
1275
+ state.push1(res);
1276
+ }
1277
+ Operator::MemoryAtomicNotify { memarg } => {
1278
+ let heap_index = MemoryIndex::from_u32(memarg.memory);
1279
+ let heap = state.get_heap(builder.func, memarg.memory, environ)?;
1280
+ let count = state.pop1(); // 32 (fixed)
1281
+ let addr = state.pop1();
1282
+ let effective_addr = if memarg.offset == 0 {
1283
+ addr
1284
+ } else {
1285
+ let index_type = environ.heaps()[heap].index_type;
1286
+ let offset = builder.ins().iconst(index_type, memarg.offset as i64);
1287
+ builder
1288
+ .ins()
1289
+ .uadd_overflow_trap(addr, offset, ir::TrapCode::HeapOutOfBounds)
1290
+ };
1291
+ let res = environ.translate_atomic_notify(
1292
+ builder.cursor(),
1293
+ heap_index,
1294
+ heap,
1295
+ effective_addr,
1296
+ count,
1297
+ )?;
1298
+ state.push1(res);
1299
+ }
1300
+ Operator::I32AtomicLoad { memarg } => {
1301
+ translate_atomic_load(I32, I32, memarg, builder, state, environ)?
1302
+ }
1303
+ Operator::I64AtomicLoad { memarg } => {
1304
+ translate_atomic_load(I64, I64, memarg, builder, state, environ)?
1305
+ }
1306
+ Operator::I32AtomicLoad8U { memarg } => {
1307
+ translate_atomic_load(I32, I8, memarg, builder, state, environ)?
1308
+ }
1309
+ Operator::I32AtomicLoad16U { memarg } => {
1310
+ translate_atomic_load(I32, I16, memarg, builder, state, environ)?
1311
+ }
1312
+ Operator::I64AtomicLoad8U { memarg } => {
1313
+ translate_atomic_load(I64, I8, memarg, builder, state, environ)?
1314
+ }
1315
+ Operator::I64AtomicLoad16U { memarg } => {
1316
+ translate_atomic_load(I64, I16, memarg, builder, state, environ)?
1317
+ }
1318
+ Operator::I64AtomicLoad32U { memarg } => {
1319
+ translate_atomic_load(I64, I32, memarg, builder, state, environ)?
1320
+ }
1321
+
1322
+ Operator::I32AtomicStore { memarg } => {
1323
+ translate_atomic_store(I32, memarg, builder, state, environ)?
1324
+ }
1325
+ Operator::I64AtomicStore { memarg } => {
1326
+ translate_atomic_store(I64, memarg, builder, state, environ)?
1327
+ }
1328
+ Operator::I32AtomicStore8 { memarg } => {
1329
+ translate_atomic_store(I8, memarg, builder, state, environ)?
1330
+ }
1331
+ Operator::I32AtomicStore16 { memarg } => {
1332
+ translate_atomic_store(I16, memarg, builder, state, environ)?
1333
+ }
1334
+ Operator::I64AtomicStore8 { memarg } => {
1335
+ translate_atomic_store(I8, memarg, builder, state, environ)?
1336
+ }
1337
+ Operator::I64AtomicStore16 { memarg } => {
1338
+ translate_atomic_store(I16, memarg, builder, state, environ)?
1339
+ }
1340
+ Operator::I64AtomicStore32 { memarg } => {
1341
+ translate_atomic_store(I32, memarg, builder, state, environ)?
1342
+ }
1343
+
1344
+ Operator::I32AtomicRmwAdd { memarg } => {
1345
+ translate_atomic_rmw(I32, I32, AtomicRmwOp::Add, memarg, builder, state, environ)?
1346
+ }
1347
+ Operator::I64AtomicRmwAdd { memarg } => {
1348
+ translate_atomic_rmw(I64, I64, AtomicRmwOp::Add, memarg, builder, state, environ)?
1349
+ }
1350
+ Operator::I32AtomicRmw8AddU { memarg } => {
1351
+ translate_atomic_rmw(I32, I8, AtomicRmwOp::Add, memarg, builder, state, environ)?
1352
+ }
1353
+ Operator::I32AtomicRmw16AddU { memarg } => {
1354
+ translate_atomic_rmw(I32, I16, AtomicRmwOp::Add, memarg, builder, state, environ)?
1355
+ }
1356
+ Operator::I64AtomicRmw8AddU { memarg } => {
1357
+ translate_atomic_rmw(I64, I8, AtomicRmwOp::Add, memarg, builder, state, environ)?
1358
+ }
1359
+ Operator::I64AtomicRmw16AddU { memarg } => {
1360
+ translate_atomic_rmw(I64, I16, AtomicRmwOp::Add, memarg, builder, state, environ)?
1361
+ }
1362
+ Operator::I64AtomicRmw32AddU { memarg } => {
1363
+ translate_atomic_rmw(I64, I32, AtomicRmwOp::Add, memarg, builder, state, environ)?
1364
+ }
1365
+
1366
+ Operator::I32AtomicRmwSub { memarg } => {
1367
+ translate_atomic_rmw(I32, I32, AtomicRmwOp::Sub, memarg, builder, state, environ)?
1368
+ }
1369
+ Operator::I64AtomicRmwSub { memarg } => {
1370
+ translate_atomic_rmw(I64, I64, AtomicRmwOp::Sub, memarg, builder, state, environ)?
1371
+ }
1372
+ Operator::I32AtomicRmw8SubU { memarg } => {
1373
+ translate_atomic_rmw(I32, I8, AtomicRmwOp::Sub, memarg, builder, state, environ)?
1374
+ }
1375
+ Operator::I32AtomicRmw16SubU { memarg } => {
1376
+ translate_atomic_rmw(I32, I16, AtomicRmwOp::Sub, memarg, builder, state, environ)?
1377
+ }
1378
+ Operator::I64AtomicRmw8SubU { memarg } => {
1379
+ translate_atomic_rmw(I64, I8, AtomicRmwOp::Sub, memarg, builder, state, environ)?
1380
+ }
1381
+ Operator::I64AtomicRmw16SubU { memarg } => {
1382
+ translate_atomic_rmw(I64, I16, AtomicRmwOp::Sub, memarg, builder, state, environ)?
1383
+ }
1384
+ Operator::I64AtomicRmw32SubU { memarg } => {
1385
+ translate_atomic_rmw(I64, I32, AtomicRmwOp::Sub, memarg, builder, state, environ)?
1386
+ }
1387
+
1388
+ Operator::I32AtomicRmwAnd { memarg } => {
1389
+ translate_atomic_rmw(I32, I32, AtomicRmwOp::And, memarg, builder, state, environ)?
1390
+ }
1391
+ Operator::I64AtomicRmwAnd { memarg } => {
1392
+ translate_atomic_rmw(I64, I64, AtomicRmwOp::And, memarg, builder, state, environ)?
1393
+ }
1394
+ Operator::I32AtomicRmw8AndU { memarg } => {
1395
+ translate_atomic_rmw(I32, I8, AtomicRmwOp::And, memarg, builder, state, environ)?
1396
+ }
1397
+ Operator::I32AtomicRmw16AndU { memarg } => {
1398
+ translate_atomic_rmw(I32, I16, AtomicRmwOp::And, memarg, builder, state, environ)?
1399
+ }
1400
+ Operator::I64AtomicRmw8AndU { memarg } => {
1401
+ translate_atomic_rmw(I64, I8, AtomicRmwOp::And, memarg, builder, state, environ)?
1402
+ }
1403
+ Operator::I64AtomicRmw16AndU { memarg } => {
1404
+ translate_atomic_rmw(I64, I16, AtomicRmwOp::And, memarg, builder, state, environ)?
1405
+ }
1406
+ Operator::I64AtomicRmw32AndU { memarg } => {
1407
+ translate_atomic_rmw(I64, I32, AtomicRmwOp::And, memarg, builder, state, environ)?
1408
+ }
1409
+
1410
+ Operator::I32AtomicRmwOr { memarg } => {
1411
+ translate_atomic_rmw(I32, I32, AtomicRmwOp::Or, memarg, builder, state, environ)?
1412
+ }
1413
+ Operator::I64AtomicRmwOr { memarg } => {
1414
+ translate_atomic_rmw(I64, I64, AtomicRmwOp::Or, memarg, builder, state, environ)?
1415
+ }
1416
+ Operator::I32AtomicRmw8OrU { memarg } => {
1417
+ translate_atomic_rmw(I32, I8, AtomicRmwOp::Or, memarg, builder, state, environ)?
1418
+ }
1419
+ Operator::I32AtomicRmw16OrU { memarg } => {
1420
+ translate_atomic_rmw(I32, I16, AtomicRmwOp::Or, memarg, builder, state, environ)?
1421
+ }
1422
+ Operator::I64AtomicRmw8OrU { memarg } => {
1423
+ translate_atomic_rmw(I64, I8, AtomicRmwOp::Or, memarg, builder, state, environ)?
1424
+ }
1425
+ Operator::I64AtomicRmw16OrU { memarg } => {
1426
+ translate_atomic_rmw(I64, I16, AtomicRmwOp::Or, memarg, builder, state, environ)?
1427
+ }
1428
+ Operator::I64AtomicRmw32OrU { memarg } => {
1429
+ translate_atomic_rmw(I64, I32, AtomicRmwOp::Or, memarg, builder, state, environ)?
1430
+ }
1431
+
1432
+ Operator::I32AtomicRmwXor { memarg } => {
1433
+ translate_atomic_rmw(I32, I32, AtomicRmwOp::Xor, memarg, builder, state, environ)?
1434
+ }
1435
+ Operator::I64AtomicRmwXor { memarg } => {
1436
+ translate_atomic_rmw(I64, I64, AtomicRmwOp::Xor, memarg, builder, state, environ)?
1437
+ }
1438
+ Operator::I32AtomicRmw8XorU { memarg } => {
1439
+ translate_atomic_rmw(I32, I8, AtomicRmwOp::Xor, memarg, builder, state, environ)?
1440
+ }
1441
+ Operator::I32AtomicRmw16XorU { memarg } => {
1442
+ translate_atomic_rmw(I32, I16, AtomicRmwOp::Xor, memarg, builder, state, environ)?
1443
+ }
1444
+ Operator::I64AtomicRmw8XorU { memarg } => {
1445
+ translate_atomic_rmw(I64, I8, AtomicRmwOp::Xor, memarg, builder, state, environ)?
1446
+ }
1447
+ Operator::I64AtomicRmw16XorU { memarg } => {
1448
+ translate_atomic_rmw(I64, I16, AtomicRmwOp::Xor, memarg, builder, state, environ)?
1449
+ }
1450
+ Operator::I64AtomicRmw32XorU { memarg } => {
1451
+ translate_atomic_rmw(I64, I32, AtomicRmwOp::Xor, memarg, builder, state, environ)?
1452
+ }
1453
+
1454
+ Operator::I32AtomicRmwXchg { memarg } => {
1455
+ translate_atomic_rmw(I32, I32, AtomicRmwOp::Xchg, memarg, builder, state, environ)?
1456
+ }
1457
+ Operator::I64AtomicRmwXchg { memarg } => {
1458
+ translate_atomic_rmw(I64, I64, AtomicRmwOp::Xchg, memarg, builder, state, environ)?
1459
+ }
1460
+ Operator::I32AtomicRmw8XchgU { memarg } => {
1461
+ translate_atomic_rmw(I32, I8, AtomicRmwOp::Xchg, memarg, builder, state, environ)?
1462
+ }
1463
+ Operator::I32AtomicRmw16XchgU { memarg } => {
1464
+ translate_atomic_rmw(I32, I16, AtomicRmwOp::Xchg, memarg, builder, state, environ)?
1465
+ }
1466
+ Operator::I64AtomicRmw8XchgU { memarg } => {
1467
+ translate_atomic_rmw(I64, I8, AtomicRmwOp::Xchg, memarg, builder, state, environ)?
1468
+ }
1469
+ Operator::I64AtomicRmw16XchgU { memarg } => {
1470
+ translate_atomic_rmw(I64, I16, AtomicRmwOp::Xchg, memarg, builder, state, environ)?
1471
+ }
1472
+ Operator::I64AtomicRmw32XchgU { memarg } => {
1473
+ translate_atomic_rmw(I64, I32, AtomicRmwOp::Xchg, memarg, builder, state, environ)?
1474
+ }
1475
+
1476
+ Operator::I32AtomicRmwCmpxchg { memarg } => {
1477
+ translate_atomic_cas(I32, I32, memarg, builder, state, environ)?
1478
+ }
1479
+ Operator::I64AtomicRmwCmpxchg { memarg } => {
1480
+ translate_atomic_cas(I64, I64, memarg, builder, state, environ)?
1481
+ }
1482
+ Operator::I32AtomicRmw8CmpxchgU { memarg } => {
1483
+ translate_atomic_cas(I32, I8, memarg, builder, state, environ)?
1484
+ }
1485
+ Operator::I32AtomicRmw16CmpxchgU { memarg } => {
1486
+ translate_atomic_cas(I32, I16, memarg, builder, state, environ)?
1487
+ }
1488
+ Operator::I64AtomicRmw8CmpxchgU { memarg } => {
1489
+ translate_atomic_cas(I64, I8, memarg, builder, state, environ)?
1490
+ }
1491
+ Operator::I64AtomicRmw16CmpxchgU { memarg } => {
1492
+ translate_atomic_cas(I64, I16, memarg, builder, state, environ)?
1493
+ }
1494
+ Operator::I64AtomicRmw32CmpxchgU { memarg } => {
1495
+ translate_atomic_cas(I64, I32, memarg, builder, state, environ)?
1496
+ }
1497
+
1498
+ Operator::AtomicFence { .. } => {
1499
+ builder.ins().fence();
1500
+ }
1501
+ Operator::MemoryCopy { src_mem, dst_mem } => {
1502
+ let src_index = MemoryIndex::from_u32(*src_mem);
1503
+ let dst_index = MemoryIndex::from_u32(*dst_mem);
1504
+ let src_heap = state.get_heap(builder.func, *src_mem, environ)?;
1505
+ let dst_heap = state.get_heap(builder.func, *dst_mem, environ)?;
1506
+ let len = state.pop1();
1507
+ let src_pos = state.pop1();
1508
+ let dst_pos = state.pop1();
1509
+ environ.translate_memory_copy(
1510
+ builder.cursor(),
1511
+ src_index,
1512
+ src_heap,
1513
+ dst_index,
1514
+ dst_heap,
1515
+ dst_pos,
1516
+ src_pos,
1517
+ len,
1518
+ )?;
1519
+ }
1520
+ Operator::MemoryFill { mem } => {
1521
+ let heap_index = MemoryIndex::from_u32(*mem);
1522
+ let heap = state.get_heap(builder.func, *mem, environ)?;
1523
+ let len = state.pop1();
1524
+ let val = state.pop1();
1525
+ let dest = state.pop1();
1526
+ environ.translate_memory_fill(builder.cursor(), heap_index, heap, dest, val, len)?;
1527
+ }
1528
+ Operator::MemoryInit { data_index, mem } => {
1529
+ let heap_index = MemoryIndex::from_u32(*mem);
1530
+ let heap = state.get_heap(builder.func, *mem, environ)?;
1531
+ let len = state.pop1();
1532
+ let src = state.pop1();
1533
+ let dest = state.pop1();
1534
+ environ.translate_memory_init(
1535
+ builder.cursor(),
1536
+ heap_index,
1537
+ heap,
1538
+ *data_index,
1539
+ dest,
1540
+ src,
1541
+ len,
1542
+ )?;
1543
+ }
1544
+ Operator::DataDrop { data_index } => {
1545
+ environ.translate_data_drop(builder.cursor(), *data_index)?;
1546
+ }
1547
+ Operator::TableSize { table: index } => {
1548
+ state.push1(
1549
+ environ.translate_table_size(builder.cursor(), TableIndex::from_u32(*index))?,
1550
+ );
1551
+ }
1552
+ Operator::TableGrow { table: index } => {
1553
+ let table_index = TableIndex::from_u32(*index);
1554
+ let delta = state.pop1();
1555
+ let init_value = state.pop1();
1556
+ state.push1(environ.translate_table_grow(
1557
+ builder.cursor(),
1558
+ table_index,
1559
+ delta,
1560
+ init_value,
1561
+ )?);
1562
+ }
1563
+ Operator::TableGet { table: index } => {
1564
+ let table_index = TableIndex::from_u32(*index);
1565
+ let index = state.pop1();
1566
+ state.push1(environ.translate_table_get(builder, table_index, index)?);
1567
+ }
1568
+ Operator::TableSet { table: index } => {
1569
+ let table_index = TableIndex::from_u32(*index);
1570
+ let value = state.pop1();
1571
+ let index = state.pop1();
1572
+ environ.translate_table_set(builder, table_index, value, index)?;
1573
+ }
1574
+ Operator::TableCopy {
1575
+ dst_table: dst_table_index,
1576
+ src_table: src_table_index,
1577
+ } => {
1578
+ let len = state.pop1();
1579
+ let src = state.pop1();
1580
+ let dest = state.pop1();
1581
+ environ.translate_table_copy(
1582
+ builder.cursor(),
1583
+ TableIndex::from_u32(*dst_table_index),
1584
+ TableIndex::from_u32(*src_table_index),
1585
+ dest,
1586
+ src,
1587
+ len,
1588
+ )?;
1589
+ }
1590
+ Operator::TableFill { table } => {
1591
+ let table_index = TableIndex::from_u32(*table);
1592
+ let len = state.pop1();
1593
+ let val = state.pop1();
1594
+ let dest = state.pop1();
1595
+ environ.translate_table_fill(builder.cursor(), table_index, dest, val, len)?;
1596
+ }
1597
+ Operator::TableInit {
1598
+ elem_index,
1599
+ table: table_index,
1600
+ } => {
1601
+ let len = state.pop1();
1602
+ let src = state.pop1();
1603
+ let dest = state.pop1();
1604
+ environ.translate_table_init(
1605
+ builder.cursor(),
1606
+ *elem_index,
1607
+ TableIndex::from_u32(*table_index),
1608
+ dest,
1609
+ src,
1610
+ len,
1611
+ )?;
1612
+ }
1613
+ Operator::ElemDrop { elem_index } => {
1614
+ environ.translate_elem_drop(builder.cursor(), *elem_index)?;
1615
+ }
1616
+ Operator::V128Const { value } => {
1617
+ let data = value.bytes().to_vec().into();
1618
+ let handle = builder.func.dfg.constants.insert(data);
1619
+ let value = builder.ins().vconst(I8X16, handle);
1620
+ // the v128.const is typed in CLIF as a I8x16 but bitcast to a different type
1621
+ // before use
1622
+ state.push1(value)
1623
+ }
1624
+ Operator::I8x16Splat | Operator::I16x8Splat => {
1625
+ let reduced = builder.ins().ireduce(type_of(op).lane_type(), state.pop1());
1626
+ let splatted = builder.ins().splat(type_of(op), reduced);
1627
+ state.push1(splatted)
1628
+ }
1629
+ Operator::I32x4Splat
1630
+ | Operator::I64x2Splat
1631
+ | Operator::F32x4Splat
1632
+ | Operator::F64x2Splat => {
1633
+ let splatted = builder.ins().splat(type_of(op), state.pop1());
1634
+ state.push1(splatted)
1635
+ }
1636
+ Operator::V128Load8Splat { memarg }
1637
+ | Operator::V128Load16Splat { memarg }
1638
+ | Operator::V128Load32Splat { memarg }
1639
+ | Operator::V128Load64Splat { memarg } => {
1640
+ unwrap_or_return_unreachable_state!(
1641
+ state,
1642
+ translate_load(
1643
+ memarg,
1644
+ ir::Opcode::Load,
1645
+ type_of(op).lane_type(),
1646
+ builder,
1647
+ state,
1648
+ environ,
1649
+ )?
1650
+ );
1651
+ let splatted = builder.ins().splat(type_of(op), state.pop1());
1652
+ state.push1(splatted)
1653
+ }
1654
+ Operator::V128Load32Zero { memarg } | Operator::V128Load64Zero { memarg } => {
1655
+ unwrap_or_return_unreachable_state!(
1656
+ state,
1657
+ translate_load(
1658
+ memarg,
1659
+ ir::Opcode::Load,
1660
+ type_of(op).lane_type(),
1661
+ builder,
1662
+ state,
1663
+ environ,
1664
+ )?
1665
+ );
1666
+ let as_vector = builder.ins().scalar_to_vector(type_of(op), state.pop1());
1667
+ state.push1(as_vector)
1668
+ }
1669
+ Operator::V128Load8Lane { memarg, lane }
1670
+ | Operator::V128Load16Lane { memarg, lane }
1671
+ | Operator::V128Load32Lane { memarg, lane }
1672
+ | Operator::V128Load64Lane { memarg, lane } => {
1673
+ let vector = pop1_with_bitcast(state, type_of(op), builder);
1674
+ unwrap_or_return_unreachable_state!(
1675
+ state,
1676
+ translate_load(
1677
+ memarg,
1678
+ ir::Opcode::Load,
1679
+ type_of(op).lane_type(),
1680
+ builder,
1681
+ state,
1682
+ environ,
1683
+ )?
1684
+ );
1685
+ let replacement = state.pop1();
1686
+ state.push1(builder.ins().insertlane(vector, replacement, *lane))
1687
+ }
1688
+ Operator::V128Store8Lane { memarg, lane }
1689
+ | Operator::V128Store16Lane { memarg, lane }
1690
+ | Operator::V128Store32Lane { memarg, lane }
1691
+ | Operator::V128Store64Lane { memarg, lane } => {
1692
+ let vector = pop1_with_bitcast(state, type_of(op), builder);
1693
+ state.push1(builder.ins().extractlane(vector, lane.clone()));
1694
+ translate_store(memarg, ir::Opcode::Store, builder, state, environ)?;
1695
+ }
1696
+ Operator::I8x16ExtractLaneS { lane } | Operator::I16x8ExtractLaneS { lane } => {
1697
+ let vector = pop1_with_bitcast(state, type_of(op), builder);
1698
+ let extracted = builder.ins().extractlane(vector, lane.clone());
1699
+ state.push1(builder.ins().sextend(I32, extracted))
1700
+ }
1701
+ Operator::I8x16ExtractLaneU { lane } | Operator::I16x8ExtractLaneU { lane } => {
1702
+ let vector = pop1_with_bitcast(state, type_of(op), builder);
1703
+ let extracted = builder.ins().extractlane(vector, lane.clone());
1704
+ state.push1(builder.ins().uextend(I32, extracted));
1705
+ // On x86, PEXTRB zeroes the upper bits of the destination register of extractlane so
1706
+ // uextend could be elided; for now, uextend is needed for Cranelift's type checks to
1707
+ // work.
1708
+ }
1709
+ Operator::I32x4ExtractLane { lane }
1710
+ | Operator::I64x2ExtractLane { lane }
1711
+ | Operator::F32x4ExtractLane { lane }
1712
+ | Operator::F64x2ExtractLane { lane } => {
1713
+ let vector = pop1_with_bitcast(state, type_of(op), builder);
1714
+ state.push1(builder.ins().extractlane(vector, lane.clone()))
1715
+ }
1716
+ Operator::I8x16ReplaceLane { lane } | Operator::I16x8ReplaceLane { lane } => {
1717
+ let (vector, replacement) = state.pop2();
1718
+ let ty = type_of(op);
1719
+ let reduced = builder.ins().ireduce(ty.lane_type(), replacement);
1720
+ let vector = optionally_bitcast_vector(vector, ty, builder);
1721
+ state.push1(builder.ins().insertlane(vector, reduced, *lane))
1722
+ }
1723
+ Operator::I32x4ReplaceLane { lane }
1724
+ | Operator::I64x2ReplaceLane { lane }
1725
+ | Operator::F32x4ReplaceLane { lane }
1726
+ | Operator::F64x2ReplaceLane { lane } => {
1727
+ let (vector, replacement) = state.pop2();
1728
+ let vector = optionally_bitcast_vector(vector, type_of(op), builder);
1729
+ state.push1(builder.ins().insertlane(vector, replacement, *lane))
1730
+ }
1731
+ Operator::I8x16Shuffle { lanes, .. } => {
1732
+ let (a, b) = pop2_with_bitcast(state, I8X16, builder);
1733
+ let lanes = ConstantData::from(lanes.as_ref());
1734
+ let mask = builder.func.dfg.immediates.push(lanes);
1735
+ let shuffled = builder.ins().shuffle(a, b, mask);
1736
+ state.push1(shuffled)
1737
+ // At this point the original types of a and b are lost; users of this value (i.e. this
1738
+ // WASM-to-CLIF translator) may need to bitcast for type-correctness. This is due
1739
+ // to WASM using the less specific v128 type for certain operations and more specific
1740
+ // types (e.g. i8x16) for others.
1741
+ }
1742
+ Operator::I8x16Swizzle => {
1743
+ let (a, b) = pop2_with_bitcast(state, I8X16, builder);
1744
+ state.push1(builder.ins().swizzle(a, b))
1745
+ }
1746
+ Operator::I8x16Add | Operator::I16x8Add | Operator::I32x4Add | Operator::I64x2Add => {
1747
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1748
+ state.push1(builder.ins().iadd(a, b))
1749
+ }
1750
+ Operator::I8x16AddSatS | Operator::I16x8AddSatS => {
1751
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1752
+ state.push1(builder.ins().sadd_sat(a, b))
1753
+ }
1754
+ Operator::I8x16AddSatU | Operator::I16x8AddSatU => {
1755
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1756
+ state.push1(builder.ins().uadd_sat(a, b))
1757
+ }
1758
+ Operator::I8x16Sub | Operator::I16x8Sub | Operator::I32x4Sub | Operator::I64x2Sub => {
1759
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1760
+ state.push1(builder.ins().isub(a, b))
1761
+ }
1762
+ Operator::I8x16SubSatS | Operator::I16x8SubSatS => {
1763
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1764
+ state.push1(builder.ins().ssub_sat(a, b))
1765
+ }
1766
+ Operator::I8x16SubSatU | Operator::I16x8SubSatU => {
1767
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1768
+ state.push1(builder.ins().usub_sat(a, b))
1769
+ }
1770
+ Operator::I8x16MinS | Operator::I16x8MinS | Operator::I32x4MinS => {
1771
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1772
+ state.push1(builder.ins().smin(a, b))
1773
+ }
1774
+ Operator::I8x16MinU | Operator::I16x8MinU | Operator::I32x4MinU => {
1775
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1776
+ state.push1(builder.ins().umin(a, b))
1777
+ }
1778
+ Operator::I8x16MaxS | Operator::I16x8MaxS | Operator::I32x4MaxS => {
1779
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1780
+ state.push1(builder.ins().smax(a, b))
1781
+ }
1782
+ Operator::I8x16MaxU | Operator::I16x8MaxU | Operator::I32x4MaxU => {
1783
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1784
+ state.push1(builder.ins().umax(a, b))
1785
+ }
1786
+ Operator::I8x16AvgrU | Operator::I16x8AvgrU => {
1787
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1788
+ state.push1(builder.ins().avg_round(a, b))
1789
+ }
1790
+ Operator::I8x16Neg | Operator::I16x8Neg | Operator::I32x4Neg | Operator::I64x2Neg => {
1791
+ let a = pop1_with_bitcast(state, type_of(op), builder);
1792
+ state.push1(builder.ins().ineg(a))
1793
+ }
1794
+ Operator::I8x16Abs | Operator::I16x8Abs | Operator::I32x4Abs | Operator::I64x2Abs => {
1795
+ let a = pop1_with_bitcast(state, type_of(op), builder);
1796
+ state.push1(builder.ins().iabs(a))
1797
+ }
1798
+ Operator::I16x8Mul | Operator::I32x4Mul | Operator::I64x2Mul => {
1799
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1800
+ state.push1(builder.ins().imul(a, b))
1801
+ }
1802
+ Operator::V128Or => {
1803
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1804
+ state.push1(builder.ins().bor(a, b))
1805
+ }
1806
+ Operator::V128Xor => {
1807
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1808
+ state.push1(builder.ins().bxor(a, b))
1809
+ }
1810
+ Operator::V128And => {
1811
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1812
+ state.push1(builder.ins().band(a, b))
1813
+ }
1814
+ Operator::V128AndNot => {
1815
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1816
+ state.push1(builder.ins().band_not(a, b))
1817
+ }
1818
+ Operator::V128Not => {
1819
+ let a = state.pop1();
1820
+ state.push1(builder.ins().bnot(a));
1821
+ }
1822
+ Operator::I8x16Shl | Operator::I16x8Shl | Operator::I32x4Shl | Operator::I64x2Shl => {
1823
+ let (a, b) = state.pop2();
1824
+ let bitcast_a = optionally_bitcast_vector(a, type_of(op), builder);
1825
+ // The spec expects to shift with `b mod lanewidth`; This is directly compatible
1826
+ // with cranelift's instruction.
1827
+ state.push1(builder.ins().ishl(bitcast_a, b))
1828
+ }
1829
+ Operator::I8x16ShrU | Operator::I16x8ShrU | Operator::I32x4ShrU | Operator::I64x2ShrU => {
1830
+ let (a, b) = state.pop2();
1831
+ let bitcast_a = optionally_bitcast_vector(a, type_of(op), builder);
1832
+ // The spec expects to shift with `b mod lanewidth`; This is directly compatible
1833
+ // with cranelift's instruction.
1834
+ state.push1(builder.ins().ushr(bitcast_a, b))
1835
+ }
1836
+ Operator::I8x16ShrS | Operator::I16x8ShrS | Operator::I32x4ShrS | Operator::I64x2ShrS => {
1837
+ let (a, b) = state.pop2();
1838
+ let bitcast_a = optionally_bitcast_vector(a, type_of(op), builder);
1839
+ // The spec expects to shift with `b mod lanewidth`; This is directly compatible
1840
+ // with cranelift's instruction.
1841
+ state.push1(builder.ins().sshr(bitcast_a, b))
1842
+ }
1843
+ Operator::V128Bitselect => {
1844
+ let (a, b, c) = pop3_with_bitcast(state, I8X16, builder);
1845
+ // The CLIF operand ordering is slightly different and the types of all three
1846
+ // operands must match (hence the bitcast).
1847
+ state.push1(builder.ins().bitselect(c, a, b))
1848
+ }
1849
+ Operator::V128AnyTrue => {
1850
+ let a = pop1_with_bitcast(state, type_of(op), builder);
1851
+ let bool_result = builder.ins().vany_true(a);
1852
+ state.push1(builder.ins().uextend(I32, bool_result))
1853
+ }
1854
+ Operator::I8x16AllTrue
1855
+ | Operator::I16x8AllTrue
1856
+ | Operator::I32x4AllTrue
1857
+ | Operator::I64x2AllTrue => {
1858
+ let a = pop1_with_bitcast(state, type_of(op), builder);
1859
+ let bool_result = builder.ins().vall_true(a);
1860
+ state.push1(builder.ins().uextend(I32, bool_result))
1861
+ }
1862
+ Operator::I8x16Bitmask
1863
+ | Operator::I16x8Bitmask
1864
+ | Operator::I32x4Bitmask
1865
+ | Operator::I64x2Bitmask => {
1866
+ let a = pop1_with_bitcast(state, type_of(op), builder);
1867
+ state.push1(builder.ins().vhigh_bits(I32, a));
1868
+ }
1869
+ Operator::I8x16Eq | Operator::I16x8Eq | Operator::I32x4Eq | Operator::I64x2Eq => {
1870
+ translate_vector_icmp(IntCC::Equal, type_of(op), builder, state)
1871
+ }
1872
+ Operator::I8x16Ne | Operator::I16x8Ne | Operator::I32x4Ne | Operator::I64x2Ne => {
1873
+ translate_vector_icmp(IntCC::NotEqual, type_of(op), builder, state)
1874
+ }
1875
+ Operator::I8x16GtS | Operator::I16x8GtS | Operator::I32x4GtS | Operator::I64x2GtS => {
1876
+ translate_vector_icmp(IntCC::SignedGreaterThan, type_of(op), builder, state)
1877
+ }
1878
+ Operator::I8x16LtS | Operator::I16x8LtS | Operator::I32x4LtS | Operator::I64x2LtS => {
1879
+ translate_vector_icmp(IntCC::SignedLessThan, type_of(op), builder, state)
1880
+ }
1881
+ Operator::I8x16GtU | Operator::I16x8GtU | Operator::I32x4GtU => {
1882
+ translate_vector_icmp(IntCC::UnsignedGreaterThan, type_of(op), builder, state)
1883
+ }
1884
+ Operator::I8x16LtU | Operator::I16x8LtU | Operator::I32x4LtU => {
1885
+ translate_vector_icmp(IntCC::UnsignedLessThan, type_of(op), builder, state)
1886
+ }
1887
+ Operator::I8x16GeS | Operator::I16x8GeS | Operator::I32x4GeS | Operator::I64x2GeS => {
1888
+ translate_vector_icmp(IntCC::SignedGreaterThanOrEqual, type_of(op), builder, state)
1889
+ }
1890
+ Operator::I8x16LeS | Operator::I16x8LeS | Operator::I32x4LeS | Operator::I64x2LeS => {
1891
+ translate_vector_icmp(IntCC::SignedLessThanOrEqual, type_of(op), builder, state)
1892
+ }
1893
+ Operator::I8x16GeU | Operator::I16x8GeU | Operator::I32x4GeU => translate_vector_icmp(
1894
+ IntCC::UnsignedGreaterThanOrEqual,
1895
+ type_of(op),
1896
+ builder,
1897
+ state,
1898
+ ),
1899
+ Operator::I8x16LeU | Operator::I16x8LeU | Operator::I32x4LeU => {
1900
+ translate_vector_icmp(IntCC::UnsignedLessThanOrEqual, type_of(op), builder, state)
1901
+ }
1902
+ Operator::F32x4Eq | Operator::F64x2Eq => {
1903
+ translate_vector_fcmp(FloatCC::Equal, type_of(op), builder, state)
1904
+ }
1905
+ Operator::F32x4Ne | Operator::F64x2Ne => {
1906
+ translate_vector_fcmp(FloatCC::NotEqual, type_of(op), builder, state)
1907
+ }
1908
+ Operator::F32x4Lt | Operator::F64x2Lt => {
1909
+ translate_vector_fcmp(FloatCC::LessThan, type_of(op), builder, state)
1910
+ }
1911
+ Operator::F32x4Gt | Operator::F64x2Gt => {
1912
+ translate_vector_fcmp(FloatCC::GreaterThan, type_of(op), builder, state)
1913
+ }
1914
+ Operator::F32x4Le | Operator::F64x2Le => {
1915
+ translate_vector_fcmp(FloatCC::LessThanOrEqual, type_of(op), builder, state)
1916
+ }
1917
+ Operator::F32x4Ge | Operator::F64x2Ge => {
1918
+ translate_vector_fcmp(FloatCC::GreaterThanOrEqual, type_of(op), builder, state)
1919
+ }
1920
+ Operator::F32x4Add | Operator::F64x2Add => {
1921
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1922
+ state.push1(builder.ins().fadd(a, b))
1923
+ }
1924
+ Operator::F32x4Sub | Operator::F64x2Sub => {
1925
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1926
+ state.push1(builder.ins().fsub(a, b))
1927
+ }
1928
+ Operator::F32x4Mul | Operator::F64x2Mul => {
1929
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1930
+ state.push1(builder.ins().fmul(a, b))
1931
+ }
1932
+ Operator::F32x4Div | Operator::F64x2Div => {
1933
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1934
+ state.push1(builder.ins().fdiv(a, b))
1935
+ }
1936
+ Operator::F32x4Max | Operator::F64x2Max => {
1937
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1938
+ state.push1(builder.ins().fmax(a, b))
1939
+ }
1940
+ Operator::F32x4Min | Operator::F64x2Min => {
1941
+ let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
1942
+ state.push1(builder.ins().fmin(a, b))
1943
+ }
1944
+ Operator::F32x4PMax | Operator::F64x2PMax => {
1945
+ // Note the careful ordering here with respect to `fcmp` and
1946
+ // `bitselect`. This matches the spec definition of:
1947
+ //
1948
+ // fpmax(z1, z2) =
1949
+ // * If z1 is less than z2 then return z2.
1950
+ // * Else return z1.
1951
+ let ty = type_of(op);
1952
+ let (a, b) = pop2_with_bitcast(state, ty, builder);
1953
+ let cmp = builder.ins().fcmp(FloatCC::LessThan, a, b);
1954
+ let cmp = optionally_bitcast_vector(cmp, ty, builder);
1955
+ state.push1(builder.ins().bitselect(cmp, b, a))
1956
+ }
1957
+ Operator::F32x4PMin | Operator::F64x2PMin => {
1958
+ // Note the careful ordering here which is similar to `pmax` above:
1959
+ //
1960
+ // fpmin(z1, z2) =
1961
+ // * If z2 is less than z1 then return z2.
1962
+ // * Else return z1.
1963
+ let ty = type_of(op);
1964
+ let (a, b) = pop2_with_bitcast(state, ty, builder);
1965
+ let cmp = builder.ins().fcmp(FloatCC::LessThan, b, a);
1966
+ let cmp = optionally_bitcast_vector(cmp, ty, builder);
1967
+ state.push1(builder.ins().bitselect(cmp, b, a))
1968
+ }
1969
+ Operator::F32x4Sqrt | Operator::F64x2Sqrt => {
1970
+ let a = pop1_with_bitcast(state, type_of(op), builder);
1971
+ state.push1(builder.ins().sqrt(a))
1972
+ }
1973
+ Operator::F32x4Neg | Operator::F64x2Neg => {
1974
+ let a = pop1_with_bitcast(state, type_of(op), builder);
1975
+ state.push1(builder.ins().fneg(a))
1976
+ }
1977
+ Operator::F32x4Abs | Operator::F64x2Abs => {
1978
+ let a = pop1_with_bitcast(state, type_of(op), builder);
1979
+ state.push1(builder.ins().fabs(a))
1980
+ }
1981
+ Operator::F32x4ConvertI32x4S => {
1982
+ let a = pop1_with_bitcast(state, I32X4, builder);
1983
+ state.push1(builder.ins().fcvt_from_sint(F32X4, a))
1984
+ }
1985
+ Operator::F32x4ConvertI32x4U => {
1986
+ let a = pop1_with_bitcast(state, I32X4, builder);
1987
+ state.push1(builder.ins().fcvt_from_uint(F32X4, a))
1988
+ }
1989
+ Operator::F64x2ConvertLowI32x4S => {
1990
+ let a = pop1_with_bitcast(state, I32X4, builder);
1991
+ let widened_a = builder.ins().swiden_low(a);
1992
+ state.push1(builder.ins().fcvt_from_sint(F64X2, widened_a));
1993
+ }
1994
+ Operator::F64x2ConvertLowI32x4U => {
1995
+ let a = pop1_with_bitcast(state, I32X4, builder);
1996
+ let widened_a = builder.ins().uwiden_low(a);
1997
+ state.push1(builder.ins().fcvt_from_uint(F64X2, widened_a));
1998
+ }
1999
+ Operator::F64x2PromoteLowF32x4 => {
2000
+ let a = pop1_with_bitcast(state, F32X4, builder);
2001
+ state.push1(builder.ins().fvpromote_low(a));
2002
+ }
2003
+ Operator::F32x4DemoteF64x2Zero => {
2004
+ let a = pop1_with_bitcast(state, F64X2, builder);
2005
+ state.push1(builder.ins().fvdemote(a));
2006
+ }
2007
+ Operator::I32x4TruncSatF32x4S => {
2008
+ let a = pop1_with_bitcast(state, F32X4, builder);
2009
+ state.push1(builder.ins().fcvt_to_sint_sat(I32X4, a))
2010
+ }
2011
+ Operator::I32x4TruncSatF64x2SZero => {
2012
+ let a = pop1_with_bitcast(state, F64X2, builder);
2013
+ let converted_a = builder.ins().fcvt_to_sint_sat(I64X2, a);
2014
+ let handle = builder.func.dfg.constants.insert(vec![0u8; 16].into());
2015
+ let zero = builder.ins().vconst(I64X2, handle);
2016
+
2017
+ state.push1(builder.ins().snarrow(converted_a, zero));
2018
+ }
2019
+
2020
+ // FIXME(#5913): the relaxed instructions here are translated the same
2021
+ // as the saturating instructions, even when the code generator
2022
+ // configuration allow for different semantics across hosts. On x86,
2023
+ // however, it's theoretically possible to have a slightly more optimal
2024
+ // lowering which accounts for NaN differently, although the lowering is
2025
+ // still not trivial (e.g. one instruction). At this time the
2026
+ // more-optimal-but-still-large lowering for x86 is not implemented so
2027
+ // the relaxed instructions are listed here instead of down below with
2028
+ // the other relaxed instructions. An x86-specific implementation (or
2029
+ // perhaps for other backends too) should be added and the codegen for
2030
+ // the relaxed instruction should conditionally be different.
2031
+ Operator::I32x4RelaxedTruncF32x4U | Operator::I32x4TruncSatF32x4U => {
2032
+ let a = pop1_with_bitcast(state, F32X4, builder);
2033
+ state.push1(builder.ins().fcvt_to_uint_sat(I32X4, a))
2034
+ }
2035
+ Operator::I32x4RelaxedTruncF64x2UZero | Operator::I32x4TruncSatF64x2UZero => {
2036
+ let a = pop1_with_bitcast(state, F64X2, builder);
2037
+ let converted_a = builder.ins().fcvt_to_uint_sat(I64X2, a);
2038
+ let handle = builder.func.dfg.constants.insert(vec![0u8; 16].into());
2039
+ let zero = builder.ins().vconst(I64X2, handle);
2040
+
2041
+ state.push1(builder.ins().uunarrow(converted_a, zero));
2042
+ }
2043
+
2044
+ Operator::I8x16NarrowI16x8S => {
2045
+ let (a, b) = pop2_with_bitcast(state, I16X8, builder);
2046
+ state.push1(builder.ins().snarrow(a, b))
2047
+ }
2048
+ Operator::I16x8NarrowI32x4S => {
2049
+ let (a, b) = pop2_with_bitcast(state, I32X4, builder);
2050
+ state.push1(builder.ins().snarrow(a, b))
2051
+ }
2052
+ Operator::I8x16NarrowI16x8U => {
2053
+ let (a, b) = pop2_with_bitcast(state, I16X8, builder);
2054
+ state.push1(builder.ins().unarrow(a, b))
2055
+ }
2056
+ Operator::I16x8NarrowI32x4U => {
2057
+ let (a, b) = pop2_with_bitcast(state, I32X4, builder);
2058
+ state.push1(builder.ins().unarrow(a, b))
2059
+ }
2060
+ Operator::I16x8ExtendLowI8x16S => {
2061
+ let a = pop1_with_bitcast(state, I8X16, builder);
2062
+ state.push1(builder.ins().swiden_low(a))
2063
+ }
2064
+ Operator::I16x8ExtendHighI8x16S => {
2065
+ let a = pop1_with_bitcast(state, I8X16, builder);
2066
+ state.push1(builder.ins().swiden_high(a))
2067
+ }
2068
+ Operator::I16x8ExtendLowI8x16U => {
2069
+ let a = pop1_with_bitcast(state, I8X16, builder);
2070
+ state.push1(builder.ins().uwiden_low(a))
2071
+ }
2072
+ Operator::I16x8ExtendHighI8x16U => {
2073
+ let a = pop1_with_bitcast(state, I8X16, builder);
2074
+ state.push1(builder.ins().uwiden_high(a))
2075
+ }
2076
+ Operator::I32x4ExtendLowI16x8S => {
2077
+ let a = pop1_with_bitcast(state, I16X8, builder);
2078
+ state.push1(builder.ins().swiden_low(a))
2079
+ }
2080
+ Operator::I32x4ExtendHighI16x8S => {
2081
+ let a = pop1_with_bitcast(state, I16X8, builder);
2082
+ state.push1(builder.ins().swiden_high(a))
2083
+ }
2084
+ Operator::I32x4ExtendLowI16x8U => {
2085
+ let a = pop1_with_bitcast(state, I16X8, builder);
2086
+ state.push1(builder.ins().uwiden_low(a))
2087
+ }
2088
+ Operator::I32x4ExtendHighI16x8U => {
2089
+ let a = pop1_with_bitcast(state, I16X8, builder);
2090
+ state.push1(builder.ins().uwiden_high(a))
2091
+ }
2092
+ Operator::I64x2ExtendLowI32x4S => {
2093
+ let a = pop1_with_bitcast(state, I32X4, builder);
2094
+ state.push1(builder.ins().swiden_low(a))
2095
+ }
2096
+ Operator::I64x2ExtendHighI32x4S => {
2097
+ let a = pop1_with_bitcast(state, I32X4, builder);
2098
+ state.push1(builder.ins().swiden_high(a))
2099
+ }
2100
+ Operator::I64x2ExtendLowI32x4U => {
2101
+ let a = pop1_with_bitcast(state, I32X4, builder);
2102
+ state.push1(builder.ins().uwiden_low(a))
2103
+ }
2104
+ Operator::I64x2ExtendHighI32x4U => {
2105
+ let a = pop1_with_bitcast(state, I32X4, builder);
2106
+ state.push1(builder.ins().uwiden_high(a))
2107
+ }
2108
+ Operator::I16x8ExtAddPairwiseI8x16S => {
2109
+ let a = pop1_with_bitcast(state, I8X16, builder);
2110
+ let widen_low = builder.ins().swiden_low(a);
2111
+ let widen_high = builder.ins().swiden_high(a);
2112
+ state.push1(builder.ins().iadd_pairwise(widen_low, widen_high));
2113
+ }
2114
+ Operator::I32x4ExtAddPairwiseI16x8S => {
2115
+ let a = pop1_with_bitcast(state, I16X8, builder);
2116
+ let widen_low = builder.ins().swiden_low(a);
2117
+ let widen_high = builder.ins().swiden_high(a);
2118
+ state.push1(builder.ins().iadd_pairwise(widen_low, widen_high));
2119
+ }
2120
+ Operator::I16x8ExtAddPairwiseI8x16U => {
2121
+ let a = pop1_with_bitcast(state, I8X16, builder);
2122
+ let widen_low = builder.ins().uwiden_low(a);
2123
+ let widen_high = builder.ins().uwiden_high(a);
2124
+ state.push1(builder.ins().iadd_pairwise(widen_low, widen_high));
2125
+ }
2126
+ Operator::I32x4ExtAddPairwiseI16x8U => {
2127
+ let a = pop1_with_bitcast(state, I16X8, builder);
2128
+ let widen_low = builder.ins().uwiden_low(a);
2129
+ let widen_high = builder.ins().uwiden_high(a);
2130
+ state.push1(builder.ins().iadd_pairwise(widen_low, widen_high));
2131
+ }
2132
+ Operator::F32x4Ceil | Operator::F64x2Ceil => {
2133
+ // This is something of a misuse of `type_of`, because that produces the return type
2134
+ // of `op`. In this case we want the arg type, but we know it's the same as the
2135
+ // return type. Same for the 3 cases below.
2136
+ let arg = pop1_with_bitcast(state, type_of(op), builder);
2137
+ state.push1(builder.ins().ceil(arg));
2138
+ }
2139
+ Operator::F32x4Floor | Operator::F64x2Floor => {
2140
+ let arg = pop1_with_bitcast(state, type_of(op), builder);
2141
+ state.push1(builder.ins().floor(arg));
2142
+ }
2143
+ Operator::F32x4Trunc | Operator::F64x2Trunc => {
2144
+ let arg = pop1_with_bitcast(state, type_of(op), builder);
2145
+ state.push1(builder.ins().trunc(arg));
2146
+ }
2147
+ Operator::F32x4Nearest | Operator::F64x2Nearest => {
2148
+ let arg = pop1_with_bitcast(state, type_of(op), builder);
2149
+ state.push1(builder.ins().nearest(arg));
2150
+ }
2151
+ Operator::I32x4DotI16x8S => {
2152
+ let (a, b) = pop2_with_bitcast(state, I16X8, builder);
2153
+ let alow = builder.ins().swiden_low(a);
2154
+ let blow = builder.ins().swiden_low(b);
2155
+ let low = builder.ins().imul(alow, blow);
2156
+ let ahigh = builder.ins().swiden_high(a);
2157
+ let bhigh = builder.ins().swiden_high(b);
2158
+ let high = builder.ins().imul(ahigh, bhigh);
2159
+ state.push1(builder.ins().iadd_pairwise(low, high));
2160
+ }
2161
+ Operator::I8x16Popcnt => {
2162
+ let arg = pop1_with_bitcast(state, type_of(op), builder);
2163
+ state.push1(builder.ins().popcnt(arg));
2164
+ }
2165
+ Operator::I16x8Q15MulrSatS => {
2166
+ let (a, b) = pop2_with_bitcast(state, I16X8, builder);
2167
+ state.push1(builder.ins().sqmul_round_sat(a, b))
2168
+ }
2169
+ Operator::I16x8ExtMulLowI8x16S => {
2170
+ let (a, b) = pop2_with_bitcast(state, I8X16, builder);
2171
+ let a_low = builder.ins().swiden_low(a);
2172
+ let b_low = builder.ins().swiden_low(b);
2173
+ state.push1(builder.ins().imul(a_low, b_low));
2174
+ }
2175
+ Operator::I16x8ExtMulHighI8x16S => {
2176
+ let (a, b) = pop2_with_bitcast(state, I8X16, builder);
2177
+ let a_high = builder.ins().swiden_high(a);
2178
+ let b_high = builder.ins().swiden_high(b);
2179
+ state.push1(builder.ins().imul(a_high, b_high));
2180
+ }
2181
+ Operator::I16x8ExtMulLowI8x16U => {
2182
+ let (a, b) = pop2_with_bitcast(state, I8X16, builder);
2183
+ let a_low = builder.ins().uwiden_low(a);
2184
+ let b_low = builder.ins().uwiden_low(b);
2185
+ state.push1(builder.ins().imul(a_low, b_low));
2186
+ }
2187
+ Operator::I16x8ExtMulHighI8x16U => {
2188
+ let (a, b) = pop2_with_bitcast(state, I8X16, builder);
2189
+ let a_high = builder.ins().uwiden_high(a);
2190
+ let b_high = builder.ins().uwiden_high(b);
2191
+ state.push1(builder.ins().imul(a_high, b_high));
2192
+ }
2193
+ Operator::I32x4ExtMulLowI16x8S => {
2194
+ let (a, b) = pop2_with_bitcast(state, I16X8, builder);
2195
+ let a_low = builder.ins().swiden_low(a);
2196
+ let b_low = builder.ins().swiden_low(b);
2197
+ state.push1(builder.ins().imul(a_low, b_low));
2198
+ }
2199
+ Operator::I32x4ExtMulHighI16x8S => {
2200
+ let (a, b) = pop2_with_bitcast(state, I16X8, builder);
2201
+ let a_high = builder.ins().swiden_high(a);
2202
+ let b_high = builder.ins().swiden_high(b);
2203
+ state.push1(builder.ins().imul(a_high, b_high));
2204
+ }
2205
+ Operator::I32x4ExtMulLowI16x8U => {
2206
+ let (a, b) = pop2_with_bitcast(state, I16X8, builder);
2207
+ let a_low = builder.ins().uwiden_low(a);
2208
+ let b_low = builder.ins().uwiden_low(b);
2209
+ state.push1(builder.ins().imul(a_low, b_low));
2210
+ }
2211
+ Operator::I32x4ExtMulHighI16x8U => {
2212
+ let (a, b) = pop2_with_bitcast(state, I16X8, builder);
2213
+ let a_high = builder.ins().uwiden_high(a);
2214
+ let b_high = builder.ins().uwiden_high(b);
2215
+ state.push1(builder.ins().imul(a_high, b_high));
2216
+ }
2217
+ Operator::I64x2ExtMulLowI32x4S => {
2218
+ let (a, b) = pop2_with_bitcast(state, I32X4, builder);
2219
+ let a_low = builder.ins().swiden_low(a);
2220
+ let b_low = builder.ins().swiden_low(b);
2221
+ state.push1(builder.ins().imul(a_low, b_low));
2222
+ }
2223
+ Operator::I64x2ExtMulHighI32x4S => {
2224
+ let (a, b) = pop2_with_bitcast(state, I32X4, builder);
2225
+ let a_high = builder.ins().swiden_high(a);
2226
+ let b_high = builder.ins().swiden_high(b);
2227
+ state.push1(builder.ins().imul(a_high, b_high));
2228
+ }
2229
+ Operator::I64x2ExtMulLowI32x4U => {
2230
+ let (a, b) = pop2_with_bitcast(state, I32X4, builder);
2231
+ let a_low = builder.ins().uwiden_low(a);
2232
+ let b_low = builder.ins().uwiden_low(b);
2233
+ state.push1(builder.ins().imul(a_low, b_low));
2234
+ }
2235
+ Operator::I64x2ExtMulHighI32x4U => {
2236
+ let (a, b) = pop2_with_bitcast(state, I32X4, builder);
2237
+ let a_high = builder.ins().uwiden_high(a);
2238
+ let b_high = builder.ins().uwiden_high(b);
2239
+ state.push1(builder.ins().imul(a_high, b_high));
2240
+ }
2241
+ Operator::MemoryDiscard { .. } => {
2242
+ return Err(wasm_unsupported!(
2243
+ "proposed memory-control operator {:?}",
2244
+ op
2245
+ ));
2246
+ }
2247
+
2248
+ Operator::F32x4RelaxedMax | Operator::F64x2RelaxedMax => {
2249
+ let ty = type_of(op);
2250
+ let (a, b) = pop2_with_bitcast(state, ty, builder);
2251
+ state.push1(
2252
+ if environ.relaxed_simd_deterministic() || !environ.is_x86() {
2253
+ // Deterministic semantics match the `fmax` instruction, or
2254
+ // the `fAAxBB.max` wasm instruction.
2255
+ builder.ins().fmax(a, b)
2256
+ } else {
2257
+ // Note that this matches the `pmax` translation which has
2258
+ // careful ordering of its operands to trigger
2259
+ // pattern-matches in the x86 backend.
2260
+ let cmp = builder.ins().fcmp(FloatCC::LessThan, a, b);
2261
+ let cmp = optionally_bitcast_vector(cmp, ty, builder);
2262
+ builder.ins().bitselect(cmp, b, a)
2263
+ },
2264
+ )
2265
+ }
2266
+
2267
+ Operator::F32x4RelaxedMin | Operator::F64x2RelaxedMin => {
2268
+ let ty = type_of(op);
2269
+ let (a, b) = pop2_with_bitcast(state, ty, builder);
2270
+ state.push1(
2271
+ if environ.relaxed_simd_deterministic() || !environ.is_x86() {
2272
+ // Deterministic semantics match the `fmin` instruction, or
2273
+ // the `fAAxBB.min` wasm instruction.
2274
+ builder.ins().fmin(a, b)
2275
+ } else {
2276
+ // Note that this matches the `pmin` translation which has
2277
+ // careful ordering of its operands to trigger
2278
+ // pattern-matches in the x86 backend.
2279
+ let cmp = builder.ins().fcmp(FloatCC::LessThan, b, a);
2280
+ let cmp = optionally_bitcast_vector(cmp, ty, builder);
2281
+ builder.ins().bitselect(cmp, b, a)
2282
+ },
2283
+ );
2284
+ }
2285
+
2286
+ Operator::I8x16RelaxedSwizzle => {
2287
+ let (a, b) = pop2_with_bitcast(state, I8X16, builder);
2288
+ state.push1(
2289
+ if environ.relaxed_simd_deterministic()
2290
+ || !environ.use_x86_pshufb_for_relaxed_swizzle()
2291
+ {
2292
+ // Deterministic semantics match the `i8x16.swizzle`
2293
+ // instruction which is the CLIF `swizzle`.
2294
+ builder.ins().swizzle(a, b)
2295
+ } else {
2296
+ builder.ins().x86_pshufb(a, b)
2297
+ },
2298
+ );
2299
+ }
2300
+
2301
+ Operator::F32x4RelaxedMadd | Operator::F64x2RelaxedMadd => {
2302
+ let (a, b, c) = pop3_with_bitcast(state, type_of(op), builder);
2303
+ state.push1(
2304
+ if environ.relaxed_simd_deterministic() || environ.has_native_fma() {
2305
+ // Deterministic semantics are "fused multiply and add"
2306
+ // which the CLIF `fma` guarantees.
2307
+ builder.ins().fma(a, b, c)
2308
+ } else {
2309
+ let mul = builder.ins().fmul(a, b);
2310
+ builder.ins().fadd(mul, c)
2311
+ },
2312
+ );
2313
+ }
2314
+ Operator::F32x4RelaxedNmadd | Operator::F64x2RelaxedNmadd => {
2315
+ let (a, b, c) = pop3_with_bitcast(state, type_of(op), builder);
2316
+ let a = builder.ins().fneg(a);
2317
+ state.push1(
2318
+ if environ.relaxed_simd_deterministic() || environ.has_native_fma() {
2319
+ // Deterministic semantics are "fused multiply and add"
2320
+ // which the CLIF `fma` guarantees.
2321
+ builder.ins().fma(a, b, c)
2322
+ } else {
2323
+ let mul = builder.ins().fmul(a, b);
2324
+ builder.ins().fadd(mul, c)
2325
+ },
2326
+ );
2327
+ }
2328
+
2329
+ Operator::I8x16RelaxedLaneselect
2330
+ | Operator::I16x8RelaxedLaneselect
2331
+ | Operator::I32x4RelaxedLaneselect
2332
+ | Operator::I64x2RelaxedLaneselect => {
2333
+ let ty = type_of(op);
2334
+ let (a, b, c) = pop3_with_bitcast(state, ty, builder);
2335
+ // Note that the variable swaps here are intentional due to
2336
+ // the difference of the order of the wasm op and the clif
2337
+ // op.
2338
+ state.push1(
2339
+ if environ.relaxed_simd_deterministic()
2340
+ || !environ.use_x86_blendv_for_relaxed_laneselect(ty)
2341
+ {
2342
+ // Deterministic semantics are a `bitselect` along the lines
2343
+ // of the wasm `v128.bitselect` instruction.
2344
+ builder.ins().bitselect(c, a, b)
2345
+ } else {
2346
+ builder.ins().x86_blendv(c, a, b)
2347
+ },
2348
+ );
2349
+ }
2350
+
2351
+ Operator::I32x4RelaxedTruncF32x4S => {
2352
+ let a = pop1_with_bitcast(state, F32X4, builder);
2353
+ state.push1(
2354
+ if environ.relaxed_simd_deterministic() || !environ.is_x86() {
2355
+ // Deterministic semantics are to match the
2356
+ // `i32x4.trunc_sat_f32x4_s` instruction.
2357
+ builder.ins().fcvt_to_sint_sat(I32X4, a)
2358
+ } else {
2359
+ builder.ins().x86_cvtt2dq(I32X4, a)
2360
+ },
2361
+ )
2362
+ }
2363
+ Operator::I32x4RelaxedTruncF64x2SZero => {
2364
+ let a = pop1_with_bitcast(state, F64X2, builder);
2365
+ let converted_a = if environ.relaxed_simd_deterministic() || !environ.is_x86() {
2366
+ // Deterministic semantics are to match the
2367
+ // `i32x4.trunc_sat_f64x2_s_zero` instruction.
2368
+ builder.ins().fcvt_to_sint_sat(I64X2, a)
2369
+ } else {
2370
+ builder.ins().x86_cvtt2dq(I64X2, a)
2371
+ };
2372
+ let handle = builder.func.dfg.constants.insert(vec![0u8; 16].into());
2373
+ let zero = builder.ins().vconst(I64X2, handle);
2374
+
2375
+ state.push1(builder.ins().snarrow(converted_a, zero));
2376
+ }
2377
+ Operator::I16x8RelaxedQ15mulrS => {
2378
+ let (a, b) = pop2_with_bitcast(state, I16X8, builder);
2379
+ state.push1(
2380
+ if environ.relaxed_simd_deterministic()
2381
+ || !environ.use_x86_pmulhrsw_for_relaxed_q15mul()
2382
+ {
2383
+ // Deterministic semantics are to match the
2384
+ // `i16x8.q15mulr_sat_s` instruction.
2385
+ builder.ins().sqmul_round_sat(a, b)
2386
+ } else {
2387
+ builder.ins().x86_pmulhrsw(a, b)
2388
+ },
2389
+ );
2390
+ }
2391
+ Operator::I16x8RelaxedDotI8x16I7x16S => {
2392
+ let (a, b) = pop2_with_bitcast(state, I8X16, builder);
2393
+ state.push1(
2394
+ if environ.relaxed_simd_deterministic() || !environ.use_x86_pmaddubsw_for_dot() {
2395
+ // Deterministic semantics are to treat both operands as
2396
+ // signed integers and perform the dot product.
2397
+ let alo = builder.ins().swiden_low(a);
2398
+ let blo = builder.ins().swiden_low(b);
2399
+ let lo = builder.ins().imul(alo, blo);
2400
+ let ahi = builder.ins().swiden_high(a);
2401
+ let bhi = builder.ins().swiden_high(b);
2402
+ let hi = builder.ins().imul(ahi, bhi);
2403
+ builder.ins().iadd_pairwise(lo, hi)
2404
+ } else {
2405
+ builder.ins().x86_pmaddubsw(a, b)
2406
+ },
2407
+ );
2408
+ }
2409
+
2410
+ Operator::I32x4RelaxedDotI8x16I7x16AddS => {
2411
+ let c = pop1_with_bitcast(state, I32X4, builder);
2412
+ let (a, b) = pop2_with_bitcast(state, I8X16, builder);
2413
+ let dot =
2414
+ if environ.relaxed_simd_deterministic() || !environ.use_x86_pmaddubsw_for_dot() {
2415
+ // Deterministic semantics are to treat both operands as
2416
+ // signed integers and perform the dot product.
2417
+ let alo = builder.ins().swiden_low(a);
2418
+ let blo = builder.ins().swiden_low(b);
2419
+ let lo = builder.ins().imul(alo, blo);
2420
+ let ahi = builder.ins().swiden_high(a);
2421
+ let bhi = builder.ins().swiden_high(b);
2422
+ let hi = builder.ins().imul(ahi, bhi);
2423
+ builder.ins().iadd_pairwise(lo, hi)
2424
+ } else {
2425
+ builder.ins().x86_pmaddubsw(a, b)
2426
+ };
2427
+ let dotlo = builder.ins().swiden_low(dot);
2428
+ let dothi = builder.ins().swiden_high(dot);
2429
+ let dot32 = builder.ins().iadd_pairwise(dotlo, dothi);
2430
+ state.push1(builder.ins().iadd(dot32, c));
2431
+ }
2432
+
2433
+ Operator::BrOnNull { relative_depth } => {
2434
+ let r = state.pop1();
2435
+ let (br_destination, inputs) = translate_br_if_args(*relative_depth, state);
2436
+ let is_null = environ.translate_ref_is_null(builder.cursor(), r)?;
2437
+ let else_block = builder.create_block();
2438
+ canonicalise_brif(builder, is_null, br_destination, inputs, else_block, &[]);
2439
+
2440
+ builder.seal_block(else_block); // The only predecessor is the current block.
2441
+ builder.switch_to_block(else_block);
2442
+ state.push1(r);
2443
+ }
2444
+ Operator::BrOnNonNull { relative_depth } => {
2445
+ // We write this a bit differently from the spec to avoid an extra
2446
+ // block/branch and the typed accounting thereof. Instead of the
2447
+ // spec's approach, it's described as such:
2448
+ // Peek the value val from the stack.
2449
+ // If val is ref.null ht, then: pop the value val from the stack.
2450
+ // Else: Execute the instruction (br relative_depth).
2451
+ let is_null = environ.translate_ref_is_null(builder.cursor(), state.peek1())?;
2452
+ let (br_destination, inputs) = translate_br_if_args(*relative_depth, state);
2453
+ let else_block = builder.create_block();
2454
+ canonicalise_brif(builder, is_null, else_block, &[], br_destination, inputs);
2455
+
2456
+ // In the null case, pop the ref
2457
+ state.pop1();
2458
+
2459
+ builder.seal_block(else_block); // The only predecessor is the current block.
2460
+
2461
+ // The rest of the translation operates on our is null case, which is
2462
+ // currently an empty block
2463
+ builder.switch_to_block(else_block);
2464
+ }
2465
+ Operator::CallRef { type_index } => {
2466
+ // Get function signature
2467
+ // `index` is the index of the function's signature and `table_index` is the index of
2468
+ // the table to search the function in.
2469
+ let (sigref, num_args) = state.get_indirect_sig(builder.func, *type_index, environ)?;
2470
+ let callee = state.pop1();
2471
+
2472
+ // Bitcast any vector arguments to their default type, I8X16, before calling.
2473
+ let args = state.peekn_mut(num_args);
2474
+ bitcast_wasm_params(environ, sigref, args, builder);
2475
+
2476
+ let call =
2477
+ environ.translate_call_ref(builder, sigref, callee, state.peekn(num_args))?;
2478
+
2479
+ let inst_results = builder.inst_results(call);
2480
+ debug_assert_eq!(
2481
+ inst_results.len(),
2482
+ builder.func.dfg.signatures[sigref].returns.len(),
2483
+ "translate_call_ref results should match the call signature"
2484
+ );
2485
+ state.popn(num_args);
2486
+ state.pushn(inst_results);
2487
+ }
2488
+ Operator::RefAsNonNull => {
2489
+ let r = state.pop1();
2490
+ let is_null = environ.translate_ref_is_null(builder.cursor(), r)?;
2491
+ builder.ins().trapnz(is_null, ir::TrapCode::NullReference);
2492
+ state.push1(r);
2493
+ }
2494
+
2495
+ Operator::RefI31 => {
2496
+ let val = state.pop1();
2497
+ let i31ref = environ.translate_ref_i31(builder.cursor(), val)?;
2498
+ state.push1(i31ref);
2499
+ }
2500
+ Operator::I31GetS => {
2501
+ let i31ref = state.pop1();
2502
+ let val = environ.translate_i31_get_s(builder.cursor(), i31ref)?;
2503
+ state.push1(val);
2504
+ }
2505
+ Operator::I31GetU => {
2506
+ let i31ref = state.pop1();
2507
+ let val = environ.translate_i31_get_u(builder.cursor(), i31ref)?;
2508
+ state.push1(val);
2509
+ }
2510
+
2511
+ Operator::TryTable { .. } | Operator::ThrowRef => {
2512
+ unimplemented!("exception operators not yet implemented")
2513
+ }
2514
+
2515
+ Operator::RefEq
2516
+ | Operator::RefTestNonNull { .. }
2517
+ | Operator::RefTestNullable { .. }
2518
+ | Operator::RefCastNonNull { .. }
2519
+ | Operator::RefCastNullable { .. }
2520
+ | Operator::BrOnCast { .. }
2521
+ | Operator::BrOnCastFail { .. }
2522
+ | Operator::AnyConvertExtern
2523
+ | Operator::ExternConvertAny
2524
+ | Operator::ArrayNew { .. }
2525
+ | Operator::ArrayNewDefault { .. }
2526
+ | Operator::ArrayNewFixed { .. }
2527
+ | Operator::ArrayNewData { .. }
2528
+ | Operator::ArrayNewElem { .. }
2529
+ | Operator::ArrayGet { .. }
2530
+ | Operator::ArrayGetU { .. }
2531
+ | Operator::ArrayGetS { .. }
2532
+ | Operator::ArraySet { .. }
2533
+ | Operator::ArrayLen { .. }
2534
+ | Operator::ArrayFill { .. }
2535
+ | Operator::ArrayCopy { .. }
2536
+ | Operator::ArrayInitData { .. }
2537
+ | Operator::ArrayInitElem { .. }
2538
+ | Operator::StructNew { .. }
2539
+ | Operator::StructNewDefault { .. }
2540
+ | Operator::StructGetS { .. }
2541
+ | Operator::StructGetU { .. }
2542
+ | Operator::StructSet { .. }
2543
+ | Operator::StructGet { .. } => {
2544
+ unimplemented!("GC operators not yet implemented")
2545
+ }
2546
+
2547
+ Operator::GlobalAtomicGet { .. }
2548
+ | Operator::GlobalAtomicSet { .. }
2549
+ | Operator::GlobalAtomicRmwAdd { .. }
2550
+ | Operator::GlobalAtomicRmwSub { .. }
2551
+ | Operator::GlobalAtomicRmwOr { .. }
2552
+ | Operator::GlobalAtomicRmwXor { .. }
2553
+ | Operator::GlobalAtomicRmwAnd { .. }
2554
+ | Operator::GlobalAtomicRmwXchg { .. }
2555
+ | Operator::GlobalAtomicRmwCmpxchg { .. } => {
2556
+ unimplemented!("shared-everything-threads not yet implemented")
2557
+ }
2558
+ };
2559
+ Ok(())
2560
+ }
2561
+
2562
+ /// Deals with a Wasm instruction located in an unreachable portion of the code. Most of them
2563
+ /// are dropped but special ones like `End` or `Else` signal the potential end of the unreachable
2564
+ /// portion so the translation state must be updated accordingly.
2565
+ fn translate_unreachable_operator<FE: FuncEnvironment + ?Sized>(
2566
+ validator: &FuncValidator<impl WasmModuleResources>,
2567
+ op: &Operator,
2568
+ builder: &mut FunctionBuilder,
2569
+ state: &mut FuncTranslationState,
2570
+ environ: &mut FE,
2571
+ ) -> WasmResult<()> {
2572
+ debug_assert!(!state.reachable);
2573
+ match *op {
2574
+ Operator::If { blockty } => {
2575
+ // Push a placeholder control stack entry. The if isn't reachable,
2576
+ // so we don't have any branches anywhere.
2577
+ state.push_if(
2578
+ ir::Block::reserved_value(),
2579
+ ElseData::NoElse {
2580
+ branch_inst: ir::Inst::reserved_value(),
2581
+ placeholder: ir::Block::reserved_value(),
2582
+ },
2583
+ 0,
2584
+ 0,
2585
+ blockty,
2586
+ );
2587
+ }
2588
+ Operator::Loop { blockty: _ } | Operator::Block { blockty: _ } => {
2589
+ state.push_block(ir::Block::reserved_value(), 0, 0);
2590
+ }
2591
+ Operator::Else => {
2592
+ let i = state.control_stack.len() - 1;
2593
+ match state.control_stack[i] {
2594
+ ControlStackFrame::If {
2595
+ ref else_data,
2596
+ head_is_reachable,
2597
+ ref mut consequent_ends_reachable,
2598
+ blocktype,
2599
+ ..
2600
+ } => {
2601
+ debug_assert!(consequent_ends_reachable.is_none());
2602
+ *consequent_ends_reachable = Some(state.reachable);
2603
+
2604
+ if head_is_reachable {
2605
+ // We have a branch from the head of the `if` to the `else`.
2606
+ state.reachable = true;
2607
+
2608
+ let else_block = match *else_data {
2609
+ ElseData::NoElse {
2610
+ branch_inst,
2611
+ placeholder,
2612
+ } => {
2613
+ let (params, _results) =
2614
+ blocktype_params_results(validator, blocktype)?;
2615
+ let else_block = block_with_params(builder, params, environ)?;
2616
+ let frame = state.control_stack.last().unwrap();
2617
+ frame.truncate_value_stack_to_else_params(&mut state.stack);
2618
+
2619
+ // We change the target of the branch instruction.
2620
+ builder.change_jump_destination(
2621
+ branch_inst,
2622
+ placeholder,
2623
+ else_block,
2624
+ );
2625
+ builder.seal_block(else_block);
2626
+ else_block
2627
+ }
2628
+ ElseData::WithElse { else_block } => {
2629
+ let frame = state.control_stack.last().unwrap();
2630
+ frame.truncate_value_stack_to_else_params(&mut state.stack);
2631
+ else_block
2632
+ }
2633
+ };
2634
+
2635
+ builder.switch_to_block(else_block);
2636
+
2637
+ // Again, no need to push the parameters for the `else`,
2638
+ // since we already did when we saw the original `if`. See
2639
+ // the comment for translating `Operator::Else` in
2640
+ // `translate_operator` for details.
2641
+ }
2642
+ }
2643
+ _ => unreachable!(),
2644
+ }
2645
+ }
2646
+ Operator::End => {
2647
+ let stack = &mut state.stack;
2648
+ let control_stack = &mut state.control_stack;
2649
+ let frame = control_stack.pop().unwrap();
2650
+
2651
+ // Pop unused parameters from stack.
2652
+ frame.truncate_value_stack_to_original_size(stack);
2653
+
2654
+ let reachable_anyway = match frame {
2655
+ // If it is a loop we also have to seal the body loop block
2656
+ ControlStackFrame::Loop { header, .. } => {
2657
+ builder.seal_block(header);
2658
+ // And loops can't have branches to the end.
2659
+ false
2660
+ }
2661
+ // If we never set `consequent_ends_reachable` then that means
2662
+ // we are finishing the consequent now, and there was no
2663
+ // `else`. Whether the following block is reachable depends only
2664
+ // on if the head was reachable.
2665
+ ControlStackFrame::If {
2666
+ head_is_reachable,
2667
+ consequent_ends_reachable: None,
2668
+ ..
2669
+ } => head_is_reachable,
2670
+ // Since we are only in this function when in unreachable code,
2671
+ // we know that the alternative just ended unreachable. Whether
2672
+ // the following block is reachable depends on if the consequent
2673
+ // ended reachable or not.
2674
+ ControlStackFrame::If {
2675
+ head_is_reachable,
2676
+ consequent_ends_reachable: Some(consequent_ends_reachable),
2677
+ ..
2678
+ } => head_is_reachable && consequent_ends_reachable,
2679
+ // All other control constructs are already handled.
2680
+ _ => false,
2681
+ };
2682
+
2683
+ if frame.exit_is_branched_to() || reachable_anyway {
2684
+ builder.switch_to_block(frame.following_code());
2685
+ builder.seal_block(frame.following_code());
2686
+
2687
+ // And add the return values of the block but only if the next block is reachable
2688
+ // (which corresponds to testing if the stack depth is 1)
2689
+ stack.extend_from_slice(builder.block_params(frame.following_code()));
2690
+ state.reachable = true;
2691
+ }
2692
+ }
2693
+ _ => {
2694
+ // We don't translate because this is unreachable code
2695
+ }
2696
+ }
2697
+
2698
+ Ok(())
2699
+ }
2700
+
2701
+ /// This function is a generalized helper for validating that a wasm-supplied
2702
+ /// heap address is in-bounds.
2703
+ ///
2704
+ /// This function takes a litany of parameters and requires that the *Wasm*
2705
+ /// address to be verified is at the top of the stack in `state`. This will
2706
+ /// generate necessary IR to validate that the heap address is correctly
2707
+ /// in-bounds, and various parameters are returned describing the valid *native*
2708
+ /// heap address if execution reaches that point.
2709
+ ///
2710
+ /// Returns `None` when the Wasm access will unconditionally trap.
2711
+ ///
2712
+ /// Returns `(flags, wasm_addr, native_addr)`.
2713
+ fn prepare_addr<FE>(
2714
+ memarg: &MemArg,
2715
+ access_size: u8,
2716
+ builder: &mut FunctionBuilder,
2717
+ state: &mut FuncTranslationState,
2718
+ environ: &mut FE,
2719
+ ) -> WasmResult<Reachability<(MemFlags, Value, Value)>>
2720
+ where
2721
+ FE: FuncEnvironment + ?Sized,
2722
+ {
2723
+ let index = state.pop1();
2724
+ let heap = state.get_heap(builder.func, memarg.memory, environ)?;
2725
+
2726
+ // How exactly the bounds check is performed here and what it's performed
2727
+ // on is a bit tricky. Generally we want to rely on access violations (e.g.
2728
+ // segfaults) to generate traps since that means we don't have to bounds
2729
+ // check anything explicitly.
2730
+ //
2731
+ // (1) If we don't have a guard page of unmapped memory, though, then we
2732
+ // can't rely on this trapping behavior through segfaults. Instead we need
2733
+ // to bounds-check the entire memory access here which is everything from
2734
+ // `addr32 + offset` to `addr32 + offset + width` (not inclusive). In this
2735
+ // scenario our adjusted offset that we're checking is `memarg.offset +
2736
+ // access_size`. Note that we do saturating arithmetic here to avoid
2737
+ // overflow. The addition here is in the 64-bit space, which means that
2738
+ // we'll never overflow for 32-bit wasm but for 64-bit this is an issue. If
2739
+ // our effective offset is u64::MAX though then it's impossible for for
2740
+ // that to actually be a valid offset because otherwise the wasm linear
2741
+ // memory would take all of the host memory!
2742
+ //
2743
+ // (2) If we have a guard page, however, then we can perform a further
2744
+ // optimization of the generated code by only checking multiples of the
2745
+ // offset-guard size to be more CSE-friendly. Knowing that we have at least
2746
+ // 1 page of a guard page we're then able to disregard the `width` since we
2747
+ // know it's always less than one page. Our bounds check will be for the
2748
+ // first byte which will either succeed and be guaranteed to fault if it's
2749
+ // actually out of bounds, or the bounds check itself will fail. In any case
2750
+ // we assert that the width is reasonably small for now so this assumption
2751
+ // can be adjusted in the future if we get larger widths.
2752
+ //
2753
+ // Put another way we can say, where `y < offset_guard_size`:
2754
+ //
2755
+ // n * offset_guard_size + y = offset
2756
+ //
2757
+ // We'll then pass `n * offset_guard_size` as the bounds check value. If
2758
+ // this traps then our `offset` would have trapped anyway. If this check
2759
+ // passes we know
2760
+ //
2761
+ // addr32 + n * offset_guard_size < bound
2762
+ //
2763
+ // which means
2764
+ //
2765
+ // addr32 + n * offset_guard_size + y < bound + offset_guard_size
2766
+ //
2767
+ // because `y < offset_guard_size`, which then means:
2768
+ //
2769
+ // addr32 + offset < bound + offset_guard_size
2770
+ //
2771
+ // Since we know that that guard size bytes are all unmapped we're
2772
+ // guaranteed that `offset` and the `width` bytes after it are either
2773
+ // in-bounds or will hit the guard page, meaning we'll get the desired
2774
+ // semantics we want.
2775
+ //
2776
+ // ---
2777
+ //
2778
+ // With all that in mind remember that the goal is to bounds check as few
2779
+ // things as possible. To facilitate this the "fast path" is expected to be
2780
+ // hit like so:
2781
+ //
2782
+ // * For wasm32, wasmtime defaults to 4gb "static" memories with 2gb guard
2783
+ // regions. This means that for all offsets <=2gb, we hit the optimized
2784
+ // case for `heap_addr` on static memories 4gb in size in cranelift's
2785
+ // legalization of `heap_addr`, eliding the bounds check entirely.
2786
+ //
2787
+ // * For wasm64 offsets <=2gb will generate a single `heap_addr`
2788
+ // instruction, but at this time all heaps are "dynamic" which means that
2789
+ // a single bounds check is forced. Ideally we'd do better here, but
2790
+ // that's the current state of affairs.
2791
+ //
2792
+ // Basically we assume that most configurations have a guard page and most
2793
+ // offsets in `memarg` are <=2gb, which means we get the fast path of one
2794
+ // `heap_addr` instruction plus a hardcoded i32-offset in memory-related
2795
+ // instructions.
2796
+ let heap = environ.heaps()[heap].clone();
2797
+ let addr = match u32::try_from(memarg.offset) {
2798
+ // If our offset fits within a u32, then we can place the it into the
2799
+ // offset immediate of the `heap_addr` instruction.
2800
+ Ok(offset) => bounds_checks::bounds_check_and_compute_addr(
2801
+ builder,
2802
+ environ,
2803
+ &heap,
2804
+ index,
2805
+ offset,
2806
+ access_size,
2807
+ )?,
2808
+
2809
+ // If the offset doesn't fit within a u32, then we can't pass it
2810
+ // directly into `heap_addr`.
2811
+ //
2812
+ // One reasonable question you might ask is "why not?". There's no
2813
+ // fundamental reason why `heap_addr` *must* take a 32-bit offset. The
2814
+ // reason this isn't done, though, is that blindly changing the offset
2815
+ // to a 64-bit offset increases the size of the `InstructionData` enum
2816
+ // in cranelift by 8 bytes (16 to 24). This can have significant
2817
+ // performance implications so the conclusion when this was written was
2818
+ // that we shouldn't do that.
2819
+ //
2820
+ // Without the ability to put the whole offset into the `heap_addr`
2821
+ // instruction we need to fold the offset into the address itself with
2822
+ // an unsigned addition. In doing so though we need to check for
2823
+ // overflow because that would mean the address is out-of-bounds (wasm
2824
+ // bounds checks happen on the effective 33 or 65 bit address once the
2825
+ // offset is factored in).
2826
+ //
2827
+ // Once we have the effective address, offset already folded in, then
2828
+ // `heap_addr` is used to verify that the address is indeed in-bounds.
2829
+ //
2830
+ // Note that this is generating what's likely to be at least two
2831
+ // branches, one for the overflow and one for the bounds check itself.
2832
+ // For now though that should hopefully be ok since 4gb+ offsets are
2833
+ // relatively odd/rare. In the future if needed we can look into
2834
+ // optimizing this more.
2835
+ Err(_) => {
2836
+ let offset = builder.ins().iconst(heap.index_type, memarg.offset as i64);
2837
+ let adjusted_index =
2838
+ builder
2839
+ .ins()
2840
+ .uadd_overflow_trap(index, offset, ir::TrapCode::HeapOutOfBounds);
2841
+ bounds_checks::bounds_check_and_compute_addr(
2842
+ builder,
2843
+ environ,
2844
+ &heap,
2845
+ adjusted_index,
2846
+ 0,
2847
+ access_size,
2848
+ )?
2849
+ }
2850
+ };
2851
+ let addr = match addr {
2852
+ Reachability::Unreachable => return Ok(Reachability::Unreachable),
2853
+ Reachability::Reachable(a) => a,
2854
+ };
2855
+
2856
+ // Note that we don't set `is_aligned` here, even if the load instruction's
2857
+ // alignment immediate may says it's aligned, because WebAssembly's
2858
+ // immediate field is just a hint, while Cranelift's aligned flag needs a
2859
+ // guarantee. WebAssembly memory accesses are always little-endian.
2860
+ let mut flags = MemFlags::new();
2861
+ flags.set_endianness(ir::Endianness::Little);
2862
+
2863
+ if heap.memory_type.is_some() {
2864
+ // Proof-carrying code is enabled; check this memory access.
2865
+ flags.set_checked();
2866
+ }
2867
+
2868
+ // The access occurs to the `heap` disjoint category of abstract
2869
+ // state. This may allow alias analysis to merge redundant loads,
2870
+ // etc. when heap accesses occur interleaved with other (table,
2871
+ // vmctx, stack) accesses.
2872
+ flags.set_alias_region(Some(ir::AliasRegion::Heap));
2873
+
2874
+ Ok(Reachability::Reachable((flags, index, addr)))
2875
+ }
2876
+
2877
+ fn align_atomic_addr(
2878
+ memarg: &MemArg,
2879
+ loaded_bytes: u8,
2880
+ builder: &mut FunctionBuilder,
2881
+ state: &mut FuncTranslationState,
2882
+ ) {
2883
+ // Atomic addresses must all be aligned correctly, and for now we check
2884
+ // alignment before we check out-of-bounds-ness. The order of this check may
2885
+ // need to be updated depending on the outcome of the official threads
2886
+ // proposal itself.
2887
+ //
2888
+ // Note that with an offset>0 we generate an `iadd_imm` where the result is
2889
+ // thrown away after the offset check. This may truncate the offset and the
2890
+ // result may overflow as well, but those conditions won't affect the
2891
+ // alignment check itself. This can probably be optimized better and we
2892
+ // should do so in the future as well.
2893
+ if loaded_bytes > 1 {
2894
+ let addr = state.pop1(); // "peek" via pop then push
2895
+ state.push1(addr);
2896
+ let effective_addr = if memarg.offset == 0 {
2897
+ addr
2898
+ } else {
2899
+ builder
2900
+ .ins()
2901
+ .iadd_imm(addr, i64::from(memarg.offset as i32))
2902
+ };
2903
+ debug_assert!(loaded_bytes.is_power_of_two());
2904
+ let misalignment = builder
2905
+ .ins()
2906
+ .band_imm(effective_addr, i64::from(loaded_bytes - 1));
2907
+ let f = builder.ins().icmp_imm(IntCC::NotEqual, misalignment, 0);
2908
+ builder.ins().trapnz(f, ir::TrapCode::HeapMisaligned);
2909
+ }
2910
+ }
2911
+
2912
+ /// Like `prepare_addr` but for atomic accesses.
2913
+ ///
2914
+ /// Returns `None` when the Wasm access will unconditionally trap.
2915
+ fn prepare_atomic_addr<FE: FuncEnvironment + ?Sized>(
2916
+ memarg: &MemArg,
2917
+ loaded_bytes: u8,
2918
+ builder: &mut FunctionBuilder,
2919
+ state: &mut FuncTranslationState,
2920
+ environ: &mut FE,
2921
+ ) -> WasmResult<Reachability<(MemFlags, Value, Value)>> {
2922
+ align_atomic_addr(memarg, loaded_bytes, builder, state);
2923
+ prepare_addr(memarg, loaded_bytes, builder, state, environ)
2924
+ }
2925
+
2926
+ /// Like `Option<T>` but specifically for passing information about transitions
2927
+ /// from reachable to unreachable state and the like from callees to callers.
2928
+ ///
2929
+ /// Marked `must_use` to force callers to update
2930
+ /// `FuncTranslationState::reachable` as necessary.
2931
+ #[derive(PartialEq, Eq)]
2932
+ #[must_use]
2933
+ pub enum Reachability<T> {
2934
+ /// The Wasm execution state is reachable, here is a `T`.
2935
+ Reachable(T),
2936
+ /// The Wasm execution state has been determined to be statically
2937
+ /// unreachable. It is the receiver of this value's responsibility to update
2938
+ /// `FuncTranslationState::reachable` as necessary.
2939
+ Unreachable,
2940
+ }
2941
+
2942
+ /// Translate a load instruction.
2943
+ ///
2944
+ /// Returns the execution state's reachability after the load is translated.
2945
+ fn translate_load<FE: FuncEnvironment + ?Sized>(
2946
+ memarg: &MemArg,
2947
+ opcode: ir::Opcode,
2948
+ result_ty: Type,
2949
+ builder: &mut FunctionBuilder,
2950
+ state: &mut FuncTranslationState,
2951
+ environ: &mut FE,
2952
+ ) -> WasmResult<Reachability<()>> {
2953
+ let mem_op_size = mem_op_size(opcode, result_ty);
2954
+ let (flags, wasm_index, base) =
2955
+ match prepare_addr(memarg, mem_op_size, builder, state, environ)? {
2956
+ Reachability::Unreachable => return Ok(Reachability::Unreachable),
2957
+ Reachability::Reachable((f, i, b)) => (f, i, b),
2958
+ };
2959
+
2960
+ environ.before_load(builder, mem_op_size, wasm_index, memarg.offset);
2961
+
2962
+ let (load, dfg) = builder
2963
+ .ins()
2964
+ .Load(opcode, result_ty, flags, Offset32::new(0), base);
2965
+ state.push1(dfg.first_result(load));
2966
+ Ok(Reachability::Reachable(()))
2967
+ }
2968
+
2969
+ /// Translate a store instruction.
2970
+ fn translate_store<FE: FuncEnvironment + ?Sized>(
2971
+ memarg: &MemArg,
2972
+ opcode: ir::Opcode,
2973
+ builder: &mut FunctionBuilder,
2974
+ state: &mut FuncTranslationState,
2975
+ environ: &mut FE,
2976
+ ) -> WasmResult<()> {
2977
+ let val = state.pop1();
2978
+ let val_ty = builder.func.dfg.value_type(val);
2979
+ let mem_op_size = mem_op_size(opcode, val_ty);
2980
+
2981
+ let (flags, wasm_index, base) = unwrap_or_return_unreachable_state!(
2982
+ state,
2983
+ prepare_addr(memarg, mem_op_size, builder, state, environ)?
2984
+ );
2985
+
2986
+ environ.before_store(builder, mem_op_size, wasm_index, memarg.offset);
2987
+
2988
+ builder
2989
+ .ins()
2990
+ .Store(opcode, val_ty, flags, Offset32::new(0), val, base);
2991
+ Ok(())
2992
+ }
2993
+
2994
+ fn mem_op_size(opcode: ir::Opcode, ty: Type) -> u8 {
2995
+ match opcode {
2996
+ ir::Opcode::Istore8 | ir::Opcode::Sload8 | ir::Opcode::Uload8 => 1,
2997
+ ir::Opcode::Istore16 | ir::Opcode::Sload16 | ir::Opcode::Uload16 => 2,
2998
+ ir::Opcode::Istore32 | ir::Opcode::Sload32 | ir::Opcode::Uload32 => 4,
2999
+ ir::Opcode::Store | ir::Opcode::Load => u8::try_from(ty.bytes()).unwrap(),
3000
+ _ => panic!("unknown size of mem op for {:?}", opcode),
3001
+ }
3002
+ }
3003
+
3004
+ fn translate_icmp(cc: IntCC, builder: &mut FunctionBuilder, state: &mut FuncTranslationState) {
3005
+ let (arg0, arg1) = state.pop2();
3006
+ let val = builder.ins().icmp(cc, arg0, arg1);
3007
+ state.push1(builder.ins().uextend(I32, val));
3008
+ }
3009
+
3010
+ fn translate_atomic_rmw<FE: FuncEnvironment + ?Sized>(
3011
+ widened_ty: Type,
3012
+ access_ty: Type,
3013
+ op: AtomicRmwOp,
3014
+ memarg: &MemArg,
3015
+ builder: &mut FunctionBuilder,
3016
+ state: &mut FuncTranslationState,
3017
+ environ: &mut FE,
3018
+ ) -> WasmResult<()> {
3019
+ let mut arg2 = state.pop1();
3020
+ let arg2_ty = builder.func.dfg.value_type(arg2);
3021
+
3022
+ // The operation is performed at type `access_ty`, and the old value is zero-extended
3023
+ // to type `widened_ty`.
3024
+ match access_ty {
3025
+ I8 | I16 | I32 | I64 => {}
3026
+ _ => {
3027
+ return Err(wasm_unsupported!(
3028
+ "atomic_rmw: unsupported access type {:?}",
3029
+ access_ty
3030
+ ))
3031
+ }
3032
+ };
3033
+ let w_ty_ok = match widened_ty {
3034
+ I32 | I64 => true,
3035
+ _ => false,
3036
+ };
3037
+ assert!(w_ty_ok && widened_ty.bytes() >= access_ty.bytes());
3038
+
3039
+ assert!(arg2_ty.bytes() >= access_ty.bytes());
3040
+ if arg2_ty.bytes() > access_ty.bytes() {
3041
+ arg2 = builder.ins().ireduce(access_ty, arg2);
3042
+ }
3043
+
3044
+ let (flags, _, addr) = unwrap_or_return_unreachable_state!(
3045
+ state,
3046
+ prepare_atomic_addr(
3047
+ memarg,
3048
+ u8::try_from(access_ty.bytes()).unwrap(),
3049
+ builder,
3050
+ state,
3051
+ environ,
3052
+ )?
3053
+ );
3054
+
3055
+ let mut res = builder.ins().atomic_rmw(access_ty, flags, op, addr, arg2);
3056
+ if access_ty != widened_ty {
3057
+ res = builder.ins().uextend(widened_ty, res);
3058
+ }
3059
+ state.push1(res);
3060
+ Ok(())
3061
+ }
3062
+
3063
+ fn translate_atomic_cas<FE: FuncEnvironment + ?Sized>(
3064
+ widened_ty: Type,
3065
+ access_ty: Type,
3066
+ memarg: &MemArg,
3067
+ builder: &mut FunctionBuilder,
3068
+ state: &mut FuncTranslationState,
3069
+ environ: &mut FE,
3070
+ ) -> WasmResult<()> {
3071
+ let (mut expected, mut replacement) = state.pop2();
3072
+ let expected_ty = builder.func.dfg.value_type(expected);
3073
+ let replacement_ty = builder.func.dfg.value_type(replacement);
3074
+
3075
+ // The compare-and-swap is performed at type `access_ty`, and the old value is zero-extended
3076
+ // to type `widened_ty`.
3077
+ match access_ty {
3078
+ I8 | I16 | I32 | I64 => {}
3079
+ _ => {
3080
+ return Err(wasm_unsupported!(
3081
+ "atomic_cas: unsupported access type {:?}",
3082
+ access_ty
3083
+ ))
3084
+ }
3085
+ };
3086
+ let w_ty_ok = match widened_ty {
3087
+ I32 | I64 => true,
3088
+ _ => false,
3089
+ };
3090
+ assert!(w_ty_ok && widened_ty.bytes() >= access_ty.bytes());
3091
+
3092
+ assert!(expected_ty.bytes() >= access_ty.bytes());
3093
+ if expected_ty.bytes() > access_ty.bytes() {
3094
+ expected = builder.ins().ireduce(access_ty, expected);
3095
+ }
3096
+ assert!(replacement_ty.bytes() >= access_ty.bytes());
3097
+ if replacement_ty.bytes() > access_ty.bytes() {
3098
+ replacement = builder.ins().ireduce(access_ty, replacement);
3099
+ }
3100
+
3101
+ let (flags, _, addr) = unwrap_or_return_unreachable_state!(
3102
+ state,
3103
+ prepare_atomic_addr(
3104
+ memarg,
3105
+ u8::try_from(access_ty.bytes()).unwrap(),
3106
+ builder,
3107
+ state,
3108
+ environ,
3109
+ )?
3110
+ );
3111
+ let mut res = builder.ins().atomic_cas(flags, addr, expected, replacement);
3112
+ if access_ty != widened_ty {
3113
+ res = builder.ins().uextend(widened_ty, res);
3114
+ }
3115
+ state.push1(res);
3116
+ Ok(())
3117
+ }
3118
+
3119
+ fn translate_atomic_load<FE: FuncEnvironment + ?Sized>(
3120
+ widened_ty: Type,
3121
+ access_ty: Type,
3122
+ memarg: &MemArg,
3123
+ builder: &mut FunctionBuilder,
3124
+ state: &mut FuncTranslationState,
3125
+ environ: &mut FE,
3126
+ ) -> WasmResult<()> {
3127
+ // The load is performed at type `access_ty`, and the loaded value is zero extended
3128
+ // to `widened_ty`.
3129
+ match access_ty {
3130
+ I8 | I16 | I32 | I64 => {}
3131
+ _ => {
3132
+ return Err(wasm_unsupported!(
3133
+ "atomic_load: unsupported access type {:?}",
3134
+ access_ty
3135
+ ))
3136
+ }
3137
+ };
3138
+ let w_ty_ok = match widened_ty {
3139
+ I32 | I64 => true,
3140
+ _ => false,
3141
+ };
3142
+ assert!(w_ty_ok && widened_ty.bytes() >= access_ty.bytes());
3143
+
3144
+ let (flags, _, addr) = unwrap_or_return_unreachable_state!(
3145
+ state,
3146
+ prepare_atomic_addr(
3147
+ memarg,
3148
+ u8::try_from(access_ty.bytes()).unwrap(),
3149
+ builder,
3150
+ state,
3151
+ environ,
3152
+ )?
3153
+ );
3154
+ let mut res = builder.ins().atomic_load(access_ty, flags, addr);
3155
+ if access_ty != widened_ty {
3156
+ res = builder.ins().uextend(widened_ty, res);
3157
+ }
3158
+ state.push1(res);
3159
+ Ok(())
3160
+ }
3161
+
3162
+ fn translate_atomic_store<FE: FuncEnvironment + ?Sized>(
3163
+ access_ty: Type,
3164
+ memarg: &MemArg,
3165
+ builder: &mut FunctionBuilder,
3166
+ state: &mut FuncTranslationState,
3167
+ environ: &mut FE,
3168
+ ) -> WasmResult<()> {
3169
+ let mut data = state.pop1();
3170
+ let data_ty = builder.func.dfg.value_type(data);
3171
+
3172
+ // The operation is performed at type `access_ty`, and the data to be stored may first
3173
+ // need to be narrowed accordingly.
3174
+ match access_ty {
3175
+ I8 | I16 | I32 | I64 => {}
3176
+ _ => {
3177
+ return Err(wasm_unsupported!(
3178
+ "atomic_store: unsupported access type {:?}",
3179
+ access_ty
3180
+ ))
3181
+ }
3182
+ };
3183
+ let d_ty_ok = match data_ty {
3184
+ I32 | I64 => true,
3185
+ _ => false,
3186
+ };
3187
+ assert!(d_ty_ok && data_ty.bytes() >= access_ty.bytes());
3188
+
3189
+ if data_ty.bytes() > access_ty.bytes() {
3190
+ data = builder.ins().ireduce(access_ty, data);
3191
+ }
3192
+
3193
+ let (flags, _, addr) = unwrap_or_return_unreachable_state!(
3194
+ state,
3195
+ prepare_atomic_addr(
3196
+ memarg,
3197
+ u8::try_from(access_ty.bytes()).unwrap(),
3198
+ builder,
3199
+ state,
3200
+ environ,
3201
+ )?
3202
+ );
3203
+ builder.ins().atomic_store(flags, data, addr);
3204
+ Ok(())
3205
+ }
3206
+
3207
+ fn translate_vector_icmp(
3208
+ cc: IntCC,
3209
+ needed_type: Type,
3210
+ builder: &mut FunctionBuilder,
3211
+ state: &mut FuncTranslationState,
3212
+ ) {
3213
+ let (a, b) = state.pop2();
3214
+ let bitcast_a = optionally_bitcast_vector(a, needed_type, builder);
3215
+ let bitcast_b = optionally_bitcast_vector(b, needed_type, builder);
3216
+ state.push1(builder.ins().icmp(cc, bitcast_a, bitcast_b))
3217
+ }
3218
+
3219
+ fn translate_fcmp(cc: FloatCC, builder: &mut FunctionBuilder, state: &mut FuncTranslationState) {
3220
+ let (arg0, arg1) = state.pop2();
3221
+ let val = builder.ins().fcmp(cc, arg0, arg1);
3222
+ state.push1(builder.ins().uextend(I32, val));
3223
+ }
3224
+
3225
+ fn translate_vector_fcmp(
3226
+ cc: FloatCC,
3227
+ needed_type: Type,
3228
+ builder: &mut FunctionBuilder,
3229
+ state: &mut FuncTranslationState,
3230
+ ) {
3231
+ let (a, b) = state.pop2();
3232
+ let bitcast_a = optionally_bitcast_vector(a, needed_type, builder);
3233
+ let bitcast_b = optionally_bitcast_vector(b, needed_type, builder);
3234
+ state.push1(builder.ins().fcmp(cc, bitcast_a, bitcast_b))
3235
+ }
3236
+
3237
+ fn translate_br_if(
3238
+ relative_depth: u32,
3239
+ builder: &mut FunctionBuilder,
3240
+ state: &mut FuncTranslationState,
3241
+ ) {
3242
+ let val = state.pop1();
3243
+ let (br_destination, inputs) = translate_br_if_args(relative_depth, state);
3244
+ let next_block = builder.create_block();
3245
+ canonicalise_brif(builder, val, br_destination, inputs, next_block, &[]);
3246
+
3247
+ builder.seal_block(next_block); // The only predecessor is the current block.
3248
+ builder.switch_to_block(next_block);
3249
+ }
3250
+
3251
+ fn translate_br_if_args(
3252
+ relative_depth: u32,
3253
+ state: &mut FuncTranslationState,
3254
+ ) -> (ir::Block, &mut [ir::Value]) {
3255
+ let i = state.control_stack.len() - 1 - (relative_depth as usize);
3256
+ let (return_count, br_destination) = {
3257
+ let frame = &mut state.control_stack[i];
3258
+ // The values returned by the branch are still available for the reachable
3259
+ // code that comes after it
3260
+ frame.set_branched_to_exit();
3261
+ let return_count = if frame.is_loop() {
3262
+ frame.num_param_values()
3263
+ } else {
3264
+ frame.num_return_values()
3265
+ };
3266
+ (return_count, frame.br_destination())
3267
+ };
3268
+ let inputs = state.peekn_mut(return_count);
3269
+ (br_destination, inputs)
3270
+ }
3271
+
3272
+ /// Determine the returned value type of a WebAssembly operator
3273
+ fn type_of(operator: &Operator) -> Type {
3274
+ match operator {
3275
+ Operator::V128Load { .. }
3276
+ | Operator::V128Store { .. }
3277
+ | Operator::V128Const { .. }
3278
+ | Operator::V128Not
3279
+ | Operator::V128And
3280
+ | Operator::V128AndNot
3281
+ | Operator::V128Or
3282
+ | Operator::V128Xor
3283
+ | Operator::V128AnyTrue
3284
+ | Operator::V128Bitselect => I8X16, // default type representing V128
3285
+
3286
+ Operator::I8x16Shuffle { .. }
3287
+ | Operator::I8x16Splat
3288
+ | Operator::V128Load8Splat { .. }
3289
+ | Operator::V128Load8Lane { .. }
3290
+ | Operator::V128Store8Lane { .. }
3291
+ | Operator::I8x16ExtractLaneS { .. }
3292
+ | Operator::I8x16ExtractLaneU { .. }
3293
+ | Operator::I8x16ReplaceLane { .. }
3294
+ | Operator::I8x16Eq
3295
+ | Operator::I8x16Ne
3296
+ | Operator::I8x16LtS
3297
+ | Operator::I8x16LtU
3298
+ | Operator::I8x16GtS
3299
+ | Operator::I8x16GtU
3300
+ | Operator::I8x16LeS
3301
+ | Operator::I8x16LeU
3302
+ | Operator::I8x16GeS
3303
+ | Operator::I8x16GeU
3304
+ | Operator::I8x16Neg
3305
+ | Operator::I8x16Abs
3306
+ | Operator::I8x16AllTrue
3307
+ | Operator::I8x16Shl
3308
+ | Operator::I8x16ShrS
3309
+ | Operator::I8x16ShrU
3310
+ | Operator::I8x16Add
3311
+ | Operator::I8x16AddSatS
3312
+ | Operator::I8x16AddSatU
3313
+ | Operator::I8x16Sub
3314
+ | Operator::I8x16SubSatS
3315
+ | Operator::I8x16SubSatU
3316
+ | Operator::I8x16MinS
3317
+ | Operator::I8x16MinU
3318
+ | Operator::I8x16MaxS
3319
+ | Operator::I8x16MaxU
3320
+ | Operator::I8x16AvgrU
3321
+ | Operator::I8x16Bitmask
3322
+ | Operator::I8x16Popcnt
3323
+ | Operator::I8x16RelaxedLaneselect => I8X16,
3324
+
3325
+ Operator::I16x8Splat
3326
+ | Operator::V128Load16Splat { .. }
3327
+ | Operator::V128Load16Lane { .. }
3328
+ | Operator::V128Store16Lane { .. }
3329
+ | Operator::I16x8ExtractLaneS { .. }
3330
+ | Operator::I16x8ExtractLaneU { .. }
3331
+ | Operator::I16x8ReplaceLane { .. }
3332
+ | Operator::I16x8Eq
3333
+ | Operator::I16x8Ne
3334
+ | Operator::I16x8LtS
3335
+ | Operator::I16x8LtU
3336
+ | Operator::I16x8GtS
3337
+ | Operator::I16x8GtU
3338
+ | Operator::I16x8LeS
3339
+ | Operator::I16x8LeU
3340
+ | Operator::I16x8GeS
3341
+ | Operator::I16x8GeU
3342
+ | Operator::I16x8Neg
3343
+ | Operator::I16x8Abs
3344
+ | Operator::I16x8AllTrue
3345
+ | Operator::I16x8Shl
3346
+ | Operator::I16x8ShrS
3347
+ | Operator::I16x8ShrU
3348
+ | Operator::I16x8Add
3349
+ | Operator::I16x8AddSatS
3350
+ | Operator::I16x8AddSatU
3351
+ | Operator::I16x8Sub
3352
+ | Operator::I16x8SubSatS
3353
+ | Operator::I16x8SubSatU
3354
+ | Operator::I16x8MinS
3355
+ | Operator::I16x8MinU
3356
+ | Operator::I16x8MaxS
3357
+ | Operator::I16x8MaxU
3358
+ | Operator::I16x8AvgrU
3359
+ | Operator::I16x8Mul
3360
+ | Operator::I16x8Bitmask
3361
+ | Operator::I16x8RelaxedLaneselect => I16X8,
3362
+
3363
+ Operator::I32x4Splat
3364
+ | Operator::V128Load32Splat { .. }
3365
+ | Operator::V128Load32Lane { .. }
3366
+ | Operator::V128Store32Lane { .. }
3367
+ | Operator::I32x4ExtractLane { .. }
3368
+ | Operator::I32x4ReplaceLane { .. }
3369
+ | Operator::I32x4Eq
3370
+ | Operator::I32x4Ne
3371
+ | Operator::I32x4LtS
3372
+ | Operator::I32x4LtU
3373
+ | Operator::I32x4GtS
3374
+ | Operator::I32x4GtU
3375
+ | Operator::I32x4LeS
3376
+ | Operator::I32x4LeU
3377
+ | Operator::I32x4GeS
3378
+ | Operator::I32x4GeU
3379
+ | Operator::I32x4Neg
3380
+ | Operator::I32x4Abs
3381
+ | Operator::I32x4AllTrue
3382
+ | Operator::I32x4Shl
3383
+ | Operator::I32x4ShrS
3384
+ | Operator::I32x4ShrU
3385
+ | Operator::I32x4Add
3386
+ | Operator::I32x4Sub
3387
+ | Operator::I32x4Mul
3388
+ | Operator::I32x4MinS
3389
+ | Operator::I32x4MinU
3390
+ | Operator::I32x4MaxS
3391
+ | Operator::I32x4MaxU
3392
+ | Operator::I32x4Bitmask
3393
+ | Operator::I32x4TruncSatF32x4S
3394
+ | Operator::I32x4TruncSatF32x4U
3395
+ | Operator::I32x4RelaxedLaneselect
3396
+ | Operator::V128Load32Zero { .. } => I32X4,
3397
+
3398
+ Operator::I64x2Splat
3399
+ | Operator::V128Load64Splat { .. }
3400
+ | Operator::V128Load64Lane { .. }
3401
+ | Operator::V128Store64Lane { .. }
3402
+ | Operator::I64x2ExtractLane { .. }
3403
+ | Operator::I64x2ReplaceLane { .. }
3404
+ | Operator::I64x2Eq
3405
+ | Operator::I64x2Ne
3406
+ | Operator::I64x2LtS
3407
+ | Operator::I64x2GtS
3408
+ | Operator::I64x2LeS
3409
+ | Operator::I64x2GeS
3410
+ | Operator::I64x2Neg
3411
+ | Operator::I64x2Abs
3412
+ | Operator::I64x2AllTrue
3413
+ | Operator::I64x2Shl
3414
+ | Operator::I64x2ShrS
3415
+ | Operator::I64x2ShrU
3416
+ | Operator::I64x2Add
3417
+ | Operator::I64x2Sub
3418
+ | Operator::I64x2Mul
3419
+ | Operator::I64x2Bitmask
3420
+ | Operator::I64x2RelaxedLaneselect
3421
+ | Operator::V128Load64Zero { .. } => I64X2,
3422
+
3423
+ Operator::F32x4Splat
3424
+ | Operator::F32x4ExtractLane { .. }
3425
+ | Operator::F32x4ReplaceLane { .. }
3426
+ | Operator::F32x4Eq
3427
+ | Operator::F32x4Ne
3428
+ | Operator::F32x4Lt
3429
+ | Operator::F32x4Gt
3430
+ | Operator::F32x4Le
3431
+ | Operator::F32x4Ge
3432
+ | Operator::F32x4Abs
3433
+ | Operator::F32x4Neg
3434
+ | Operator::F32x4Sqrt
3435
+ | Operator::F32x4Add
3436
+ | Operator::F32x4Sub
3437
+ | Operator::F32x4Mul
3438
+ | Operator::F32x4Div
3439
+ | Operator::F32x4Min
3440
+ | Operator::F32x4Max
3441
+ | Operator::F32x4PMin
3442
+ | Operator::F32x4PMax
3443
+ | Operator::F32x4ConvertI32x4S
3444
+ | Operator::F32x4ConvertI32x4U
3445
+ | Operator::F32x4Ceil
3446
+ | Operator::F32x4Floor
3447
+ | Operator::F32x4Trunc
3448
+ | Operator::F32x4Nearest
3449
+ | Operator::F32x4RelaxedMax
3450
+ | Operator::F32x4RelaxedMin
3451
+ | Operator::F32x4RelaxedMadd
3452
+ | Operator::F32x4RelaxedNmadd => F32X4,
3453
+
3454
+ Operator::F64x2Splat
3455
+ | Operator::F64x2ExtractLane { .. }
3456
+ | Operator::F64x2ReplaceLane { .. }
3457
+ | Operator::F64x2Eq
3458
+ | Operator::F64x2Ne
3459
+ | Operator::F64x2Lt
3460
+ | Operator::F64x2Gt
3461
+ | Operator::F64x2Le
3462
+ | Operator::F64x2Ge
3463
+ | Operator::F64x2Abs
3464
+ | Operator::F64x2Neg
3465
+ | Operator::F64x2Sqrt
3466
+ | Operator::F64x2Add
3467
+ | Operator::F64x2Sub
3468
+ | Operator::F64x2Mul
3469
+ | Operator::F64x2Div
3470
+ | Operator::F64x2Min
3471
+ | Operator::F64x2Max
3472
+ | Operator::F64x2PMin
3473
+ | Operator::F64x2PMax
3474
+ | Operator::F64x2Ceil
3475
+ | Operator::F64x2Floor
3476
+ | Operator::F64x2Trunc
3477
+ | Operator::F64x2Nearest
3478
+ | Operator::F64x2RelaxedMax
3479
+ | Operator::F64x2RelaxedMin
3480
+ | Operator::F64x2RelaxedMadd
3481
+ | Operator::F64x2RelaxedNmadd => F64X2,
3482
+
3483
+ _ => unimplemented!(
3484
+ "Currently only SIMD instructions are mapped to their return type; the \
3485
+ following instruction is not mapped: {:?}",
3486
+ operator
3487
+ ),
3488
+ }
3489
+ }
3490
+
3491
+ /// Some SIMD operations only operate on I8X16 in CLIF; this will convert them to that type by
3492
+ /// adding a bitcast if necessary.
3493
+ fn optionally_bitcast_vector(
3494
+ value: Value,
3495
+ needed_type: Type,
3496
+ builder: &mut FunctionBuilder,
3497
+ ) -> Value {
3498
+ if builder.func.dfg.value_type(value) != needed_type {
3499
+ let mut flags = MemFlags::new();
3500
+ flags.set_endianness(ir::Endianness::Little);
3501
+ builder.ins().bitcast(needed_type, flags, value)
3502
+ } else {
3503
+ value
3504
+ }
3505
+ }
3506
+
3507
+ #[inline(always)]
3508
+ fn is_non_canonical_v128(ty: ir::Type) -> bool {
3509
+ match ty {
3510
+ I64X2 | I32X4 | I16X8 | F32X4 | F64X2 => true,
3511
+ _ => false,
3512
+ }
3513
+ }
3514
+
3515
+ /// Cast to I8X16, any vector values in `values` that are of "non-canonical" type (meaning, not
3516
+ /// I8X16), and return them in a slice. A pre-scan is made to determine whether any casts are
3517
+ /// actually necessary, and if not, the original slice is returned. Otherwise the cast values
3518
+ /// are returned in a slice that belongs to the caller-supplied `SmallVec`.
3519
+ fn canonicalise_v128_values<'a>(
3520
+ tmp_canonicalised: &'a mut SmallVec<[ir::Value; 16]>,
3521
+ builder: &mut FunctionBuilder,
3522
+ values: &'a [ir::Value],
3523
+ ) -> &'a [ir::Value] {
3524
+ debug_assert!(tmp_canonicalised.is_empty());
3525
+ // First figure out if any of the parameters need to be cast. Mostly they don't need to be.
3526
+ let any_non_canonical = values
3527
+ .iter()
3528
+ .any(|v| is_non_canonical_v128(builder.func.dfg.value_type(*v)));
3529
+ // Hopefully we take this exit most of the time, hence doing no heap allocation.
3530
+ if !any_non_canonical {
3531
+ return values;
3532
+ }
3533
+ // Otherwise we'll have to cast, and push the resulting `Value`s into `canonicalised`.
3534
+ for v in values {
3535
+ tmp_canonicalised.push(if is_non_canonical_v128(builder.func.dfg.value_type(*v)) {
3536
+ let mut flags = MemFlags::new();
3537
+ flags.set_endianness(ir::Endianness::Little);
3538
+ builder.ins().bitcast(I8X16, flags, *v)
3539
+ } else {
3540
+ *v
3541
+ });
3542
+ }
3543
+ tmp_canonicalised.as_slice()
3544
+ }
3545
+
3546
+ /// Generate a `jump` instruction, but first cast all 128-bit vector values to I8X16 if they
3547
+ /// don't have that type. This is done in somewhat roundabout way so as to ensure that we
3548
+ /// almost never have to do any heap allocation.
3549
+ fn canonicalise_then_jump(
3550
+ builder: &mut FunctionBuilder,
3551
+ destination: ir::Block,
3552
+ params: &[ir::Value],
3553
+ ) -> ir::Inst {
3554
+ let mut tmp_canonicalised = SmallVec::<[ir::Value; 16]>::new();
3555
+ let canonicalised = canonicalise_v128_values(&mut tmp_canonicalised, builder, params);
3556
+ builder.ins().jump(destination, canonicalised)
3557
+ }
3558
+
3559
+ /// The same but for a `brif` instruction.
3560
+ fn canonicalise_brif(
3561
+ builder: &mut FunctionBuilder,
3562
+ cond: ir::Value,
3563
+ block_then: ir::Block,
3564
+ params_then: &[ir::Value],
3565
+ block_else: ir::Block,
3566
+ params_else: &[ir::Value],
3567
+ ) -> ir::Inst {
3568
+ let mut tmp_canonicalised_then = SmallVec::<[ir::Value; 16]>::new();
3569
+ let canonicalised_then =
3570
+ canonicalise_v128_values(&mut tmp_canonicalised_then, builder, params_then);
3571
+ let mut tmp_canonicalised_else = SmallVec::<[ir::Value; 16]>::new();
3572
+ let canonicalised_else =
3573
+ canonicalise_v128_values(&mut tmp_canonicalised_else, builder, params_else);
3574
+ builder.ins().brif(
3575
+ cond,
3576
+ block_then,
3577
+ canonicalised_then,
3578
+ block_else,
3579
+ canonicalised_else,
3580
+ )
3581
+ }
3582
+
3583
+ /// A helper for popping and bitcasting a single value; since SIMD values can lose their type by
3584
+ /// using v128 (i.e. CLIF's I8x16) we must re-type the values using a bitcast to avoid CLIF
3585
+ /// typing issues.
3586
+ fn pop1_with_bitcast(
3587
+ state: &mut FuncTranslationState,
3588
+ needed_type: Type,
3589
+ builder: &mut FunctionBuilder,
3590
+ ) -> Value {
3591
+ optionally_bitcast_vector(state.pop1(), needed_type, builder)
3592
+ }
3593
+
3594
+ /// A helper for popping and bitcasting two values; since SIMD values can lose their type by
3595
+ /// using v128 (i.e. CLIF's I8x16) we must re-type the values using a bitcast to avoid CLIF
3596
+ /// typing issues.
3597
+ fn pop2_with_bitcast(
3598
+ state: &mut FuncTranslationState,
3599
+ needed_type: Type,
3600
+ builder: &mut FunctionBuilder,
3601
+ ) -> (Value, Value) {
3602
+ let (a, b) = state.pop2();
3603
+ let bitcast_a = optionally_bitcast_vector(a, needed_type, builder);
3604
+ let bitcast_b = optionally_bitcast_vector(b, needed_type, builder);
3605
+ (bitcast_a, bitcast_b)
3606
+ }
3607
+
3608
+ fn pop3_with_bitcast(
3609
+ state: &mut FuncTranslationState,
3610
+ needed_type: Type,
3611
+ builder: &mut FunctionBuilder,
3612
+ ) -> (Value, Value, Value) {
3613
+ let (a, b, c) = state.pop3();
3614
+ let bitcast_a = optionally_bitcast_vector(a, needed_type, builder);
3615
+ let bitcast_b = optionally_bitcast_vector(b, needed_type, builder);
3616
+ let bitcast_c = optionally_bitcast_vector(c, needed_type, builder);
3617
+ (bitcast_a, bitcast_b, bitcast_c)
3618
+ }
3619
+
3620
+ fn bitcast_arguments<'a>(
3621
+ builder: &FunctionBuilder,
3622
+ arguments: &'a mut [Value],
3623
+ params: &[ir::AbiParam],
3624
+ param_predicate: impl Fn(usize) -> bool,
3625
+ ) -> Vec<(Type, &'a mut Value)> {
3626
+ let filtered_param_types = params
3627
+ .iter()
3628
+ .enumerate()
3629
+ .filter(|(i, _)| param_predicate(*i))
3630
+ .map(|(_, param)| param.value_type);
3631
+
3632
+ // zip_eq, from the itertools::Itertools trait, is like Iterator::zip but panics if one
3633
+ // iterator ends before the other. The `param_predicate` is required to select exactly as many
3634
+ // elements of `params` as there are elements in `arguments`.
3635
+ let pairs = filtered_param_types.zip_eq(arguments.iter_mut());
3636
+
3637
+ // The arguments which need to be bitcasted are those which have some vector type but the type
3638
+ // expected by the parameter is not the same vector type as that of the provided argument.
3639
+ pairs
3640
+ .filter(|(param_type, _)| param_type.is_vector())
3641
+ .filter(|(param_type, arg)| {
3642
+ let arg_type = builder.func.dfg.value_type(**arg);
3643
+ assert!(
3644
+ arg_type.is_vector(),
3645
+ "unexpected type mismatch: expected {}, argument {} was actually of type {}",
3646
+ param_type,
3647
+ *arg,
3648
+ arg_type
3649
+ );
3650
+
3651
+ // This is the same check that would be done by `optionally_bitcast_vector`, except we
3652
+ // can't take a mutable borrow of the FunctionBuilder here, so we defer inserting the
3653
+ // bitcast instruction to the caller.
3654
+ arg_type != *param_type
3655
+ })
3656
+ .collect()
3657
+ }
3658
+
3659
+ /// A helper for bitcasting a sequence of return values for the function currently being built. If
3660
+ /// a value is a vector type that does not match its expected type, this will modify the value in
3661
+ /// place to point to the result of a `bitcast`. This conversion is necessary to translate Wasm
3662
+ /// code that uses `V128` as function parameters (or implicitly in block parameters) and still use
3663
+ /// specific CLIF types (e.g. `I32X4`) in the function body.
3664
+ pub fn bitcast_wasm_returns<FE: FuncEnvironment + ?Sized>(
3665
+ environ: &mut FE,
3666
+ arguments: &mut [Value],
3667
+ builder: &mut FunctionBuilder,
3668
+ ) {
3669
+ let changes = bitcast_arguments(builder, arguments, &builder.func.signature.returns, |i| {
3670
+ environ.is_wasm_return(&builder.func.signature, i)
3671
+ });
3672
+ for (t, arg) in changes {
3673
+ let mut flags = MemFlags::new();
3674
+ flags.set_endianness(ir::Endianness::Little);
3675
+ *arg = builder.ins().bitcast(t, flags, *arg);
3676
+ }
3677
+ }
3678
+
3679
+ /// Like `bitcast_wasm_returns`, but for the parameters being passed to a specified callee.
3680
+ fn bitcast_wasm_params<FE: FuncEnvironment + ?Sized>(
3681
+ environ: &mut FE,
3682
+ callee_signature: ir::SigRef,
3683
+ arguments: &mut [Value],
3684
+ builder: &mut FunctionBuilder,
3685
+ ) {
3686
+ let callee_signature = &builder.func.dfg.signatures[callee_signature];
3687
+ let changes = bitcast_arguments(builder, arguments, &callee_signature.params, |i| {
3688
+ environ.is_wasm_parameter(&callee_signature, i)
3689
+ });
3690
+ for (t, arg) in changes {
3691
+ let mut flags = MemFlags::new();
3692
+ flags.set_endianness(ir::Endianness::Little);
3693
+ *arg = builder.ins().bitcast(t, flags, *arg);
3694
+ }
3695
+ }