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
@@ -1,3995 +0,0 @@
1
- ;; s390x instruction selection and CLIF-to-MachInst lowering.
2
-
3
- ;; The main lowering constructor term: takes a clif `Inst` and returns the
4
- ;; register(s) within which the lowered instruction's result values live.
5
- (decl partial lower (Inst) InstOutput)
6
-
7
- ;; A variant of the main lowering constructor term, used for branches.
8
- ;; The only difference is that it gets an extra argument holding a vector
9
- ;; of branch targets to be used.
10
- (decl partial lower_branch (Inst MachLabelSlice) Unit)
11
-
12
-
13
- ;;;; Rules for `iconst` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14
-
15
- (rule (lower (has_type ty (iconst (u64_from_imm64 n))))
16
- (imm ty n))
17
-
18
-
19
- ;;;; Rules for `f32const` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
20
-
21
- (rule (lower (f32const (u32_from_ieee32 x)))
22
- (imm $F32 x))
23
-
24
-
25
- ;;;; Rules for `f64const` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
26
-
27
- (rule (lower (f64const (u64_from_ieee64 x)))
28
- (imm $F64 x))
29
-
30
-
31
- ;;;; Rules for `vconst` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32
-
33
- (rule (lower (has_type ty (vconst (u128_from_constant x))))
34
- (vec_imm ty (be_vec_const ty x)))
35
-
36
-
37
- ;;;; Rules for `null` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38
-
39
- (rule (lower (has_type ty (null)))
40
- (imm ty 0))
41
-
42
-
43
- ;;;; Rules for `nop` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44
-
45
- (rule (lower (nop))
46
- (invalid_reg))
47
-
48
-
49
- ;;;; Rules for `iconcat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
50
-
51
- (rule (lower (has_type (vr128_ty ty) (iconcat x y)))
52
- (mov_to_vec128 ty y x))
53
-
54
-
55
- ;;;; Rules for `isplit` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
56
-
57
- (rule (lower (isplit x @ (value_type $I128)))
58
- (let ((x_reg Reg x)
59
- (x_hi Reg (vec_extract_lane $I64X2 x_reg 0 (zero_reg)))
60
- (x_lo Reg (vec_extract_lane $I64X2 x_reg 1 (zero_reg))))
61
- (output_pair x_lo x_hi)))
62
-
63
-
64
- ;;;; Rules for `iadd` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
65
-
66
- ;; Add two registers.
67
- (rule 0 (lower (has_type (fits_in_64 ty) (iadd x y)))
68
- (add_reg ty x y))
69
-
70
- ;; Add a register and a sign-extended register.
71
- (rule 8 (lower (has_type (fits_in_64 ty) (iadd x (sext32_value y))))
72
- (add_reg_sext32 ty x y))
73
- (rule 15 (lower (has_type (fits_in_64 ty) (iadd (sext32_value x) y)))
74
- (add_reg_sext32 ty y x))
75
-
76
- ;; Add a register and an immediate.
77
- (rule 7 (lower (has_type (fits_in_64 ty) (iadd x (i16_from_value y))))
78
- (add_simm16 ty x y))
79
- (rule 14 (lower (has_type (fits_in_64 ty) (iadd (i16_from_value x) y)))
80
- (add_simm16 ty y x))
81
- (rule 6 (lower (has_type (fits_in_64 ty) (iadd x (i32_from_value y))))
82
- (add_simm32 ty x y))
83
- (rule 13 (lower (has_type (fits_in_64 ty) (iadd (i32_from_value x) y)))
84
- (add_simm32 ty y x))
85
-
86
- ;; Add a register and memory (32/64-bit types).
87
- (rule 5 (lower (has_type (fits_in_64 ty) (iadd x (sinkable_load_32_64 y))))
88
- (add_mem ty x (sink_load y)))
89
- (rule 12 (lower (has_type (fits_in_64 ty) (iadd (sinkable_load_32_64 x) y)))
90
- (add_mem ty y (sink_load x)))
91
-
92
- ;; Add a register and memory (16-bit types).
93
- (rule 4 (lower (has_type (fits_in_64 ty) (iadd x (sinkable_load_16 y))))
94
- (add_mem_sext16 ty x (sink_load y)))
95
- (rule 11 (lower (has_type (fits_in_64 ty) (iadd (sinkable_load_16 x) y)))
96
- (add_mem_sext16 ty y (sink_load x)))
97
-
98
- ;; Add a register and sign-extended memory.
99
- (rule 3 (lower (has_type (fits_in_64 ty) (iadd x (sinkable_sload16 y))))
100
- (add_mem_sext16 ty x (sink_sload16 y)))
101
- (rule 10 (lower (has_type (fits_in_64 ty) (iadd (sinkable_sload16 x) y)))
102
- (add_mem_sext16 ty y (sink_sload16 x)))
103
- (rule 2 (lower (has_type (fits_in_64 ty) (iadd x (sinkable_sload32 y))))
104
- (add_mem_sext32 ty x (sink_sload32 y)))
105
- (rule 9 (lower (has_type (fits_in_64 ty) (iadd (sinkable_sload32 x) y)))
106
- (add_mem_sext32 ty y (sink_sload32 x)))
107
-
108
- ;; Add two vector registers.
109
- (rule 1 (lower (has_type (vr128_ty ty) (iadd x y)))
110
- (vec_add ty x y))
111
-
112
-
113
- ;;;; Rules for `uadd_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
114
-
115
- ;; Add (saturate unsigned) two vector registers.
116
- (rule (lower (has_type (ty_vec128 ty) (uadd_sat x y)))
117
- (let ((sum Reg (vec_add ty x y)))
118
- (vec_or ty sum (vec_cmphl ty x sum))))
119
-
120
-
121
- ;;;; Rules for `sadd_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
122
-
123
- ;; Add (saturate signed) two vector registers. $I64X2 not supported.
124
- (rule (lower (has_type (ty_vec128 ty) (sadd_sat x y)))
125
- (vec_pack_ssat (vec_widen_type ty)
126
- (vec_add (vec_widen_type ty) (vec_unpacks_high ty x)
127
- (vec_unpacks_high ty y))
128
- (vec_add (vec_widen_type ty) (vec_unpacks_low ty x)
129
- (vec_unpacks_low ty y))))
130
-
131
-
132
- ;;;; Rules for `iadd_pairwise` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
133
-
134
- ;; Lane-wise integer pairwise addition for 8-/16/32-bit vector registers.
135
- (rule (lower (has_type ty @ (multi_lane bits _) (iadd_pairwise x y)))
136
- (let ((size Reg (vec_imm_splat $I8X16 (u32_as_u64 bits))))
137
- (vec_pack_lane_order (vec_widen_type ty)
138
- (vec_add ty x (vec_lshr_by_byte x size))
139
- (vec_add ty y (vec_lshr_by_byte y size)))))
140
-
141
- ;; special case for the `i32x4.dot_i16x8_s` wasm instruction
142
- (rule 1 (lower
143
- (has_type dst_ty (iadd_pairwise
144
- (imul (swiden_low x @ (value_type src_ty)) (swiden_low y))
145
- (imul (swiden_high x) (swiden_high y)))))
146
- (vec_add dst_ty (vec_smul_even src_ty x y)
147
- (vec_smul_odd src_ty x y)))
148
-
149
-
150
- ;;;; Rules for `isub` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
151
-
152
- ;; Sub two registers.
153
- (rule 0 (lower (has_type (fits_in_64 ty) (isub x y)))
154
- (sub_reg ty x y))
155
-
156
- ;; Sub a register and a sign-extended register.
157
- (rule 8 (lower (has_type (fits_in_64 ty) (isub x (sext32_value y))))
158
- (sub_reg_sext32 ty x y))
159
-
160
- ;; Sub a register and an immediate (using add of the negated value).
161
- (rule 7 (lower (has_type (fits_in_64 ty) (isub x (i16_from_negated_value y))))
162
- (add_simm16 ty x y))
163
- (rule 6 (lower (has_type (fits_in_64 ty) (isub x (i32_from_negated_value y))))
164
- (add_simm32 ty x y))
165
-
166
- ;; Sub a register and memory (32/64-bit types).
167
- (rule 5 (lower (has_type (fits_in_64 ty) (isub x (sinkable_load_32_64 y))))
168
- (sub_mem ty x (sink_load y)))
169
-
170
- ;; Sub a register and memory (16-bit types).
171
- (rule 4 (lower (has_type (fits_in_64 ty) (isub x (sinkable_load_16 y))))
172
- (sub_mem_sext16 ty x (sink_load y)))
173
-
174
- ;; Sub a register and sign-extended memory.
175
- (rule 3 (lower (has_type (fits_in_64 ty) (isub x (sinkable_sload16 y))))
176
- (sub_mem_sext16 ty x (sink_sload16 y)))
177
- (rule 2 (lower (has_type (fits_in_64 ty) (isub x (sinkable_sload32 y))))
178
- (sub_mem_sext32 ty x (sink_sload32 y)))
179
-
180
- ;; Sub two vector registers.
181
- (rule 1 (lower (has_type (vr128_ty ty) (isub x y)))
182
- (vec_sub ty x y))
183
-
184
-
185
- ;;;; Rules for `usub_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
186
-
187
- ;; Add (saturate unsigned) two vector registers.
188
- (rule (lower (has_type (ty_vec128 ty) (usub_sat x y)))
189
- (vec_and ty (vec_sub ty x y) (vec_cmphl ty x y)))
190
-
191
-
192
- ;;;; Rules for `ssub_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
193
-
194
- ;; Add (saturate signed) two vector registers. $I64X2 not supported.
195
- (rule (lower (has_type (ty_vec128 ty) (ssub_sat x y)))
196
- (vec_pack_ssat (vec_widen_type ty)
197
- (vec_sub (vec_widen_type ty) (vec_unpacks_high ty x)
198
- (vec_unpacks_high ty y))
199
- (vec_sub (vec_widen_type ty) (vec_unpacks_low ty x)
200
- (vec_unpacks_low ty y))))
201
-
202
-
203
- ;;;; Rules for `iabs` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
204
-
205
- ;; Absolute value of a register.
206
- ;; For types smaller than 32-bit, the input value must be sign-extended.
207
- (rule 2 (lower (has_type (fits_in_64 ty) (iabs x)))
208
- (abs_reg (ty_ext32 ty) (put_in_reg_sext32 x)))
209
-
210
- ;; Absolute value of a sign-extended register.
211
- (rule 3 (lower (has_type (fits_in_64 ty) (iabs (sext32_value x))))
212
- (abs_reg_sext32 ty x))
213
-
214
- ;; Absolute value of a vector register.
215
- (rule 1 (lower (has_type (ty_vec128 ty) (iabs x)))
216
- (vec_abs ty x))
217
-
218
- ;; Absolute value of a 128-bit integer.
219
- (rule 0 (lower (has_type $I128 (iabs x)))
220
- (let ((zero Reg (vec_imm $I128 0))
221
- (pos Reg x)
222
- (neg Reg (vec_sub $I128 zero pos))
223
- (rep Reg (vec_replicate_lane $I64X2 pos 0))
224
- (mask Reg (vec_cmph $I64X2 zero rep)))
225
- (vec_select $I128 neg pos mask)))
226
-
227
-
228
- ;;;; Rules for `ineg` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
229
-
230
- ;; Negate a register.
231
- (rule 2 (lower (has_type (fits_in_64 ty) (ineg x)))
232
- (neg_reg ty x))
233
-
234
- ;; Negate a sign-extended register.
235
- (rule 3 (lower (has_type (fits_in_64 ty) (ineg (sext32_value x))))
236
- (neg_reg_sext32 ty x))
237
-
238
- ;; Negate a vector register.
239
- (rule 1 (lower (has_type (ty_vec128 ty) (ineg x)))
240
- (vec_neg ty x))
241
-
242
- ;; Negate a 128-bit integer.
243
- (rule 0 (lower (has_type $I128 (ineg x)))
244
- (vec_sub $I128 (vec_imm $I128 0) x))
245
-
246
-
247
- ;;;; Rules for `umax` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
248
-
249
- ;; Unsigned maximum of two scalar integers - expand to icmp + select.
250
- (rule 2 (lower (has_type (fits_in_64 ty) (umax x y)))
251
- (let ((x_ext Reg (put_in_reg_zext32 x))
252
- (y_ext Reg (put_in_reg_zext32 y))
253
- (cond ProducesBool (bool (icmpu_reg (ty_ext32 ty) x_ext y_ext)
254
- (intcc_as_cond (IntCC.UnsignedLessThan)))))
255
- (select_bool_reg ty cond y_ext x_ext)))
256
-
257
- ;; Unsigned maximum of two 128-bit integers - expand to icmp + select.
258
- (rule 1 (lower (has_type $I128 (umax x y)))
259
- (let ((x_reg Reg (put_in_reg x))
260
- (y_reg Reg (put_in_reg y))
261
- (cond ProducesBool (vec_int128_ucmphi y_reg x_reg)))
262
- (select_bool_reg $I128 cond y_reg x_reg)))
263
-
264
- ;; Unsigned maximum of two vector registers.
265
- (rule 0 (lower (has_type (ty_vec128 ty) (umax x y)))
266
- (vec_umax ty x y))
267
-
268
-
269
- ;;;; Rules for `umin` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
270
-
271
- ;; Unsigned minimum of two scalar integers - expand to icmp + select.
272
- (rule 2 (lower (has_type (fits_in_64 ty) (umin x y)))
273
- (let ((x_ext Reg (put_in_reg_zext32 x))
274
- (y_ext Reg (put_in_reg_zext32 y))
275
- (cond ProducesBool (bool (icmpu_reg (ty_ext32 ty) x_ext y_ext)
276
- (intcc_as_cond (IntCC.UnsignedGreaterThan)))))
277
- (select_bool_reg ty cond y_ext x_ext)))
278
-
279
- ;; Unsigned maximum of two 128-bit integers - expand to icmp + select.
280
- (rule 1 (lower (has_type $I128 (umin x y)))
281
- (let ((x_reg Reg (put_in_reg x))
282
- (y_reg Reg (put_in_reg y))
283
- (cond ProducesBool (vec_int128_ucmphi x_reg y_reg)))
284
- (select_bool_reg $I128 cond y_reg x_reg)))
285
-
286
- ;; Unsigned minimum of two vector registers.
287
- (rule 0 (lower (has_type (ty_vec128 ty) (umin x y)))
288
- (vec_umin ty x y))
289
-
290
-
291
- ;;;; Rules for `smax` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
292
-
293
- ;; Signed maximum of two scalar integers - expand to icmp + select.
294
- (rule 2 (lower (has_type (fits_in_64 ty) (smax x y)))
295
- (let ((x_ext Reg (put_in_reg_sext32 x))
296
- (y_ext Reg (put_in_reg_sext32 y))
297
- (cond ProducesBool (bool (icmps_reg (ty_ext32 ty) x_ext y_ext)
298
- (intcc_as_cond (IntCC.SignedLessThan)))))
299
- (select_bool_reg ty cond y_ext x_ext)))
300
-
301
- ;; Signed maximum of two 128-bit integers - expand to icmp + select.
302
- (rule 1 (lower (has_type $I128 (smax x y)))
303
- (let ((x_reg Reg (put_in_reg x))
304
- (y_reg Reg (put_in_reg y))
305
- (cond ProducesBool (vec_int128_scmphi y_reg x_reg)))
306
- (select_bool_reg $I128 cond y_reg x_reg)))
307
-
308
- ;; Signed maximum of two vector registers.
309
- (rule (lower (has_type (ty_vec128 ty) (smax x y)))
310
- (vec_smax ty x y))
311
-
312
-
313
- ;;;; Rules for `smin` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
314
-
315
- ;; Signed minimum of two scalar integers - expand to icmp + select.
316
- (rule 2 (lower (has_type (fits_in_64 ty) (smin x y)))
317
- (let ((x_ext Reg (put_in_reg_sext32 x))
318
- (y_ext Reg (put_in_reg_sext32 y))
319
- (cond ProducesBool (bool (icmps_reg (ty_ext32 ty) x_ext y_ext)
320
- (intcc_as_cond (IntCC.SignedGreaterThan)))))
321
- (select_bool_reg ty cond y_ext x_ext)))
322
-
323
- ;; Signed maximum of two 128-bit integers - expand to icmp + select.
324
- (rule 1 (lower (has_type $I128 (smin x y)))
325
- (let ((x_reg Reg (put_in_reg x))
326
- (y_reg Reg (put_in_reg y))
327
- (cond ProducesBool (vec_int128_scmphi x_reg y_reg)))
328
- (select_bool_reg $I128 cond y_reg x_reg)))
329
-
330
- ;; Signed minimum of two vector registers.
331
- (rule (lower (has_type (ty_vec128 ty) (smin x y)))
332
- (vec_smin ty x y))
333
-
334
-
335
- ;;;; Rules for `avg_round` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
336
-
337
- ;; Unsigned average of two vector registers.
338
- (rule (lower (has_type (ty_vec128 ty) (avg_round x y)))
339
- (vec_uavg ty x y))
340
-
341
-
342
- ;;;; Rules for `imul` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
343
-
344
- ;; Multiply two registers.
345
- (rule 0 (lower (has_type (fits_in_64 ty) (imul x y)))
346
- (mul_reg ty x y))
347
-
348
- ;; Multiply a register and a sign-extended register.
349
- (rule 8 (lower (has_type (fits_in_64 ty) (imul x (sext32_value y))))
350
- (mul_reg_sext32 ty x y))
351
- (rule 15 (lower (has_type (fits_in_64 ty) (imul (sext32_value x) y)))
352
- (mul_reg_sext32 ty y x))
353
-
354
- ;; Multiply a register and an immediate.
355
- (rule 7 (lower (has_type (fits_in_64 ty) (imul x (i16_from_value y))))
356
- (mul_simm16 ty x y))
357
- (rule 14 (lower (has_type (fits_in_64 ty) (imul (i16_from_value x) y)))
358
- (mul_simm16 ty y x))
359
- (rule 6 (lower (has_type (fits_in_64 ty) (imul x (i32_from_value y))))
360
- (mul_simm32 ty x y))
361
- (rule 13 (lower (has_type (fits_in_64 ty) (imul (i32_from_value x) y)))
362
- (mul_simm32 ty y x))
363
-
364
- ;; Multiply a register and memory (32/64-bit types).
365
- (rule 5 (lower (has_type (fits_in_64 ty) (imul x (sinkable_load_32_64 y))))
366
- (mul_mem ty x (sink_load y)))
367
- (rule 12 (lower (has_type (fits_in_64 ty) (imul (sinkable_load_32_64 x) y)))
368
- (mul_mem ty y (sink_load x)))
369
-
370
- ;; Multiply a register and memory (16-bit types).
371
- (rule 4 (lower (has_type (fits_in_64 ty) (imul x (sinkable_load_16 y))))
372
- (mul_mem_sext16 ty x (sink_load y)))
373
- (rule 11 (lower (has_type (fits_in_64 ty) (imul (sinkable_load_16 x) y)))
374
- (mul_mem_sext16 ty y (sink_load x)))
375
-
376
- ;; Multiply a register and sign-extended memory.
377
- (rule 3 (lower (has_type (fits_in_64 ty) (imul x (sinkable_sload16 y))))
378
- (mul_mem_sext16 ty x (sink_sload16 y)))
379
- (rule 10 (lower (has_type (fits_in_64 ty) (imul (sinkable_sload16 x) y)))
380
- (mul_mem_sext16 ty y (sink_sload16 x)))
381
- (rule 2 (lower (has_type (fits_in_64 ty) (imul x (sinkable_sload32 y))))
382
- (mul_mem_sext32 ty x (sink_sload32 y)))
383
- (rule 9 (lower (has_type (fits_in_64 ty) (imul (sinkable_sload32 x) y)))
384
- (mul_mem_sext32 ty y (sink_sload32 x)))
385
-
386
- ;; Multiply two vector registers, using a helper.
387
- (decl vec_mul_impl (Type Reg Reg) Reg)
388
- (rule 1 (lower (has_type (vr128_ty ty) (imul x y)))
389
- (vec_mul_impl ty x y))
390
-
391
- ;; Multiply two vector registers - byte, halfword, and word.
392
- (rule (vec_mul_impl $I8X16 x y) (vec_mul $I8X16 x y))
393
- (rule (vec_mul_impl $I16X8 x y) (vec_mul $I16X8 x y))
394
- (rule (vec_mul_impl $I32X4 x y) (vec_mul $I32X4 x y))
395
-
396
- ;; Multiply two vector registers - doubleword. Has to be scalarized.
397
- (rule (vec_mul_impl $I64X2 x y)
398
- (mov_to_vec128 $I64X2
399
- (mul_reg $I64 (vec_extract_lane $I64X2 x 0 (zero_reg))
400
- (vec_extract_lane $I64X2 y 0 (zero_reg)))
401
- (mul_reg $I64 (vec_extract_lane $I64X2 x 1 (zero_reg))
402
- (vec_extract_lane $I64X2 y 1 (zero_reg)))))
403
-
404
- ;; Multiply two vector registers - quadword.
405
- (rule (vec_mul_impl $I128 x y)
406
- (let ((x_hi Reg (vec_extract_lane $I64X2 x 0 (zero_reg)))
407
- (x_lo Reg (vec_extract_lane $I64X2 x 1 (zero_reg)))
408
- (y_hi Reg (vec_extract_lane $I64X2 y 0 (zero_reg)))
409
- (y_lo Reg (vec_extract_lane $I64X2 y 1 (zero_reg)))
410
- (lo_pair RegPair (umul_wide x_lo y_lo))
411
- (res_lo Reg (regpair_lo lo_pair))
412
- (res_hi_1 Reg (regpair_hi lo_pair))
413
- (res_hi_2 Reg (mul_reg $I64 x_lo y_hi))
414
- (res_hi_3 Reg (mul_reg $I64 x_hi y_lo))
415
- (res_hi Reg (add_reg $I64 res_hi_3 (add_reg $I64 res_hi_2 res_hi_1))))
416
- (mov_to_vec128 $I64X2 res_hi res_lo)))
417
-
418
-
419
- ;;;; Rules for `umulhi` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
420
-
421
- ;; Multiply high part unsigned, 8-bit or 16-bit types. (Uses 32-bit multiply.)
422
- (rule -1 (lower (has_type (ty_8_or_16 ty) (umulhi x y)))
423
- (let ((ext_reg_x Reg (put_in_reg_zext32 x))
424
- (ext_reg_y Reg (put_in_reg_zext32 y))
425
- (ext_mul Reg (mul_reg $I32 ext_reg_x ext_reg_y)))
426
- (lshr_imm $I32 ext_mul (ty_bits ty))))
427
-
428
- ;; Multiply high part unsigned, 32-bit types. (Uses 64-bit multiply.)
429
- (rule (lower (has_type $I32 (umulhi x y)))
430
- (let ((ext_reg_x Reg (put_in_reg_zext64 x))
431
- (ext_reg_y Reg (put_in_reg_zext64 y))
432
- (ext_mul Reg (mul_reg $I64 ext_reg_x ext_reg_y)))
433
- (lshr_imm $I64 ext_mul 32)))
434
-
435
- ;; Multiply high part unsigned, 64-bit types. (Uses umul_wide.)
436
- (rule (lower (has_type $I64 (umulhi x y)))
437
- (let ((pair RegPair (umul_wide x y)))
438
- (regpair_hi pair)))
439
-
440
- ;; Multiply high part unsigned, vector types with 8-, 16-, or 32-bit elements.
441
- (rule (lower (has_type $I8X16 (umulhi x y))) (vec_umulhi $I8X16 x y))
442
- (rule (lower (has_type $I16X8 (umulhi x y))) (vec_umulhi $I16X8 x y))
443
- (rule (lower (has_type $I32X4 (umulhi x y))) (vec_umulhi $I32X4 x y))
444
-
445
- ;; Multiply high part unsigned, vector types with 64-bit elements.
446
- ;; Has to be scalarized.
447
- (rule (lower (has_type $I64X2 (umulhi x y)))
448
- (let ((pair_0 RegPair (umul_wide (vec_extract_lane $I64X2 x 0 (zero_reg))
449
- (vec_extract_lane $I64X2 y 0 (zero_reg))))
450
- (res_0 Reg (regpair_hi pair_0))
451
- (pair_1 RegPair (umul_wide (vec_extract_lane $I64X2 x 1 (zero_reg))
452
- (vec_extract_lane $I64X2 y 1 (zero_reg))))
453
- (res_1 Reg (regpair_hi pair_1)))
454
- (mov_to_vec128 $I64X2 res_0 res_1)))
455
-
456
-
457
- ;;;; Rules for `smulhi` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
458
-
459
- ;; Multiply high part signed, 8-bit or 16-bit types. (Uses 32-bit multiply.)
460
- (rule -1 (lower (has_type (ty_8_or_16 ty) (smulhi x y)))
461
- (let ((ext_reg_x Reg (put_in_reg_sext32 x))
462
- (ext_reg_y Reg (put_in_reg_sext32 y))
463
- (ext_mul Reg (mul_reg $I32 ext_reg_x ext_reg_y)))
464
- (ashr_imm $I32 ext_mul (ty_bits ty))))
465
-
466
- ;; Multiply high part signed, 32-bit types. (Uses 64-bit multiply.)
467
- (rule (lower (has_type $I32 (smulhi x y)))
468
- (let ((ext_reg_x Reg (put_in_reg_sext64 x))
469
- (ext_reg_y Reg (put_in_reg_sext64 y))
470
- (ext_mul Reg (mul_reg $I64 ext_reg_x ext_reg_y)))
471
- (ashr_imm $I64 ext_mul 32)))
472
-
473
- ;; Multiply high part signed, 64-bit types. (Uses smul_wide.)
474
- (rule (lower (has_type $I64 (smulhi x y)))
475
- (let ((pair RegPair (smul_wide x y)))
476
- (regpair_hi pair)))
477
-
478
- ;; Multiply high part signed, vector types with 8-, 16-, or 32-bit elements.
479
- (rule (lower (has_type $I8X16 (smulhi x y))) (vec_smulhi $I8X16 x y))
480
- (rule (lower (has_type $I16X8 (smulhi x y))) (vec_smulhi $I16X8 x y))
481
- (rule (lower (has_type $I32X4 (smulhi x y))) (vec_smulhi $I32X4 x y))
482
-
483
- ;; Multiply high part unsigned, vector types with 64-bit elements.
484
- ;; Has to be scalarized.
485
- (rule (lower (has_type $I64X2 (smulhi x y)))
486
- (let ((pair_0 RegPair (smul_wide (vec_extract_lane $I64X2 x 0 (zero_reg))
487
- (vec_extract_lane $I64X2 y 0 (zero_reg))))
488
- (res_0 Reg (copy_reg $I64 (regpair_hi pair_0)))
489
- (pair_1 RegPair (smul_wide (vec_extract_lane $I64X2 x 1 (zero_reg))
490
- (vec_extract_lane $I64X2 y 1 (zero_reg))))
491
- (res_1 Reg (regpair_hi pair_1)))
492
- (mov_to_vec128 $I64X2 res_0 res_1)))
493
-
494
-
495
- ;;;; Rules for `sqmul_round_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496
-
497
- ;; Fixed-point multiplication of two vector registers.
498
- (rule (lower (has_type (ty_vec128 ty) (sqmul_round_sat x y)))
499
- (vec_pack_ssat (vec_widen_type ty)
500
- (sqmul_impl (vec_widen_type ty)
501
- (vec_unpacks_high ty x)
502
- (vec_unpacks_high ty y))
503
- (sqmul_impl (vec_widen_type ty)
504
- (vec_unpacks_low ty x)
505
- (vec_unpacks_low ty y))))
506
-
507
- ;; Helper to perform the rounded multiply in the wider type.
508
- (decl sqmul_impl (Type Reg Reg) Reg)
509
- (rule (sqmul_impl $I32X4 x y)
510
- (vec_ashr_imm $I32X4 (vec_add $I32X4 (vec_mul_impl $I32X4 x y)
511
- (vec_imm_bit_mask $I32X4 17 17))
512
- 15))
513
- (rule (sqmul_impl $I64X2 x y)
514
- (vec_ashr_imm $I64X2 (vec_add $I64X2 (vec_mul_impl $I64X2 x y)
515
- (vec_imm_bit_mask $I64X2 33 33))
516
- 31))
517
-
518
-
519
- ;;;; Rules for `udiv` and `urem` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
520
-
521
- ;; Divide two registers. The architecture provides combined udiv / urem
522
- ;; instructions with the following combination of data types:
523
- ;;
524
- ;; - 64-bit dividend (split across a 2x32-bit register pair),
525
- ;; 32-bit divisor (in a single input register)
526
- ;; 32-bit quotient & remainder (in a 2x32-bit register pair)
527
- ;;
528
- ;; - 128-bit dividend (split across a 2x64-bit register pair),
529
- ;; 64-bit divisor (in a single input register)
530
- ;; 64-bit quotient & remainder (in a 2x64-bit register pair)
531
- ;;
532
- ;; We use the first variant for 32-bit and smaller input types,
533
- ;; and the second variant for 64-bit input types.
534
-
535
- ;; Implement `udiv`.
536
- (rule (lower (has_type (fits_in_64 ty) (udiv x y)))
537
- (let (;; Look at the divisor to determine whether we need to generate
538
- ;; an explicit division-by zero check.
539
- ;; Load up the dividend, by loading the input (possibly zero-
540
- ;; extended) input into the low half of the register pair,
541
- ;; and setting the high half to zero.
542
- (ext_x RegPair (regpair (imm (ty_ext32 ty) 0)
543
- (put_in_reg_zext32 x)))
544
- ;; Load up the divisor, zero-extended if necessary.
545
- (ext_y Reg (put_in_reg_zext32 y))
546
- (ext_ty Type (ty_ext32 ty))
547
- ;; Emit the actual divide instruction.
548
- (pair RegPair (udivmod ext_ty ext_x ext_y)))
549
- ;; The quotient can be found in the low half of the result.
550
- (regpair_lo pair)))
551
-
552
- ;; Implement `urem`. Same as `udiv`, but finds the remainder in
553
- ;; the high half of the result register pair instead.
554
- (rule (lower (has_type (fits_in_64 ty) (urem x y)))
555
- (let ((ext_x RegPair (regpair (imm (ty_ext32 ty) 0)
556
- (put_in_reg_zext32 x)))
557
- (ext_y Reg (put_in_reg_zext32 y))
558
- (ext_ty Type (ty_ext32 ty))
559
- (pair RegPair (udivmod ext_ty ext_x ext_y)))
560
- (regpair_hi pair)))
561
-
562
-
563
- ;;;; Rules for `sdiv` and `srem` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
564
-
565
- ;; Divide two registers. The architecture provides combined sdiv / srem
566
- ;; instructions with the following combination of data types:
567
- ;;
568
- ;; - 64-bit dividend (in the low half of a 2x64-bit register pair),
569
- ;; 32-bit divisor (in a single input register)
570
- ;; 64-bit quotient & remainder (in a 2x64-bit register pair)
571
- ;;
572
- ;; - 64-bit dividend (in the low half of a 2x64-bit register pair),
573
- ;; 64-bit divisor (in a single input register)
574
- ;; 64-bit quotient & remainder (in a 2x64-bit register pair)
575
- ;;
576
- ;; We use the first variant for 32-bit and smaller input types,
577
- ;; and the second variant for 64-bit input types.
578
-
579
- ;; Implement `sdiv`.
580
- (rule (lower (has_type (fits_in_64 ty) (sdiv x y)))
581
- (let (;; Look at the divisor to determine whether we need to generate
582
- ;; explicit division-by-zero and/or integer-overflow checks.
583
- (OFcheck bool (div_overflow_check_needed y))
584
- ;; Load up the dividend (sign-extended to 64-bit)
585
- (ext_x Reg (put_in_reg_sext64 x))
586
- ;; Load up the divisor (sign-extended if necessary).
587
- (ext_y Reg (put_in_reg_sext32 y))
588
- (ext_ty Type (ty_ext32 ty))
589
- ;; Perform integer-overflow check if necessary.
590
- (_ Reg (maybe_trap_if_sdiv_overflow OFcheck ext_ty ty ext_x ext_y))
591
- ;; Emit the actual divide instruction.
592
- (pair RegPair (sdivmod ext_ty ext_x ext_y)))
593
- ;; The quotient can be found in the low half of the result.
594
- (regpair_lo pair)))
595
-
596
- ;; Implement `srem`. Same as `sdiv`, but finds the remainder in
597
- ;; the high half of the result register pair instead. Also, handle
598
- ;; the integer overflow case differently, see below.
599
- (rule (lower (has_type (fits_in_64 ty) (srem x y)))
600
- (let ((OFcheck bool (div_overflow_check_needed y))
601
- (ext_x Reg (put_in_reg_sext64 x))
602
- (ext_y Reg (put_in_reg_sext32 y))
603
- (ext_ty Type (ty_ext32 ty))
604
- (checked_x Reg (maybe_avoid_srem_overflow OFcheck ext_ty ext_x ext_y))
605
- (pair RegPair (sdivmod ext_ty checked_x ext_y)))
606
- (regpair_hi pair)))
607
-
608
- ;; Determine whether we need to perform an integer-overflow check.
609
- ;;
610
- ;; We never rely on the divide instruction itself to trap; while that trap
611
- ;; would indeed happen, we have no way of signalling two different trap
612
- ;; conditions from the same instruction. By explicity checking for the
613
- ;; integer-overflow case ahead of time, any hardware trap in the divide
614
- ;; instruction is guaranteed to indicate divison-by-zero.
615
- ;;
616
- ;; In addition, for types smaller than 64 bits we would have to perform
617
- ;; the check explicitly anyway, since the instruction provides a 64-bit
618
- ;; quotient and only traps if *that* overflows.
619
- ;;
620
- ;; However, the only case where integer overflow can occur is if the
621
- ;; minimum (signed) integer value is divided by -1, so if the divisor
622
- ;; is any immediate different from -1, the check can be omitted.
623
- (decl div_overflow_check_needed (Value) bool)
624
- (rule 1 (div_overflow_check_needed (i64_from_value x))
625
- (if (i64_not_neg1 x))
626
- $false)
627
- (rule (div_overflow_check_needed _) $true)
628
-
629
- ;; Perform the integer-overflow check if necessary. This implements:
630
- ;;
631
- ;; if divisor == INT_MIN && dividend == -1 { trap }
632
- ;;
633
- ;; but to avoid introducing control flow, it is actually done as:
634
- ;;
635
- ;; if ((divisor ^ INT_MAX) & dividend) == -1 { trap }
636
- ;;
637
- ;; instead, using a single conditional trap instruction.
638
- (decl maybe_trap_if_sdiv_overflow (bool Type Type Reg Reg) Reg)
639
- (rule (maybe_trap_if_sdiv_overflow $false ext_ty _ _ _) (invalid_reg))
640
- (rule (maybe_trap_if_sdiv_overflow $true ext_ty ty x y)
641
- (let ((int_max Reg (imm ext_ty (int_max ty)))
642
- (reg Reg (and_reg ext_ty (xor_reg ext_ty int_max x) y)))
643
- (icmps_simm16_and_trap ext_ty reg -1
644
- (intcc_as_cond (IntCC.Equal))
645
- (trap_code_integer_overflow))))
646
- (decl int_max (Type) u64)
647
- (rule (int_max $I8) 0x7f)
648
- (rule (int_max $I16) 0x7fff)
649
- (rule (int_max $I32) 0x7fffffff)
650
- (rule (int_max $I64) 0x7fffffffffffffff)
651
-
652
- ;; When performing `srem`, we do not want to trap in the
653
- ;; integer-overflow scenario, because it is only the quotient
654
- ;; that overflows, not the remainder.
655
- ;;
656
- ;; For types smaller than 64 bits, we can simply let the
657
- ;; instruction execute, since (as above) it will never trap.
658
- ;;
659
- ;; For 64-bit inputs, we check whether the divisor is -1, and
660
- ;; if so simply replace the dividend by zero, which will give
661
- ;; the correct result, since any value modulo -1 is zero.
662
- ;;
663
- ;; (We could in fact avoid executing the divide instruction
664
- ;; at all in this case, but that would require introducing
665
- ;; control flow.)
666
- (decl maybe_avoid_srem_overflow (bool Type Reg Reg) Reg)
667
- (rule (maybe_avoid_srem_overflow $false _ x _) x)
668
- (rule (maybe_avoid_srem_overflow $true $I32 x _) x)
669
- (rule (maybe_avoid_srem_overflow $true $I64 x y)
670
- (with_flags_reg (icmps_simm16 $I64 y -1)
671
- (cmov_imm $I64 (intcc_as_cond (IntCC.Equal)) 0 x)))
672
-
673
-
674
- ;;;; Rules for `ishl` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
675
-
676
- ;; Shift left, shift amount in register.
677
- (rule 0 (lower (has_type (fits_in_64 ty) (ishl x y)))
678
- (let ((masked_amt Reg (mask_amt_reg ty (amt_reg y))))
679
- (lshl_reg ty x masked_amt)))
680
-
681
- ;; Shift left, immediate shift amount.
682
- (rule 1 (lower (has_type (fits_in_64 ty) (ishl x (i64_from_value y))))
683
- (let ((masked_amt u8 (mask_amt_imm ty y)))
684
- (lshl_imm ty x masked_amt)))
685
-
686
- ;; Vector shift left, shift amount in register.
687
- (rule 2 (lower (has_type (ty_vec128 ty) (ishl x y)))
688
- (vec_lshl_reg ty x (amt_reg y)))
689
-
690
- ;; Vector shift left, immediate shift amount.
691
- (rule 3 (lower (has_type (ty_vec128 ty) (ishl x (i64_from_value y))))
692
- (let ((masked_amt u8 (mask_amt_imm ty y)))
693
- (vec_lshl_imm ty x masked_amt)))
694
-
695
- ;; 128-bit vector shift left.
696
- (rule 4 (lower (has_type $I128 (ishl x y)))
697
- (let ((amt Reg (amt_vr y)))
698
- (vec_lshl_by_bit (vec_lshl_by_byte x amt) amt)))
699
-
700
-
701
- ;;;; Rules for `ushr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
702
-
703
- ;; Shift right logical, shift amount in register.
704
- ;; For types smaller than 32-bit, the input value must be zero-extended.
705
- (rule 0 (lower (has_type (fits_in_64 ty) (ushr x y)))
706
- (let ((ext_reg Reg (put_in_reg_zext32 x))
707
- (masked_amt Reg (mask_amt_reg ty (amt_reg y))))
708
- (lshr_reg (ty_ext32 ty) ext_reg masked_amt)))
709
-
710
- ;; Shift right logical, immediate shift amount.
711
- ;; For types smaller than 32-bit, the input value must be zero-extended.
712
- (rule 1 (lower (has_type (fits_in_64 ty) (ushr x (i64_from_value y))))
713
- (let ((ext_reg Reg (put_in_reg_zext32 x))
714
- (masked_amt u8 (mask_amt_imm ty y)))
715
- (lshr_imm (ty_ext32 ty) ext_reg masked_amt)))
716
-
717
- ;; Vector shift right logical, shift amount in register.
718
- (rule 2 (lower (has_type (ty_vec128 ty) (ushr x y)))
719
- (vec_lshr_reg ty x (amt_reg y)))
720
-
721
- ;; Vector shift right logical, immediate shift amount.
722
- (rule 3 (lower (has_type (ty_vec128 ty) (ushr x (i64_from_value y))))
723
- (let ((masked_amt u8 (mask_amt_imm ty y)))
724
- (vec_lshr_imm ty x masked_amt)))
725
-
726
- ;; 128-bit vector shift right logical.
727
- (rule 4 (lower (has_type $I128 (ushr x y)))
728
- (let ((amt Reg (amt_vr y)))
729
- (vec_lshr_by_bit (vec_lshr_by_byte x amt) amt)))
730
-
731
-
732
- ;;;; Rules for `sshr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
733
-
734
- ;; Shift right arithmetic, shift amount in register.
735
- ;; For types smaller than 32-bit, the input value must be sign-extended.
736
- (rule 0 (lower (has_type (fits_in_64 ty) (sshr x y)))
737
- (let ((ext_reg Reg (put_in_reg_sext32 x))
738
- (masked_amt Reg (mask_amt_reg ty (amt_reg y))))
739
- (ashr_reg (ty_ext32 ty) ext_reg masked_amt)))
740
-
741
- ;; Shift right arithmetic, immediate shift amount.
742
- ;; For types smaller than 32-bit, the input value must be sign-extended.
743
- (rule 1 (lower (has_type (fits_in_64 ty) (sshr x (i64_from_value y))))
744
- (let ((ext_reg Reg (put_in_reg_sext32 x))
745
- (masked_amt u8 (mask_amt_imm ty y)))
746
- (ashr_imm (ty_ext32 ty) ext_reg masked_amt)))
747
-
748
- ;; Vector shift right arithmetic, shift amount in register.
749
- (rule 2 (lower (has_type (ty_vec128 ty) (sshr x y)))
750
- (vec_ashr_reg ty x (amt_reg y)))
751
-
752
- ;; Vector shift right arithmetic, immediate shift amount.
753
- (rule 3 (lower (has_type (ty_vec128 ty) (sshr x (i64_from_value y))))
754
- (let ((masked_amt u8 (mask_amt_imm ty y)))
755
- (vec_ashr_imm ty x masked_amt)))
756
-
757
- ;; 128-bit vector shift right arithmetic.
758
- (rule 4 (lower (has_type $I128 (sshr x y)))
759
- (let ((amt Reg (amt_vr y)))
760
- (vec_ashr_by_bit (vec_ashr_by_byte x amt) amt)))
761
-
762
-
763
- ;;;; Rules for `rotl` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
764
-
765
- ;; Rotate left, shift amount in register. 32-bit or 64-bit types.
766
- (rule 0 (lower (has_type (ty_32_or_64 ty) (rotl x y)))
767
- (rot_reg ty x (amt_reg y)))
768
-
769
- ;; Rotate left arithmetic, immediate shift amount. 32-bit or 64-bit types.
770
- (rule 1 (lower (has_type (ty_32_or_64 ty) (rotl x (i64_from_value y))))
771
- (let ((masked_amt u8 (mask_amt_imm ty y)))
772
- (rot_imm ty x masked_amt)))
773
-
774
- ;; Rotate left, shift amount in register. 8-bit or 16-bit types.
775
- ;; Implemented via a pair of 32-bit shifts on the zero-extended input.
776
- (rule 2 (lower (has_type (ty_8_or_16 ty) (rotl x y)))
777
- (let ((ext_reg Reg (put_in_reg_zext32 x))
778
- (ext_ty Type (ty_ext32 ty))
779
- (pos_amt Reg (amt_reg y))
780
- (neg_amt Reg (neg_reg $I32 pos_amt))
781
- (masked_pos_amt Reg (mask_amt_reg ty pos_amt))
782
- (masked_neg_amt Reg (mask_amt_reg ty neg_amt)))
783
- (or_reg ty (lshl_reg ext_ty ext_reg masked_pos_amt)
784
- (lshr_reg ext_ty ext_reg masked_neg_amt))))
785
-
786
- ;; Rotate left, immediate shift amount. 8-bit or 16-bit types.
787
- ;; Implemented via a pair of 32-bit shifts on the zero-extended input.
788
- (rule 3 (lower (has_type (ty_8_or_16 ty) (rotl x (and (i64_from_value pos_amt)
789
- (i64_from_negated_value neg_amt)))))
790
- (let ((ext_reg Reg (put_in_reg_zext32 x))
791
- (ext_ty Type (ty_ext32 ty))
792
- (masked_pos_amt u8 (mask_amt_imm ty pos_amt))
793
- (masked_neg_amt u8 (mask_amt_imm ty neg_amt)))
794
- (or_reg ty (lshl_imm ext_ty ext_reg masked_pos_amt)
795
- (lshr_imm ext_ty ext_reg masked_neg_amt))))
796
-
797
- ;; Vector rotate left, shift amount in register.
798
- (rule 4 (lower (has_type (ty_vec128 ty) (rotl x y)))
799
- (vec_rot_reg ty x (amt_reg y)))
800
-
801
- ;; Vector rotate left, immediate shift amount.
802
- (rule 5 (lower (has_type (ty_vec128 ty) (rotl x (i64_from_value y))))
803
- (let ((masked_amt u8 (mask_amt_imm ty y)))
804
- (vec_rot_imm ty x masked_amt)))
805
-
806
- ;; 128-bit full vector rotate left.
807
- ;; Implemented via a pair of 128-bit full vector shifts.
808
- (rule 6 (lower (has_type $I128 (rotl x y)))
809
- (let ((x_reg Reg x)
810
- (pos_amt Reg (amt_vr y))
811
- (neg_amt Reg (vec_neg $I8X16 pos_amt)))
812
- (vec_or $I128
813
- (vec_lshl_by_bit (vec_lshl_by_byte x_reg pos_amt) pos_amt)
814
- (vec_lshr_by_bit (vec_lshr_by_byte x_reg neg_amt) neg_amt))))
815
-
816
-
817
- ;;;; Rules for `rotr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
818
-
819
- ;; Rotate right, shift amount in register. 32-bit or 64-bit types.
820
- ;; Implemented as rotate left with negated rotate amount.
821
- (rule 0 (lower (has_type (ty_32_or_64 ty) (rotr x y)))
822
- (let ((negated_amt Reg (neg_reg $I32 (amt_reg y))))
823
- (rot_reg ty x negated_amt)))
824
-
825
- ;; Rotate right arithmetic, immediate shift amount. 32-bit or 64-bit types.
826
- ;; Implemented as rotate left with negated rotate amount.
827
- (rule 1 (lower (has_type (ty_32_or_64 ty) (rotr x (i64_from_negated_value y))))
828
- (let ((negated_amt u8 (mask_amt_imm ty y)))
829
- (rot_imm ty x negated_amt)))
830
-
831
- ;; Rotate right, shift amount in register. 8-bit or 16-bit types.
832
- ;; Implemented as rotate left with negated rotate amount.
833
- (rule 2 (lower (has_type (ty_8_or_16 ty) (rotr x y)))
834
- (let ((ext_reg Reg (put_in_reg_zext32 x))
835
- (ext_ty Type (ty_ext32 ty))
836
- (pos_amt Reg (amt_reg y))
837
- (neg_amt Reg (neg_reg $I32 pos_amt))
838
- (masked_pos_amt Reg (mask_amt_reg ty pos_amt))
839
- (masked_neg_amt Reg (mask_amt_reg ty neg_amt)))
840
- (or_reg ty (lshl_reg ext_ty ext_reg masked_neg_amt)
841
- (lshr_reg ext_ty ext_reg masked_pos_amt))))
842
-
843
- ;; Rotate right, immediate shift amount. 8-bit or 16-bit types.
844
- ;; Implemented as rotate left with negated rotate amount.
845
- (rule 3 (lower (has_type (ty_8_or_16 ty) (rotr x (and (i64_from_value pos_amt)
846
- (i64_from_negated_value neg_amt)))))
847
- (let ((ext_reg Reg (put_in_reg_zext32 x))
848
- (ext_ty Type (ty_ext32 ty))
849
- (masked_pos_amt u8 (mask_amt_imm ty pos_amt))
850
- (masked_neg_amt u8 (mask_amt_imm ty neg_amt)))
851
- (or_reg ty (lshl_imm ext_ty ext_reg masked_neg_amt)
852
- (lshr_imm ext_ty ext_reg masked_pos_amt))))
853
-
854
- ;; Vector rotate right, shift amount in register.
855
- ;; Implemented as rotate left with negated rotate amount.
856
- (rule 4 (lower (has_type (ty_vec128 ty) (rotr x y)))
857
- (let ((negated_amt Reg (neg_reg $I32 (amt_reg y))))
858
- (vec_rot_reg ty x negated_amt)))
859
-
860
- ;; Vector rotate right, immediate shift amount.
861
- ;; Implemented as rotate left with negated rotate amount.
862
- (rule 5 (lower (has_type (ty_vec128 ty) (rotr x (i64_from_negated_value y))))
863
- (let ((negated_amt u8 (mask_amt_imm ty y)))
864
- (vec_rot_imm ty x negated_amt)))
865
-
866
- ;; 128-bit full vector rotate right.
867
- ;; Implemented via a pair of 128-bit full vector shifts.
868
- (rule 6 (lower (has_type $I128 (rotr x y)))
869
- (let ((x_reg Reg x)
870
- (pos_amt Reg (amt_vr y))
871
- (neg_amt Reg (vec_neg $I8X16 pos_amt)))
872
- (vec_or $I128
873
- (vec_lshl_by_bit (vec_lshl_by_byte x_reg neg_amt) neg_amt)
874
- (vec_lshr_by_bit (vec_lshr_by_byte x_reg pos_amt) pos_amt))))
875
-
876
-
877
- ;;;; Rules for `ireduce` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
878
-
879
- ;; Up to 64-bit source type: Always a no-op.
880
- (rule 1 (lower (ireduce x @ (value_type (fits_in_64 _ty))))
881
- x)
882
-
883
- ;; 128-bit source type: Extract the low half.
884
- (rule (lower (ireduce x @ (value_type (vr128_ty _ty))))
885
- (vec_extract_lane $I64X2 x 1 (zero_reg)))
886
-
887
-
888
- ;;;; Rules for `uextend` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
889
-
890
- ;; 16- or 32-bit target types.
891
- (rule 1 (lower (has_type (gpr32_ty _ty) (uextend x)))
892
- (put_in_reg_zext32 x))
893
-
894
- ;; 64-bit target types.
895
- (rule 2 (lower (has_type (gpr64_ty _ty) (uextend x)))
896
- (put_in_reg_zext64 x))
897
-
898
- ;; 128-bit target types.
899
- (rule (lower (has_type $I128 (uextend x @ (value_type $I8))))
900
- (vec_insert_lane $I8X16 (vec_imm $I128 0) x 15 (zero_reg)))
901
- (rule (lower (has_type $I128 (uextend x @ (value_type $I16))))
902
- (vec_insert_lane $I16X8 (vec_imm $I128 0) x 7 (zero_reg)))
903
- (rule (lower (has_type $I128 (uextend x @ (value_type $I32))))
904
- (vec_insert_lane $I32X4 (vec_imm $I128 0) x 3 (zero_reg)))
905
- (rule (lower (has_type $I128 (uextend x @ (value_type $I64))))
906
- (vec_insert_lane $I64X2 (vec_imm $I128 0) x 1 (zero_reg)))
907
-
908
-
909
- ;;;; Rules for `sextend` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
910
-
911
- ;; 16- or 32-bit target types.
912
- (rule 1 (lower (has_type (gpr32_ty _ty) (sextend x)))
913
- (put_in_reg_sext32 x))
914
-
915
- ;; 64-bit target types.
916
- (rule 2 (lower (has_type (gpr64_ty _ty) (sextend x)))
917
- (put_in_reg_sext64 x))
918
-
919
- ;; 128-bit target types.
920
- (rule (lower (has_type $I128 (sextend x)))
921
- (let ((x_ext Reg (put_in_reg_sext64 x)))
922
- (mov_to_vec128 $I128 (ashr_imm $I64 x_ext 63) x_ext)))
923
-
924
-
925
- ;;;; Rules for `snarrow` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
926
-
927
- (rule (lower (snarrow x @ (value_type (ty_vec128 ty)) y))
928
- (vec_pack_ssat_lane_order ty x y))
929
-
930
-
931
- ;;;; Rules for `uunarrow` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
932
-
933
- (rule (lower (uunarrow x @ (value_type (ty_vec128 ty)) y))
934
- (vec_pack_usat_lane_order ty x y))
935
-
936
-
937
- ;;;; Rules for `unarrow` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
938
-
939
- (rule (lower (unarrow x @ (value_type (ty_vec128 ty)) y))
940
- (let ((zero Reg (vec_imm ty 0)))
941
- (vec_pack_usat_lane_order ty (vec_smax ty x zero) (vec_smax ty y zero))))
942
-
943
-
944
- ;;;; Rules for `swiden_low` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
945
-
946
- (rule (lower (swiden_low x @ (value_type (ty_vec128 ty))))
947
- (vec_unpacks_low_lane_order ty x))
948
-
949
-
950
- ;;;; Rules for `swiden_high` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
951
-
952
- (rule (lower (swiden_high x @ (value_type (ty_vec128 ty))))
953
- (vec_unpacks_high_lane_order ty x))
954
-
955
-
956
- ;;;; Rules for `uwiden_low` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
957
-
958
- (rule (lower (uwiden_low x @ (value_type (ty_vec128 ty))))
959
- (vec_unpacku_low_lane_order ty x))
960
-
961
-
962
- ;;;; Rules for `uwiden_high` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
963
-
964
- (rule (lower (uwiden_high x @ (value_type (ty_vec128 ty))))
965
- (vec_unpacku_high_lane_order ty x))
966
-
967
-
968
- ;;;; Rules for `bnot` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
969
-
970
- ;; z15 version using a single instruction (NOR).
971
- (rule 2 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bnot x)))
972
- (let ((rx Reg x))
973
- (not_or_reg ty rx rx)))
974
-
975
- ;; z14 version using XOR with -1.
976
- (rule 1 (lower (has_type (and (mie2_disabled) (fits_in_64 ty)) (bnot x)))
977
- (not_reg ty x))
978
-
979
- ;; Vector version using vector NOR.
980
- (rule (lower (has_type (vr128_ty ty) (bnot x)))
981
- (vec_not ty x))
982
-
983
- ;; With z15 (bnot (bxor ...)) can be a single instruction, similar to the
984
- ;; (bxor _ (bnot _)) lowering.
985
- (rule 3 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bnot (bxor x y))))
986
- (not_xor_reg ty x y))
987
-
988
- ;; Combine a not/xor operation of vector types into one.
989
- (rule 4 (lower (has_type (vr128_ty ty) (bnot (bxor x y))))
990
- (vec_not_xor ty x y))
991
-
992
-
993
- ;;;; Rules for `band` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
994
-
995
- ;; And two registers.
996
- (rule -1 (lower (has_type (fits_in_64 ty) (band x y)))
997
- (and_reg ty x y))
998
-
999
- ;; And a register and an immediate.
1000
- (rule 5 (lower (has_type (fits_in_64 ty) (band x (uimm16shifted_from_inverted_value y))))
1001
- (and_uimm16shifted ty x y))
1002
- (rule 6 (lower (has_type (fits_in_64 ty) (band (uimm16shifted_from_inverted_value x) y)))
1003
- (and_uimm16shifted ty y x))
1004
- (rule 3 (lower (has_type (fits_in_64 ty) (band x (uimm32shifted_from_inverted_value y))))
1005
- (and_uimm32shifted ty x y))
1006
- (rule 4 (lower (has_type (fits_in_64 ty) (band (uimm32shifted_from_inverted_value x) y)))
1007
- (and_uimm32shifted ty y x))
1008
-
1009
- ;; And a register and memory (32/64-bit types).
1010
- (rule 1 (lower (has_type (fits_in_64 ty) (band x (sinkable_load_32_64 y))))
1011
- (and_mem ty x (sink_load y)))
1012
- (rule 2 (lower (has_type (fits_in_64 ty) (band (sinkable_load_32_64 x) y)))
1013
- (and_mem ty y (sink_load x)))
1014
-
1015
- ;; And two vector registers.
1016
- (rule 0 (lower (has_type (vr128_ty ty) (band x y)))
1017
- (vec_and ty x y))
1018
-
1019
- ;; Specialized lowerings for `(band x (bnot y))` which is additionally produced
1020
- ;; by Cranelift's `band_not` instruction that is legalized into the simpler
1021
- ;; forms early on.
1022
-
1023
- ;; z15 version using a single instruction.
1024
- (rule 7 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (band x (bnot y))))
1025
- (and_not_reg ty x y))
1026
- (rule 8 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (band (bnot y) x)))
1027
- (and_not_reg ty x y))
1028
-
1029
- ;; And-not two vector registers.
1030
- (rule 9 (lower (has_type (vr128_ty ty) (band x (bnot y))))
1031
- (vec_and_not ty x y))
1032
- (rule 10 (lower (has_type (vr128_ty ty) (band (bnot y) x)))
1033
- (vec_and_not ty x y))
1034
-
1035
- ;;;; Rules for `bor` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1036
-
1037
- ;; Or two registers.
1038
- (rule -1 (lower (has_type (fits_in_64 ty) (bor x y)))
1039
- (or_reg ty x y))
1040
-
1041
- ;; Or a register and an immediate.
1042
- (rule 5 (lower (has_type (fits_in_64 ty) (bor x (uimm16shifted_from_value y))))
1043
- (or_uimm16shifted ty x y))
1044
- (rule 6 (lower (has_type (fits_in_64 ty) (bor (uimm16shifted_from_value x) y)))
1045
- (or_uimm16shifted ty y x))
1046
- (rule 3 (lower (has_type (fits_in_64 ty) (bor x (uimm32shifted_from_value y))))
1047
- (or_uimm32shifted ty x y))
1048
- (rule 4 (lower (has_type (fits_in_64 ty) (bor (uimm32shifted_from_value x) y)))
1049
- (or_uimm32shifted ty y x))
1050
-
1051
- ;; Or a register and memory (32/64-bit types).
1052
- (rule 1 (lower (has_type (fits_in_64 ty) (bor x (sinkable_load_32_64 y))))
1053
- (or_mem ty x (sink_load y)))
1054
- (rule 2 (lower (has_type (fits_in_64 ty) (bor (sinkable_load_32_64 x) y)))
1055
- (or_mem ty y (sink_load x)))
1056
-
1057
- ;; Or two vector registers.
1058
- (rule 0 (lower (has_type (vr128_ty ty) (bor x y)))
1059
- (vec_or ty x y))
1060
-
1061
- ;; Specialized lowerings for `(bor x (bnot y))` which is additionally produced
1062
- ;; by Cranelift's `bor_not` instruction that is legalized into the simpler
1063
- ;; forms early on.
1064
-
1065
- ;; z15 version using a single instruction.
1066
- (rule 7 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bor x (bnot y))))
1067
- (or_not_reg ty x y))
1068
- (rule 8 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bor (bnot y) x)))
1069
- (or_not_reg ty x y))
1070
-
1071
- ;; Or-not two vector registers.
1072
- (rule 9 (lower (has_type (vr128_ty ty) (bor x (bnot y))))
1073
- (vec_or_not ty x y))
1074
- (rule 10 (lower (has_type (vr128_ty ty) (bor (bnot y) x)))
1075
- (vec_or_not ty x y))
1076
-
1077
-
1078
- ;;;; Rules for `bxor` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1079
-
1080
- ;; Xor two registers.
1081
- (rule -1 (lower (has_type (fits_in_64 ty) (bxor x y)))
1082
- (xor_reg ty x y))
1083
-
1084
- ;; Xor a register and an immediate.
1085
- (rule 3 (lower (has_type (fits_in_64 ty) (bxor x (uimm32shifted_from_value y))))
1086
- (xor_uimm32shifted ty x y))
1087
- (rule 4 (lower (has_type (fits_in_64 ty) (bxor (uimm32shifted_from_value x) y)))
1088
- (xor_uimm32shifted ty y x))
1089
-
1090
- ;; Xor a register and memory (32/64-bit types).
1091
- (rule 1 (lower (has_type (fits_in_64 ty) (bxor x (sinkable_load_32_64 y))))
1092
- (xor_mem ty x (sink_load y)))
1093
- (rule 2 (lower (has_type (fits_in_64 ty) (bxor (sinkable_load_32_64 x) y)))
1094
- (xor_mem ty y (sink_load x)))
1095
-
1096
- ;; Xor two vector registers.
1097
- (rule 0 (lower (has_type (vr128_ty ty) (bxor x y)))
1098
- (vec_xor ty x y))
1099
-
1100
- ;; Specialized lowerings for `(bxor x (bnot y))` which is additionally produced
1101
- ;; by Cranelift's `bxor_not` instruction that is legalized into the simpler
1102
- ;; forms early on.
1103
-
1104
- ;; z15 version using a single instruction.
1105
- (rule 5 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bxor x (bnot y))))
1106
- (not_xor_reg ty x y))
1107
- (rule 6 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bxor (bnot y) x)))
1108
- (not_xor_reg ty x y))
1109
-
1110
- ;; Xor-not two vector registers.
1111
- (rule 7 (lower (has_type (vr128_ty ty) (bxor x (bnot y))))
1112
- (vec_not_xor ty x y))
1113
- (rule 8 (lower (has_type (vr128_ty ty) (bxor (bnot y) x)))
1114
- (vec_not_xor ty x y))
1115
-
1116
-
1117
- ;;;; Rules for `bitselect` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1118
-
1119
- ;; z15 version using a NAND instruction.
1120
- (rule 2 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bitselect x y z)))
1121
- (let ((rx Reg x)
1122
- (if_true Reg (and_reg ty y rx))
1123
- (if_false Reg (and_not_reg ty z rx)))
1124
- (or_reg ty if_false if_true)))
1125
-
1126
- ;; z14 version using XOR with -1.
1127
- (rule 1 (lower (has_type (and (mie2_disabled) (fits_in_64 ty)) (bitselect x y z)))
1128
- (let ((rx Reg x)
1129
- (if_true Reg (and_reg ty y rx))
1130
- (if_false Reg (and_reg ty z (not_reg ty rx))))
1131
- (or_reg ty if_false if_true)))
1132
-
1133
- ;; Bitselect vector registers.
1134
- (rule (lower (has_type (vr128_ty ty) (bitselect x y z)))
1135
- (vec_select ty y z x))
1136
-
1137
- ;; Special-case some float-selection instructions for min/max
1138
- (rule 3 (lower (has_type (ty_vec128 ty) (bitselect (bitcast _ (fcmp (FloatCC.LessThan) x y)) x y)))
1139
- (fmin_pseudo_reg ty y x))
1140
- (rule 4 (lower (has_type (ty_vec128 ty) (bitselect (bitcast _ (fcmp (FloatCC.LessThan) y x)) x y)))
1141
- (fmax_pseudo_reg ty y x))
1142
-
1143
-
1144
-
1145
- ;;;; Rules for `bmask` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1146
-
1147
- (rule (lower (has_type ty (bmask x)))
1148
- (lower_bool_to_mask ty (value_nonzero x)))
1149
-
1150
-
1151
- ;;;; Rules for `bitrev` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1152
-
1153
- (rule (lower (has_type ty (bitrev x)))
1154
- (bitrev_bytes ty
1155
- (bitrev_bits 4 0xf0f0_f0f0_f0f0_f0f0 ty
1156
- (bitrev_bits 2 0xcccc_cccc_cccc_cccc ty
1157
- (bitrev_bits 1 0xaaaa_aaaa_aaaa_aaaa ty x)))))
1158
-
1159
- (decl bitrev_bits (u8 u64 Type Reg) Reg)
1160
- (rule 1 (bitrev_bits size bitmask (fits_in_64 ty) x)
1161
- (let ((mask Reg (imm ty bitmask))
1162
- (xh Reg (lshl_imm (ty_ext32 ty) x size))
1163
- (xl Reg (lshr_imm (ty_ext32 ty) x size))
1164
- (xh_masked Reg (and_reg ty xh mask))
1165
- (xl_masked Reg (and_reg ty xl (not_reg ty mask))))
1166
- (or_reg ty xh_masked xl_masked)))
1167
-
1168
- (rule (bitrev_bits size bitmask (vr128_ty ty) x)
1169
- (let ((mask Reg (vec_imm_splat $I64X2 bitmask))
1170
- (size_reg Reg (vec_imm_splat $I8X16 (u8_as_u64 size)))
1171
- (xh Reg (vec_lshl_by_bit x size_reg))
1172
- (xl Reg (vec_lshr_by_bit x size_reg)))
1173
- (vec_select ty xh xl mask)))
1174
-
1175
- (decl bitrev_bytes (Type Reg) Reg)
1176
- (rule (bitrev_bytes $I8 x) x)
1177
- (rule (bitrev_bytes $I16 x) (lshr_imm $I32 (bswap_reg $I32 x) 16))
1178
- (rule (bitrev_bytes $I32 x) (bswap_reg $I32 x))
1179
- (rule (bitrev_bytes $I64 x) (bswap_reg $I64 x))
1180
- (rule (bitrev_bytes $I128 x)
1181
- (vec_permute $I128 x x
1182
- (vec_imm $I8X16 (imm8x16 15 14 13 12 11 10 9 8
1183
- 7 6 5 4 3 2 1 0))))
1184
-
1185
-
1186
- ;;;; Rules for `bswap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1187
-
1188
- (rule (lower (has_type ty (bswap x)))
1189
- (bitrev_bytes ty x))
1190
-
1191
- ;;;; Rules for `clz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1192
-
1193
- ;; The FLOGR hardware instruction always operates on the full 64-bit register.
1194
- ;; We can zero-extend smaller types, but then we have to compensate for the
1195
- ;; additional leading zero bits the instruction will actually see.
1196
- (decl clz_offset (Type Reg) Reg)
1197
- (rule (clz_offset $I8 x) (add_simm16 $I8 x -56))
1198
- (rule (clz_offset $I16 x) (add_simm16 $I16 x -48))
1199
- (rule (clz_offset $I32 x) (add_simm16 $I32 x -32))
1200
- (rule (clz_offset $I64 x) x)
1201
-
1202
- ;; Count leading zeros, via FLOGR on an input zero-extended to 64 bits,
1203
- ;; with the result compensated for the extra bits.
1204
- (rule 1 (lower (has_type (fits_in_64 ty) (clz x)))
1205
- (let ((ext_reg Reg (put_in_reg_zext64 x))
1206
- ;; Ask for a value of 64 in the all-zero 64-bit input case.
1207
- ;; After compensation this will match the expected semantics.
1208
- (clz Reg (clz_reg 64 ext_reg)))
1209
- (clz_offset ty clz)))
1210
-
1211
- ;; Count leading zeros, 128-bit full vector.
1212
- (rule (lower (has_type $I128 (clz x)))
1213
- (let ((clz_vec Reg (vec_clz $I64X2 x))
1214
- (zero Reg (vec_imm $I64X2 0))
1215
- (clz_hi Reg (vec_permute_dw_imm $I64X2 zero 0 clz_vec 0))
1216
- (clz_lo Reg (vec_permute_dw_imm $I64X2 zero 0 clz_vec 1))
1217
- (clz_sum Reg (vec_add $I64X2 clz_hi clz_lo))
1218
- (mask Reg (vec_cmpeq $I64X2 clz_hi (vec_imm_splat $I64X2 64))))
1219
- (vec_select $I128 clz_sum clz_hi mask)))
1220
-
1221
-
1222
- ;;;; Rules for `cls` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1223
-
1224
- ;; The result of cls is not supposed to count the sign bit itself, just
1225
- ;; additional copies of it. Therefore, when computing cls in terms of clz,
1226
- ;; we need to subtract one. Fold this into the offset computation.
1227
- (decl cls_offset (Type Reg) Reg)
1228
- (rule (cls_offset $I8 x) (add_simm16 $I8 x -57))
1229
- (rule (cls_offset $I16 x) (add_simm16 $I16 x -49))
1230
- (rule (cls_offset $I32 x) (add_simm16 $I32 x -33))
1231
- (rule (cls_offset $I64 x) (add_simm16 $I64 x -1))
1232
-
1233
- ;; Count leading sign-bit copies. We don't have any instruction for that,
1234
- ;; so we instead count the leading zeros after inverting the input if negative,
1235
- ;; i.e. computing
1236
- ;; cls(x) == clz(x ^ (x >> 63)) - 1
1237
- ;; where x is the sign-extended input.
1238
- (rule 1 (lower (has_type (fits_in_64 ty) (cls x)))
1239
- (let ((ext_reg Reg (put_in_reg_sext64 x))
1240
- (signbit_copies Reg (ashr_imm $I64 ext_reg 63))
1241
- (inv_reg Reg (xor_reg $I64 ext_reg signbit_copies))
1242
- (clz Reg (clz_reg 64 inv_reg)))
1243
- (cls_offset ty clz)))
1244
-
1245
- ;; Count leading sign-bit copies, 128-bit full vector.
1246
- (rule (lower (has_type $I128 (cls x)))
1247
- (let ((x_reg Reg x)
1248
- (ones Reg (vec_imm_splat $I8X16 255))
1249
- (signbit_copies Reg (vec_ashr_by_bit (vec_ashr_by_byte x_reg ones) ones))
1250
- (inv_reg Reg (vec_xor $I128 x_reg signbit_copies))
1251
- (clz_vec Reg (vec_clz $I64X2 inv_reg))
1252
- (zero Reg (vec_imm $I64X2 0))
1253
- (clz_hi Reg (vec_permute_dw_imm $I64X2 zero 0 clz_vec 0))
1254
- (clz_lo Reg (vec_permute_dw_imm $I64X2 zero 0 clz_vec 1))
1255
- (clz_sum Reg (vec_add $I64X2 clz_hi clz_lo))
1256
- (mask Reg (vec_cmpeq $I64X2 clz_hi (vec_imm_splat $I64X2 64))))
1257
- (vec_add $I128 (vec_select $I128 clz_sum clz_hi mask) ones)))
1258
-
1259
-
1260
- ;;;; Rules for `ctz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1261
-
1262
- ;; To count trailing zeros, we find the last bit set in the input via (x & -x),
1263
- ;; count the leading zeros of that value, and subtract from 63:
1264
- ;;
1265
- ;; ctz(x) == 63 - clz(x & -x)
1266
- ;;
1267
- ;; This works for all cases except a zero input, where the above formula would
1268
- ;; return -1, but we are expected to return the type size. The compensation
1269
- ;; for this case is handled differently for 64-bit types vs. smaller types.
1270
-
1271
- ;; For smaller types, we simply ensure that the extended 64-bit input is
1272
- ;; never zero by setting a "guard bit" in the position corresponding to
1273
- ;; the input type size. This way the 64-bit algorithm above will handle
1274
- ;; that case correctly automatically.
1275
- (rule 2 (lower (has_type (gpr32_ty ty) (ctz x)))
1276
- (let ((rx Reg (or_uimm16shifted $I64 x (ctz_guardbit ty)))
1277
- (lastbit Reg (and_reg $I64 rx (neg_reg $I64 rx)))
1278
- (clz Reg (clz_reg 64 lastbit)))
1279
- (sub_reg ty (imm ty 63) clz)))
1280
-
1281
- (decl ctz_guardbit (Type) UImm16Shifted)
1282
- (rule (ctz_guardbit $I8) (uimm16shifted 256 0))
1283
- (rule (ctz_guardbit $I16) (uimm16shifted 1 16))
1284
- (rule (ctz_guardbit $I32) (uimm16shifted 1 32))
1285
-
1286
- ;; For 64-bit types, the FLOGR instruction will indicate the zero input case
1287
- ;; via its condition code. We check for that and replace the instruction
1288
- ;; result with the value -1 via a conditional move, which will then lead to
1289
- ;; the correct result after the final subtraction from 63.
1290
- (rule 1 (lower (has_type (gpr64_ty _ty) (ctz x)))
1291
- (let ((rx Reg x)
1292
- (lastbit Reg (and_reg $I64 rx (neg_reg $I64 rx)))
1293
- (clz Reg (clz_reg -1 lastbit)))
1294
- (sub_reg $I64 (imm $I64 63) clz)))
1295
-
1296
- ;; Count trailing zeros, 128-bit full vector.
1297
- (rule 0 (lower (has_type $I128 (ctz x)))
1298
- (let ((ctz_vec Reg (vec_ctz $I64X2 x))
1299
- (zero Reg (vec_imm $I64X2 0))
1300
- (ctz_hi Reg (vec_permute_dw_imm $I64X2 zero 0 ctz_vec 0))
1301
- (ctz_lo Reg (vec_permute_dw_imm $I64X2 zero 0 ctz_vec 1))
1302
- (ctz_sum Reg (vec_add $I64X2 ctz_hi ctz_lo))
1303
- (mask Reg (vec_cmpeq $I64X2 ctz_lo (vec_imm_splat $I64X2 64))))
1304
- (vec_select $I128 ctz_sum ctz_lo mask)))
1305
-
1306
-
1307
- ;;;; Rules for `popcnt` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1308
-
1309
- ;; Population count for 8-bit types is supported by the POPCNT instruction.
1310
- (rule (lower (has_type $I8 (popcnt x)))
1311
- (popcnt_byte x))
1312
-
1313
- ;; On z15, the POPCNT instruction has a variant to compute a full 64-bit
1314
- ;; population count, which we also use for 16- and 32-bit types.
1315
- (rule -1 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (popcnt x)))
1316
- (popcnt_reg (put_in_reg_zext64 x)))
1317
-
1318
- ;; On z14, we use the regular POPCNT, which computes the population count
1319
- ;; of each input byte separately, so we need to accumulate those partial
1320
- ;; results via a series of log2(type size in bytes) - 1 additions. We
1321
- ;; accumulate in the high byte, so that a final right shift will zero out
1322
- ;; any unrelated bits to give a clean result. (This does not work with
1323
- ;; $I16, where we instead accumulate in the low byte and clear high bits
1324
- ;; via an explicit and operation.)
1325
-
1326
- (rule (lower (has_type (and (mie2_disabled) $I16) (popcnt x)))
1327
- (let ((cnt2 Reg (popcnt_byte x))
1328
- (cnt1 Reg (add_reg $I32 cnt2 (lshr_imm $I32 cnt2 8))))
1329
- (and_uimm16shifted $I32 cnt1 (uimm16shifted 255 0))))
1330
-
1331
- (rule (lower (has_type (and (mie2_disabled) $I32) (popcnt x)))
1332
- (let ((cnt4 Reg (popcnt_byte x))
1333
- (cnt2 Reg (add_reg $I32 cnt4 (lshl_imm $I32 cnt4 16)))
1334
- (cnt1 Reg (add_reg $I32 cnt2 (lshl_imm $I32 cnt2 8))))
1335
- (lshr_imm $I32 cnt1 24)))
1336
-
1337
- (rule (lower (has_type (and (mie2_disabled) $I64) (popcnt x)))
1338
- (let ((cnt8 Reg (popcnt_byte x))
1339
- (cnt4 Reg (add_reg $I64 cnt8 (lshl_imm $I64 cnt8 32)))
1340
- (cnt2 Reg (add_reg $I64 cnt4 (lshl_imm $I64 cnt4 16)))
1341
- (cnt1 Reg (add_reg $I64 cnt2 (lshl_imm $I64 cnt2 8))))
1342
- (lshr_imm $I64 cnt1 56)))
1343
-
1344
- ;; Population count for vector types.
1345
- (rule 1 (lower (has_type (ty_vec128 ty) (popcnt x)))
1346
- (vec_popcnt ty x))
1347
-
1348
- ;; Population count, 128-bit full vector.
1349
- (rule (lower (has_type $I128 (popcnt x)))
1350
- (let ((popcnt_vec Reg (vec_popcnt $I64X2 x))
1351
- (zero Reg (vec_imm $I64X2 0))
1352
- (popcnt_hi Reg (vec_permute_dw_imm $I64X2 zero 0 popcnt_vec 0))
1353
- (popcnt_lo Reg (vec_permute_dw_imm $I64X2 zero 0 popcnt_vec 1)))
1354
- (vec_add $I64X2 popcnt_hi popcnt_lo)))
1355
-
1356
-
1357
- ;;;; Rules for `fadd` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1358
-
1359
- ;; Add two registers.
1360
- (rule (lower (has_type ty (fadd x y)))
1361
- (fadd_reg ty x y))
1362
-
1363
-
1364
- ;;;; Rules for `fsub` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1365
-
1366
- ;; Subtract two registers.
1367
- (rule (lower (has_type ty (fsub x y)))
1368
- (fsub_reg ty x y))
1369
-
1370
-
1371
- ;;;; Rules for `fmul` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1372
-
1373
- ;; Multiply two registers.
1374
- (rule (lower (has_type ty (fmul x y)))
1375
- (fmul_reg ty x y))
1376
-
1377
-
1378
- ;;;; Rules for `fdiv` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1379
-
1380
- ;; Divide two registers.
1381
- (rule (lower (has_type ty (fdiv x y)))
1382
- (fdiv_reg ty x y))
1383
-
1384
-
1385
- ;;;; Rules for `fmin` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1386
-
1387
- ;; Minimum of two registers.
1388
- (rule (lower (has_type ty (fmin x y)))
1389
- (fmin_reg ty x y))
1390
-
1391
-
1392
- ;;;; Rules for `fmax` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1393
-
1394
- ;; Maximum of two registers.
1395
- (rule (lower (has_type ty (fmax x y)))
1396
- (fmax_reg ty x y))
1397
-
1398
-
1399
- ;;;; Rules for `fcopysign` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1400
-
1401
- ;; Copysign of two registers.
1402
- (rule (lower (has_type $F32 (fcopysign x y)))
1403
- (vec_select $F32 x y (imm $F32 2147483647)))
1404
- (rule (lower (has_type $F64 (fcopysign x y)))
1405
- (vec_select $F64 x y (imm $F64 9223372036854775807)))
1406
- (rule (lower (has_type $F32X4 (fcopysign x y)))
1407
- (vec_select $F32X4 x y (vec_imm_bit_mask $F32X4 1 31)))
1408
- (rule (lower (has_type $F64X2 (fcopysign x y)))
1409
- (vec_select $F64X2 x y (vec_imm_bit_mask $F64X2 1 63)))
1410
-
1411
-
1412
- ;;;; Rules for `fma` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1413
-
1414
- ;; Multiply-and-add of three registers.
1415
- (rule (lower (has_type ty (fma x y z)))
1416
- (fma_reg ty x y z))
1417
-
1418
-
1419
- ;;;; Rules for `sqrt` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1420
-
1421
- ;; Square root of a register.
1422
- (rule (lower (has_type ty (sqrt x)))
1423
- (sqrt_reg ty x))
1424
-
1425
-
1426
- ;;;; Rules for `fneg` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1427
-
1428
- ;; Negated value of a register.
1429
- (rule (lower (has_type ty (fneg x)))
1430
- (fneg_reg ty x))
1431
-
1432
-
1433
- ;;;; Rules for `fabs` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1434
-
1435
- ;; Absolute value of a register.
1436
- (rule (lower (has_type ty (fabs x)))
1437
- (fabs_reg ty x))
1438
-
1439
-
1440
- ;;;; Rules for `ceil` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1441
-
1442
- ;; Round value in a register towards positive infinity.
1443
- (rule (lower (has_type ty (ceil x)))
1444
- (ceil_reg ty x))
1445
-
1446
-
1447
- ;;;; Rules for `floor` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1448
-
1449
- ;; Round value in a register towards negative infinity.
1450
- (rule (lower (has_type ty (floor x)))
1451
- (floor_reg ty x))
1452
-
1453
-
1454
- ;;;; Rules for `trunc` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1455
-
1456
- ;; Round value in a register towards zero.
1457
- (rule (lower (has_type ty (trunc x)))
1458
- (trunc_reg ty x))
1459
-
1460
-
1461
- ;;;; Rules for `nearest` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1462
-
1463
- ;; Round value in a register towards nearest.
1464
- (rule (lower (has_type ty (nearest x)))
1465
- (nearest_reg ty x))
1466
-
1467
-
1468
- ;;;; Rules for `fpromote` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1469
-
1470
- ;; Promote a register.
1471
- (rule (lower (has_type (fits_in_64 dst_ty) (fpromote x @ (value_type src_ty))))
1472
- (fpromote_reg dst_ty src_ty x))
1473
-
1474
-
1475
- ;;;; Rules for `fvpromote_low` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1476
-
1477
- ;; Promote a register.
1478
- (rule (lower (has_type $F64X2 (fvpromote_low x @ (value_type $F32X4))))
1479
- (fpromote_reg $F64X2 $F32X4 (vec_merge_low_lane_order $I32X4 x x)))
1480
-
1481
-
1482
- ;;;; Rules for `fdemote` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1483
-
1484
- ;; Demote a register.
1485
- (rule (lower (has_type (fits_in_64 dst_ty) (fdemote x @ (value_type src_ty))))
1486
- (fdemote_reg dst_ty src_ty (FpuRoundMode.Current) x))
1487
-
1488
-
1489
- ;;;; Rules for `fvdemote` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1490
-
1491
- ;; Demote a register.
1492
- (rule (lower (has_type $F32X4 (fvdemote x @ (value_type $F64X2))))
1493
- (let ((dst Reg (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.Current) x)))
1494
- (vec_pack_lane_order $I64X2 (vec_lshr_imm $I64X2 dst 32)
1495
- (vec_imm $I64X2 0))))
1496
-
1497
-
1498
- ;;;; Rules for `fcvt_from_uint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1499
-
1500
- ;; Convert a 32-bit or smaller unsigned integer to $F32 (z15 instruction).
1501
- (rule 1 (lower (has_type $F32
1502
- (fcvt_from_uint x @ (value_type (and (vxrs_ext2_enabled) (fits_in_32 ty))))))
1503
- (fcvt_from_uint_reg $F32 (FpuRoundMode.ToNearestTiesToEven)
1504
- (put_in_reg_zext32 x)))
1505
-
1506
- ;; Convert a 64-bit or smaller unsigned integer to $F32, via an intermediate $F64.
1507
- (rule (lower (has_type $F32 (fcvt_from_uint x @ (value_type (fits_in_64 ty)))))
1508
- (fdemote_reg $F32 $F64 (FpuRoundMode.ToNearestTiesToEven)
1509
- (fcvt_from_uint_reg $F64 (FpuRoundMode.ShorterPrecision)
1510
- (put_in_reg_zext64 x))))
1511
-
1512
- ;; Convert a 64-bit or smaller unsigned integer to $F64.
1513
- (rule (lower (has_type $F64 (fcvt_from_uint x @ (value_type (fits_in_64 ty)))))
1514
- (fcvt_from_uint_reg $F64 (FpuRoundMode.ToNearestTiesToEven)
1515
- (put_in_reg_zext64 x)))
1516
-
1517
- ;; Convert $I32X4 to $F32X4 (z15 instruction).
1518
- (rule 1 (lower (has_type (and (vxrs_ext2_enabled) $F32X4)
1519
- (fcvt_from_uint x @ (value_type $I32X4))))
1520
- (fcvt_from_uint_reg $F32X4 (FpuRoundMode.ToNearestTiesToEven) x))
1521
-
1522
- ;; Convert $I32X4 to $F32X4 (via two $F64X2 on z14).
1523
- (rule (lower (has_type (and (vxrs_ext2_disabled) $F32X4)
1524
- (fcvt_from_uint x @ (value_type $I32X4))))
1525
- (vec_permute $F32X4
1526
- (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.ToNearestTiesToEven)
1527
- (fcvt_from_uint_reg $F64X2 (FpuRoundMode.ShorterPrecision)
1528
- (vec_unpacku_high $I32X4 x)))
1529
- (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.ToNearestTiesToEven)
1530
- (fcvt_from_uint_reg $F64X2 (FpuRoundMode.ShorterPrecision)
1531
- (vec_unpacku_low $I32X4 x)))
1532
- (vec_imm $I8X16 (imm8x16 0 1 2 3 8 9 10 11 16 17 18 19 24 25 26 27))))
1533
-
1534
- ;; Convert $I64X2 to $F64X2.
1535
- (rule (lower (has_type $F64X2 (fcvt_from_uint x @ (value_type $I64X2))))
1536
- (fcvt_from_uint_reg $F64X2 (FpuRoundMode.ToNearestTiesToEven) x))
1537
-
1538
-
1539
- ;;;; Rules for `fcvt_from_sint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1540
-
1541
- ;; Convert a 32-bit or smaller signed integer to $F32 (z15 instruction).
1542
- (rule 1 (lower (has_type $F32
1543
- (fcvt_from_sint x @ (value_type (and (vxrs_ext2_enabled) (fits_in_32 ty))))))
1544
- (fcvt_from_sint_reg $F32 (FpuRoundMode.ToNearestTiesToEven)
1545
- (put_in_reg_sext32 x)))
1546
-
1547
- ;; Convert a 64-bit or smaller signed integer to $F32, via an intermediate $F64.
1548
- (rule (lower (has_type $F32 (fcvt_from_sint x @ (value_type (fits_in_64 ty)))))
1549
- (fdemote_reg $F32 $F64 (FpuRoundMode.ToNearestTiesToEven)
1550
- (fcvt_from_sint_reg $F64 (FpuRoundMode.ShorterPrecision)
1551
- (put_in_reg_sext64 x))))
1552
-
1553
- ;; Convert a 64-bit or smaller signed integer to $F64.
1554
- (rule (lower (has_type $F64 (fcvt_from_sint x @ (value_type (fits_in_64 ty)))))
1555
- (fcvt_from_sint_reg $F64 (FpuRoundMode.ToNearestTiesToEven)
1556
- (put_in_reg_sext64 x)))
1557
-
1558
- ;; Convert $I32X4 to $F32X4 (z15 instruction).
1559
- (rule 1 (lower (has_type (and (vxrs_ext2_enabled) $F32X4)
1560
- (fcvt_from_sint x @ (value_type $I32X4))))
1561
- (fcvt_from_sint_reg $F32X4 (FpuRoundMode.ToNearestTiesToEven) x))
1562
-
1563
- ;; Convert $I32X4 to $F32X4 (via two $F64X2 on z14).
1564
- (rule (lower (has_type (and (vxrs_ext2_disabled) $F32X4)
1565
- (fcvt_from_sint x @ (value_type $I32X4))))
1566
- (vec_permute $F32X4
1567
- (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.ToNearestTiesToEven)
1568
- (fcvt_from_sint_reg $F64X2 (FpuRoundMode.ShorterPrecision)
1569
- (vec_unpacks_high $I32X4 x)))
1570
- (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.ToNearestTiesToEven)
1571
- (fcvt_from_sint_reg $F64X2 (FpuRoundMode.ShorterPrecision)
1572
- (vec_unpacks_low $I32X4 x)))
1573
- (vec_imm $I8X16 (imm8x16 0 1 2 3 8 9 10 11 16 17 18 19 24 25 26 27))))
1574
-
1575
- ;; Convert $I64X2 to $F64X2.
1576
- (rule (lower (has_type $F64X2 (fcvt_from_sint x @ (value_type $I64X2))))
1577
- (fcvt_from_sint_reg $F64X2 (FpuRoundMode.ToNearestTiesToEven) x))
1578
-
1579
-
1580
- ;;;; Rules for `fcvt_to_uint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1581
-
1582
- ;; Convert a scalar floating-point value in a register to an unsigned integer.
1583
- ;; Traps if the input cannot be represented in the output type.
1584
- (rule (lower (has_type (fits_in_64 dst_ty)
1585
- (fcvt_to_uint x @ (value_type src_ty))))
1586
- (let ((src Reg (put_in_reg x))
1587
- ;; First, check whether the input is a NaN, and trap if so.
1588
- (_ Reg (trap_if (fcmp_reg src_ty src src)
1589
- (floatcc_as_cond (FloatCC.Unordered))
1590
- (trap_code_bad_conversion_to_integer)))
1591
- ;; Now check whether the input is out of range for the target type.
1592
- (_ Reg (trap_if (fcmp_reg src_ty src (fcvt_to_uint_ub src_ty dst_ty))
1593
- (floatcc_as_cond (FloatCC.GreaterThanOrEqual))
1594
- (trap_code_integer_overflow)))
1595
- (_ Reg (trap_if (fcmp_reg src_ty src (fcvt_to_uint_lb src_ty))
1596
- (floatcc_as_cond (FloatCC.LessThanOrEqual))
1597
- (trap_code_integer_overflow)))
1598
- ;; Perform the conversion using the larger type size.
1599
- (flt_ty Type (fcvt_flt_ty dst_ty src_ty))
1600
- (src_ext Reg (fpromote_reg flt_ty src_ty src)))
1601
- (fcvt_to_uint_reg flt_ty (FpuRoundMode.ToZero) src_ext)))
1602
-
1603
-
1604
- ;;;; Rules for `fcvt_to_sint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1605
-
1606
- ;; Convert a scalar floating-point value in a register to a signed integer.
1607
- ;; Traps if the input cannot be represented in the output type.
1608
- (rule (lower (has_type (fits_in_64 dst_ty)
1609
- (fcvt_to_sint x @ (value_type src_ty))))
1610
- (let ((src Reg (put_in_reg x))
1611
- ;; First, check whether the input is a NaN, and trap if so.
1612
- (_ Reg (trap_if (fcmp_reg src_ty src src)
1613
- (floatcc_as_cond (FloatCC.Unordered))
1614
- (trap_code_bad_conversion_to_integer)))
1615
- ;; Now check whether the input is out of range for the target type.
1616
- (_ Reg (trap_if (fcmp_reg src_ty src (fcvt_to_sint_ub src_ty dst_ty))
1617
- (floatcc_as_cond (FloatCC.GreaterThanOrEqual))
1618
- (trap_code_integer_overflow)))
1619
- (_ Reg (trap_if (fcmp_reg src_ty src (fcvt_to_sint_lb src_ty dst_ty))
1620
- (floatcc_as_cond (FloatCC.LessThanOrEqual))
1621
- (trap_code_integer_overflow)))
1622
- ;; Perform the conversion using the larger type size.
1623
- (flt_ty Type (fcvt_flt_ty dst_ty src_ty))
1624
- (src_ext Reg (fpromote_reg flt_ty src_ty src)))
1625
- ;; Perform the conversion.
1626
- (fcvt_to_sint_reg flt_ty (FpuRoundMode.ToZero) src_ext)))
1627
-
1628
-
1629
- ;;;; Rules for `fcvt_to_uint_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1630
-
1631
- ;; Convert a scalar floating-point value in a register to an unsigned integer.
1632
- (rule -1 (lower (has_type (fits_in_64 dst_ty)
1633
- (fcvt_to_uint_sat x @ (value_type src_ty))))
1634
- (let ((src Reg (put_in_reg x))
1635
- ;; Perform the conversion using the larger type size.
1636
- (flt_ty Type (fcvt_flt_ty dst_ty src_ty))
1637
- (int_ty Type (fcvt_int_ty dst_ty src_ty))
1638
- (src_ext Reg (fpromote_reg flt_ty src_ty src))
1639
- (dst Reg (fcvt_to_uint_reg flt_ty (FpuRoundMode.ToZero) src_ext)))
1640
- ;; Clamp the output to the destination type bounds.
1641
- (uint_sat_reg dst_ty int_ty dst)))
1642
-
1643
- ;; Convert $F32X4 to $I32X4 (z15 instruction).
1644
- (rule 1 (lower (has_type (and (vxrs_ext2_enabled) $I32X4)
1645
- (fcvt_to_uint_sat x @ (value_type $F32X4))))
1646
- (fcvt_to_uint_reg $F32X4 (FpuRoundMode.ToZero) x))
1647
-
1648
- ;; Convert $F32X4 to $I32X4 (via two $F64X2 on z14).
1649
- (rule (lower (has_type (and (vxrs_ext2_disabled) $I32X4)
1650
- (fcvt_to_uint_sat x @ (value_type $F32X4))))
1651
- (vec_pack_usat $I64X2
1652
- (fcvt_to_uint_reg $F64X2 (FpuRoundMode.ToZero)
1653
- (fpromote_reg $F64X2 $F32X4 (vec_merge_high $I32X4 x x)))
1654
- (fcvt_to_uint_reg $F64X2 (FpuRoundMode.ToZero)
1655
- (fpromote_reg $F64X2 $F32X4 (vec_merge_low $I32X4 x x)))))
1656
-
1657
- ;; Convert $F64X2 to $I64X2.
1658
- (rule (lower (has_type $I64X2 (fcvt_to_uint_sat x @ (value_type $F64X2))))
1659
- (fcvt_to_uint_reg $F64X2 (FpuRoundMode.ToZero) x))
1660
-
1661
-
1662
- ;;;; Rules for `fcvt_to_sint_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1663
-
1664
- ;; Convert a scalar floating-point value in a register to a signed integer.
1665
- (rule -1 (lower (has_type (fits_in_64 dst_ty)
1666
- (fcvt_to_sint_sat x @ (value_type src_ty))))
1667
- (let ((src Reg (put_in_reg x))
1668
- ;; Perform the conversion using the larger type size.
1669
- (flt_ty Type (fcvt_flt_ty dst_ty src_ty))
1670
- (int_ty Type (fcvt_int_ty dst_ty src_ty))
1671
- (src_ext Reg (fpromote_reg flt_ty src_ty src))
1672
- (dst Reg (fcvt_to_sint_reg flt_ty (FpuRoundMode.ToZero) src_ext))
1673
- ;; In most special cases, the Z instruction already yields the
1674
- ;; result expected by Cranelift semantics. The only exception
1675
- ;; it the case where the input was a NaN. We explicitly check
1676
- ;; for that and force the output to 0 in that case.
1677
- (sat Reg (with_flags_reg (fcmp_reg src_ty src src)
1678
- (cmov_imm int_ty
1679
- (floatcc_as_cond (FloatCC.Unordered)) 0 dst))))
1680
- ;; Clamp the output to the destination type bounds.
1681
- (sint_sat_reg dst_ty int_ty sat)))
1682
-
1683
- ;; Convert $F32X4 to $I32X4 (z15 instruction).
1684
- (rule 1 (lower (has_type (and (vxrs_ext2_enabled) $I32X4)
1685
- (fcvt_to_sint_sat src @ (value_type $F32X4))))
1686
- ;; See above for why we need to handle NaNs specially.
1687
- (vec_select $I32X4
1688
- (fcvt_to_sint_reg $F32X4 (FpuRoundMode.ToZero) src)
1689
- (vec_imm $I32X4 0) (vec_fcmpeq $F32X4 src src)))
1690
-
1691
- ;; Convert $F32X4 to $I32X4 (via two $F64X2 on z14).
1692
- (rule (lower (has_type (and (vxrs_ext2_disabled) $I32X4)
1693
- (fcvt_to_sint_sat src @ (value_type $F32X4))))
1694
- ;; See above for why we need to handle NaNs specially.
1695
- (vec_select $I32X4
1696
- (vec_pack_ssat $I64X2
1697
- (fcvt_to_sint_reg $F64X2 (FpuRoundMode.ToZero)
1698
- (fpromote_reg $F64X2 $F32X4 (vec_merge_high $I32X4 src src)))
1699
- (fcvt_to_sint_reg $F64X2 (FpuRoundMode.ToZero)
1700
- (fpromote_reg $F64X2 $F32X4 (vec_merge_low $I32X4 src src))))
1701
- (vec_imm $I32X4 0) (vec_fcmpeq $F32X4 src src)))
1702
-
1703
- ;; Convert $F64X2 to $I64X2.
1704
- (rule (lower (has_type $I64X2 (fcvt_to_sint_sat src @ (value_type $F64X2))))
1705
- ;; See above for why we need to handle NaNs specially.
1706
- (vec_select $I64X2
1707
- (fcvt_to_sint_reg $F64X2 (FpuRoundMode.ToZero) src)
1708
- (vec_imm $I64X2 0) (vec_fcmpeq $F64X2 src src)))
1709
-
1710
-
1711
- ;;;; Rules for `bitcast` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1712
-
1713
- ;; Reinterpret a 64-bit integer value as floating-point.
1714
- (rule (lower (has_type $F64 (bitcast _ x @ (value_type $I64))))
1715
- (vec_insert_lane_undef $F64X2 x 0 (zero_reg)))
1716
-
1717
- ;; Reinterpret a 64-bit floating-point value as integer.
1718
- (rule (lower (has_type $I64 (bitcast _ x @ (value_type $F64))))
1719
- (vec_extract_lane $F64X2 x 0 (zero_reg)))
1720
-
1721
- ;; Reinterpret a 32-bit integer value as floating-point.
1722
- (rule (lower (has_type $F32 (bitcast _ x @ (value_type $I32))))
1723
- (vec_insert_lane_undef $F32X4 x 0 (zero_reg)))
1724
-
1725
- ;; Reinterpret a 32-bit floating-point value as integer.
1726
- (rule (lower (has_type $I32 (bitcast _ x @ (value_type $F32))))
1727
- (vec_extract_lane $F32X4 x 0 (zero_reg)))
1728
-
1729
- ;; Bitcasts between `r{32,64}` and `i{32,64}` need to be a copy to avoid
1730
- ;; conflicting regalloc constraints on reference type values that both need to
1731
- ;; be in some register but also some safepoint stack slot at the same time.
1732
- (rule 6 (lower (has_type $R32 (bitcast _ x @ (value_type $I32))))
1733
- (copy_reg $I32 x))
1734
- (rule 6 (lower (has_type $R64 (bitcast _ x @ (value_type $I64))))
1735
- (copy_reg $I64 x))
1736
- (rule 6 (lower (has_type $I32 (bitcast _ x @ (value_type $R32))))
1737
- (copy_reg $I32 x))
1738
- (rule 6 (lower (has_type $I64 (bitcast _ x @ (value_type $R64))))
1739
- (copy_reg $I64 x))
1740
-
1741
- ;; Bitcast between types residing in GPRs is a no-op.
1742
- (rule 1 (lower (has_type (gpr32_ty _)
1743
- (bitcast _ x @ (value_type (gpr32_ty _)))))
1744
- x)
1745
- (rule 2 (lower (has_type (gpr64_ty _)
1746
- (bitcast _ x @ (value_type (gpr64_ty _)))))
1747
- x)
1748
-
1749
- ;; Bitcast between types residing in FPRs is a no-op.
1750
- (rule 3 (lower (has_type (ty_scalar_float _)
1751
- (bitcast _ x @ (value_type (ty_scalar_float _)))))
1752
- x)
1753
-
1754
- ;; Bitcast between types residing in VRs is a no-op if lane count is unchanged.
1755
- (rule 5 (lower (has_type (multi_lane bits count)
1756
- (bitcast _ x @ (value_type (multi_lane bits count)))))
1757
- x)
1758
-
1759
- ;; Bitcast between types residing in VRs with different lane counts is a
1760
- ;; no-op if the operation's MemFlags indicate a byte order compatible with
1761
- ;; the current lane order. Otherwise, lane elements need to be swapped,
1762
- ;; first in the input type, and then again in the output type. This could
1763
- ;; be optimized further, but we don't bother at the moment since due to our
1764
- ;; choice of lane order depending on the current function ABI, this case will
1765
- ;; currently never arise in practice.
1766
- (rule 4 (lower (has_type (vr128_ty out_ty)
1767
- (bitcast flags x @ (value_type (vr128_ty in_ty)))))
1768
- (abi_vec_elt_rev (lane_order_from_memflags flags) out_ty
1769
- (abi_vec_elt_rev (lane_order_from_memflags flags) in_ty x)))
1770
-
1771
-
1772
- ;;;; Rules for `insertlane` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1773
-
1774
- ;; Insert vector lane from general-purpose register.
1775
- (rule 1 (lower (insertlane x @ (value_type ty)
1776
- y @ (value_type in_ty)
1777
- (u8_from_uimm8 idx)))
1778
- (if (ty_int_ref_scalar_64 in_ty))
1779
- (vec_insert_lane ty x y (be_lane_idx ty idx) (zero_reg)))
1780
-
1781
- ;; Insert vector lane from floating-point register.
1782
- (rule 0 (lower (insertlane x @ (value_type ty)
1783
- y @ (value_type (ty_scalar_float _))
1784
- (u8_from_uimm8 idx)))
1785
- (vec_move_lane_and_insert ty x (be_lane_idx ty idx) y 0))
1786
-
1787
- ;; Insert vector lane from another vector lane.
1788
- (rule 2 (lower (insertlane x @ (value_type ty)
1789
- (extractlane y (u8_from_uimm8 src_idx))
1790
- (u8_from_uimm8 dst_idx)))
1791
- (vec_move_lane_and_insert ty x (be_lane_idx ty dst_idx)
1792
- y (be_lane_idx ty src_idx)))
1793
-
1794
- ;; Insert vector lane from signed 16-bit immediate.
1795
- (rule 3 (lower (insertlane x @ (value_type ty) (i16_from_value y)
1796
- (u8_from_uimm8 idx)))
1797
- (vec_insert_lane_imm ty x y (be_lane_idx ty idx)))
1798
-
1799
- ;; Insert vector lane from big-endian memory.
1800
- (rule 4 (lower (insertlane x @ (value_type ty) (sinkable_load y)
1801
- (u8_from_uimm8 idx)))
1802
- (vec_load_lane ty x (sink_load y) (be_lane_idx ty idx)))
1803
-
1804
- ;; Insert vector lane from little-endian memory.
1805
- (rule 5 (lower (insertlane x @ (value_type ty) (sinkable_load_little y)
1806
- (u8_from_uimm8 idx)))
1807
- (vec_load_lane_little ty x (sink_load y) (be_lane_idx ty idx)))
1808
-
1809
-
1810
- ;; Helper to extract one lane from a vector and insert it into another.
1811
- (decl vec_move_lane_and_insert (Type Reg u8 Reg u8) Reg)
1812
-
1813
- ;; For 64-bit elements we always use VPDI.
1814
- (rule (vec_move_lane_and_insert ty @ (multi_lane 64 _) dst 0 src src_idx)
1815
- (vec_permute_dw_imm ty src src_idx dst 1))
1816
- (rule (vec_move_lane_and_insert ty @ (multi_lane 64 _) dst 1 src src_idx)
1817
- (vec_permute_dw_imm ty dst 0 src src_idx))
1818
-
1819
- ;; If source and destination index are the same, use vec_select.
1820
- (rule -1 (vec_move_lane_and_insert ty dst idx src idx)
1821
- (vec_select ty src
1822
- dst (vec_imm_byte_mask ty (lane_byte_mask ty idx))))
1823
-
1824
- ;; Otherwise replicate source first and then use vec_select.
1825
- (rule -2 (vec_move_lane_and_insert ty dst dst_idx src src_idx)
1826
- (vec_select ty (vec_replicate_lane ty src src_idx)
1827
- dst (vec_imm_byte_mask ty (lane_byte_mask ty dst_idx))))
1828
-
1829
-
1830
- ;; Helper to implement a generic little-endian variant of vec_load_lane.
1831
- (decl vec_load_lane_little (Type Reg MemArg u8) Reg)
1832
-
1833
- ;; 8-byte little-endian loads can be performed via a normal load.
1834
- (rule (vec_load_lane_little ty @ (multi_lane 8 _) dst addr lane_imm)
1835
- (vec_load_lane ty dst addr lane_imm))
1836
-
1837
- ;; On z15, we have instructions to perform little-endian loads.
1838
- (rule 1 (vec_load_lane_little (and (vxrs_ext2_enabled)
1839
- ty @ (multi_lane 16 _)) dst addr lane_imm)
1840
- (vec_load_lane_rev ty dst addr lane_imm))
1841
- (rule 1 (vec_load_lane_little (and (vxrs_ext2_enabled)
1842
- ty @ (multi_lane 32 _)) dst addr lane_imm)
1843
- (vec_load_lane_rev ty dst addr lane_imm))
1844
- (rule 1 (vec_load_lane_little (and (vxrs_ext2_enabled)
1845
- ty @ (multi_lane 64 _)) dst addr lane_imm)
1846
- (vec_load_lane_rev ty dst addr lane_imm))
1847
-
1848
- ;; On z14, use a little-endian load to GPR followed by vec_insert_lane.
1849
- (rule (vec_load_lane_little (and (vxrs_ext2_disabled)
1850
- ty @ (multi_lane 16 _)) dst addr lane_imm)
1851
- (vec_insert_lane ty dst (loadrev16 addr) lane_imm (zero_reg)))
1852
- (rule (vec_load_lane_little (and (vxrs_ext2_disabled)
1853
- ty @ (multi_lane 32 _)) dst addr lane_imm)
1854
- (vec_insert_lane ty dst (loadrev32 addr) lane_imm (zero_reg)))
1855
- (rule (vec_load_lane_little (and (vxrs_ext2_disabled)
1856
- ty @ (multi_lane 64 _)) dst addr lane_imm)
1857
- (vec_insert_lane ty dst (loadrev64 addr) lane_imm (zero_reg)))
1858
-
1859
- ;; Helper to implement a generic little-endian variant of vec_load_lane_undef.
1860
- (decl vec_load_lane_little_undef (Type MemArg u8) Reg)
1861
-
1862
- ;; 8-byte little-endian loads can be performed via a normal load.
1863
- (rule (vec_load_lane_little_undef ty @ (multi_lane 8 _) addr lane_imm)
1864
- (vec_load_lane_undef ty addr lane_imm))
1865
-
1866
- ;; On z15, we have instructions to perform little-endian loads.
1867
- (rule 1 (vec_load_lane_little_undef (and (vxrs_ext2_enabled)
1868
- ty @ (multi_lane 16 _)) addr lane_imm)
1869
- (vec_load_lane_rev_undef ty addr lane_imm))
1870
- (rule 1 (vec_load_lane_little_undef (and (vxrs_ext2_enabled)
1871
- ty @ (multi_lane 32 _)) addr lane_imm)
1872
- (vec_load_lane_rev_undef ty addr lane_imm))
1873
- (rule 1 (vec_load_lane_little_undef (and (vxrs_ext2_enabled)
1874
- ty @ (multi_lane 64 _)) addr lane_imm)
1875
- (vec_load_lane_rev_undef ty addr lane_imm))
1876
-
1877
- ;; On z14, use a little-endian load to GPR followed by vec_insert_lane_undef.
1878
- (rule (vec_load_lane_little_undef (and (vxrs_ext2_disabled)
1879
- ty @ (multi_lane 16 _)) addr lane_imm)
1880
- (vec_insert_lane_undef ty (loadrev16 addr) lane_imm (zero_reg)))
1881
- (rule (vec_load_lane_little_undef (and (vxrs_ext2_disabled)
1882
- ty @ (multi_lane 32 _)) addr lane_imm)
1883
- (vec_insert_lane_undef ty (loadrev32 addr) lane_imm (zero_reg)))
1884
- (rule (vec_load_lane_little_undef (and (vxrs_ext2_disabled)
1885
- ty @ (multi_lane 64 _)) addr lane_imm)
1886
- (vec_insert_lane_undef ty (loadrev64 addr) lane_imm (zero_reg)))
1887
-
1888
-
1889
- ;;;; Rules for `extractlane` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1890
-
1891
- ;; Extract vector lane to general-purpose register.
1892
- (rule 1 (lower (has_type out_ty
1893
- (extractlane x @ (value_type ty) (u8_from_uimm8 idx))))
1894
- (if (ty_int_ref_scalar_64 out_ty))
1895
- (vec_extract_lane ty x (be_lane_idx ty idx) (zero_reg)))
1896
-
1897
- ;; Extract vector lane to floating-point register.
1898
- (rule 0 (lower (has_type (ty_scalar_float _)
1899
- (extractlane x @ (value_type ty) (u8_from_uimm8 idx))))
1900
- (vec_replicate_lane ty x (be_lane_idx ty idx)))
1901
-
1902
- ;; Extract vector lane and store to big-endian memory.
1903
- (rule 6 (lower (store flags @ (bigendian)
1904
- (extractlane x @ (value_type ty) (u8_from_uimm8 idx))
1905
- addr offset))
1906
- (side_effect (vec_store_lane ty x
1907
- (lower_address flags addr offset) (be_lane_idx ty idx))))
1908
-
1909
- ;; Extract vector lane and store to little-endian memory.
1910
- (rule 5 (lower (store flags @ (littleendian)
1911
- (extractlane x @ (value_type ty) (u8_from_uimm8 idx))
1912
- addr offset))
1913
- (side_effect (vec_store_lane_little ty x
1914
- (lower_address flags addr offset) (be_lane_idx ty idx))))
1915
-
1916
-
1917
- ;; Helper to implement a generic little-endian variant of vec_store_lane.
1918
- (decl vec_store_lane_little (Type Reg MemArg u8) SideEffectNoResult)
1919
-
1920
- ;; 8-byte little-endian stores can be performed via a normal store.
1921
- (rule (vec_store_lane_little ty @ (multi_lane 8 _) src addr lane_imm)
1922
- (vec_store_lane ty src addr lane_imm))
1923
-
1924
- ;; On z15, we have instructions to perform little-endian stores.
1925
- (rule 1 (vec_store_lane_little (and (vxrs_ext2_enabled)
1926
- ty @ (multi_lane 16 _)) src addr lane_imm)
1927
- (vec_store_lane_rev ty src addr lane_imm))
1928
- (rule 1 (vec_store_lane_little (and (vxrs_ext2_enabled)
1929
- ty @ (multi_lane 32 _)) src addr lane_imm)
1930
- (vec_store_lane_rev ty src addr lane_imm))
1931
- (rule 1 (vec_store_lane_little (and (vxrs_ext2_enabled)
1932
- ty @ (multi_lane 64 _)) src addr lane_imm)
1933
- (vec_store_lane_rev ty src addr lane_imm))
1934
-
1935
- ;; On z14, use vec_extract_lane followed by a little-endian store from GPR.
1936
- (rule (vec_store_lane_little (and (vxrs_ext2_disabled)
1937
- ty @ (multi_lane 16 _)) src addr lane_imm)
1938
- (storerev16 (vec_extract_lane ty src lane_imm (zero_reg)) addr))
1939
- (rule (vec_store_lane_little (and (vxrs_ext2_disabled)
1940
- ty @ (multi_lane 32 _)) src addr lane_imm)
1941
- (storerev32 (vec_extract_lane ty src lane_imm (zero_reg)) addr))
1942
- (rule (vec_store_lane_little (and (vxrs_ext2_disabled)
1943
- ty @ (multi_lane 64 _)) src addr lane_imm)
1944
- (storerev64 (vec_extract_lane ty src lane_imm (zero_reg)) addr))
1945
-
1946
-
1947
- ;;;; Rules for `splat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1948
-
1949
- ;; Load replicated value from general-purpose register.
1950
- (rule 1 (lower (has_type ty (splat x @ (value_type in_ty))))
1951
- (if (ty_int_ref_scalar_64 in_ty))
1952
- (vec_replicate_lane ty (vec_insert_lane_undef ty x 0 (zero_reg)) 0))
1953
-
1954
- ;; Load replicated value from floating-point register.
1955
- (rule 0 (lower (has_type ty (splat
1956
- x @ (value_type (ty_scalar_float _)))))
1957
- (vec_replicate_lane ty x 0))
1958
-
1959
- ;; Load replicated value from vector lane.
1960
- (rule 2 (lower (has_type ty (splat (extractlane x (u8_from_uimm8 idx)))))
1961
- (vec_replicate_lane ty x (be_lane_idx ty idx)))
1962
-
1963
- ;; Load replicated 16-bit immediate value.
1964
- (rule 3 (lower (has_type ty (splat (i16_from_value x))))
1965
- (vec_imm_replicate ty x))
1966
-
1967
- ;; Load replicated value from big-endian memory.
1968
- (rule 4 (lower (has_type ty (splat (sinkable_load x))))
1969
- (vec_load_replicate ty (sink_load x)))
1970
-
1971
- ;; Load replicated value from little-endian memory.
1972
- (rule 5 (lower (has_type ty (splat (sinkable_load_little x))))
1973
- (vec_load_replicate_little ty (sink_load x)))
1974
-
1975
-
1976
- ;; Helper to implement a generic little-endian variant of vec_load_replicate
1977
- (decl vec_load_replicate_little (Type MemArg) Reg)
1978
-
1979
- ;; 8-byte little-endian loads can be performed via a normal load.
1980
- (rule (vec_load_replicate_little ty @ (multi_lane 8 _) addr)
1981
- (vec_load_replicate ty addr))
1982
-
1983
- ;; On z15, we have instructions to perform little-endian loads.
1984
- (rule 1 (vec_load_replicate_little (and (vxrs_ext2_enabled)
1985
- ty @ (multi_lane 16 _)) addr)
1986
- (vec_load_replicate_rev ty addr))
1987
- (rule 1 (vec_load_replicate_little (and (vxrs_ext2_enabled)
1988
- ty @ (multi_lane 32 _)) addr)
1989
- (vec_load_replicate_rev ty addr))
1990
- (rule 1 (vec_load_replicate_little (and (vxrs_ext2_enabled)
1991
- ty @ (multi_lane 64 _)) addr)
1992
- (vec_load_replicate_rev ty addr))
1993
-
1994
- ;; On z14, use a little-endian load (via GPR) and replicate.
1995
- (rule (vec_load_replicate_little (and (vxrs_ext2_disabled)
1996
- ty @ (multi_lane 16 _)) addr)
1997
- (vec_replicate_lane ty (vec_load_lane_little_undef ty addr 0) 0))
1998
- (rule (vec_load_replicate_little (and (vxrs_ext2_disabled)
1999
- ty @ (multi_lane 32 _)) addr)
2000
- (vec_replicate_lane ty (vec_load_lane_little_undef ty addr 0) 0))
2001
- (rule (vec_load_replicate_little (and (vxrs_ext2_disabled)
2002
- ty @ (multi_lane 64 _)) addr)
2003
- (vec_replicate_lane ty (vec_load_lane_little_undef ty addr 0) 0))
2004
-
2005
-
2006
- ;;;; Rules for `scalar_to_vector` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2007
-
2008
- ;; Load scalar value from general-purpose register.
2009
- (rule 1 (lower (has_type ty (scalar_to_vector
2010
- x @ (value_type in_ty))))
2011
- (if (ty_int_ref_scalar_64 in_ty))
2012
- (vec_insert_lane ty (vec_imm ty 0) x (be_lane_idx ty 0) (zero_reg)))
2013
-
2014
- ;; Load scalar value from floating-point register.
2015
- (rule 0 (lower (has_type ty (scalar_to_vector
2016
- x @ (value_type (ty_scalar_float _)))))
2017
- (vec_move_lane_and_zero ty (be_lane_idx ty 0) x 0))
2018
-
2019
- ;; Load scalar value from vector lane.
2020
- (rule 2 (lower (has_type ty (scalar_to_vector
2021
- (extractlane x (u8_from_uimm8 idx)))))
2022
- (vec_move_lane_and_zero ty (be_lane_idx ty 0) x (be_lane_idx ty idx)))
2023
-
2024
- ;; Load scalar 16-bit immediate value.
2025
- (rule 3 (lower (has_type ty (scalar_to_vector (i16_from_value x))))
2026
- (vec_insert_lane_imm ty (vec_imm ty 0) x (be_lane_idx ty 0)))
2027
-
2028
- ;; Load scalar value from big-endian memory.
2029
- (rule 4 (lower (has_type ty (scalar_to_vector (sinkable_load x))))
2030
- (vec_load_lane ty (vec_imm ty 0) (sink_load x) (be_lane_idx ty 0)))
2031
-
2032
- ;; Load scalar value lane from little-endian memory.
2033
- (rule 5 (lower (has_type ty (scalar_to_vector (sinkable_load_little x))))
2034
- (vec_load_lane_little ty (vec_imm ty 0) (sink_load x) (be_lane_idx ty 0)))
2035
-
2036
-
2037
- ;; Helper to extract one lane from a vector and insert it into a zero vector.
2038
- (decl vec_move_lane_and_zero (Type u8 Reg u8) Reg)
2039
-
2040
- ;; For 64-bit elements we always use VPDI.
2041
- (rule (vec_move_lane_and_zero ty @ (multi_lane 64 _) 0 src src_idx)
2042
- (vec_permute_dw_imm ty src src_idx (vec_imm ty 0) 0))
2043
- (rule (vec_move_lane_and_zero ty @ (multi_lane 64 _) 1 src src_idx)
2044
- (vec_permute_dw_imm ty (vec_imm ty 0) 0 src src_idx))
2045
-
2046
- ;; If source and destination index are the same, simply mask to this lane.
2047
- (rule -1 (vec_move_lane_and_zero ty idx src idx)
2048
- (vec_and ty src
2049
- (vec_imm_byte_mask ty (lane_byte_mask ty idx))))
2050
-
2051
- ;; Otherwise replicate source first and then mask to the lane.
2052
- (rule -2 (vec_move_lane_and_zero ty dst_idx src src_idx)
2053
- (vec_and ty (vec_replicate_lane ty src src_idx)
2054
- (vec_imm_byte_mask ty (lane_byte_mask ty dst_idx))))
2055
-
2056
-
2057
- ;;;; Rules for `shuffle` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2058
-
2059
- ;; General case: use vec_permute and then mask off zero lanes.
2060
- (rule -2 (lower (shuffle x y (shuffle_mask permute_mask and_mask)))
2061
- (vec_and $I8X16 (vec_imm_byte_mask $I8X16 and_mask)
2062
- (vec_permute $I8X16 x y (vec_imm $I8X16 permute_mask))))
2063
-
2064
- ;; If the pattern has no zero lanes, just a vec_permute suffices.
2065
- (rule -1 (lower (shuffle x y (shuffle_mask permute_mask 65535)))
2066
- (vec_permute $I8X16 x y (vec_imm $I8X16 permute_mask)))
2067
-
2068
- ;; Special patterns that can be implemented via MERGE HIGH.
2069
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23) 65535)))
2070
- (vec_merge_high $I64X2 x y))
2071
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 16 17 18 19 4 5 6 7 20 21 22 23) 65535)))
2072
- (vec_merge_high $I32X4 x y))
2073
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 16 17 2 3 18 19 4 5 20 21 6 7 22 23) 65535)))
2074
- (vec_merge_high $I16X8 x y))
2075
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 16 1 17 2 18 3 19 4 20 5 21 6 22 7 23) 65535)))
2076
- (vec_merge_high $I8X16 x y))
2077
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7) 65535)))
2078
- (vec_merge_high $I64X2 y x))
2079
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 0 1 2 3 20 21 22 23 4 5 6 7) 65535)))
2080
- (vec_merge_high $I32X4 y x))
2081
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 0 1 18 19 2 3 20 21 4 5 22 23 6 7) 65535)))
2082
- (vec_merge_high $I16X8 y x))
2083
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 0 17 1 18 2 19 3 20 4 21 5 22 6 23 7) 65535)))
2084
- (vec_merge_high $I8X16 y x))
2085
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7) 65535)))
2086
- (vec_merge_high $I64X2 x x))
2087
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 0 1 2 3 4 5 6 7 4 5 6 7) 65535)))
2088
- (vec_merge_high $I32X4 x x))
2089
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 0 1 2 3 2 3 4 5 4 5 6 7 6 7) 65535)))
2090
- (vec_merge_high $I16X8 x x))
2091
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7) 65535)))
2092
- (vec_merge_high $I8X16 x x))
2093
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 20 21 22 23 16 17 18 19 20 21 22 23) 65535)))
2094
- (vec_merge_high $I64X2 y y))
2095
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 16 17 18 19 20 21 22 23 20 21 22 23) 65535)))
2096
- (vec_merge_high $I32X4 y y))
2097
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 16 17 18 19 18 19 20 21 20 21 22 23 22 23) 65535)))
2098
- (vec_merge_high $I16X8 y y))
2099
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23) 65535)))
2100
- (vec_merge_high $I8X16 y y))
2101
-
2102
- ;; Special patterns that can be implemented via MERGE LOW.
2103
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31) 65535)))
2104
- (vec_merge_low $I64X2 x y))
2105
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 24 25 26 27 12 13 14 15 28 29 30 31) 65535)))
2106
- (vec_merge_low $I32X4 x y))
2107
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 24 25 10 11 26 27 12 13 28 29 14 15 30 31) 65535)))
2108
- (vec_merge_low $I16X8 x y))
2109
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 24 9 25 10 26 11 27 12 28 13 29 14 30 15 31) 65535)))
2110
- (vec_merge_low $I8X16 x y))
2111
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 28 29 30 31 8 9 10 11 12 13 14 15) 65535)))
2112
- (vec_merge_low $I64X2 y x))
2113
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 8 9 10 11 28 29 30 31 12 13 14 15) 65535)))
2114
- (vec_merge_low $I32X4 y x))
2115
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 8 9 26 27 10 11 28 29 12 13 30 31 14 15) 65535)))
2116
- (vec_merge_low $I16X8 y x))
2117
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 8 25 9 26 10 27 11 28 12 29 13 30 14 31 15) 65535)))
2118
- (vec_merge_low $I8X16 y x))
2119
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15) 65535)))
2120
- (vec_merge_low $I64X2 x x))
2121
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 8 9 10 11 12 13 14 15 12 13 14 15) 65535)))
2122
- (vec_merge_low $I32X4 x x))
2123
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 8 9 10 11 10 11 12 13 12 13 14 15 14 15) 65535)))
2124
- (vec_merge_low $I16X8 x x))
2125
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15) 65535)))
2126
- (vec_merge_low $I8X16 x x))
2127
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 28 29 30 31 24 25 26 27 28 29 30 31) 65535)))
2128
- (vec_merge_low $I64X2 y y))
2129
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 24 25 26 27 28 29 30 31 28 29 30 31) 65535)))
2130
- (vec_merge_low $I32X4 y y))
2131
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 24 25 26 27 26 27 28 29 28 29 30 31 30 31) 65535)))
2132
- (vec_merge_low $I16X8 y y))
2133
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31) 65535)))
2134
- (vec_merge_low $I8X16 y y))
2135
-
2136
- ;; Special patterns that can be implemented via PACK.
2137
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31) 65535)))
2138
- (vec_pack $I64X2 x y))
2139
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31) 65535)))
2140
- (vec_pack $I32X4 x y))
2141
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31) 65535)))
2142
- (vec_pack $I16X8 x y))
2143
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 20 21 22 23 28 29 30 31 4 5 6 7 12 13 14 15) 65535)))
2144
- (vec_pack $I64X2 y x))
2145
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 18 19 22 23 26 27 30 31 2 3 6 7 10 11 14 15) 65535)))
2146
- (vec_pack $I32X4 y x))
2147
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 17 19 21 23 25 27 29 31 1 3 5 7 9 11 13 15) 65535)))
2148
- (vec_pack $I16X8 y x))
2149
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 4 5 6 7 12 13 14 15 4 5 6 7 12 13 14 15) 65535)))
2150
- (vec_pack $I64X2 x x))
2151
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 2 3 6 7 10 11 14 15 2 3 6 7 10 11 14 15) 65535)))
2152
- (vec_pack $I32X4 x x))
2153
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 1 3 5 7 9 11 13 15 1 3 5 7 9 11 13 15) 65535)))
2154
- (vec_pack $I16X8 x x))
2155
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 20 21 22 23 28 29 30 31 20 21 22 23 28 29 30 31) 65535)))
2156
- (vec_pack $I64X2 y y))
2157
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 18 19 22 23 26 27 30 31 18 19 22 23 26 27 30 31) 65535)))
2158
- (vec_pack $I32X4 y y))
2159
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 17 19 21 23 25 27 29 31 17 19 21 23 25 27 29 31) 65535)))
2160
- (vec_pack $I16X8 y y))
2161
-
2162
- ;; Special patterns that can be implemented via UNPACK HIGH.
2163
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ _ _ 0 1 2 3 _ _ _ _ 4 5 6 7) 3855)))
2164
- (vec_unpacku_high $I32X4 x))
2165
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ 0 1 _ _ 2 3 _ _ 4 5 _ _ 6 7) 13107)))
2166
- (vec_unpacku_high $I16X8 x))
2167
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ 0 _ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7) 21845)))
2168
- (vec_unpacku_high $I8X16 x))
2169
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ _ _ 16 17 18 19 _ _ _ _ 20 21 22 23) 3855)))
2170
- (vec_unpacku_high $I32X4 y))
2171
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ 16 17 _ _ 18 19 _ _ 20 21 _ _ 22 23) 13107)))
2172
- (vec_unpacku_high $I16X8 y))
2173
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ 16 _ 17 _ 18 _ 19 _ 20 _ 21 _ 22 _ 23) 21845)))
2174
- (vec_unpacku_high $I8X16 y))
2175
-
2176
- ;; Special patterns that can be implemented via UNPACK LOW.
2177
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ _ _ 8 9 10 11 _ _ _ _ 12 13 14 15) 3855)))
2178
- (vec_unpacku_low $I32X4 x))
2179
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ 8 9 _ _ 10 11 _ _ 12 13 _ _ 14 15) 13107)))
2180
- (vec_unpacku_low $I16X8 x))
2181
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ 8 _ 9 _ 10 _ 11 _ 12 _ 13 _ 14 _ 15) 21845)))
2182
- (vec_unpacku_low $I8X16 x))
2183
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ _ _ 24 25 26 27 _ _ _ _ 28 29 30 31) 3855)))
2184
- (vec_unpacku_low $I32X4 y))
2185
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ 24 25 _ _ 26 27 _ _ 28 29 _ _ 30 31) 13107)))
2186
- (vec_unpacku_low $I16X8 y))
2187
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ 24 _ 25 _ 26 _ 27 _ 28 _ 29 _ 30 _ 31) 21845)))
2188
- (vec_unpacku_low $I8X16 y))
2189
-
2190
- ;; Special patterns that can be implemented via PERMUTE DOUBLEWORD IMMEDIATE.
2191
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31) 65535)))
2192
- (vec_permute_dw_imm $I8X16 x 0 y 1))
2193
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23) 65535)))
2194
- (vec_permute_dw_imm $I8X16 x 1 y 0))
2195
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 20 21 22 23 8 9 10 11 12 13 14 15) 65535)))
2196
- (vec_permute_dw_imm $I8X16 y 0 x 1))
2197
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7) 65535)))
2198
- (vec_permute_dw_imm $I8X16 y 1 x 0))
2199
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) 65535)))
2200
- (vec_permute_dw_imm $I8X16 x 0 x 1))
2201
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7) 65535)))
2202
- (vec_permute_dw_imm $I8X16 x 1 x 0))
2203
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) 65535)))
2204
- (vec_permute_dw_imm $I8X16 y 0 y 1))
2205
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 28 29 30 31 16 17 18 19 20 21 22 23) 65535)))
2206
- (vec_permute_dw_imm $I8X16 y 1 y 0))
2207
-
2208
-
2209
- ;;;; Rules for `swizzle` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2210
-
2211
- ;; When using big-endian lane order, the lane mask is mostly correct, but we
2212
- ;; need to handle mask elements outside the range 0..15 by zeroing the lane.
2213
- ;;
2214
- ;; To do so efficiently, we compute:
2215
- ;; permute-lane-element := umin (16, swizzle-lane-element)
2216
- ;; and pass a zero vector as second operand to the permute instruction.
2217
-
2218
- (rule 1 (lower (has_type (ty_vec128 ty) (swizzle x y)))
2219
- (if-let (LaneOrder.BigEndian) (lane_order))
2220
- (vec_permute ty x (vec_imm ty 0)
2221
- (vec_umin $I8X16 (vec_imm_splat $I8X16 16) y)))
2222
-
2223
- ;; When using little-endian lane order, in addition to zeroing (as above),
2224
- ;; we need to convert from little-endian to big-endian lane numbering.
2225
- ;;
2226
- ;; To do so efficiently, we compute:
2227
- ;; permute-lane-element := umax (239, ~ swizzle-lane-element)
2228
- ;; which has the following effect:
2229
- ;; elements 0 .. 15 --> 255 .. 240 (i.e. 31 .. 16 mod 32)
2230
- ;; everything else --> 239 (i.e. 15 mod 32)
2231
- ;;
2232
- ;; Then, we can use a single permute instruction with
2233
- ;; a zero vector as first operand (covering lane 15)
2234
- ;; the input vector as second operand (covering lanes 16 .. 31)
2235
- ;; to implement the required swizzle semantics.
2236
-
2237
- (rule (lower (has_type (ty_vec128 ty) (swizzle x y)))
2238
- (if-let (LaneOrder.LittleEndian) (lane_order))
2239
- (vec_permute ty (vec_imm ty 0) x
2240
- (vec_umax $I8X16 (vec_imm_splat $I8X16 239)
2241
- (vec_not $I8X16 y))))
2242
-
2243
-
2244
- ;;;; Rules for `stack_addr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2245
-
2246
- ;; Load the address of a stack slot.
2247
- (rule (lower (has_type ty (stack_addr stack_slot offset)))
2248
- (stack_addr_impl ty stack_slot offset))
2249
-
2250
-
2251
- ;;;; Rules for `func_addr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2252
-
2253
- ;; Load the address of a function, target reachable via PC-relative instruction.
2254
- (rule 1 (lower (func_addr (func_ref_data _ name (reloc_distance_near))))
2255
- (load_addr (memarg_symbol name 0 (memflags_trusted))))
2256
-
2257
- ;; Load the address of a function, general case.
2258
- (rule (lower (func_addr (func_ref_data _ name _)))
2259
- (load_symbol_reloc (SymbolReloc.Absolute name 0)))
2260
-
2261
-
2262
- ;;;; Rules for `symbol_value` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2263
-
2264
- ;; Load the address of a symbol, target reachable via PC-relative instruction.
2265
- (rule 1 (lower (symbol_value (symbol_value_data name (reloc_distance_near)
2266
- off)))
2267
- (if-let offset (memarg_symbol_offset off))
2268
- (load_addr (memarg_symbol name offset (memflags_trusted))))
2269
-
2270
- ;; Load the address of a symbol, general case.
2271
- (rule (lower (symbol_value (symbol_value_data name _ offset)))
2272
- (load_symbol_reloc (SymbolReloc.Absolute name offset)))
2273
-
2274
-
2275
- ;;;; Rules for `tls_value` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2276
-
2277
- ;; Load the address of a TLS symbol (ELF general-dynamic model).
2278
- (rule (lower (tls_value (symbol_value_data name _ 0)))
2279
- (if (tls_model_is_elf_gd))
2280
- (let ((symbol SymbolReloc (SymbolReloc.TlsGd name))
2281
- (got Reg (load_addr (memarg_got)))
2282
- (got_offset Reg (load_symbol_reloc symbol))
2283
- (tls_offset Reg (lib_call_tls_get_offset got got_offset symbol)))
2284
- (add_reg $I64 tls_offset (thread_pointer))))
2285
-
2286
- ;; Helper to perform a call to the __tls_get_offset library routine.
2287
- (decl lib_call_tls_get_offset (Reg Reg SymbolReloc) Reg)
2288
- (rule (lib_call_tls_get_offset got got_offset symbol)
2289
- (let ((tls_offset WritableReg (temp_writable_reg $I64))
2290
- (libcall LibCallInfo (lib_call_info_tls_get_offset tls_offset got got_offset symbol))
2291
- (_ Unit (lib_accumulate_outgoing_args_size libcall))
2292
- (_ InstOutput (side_effect (lib_call libcall))))
2293
- tls_offset))
2294
-
2295
- ;; Helper to extract the current thread pointer from %a0/%a1.
2296
- (decl thread_pointer () Reg)
2297
- (rule (thread_pointer)
2298
- (insert_ar (lshl_imm $I64 (load_ar 0) 32) 1))
2299
-
2300
-
2301
- ;;;; Rules for `load` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2302
-
2303
- ;; Load 8-bit integers.
2304
- (rule (lower (has_type $I8 (load flags addr offset)))
2305
- (zext32_mem $I8 (lower_address flags addr offset)))
2306
-
2307
- ;; Load 16-bit big-endian integers.
2308
- (rule (lower (has_type $I16 (load flags @ (bigendian) addr offset)))
2309
- (zext32_mem $I16 (lower_address flags addr offset)))
2310
-
2311
- ;; Load 16-bit little-endian integers.
2312
- (rule -1 (lower (has_type $I16 (load flags @ (littleendian) addr offset)))
2313
- (loadrev16 (lower_address flags addr offset)))
2314
-
2315
- ;; Load 32-bit big-endian integers.
2316
- (rule (lower (has_type $I32 (load flags @ (bigendian) addr offset)))
2317
- (load32 (lower_address flags addr offset)))
2318
-
2319
- ;; Load 32-bit little-endian integers.
2320
- (rule -1 (lower (has_type $I32 (load flags @ (littleendian) addr offset)))
2321
- (loadrev32 (lower_address flags addr offset)))
2322
-
2323
- ;; Load 64-bit big-endian integers.
2324
- (rule (lower (has_type $I64 (load flags @ (bigendian) addr offset)))
2325
- (load64 (lower_address flags addr offset)))
2326
-
2327
- ;; Load 64-bit little-endian integers.
2328
- (rule -1 (lower (has_type $I64 (load flags @ (littleendian) addr offset)))
2329
- (loadrev64 (lower_address flags addr offset)))
2330
-
2331
- ;; Load 64-bit big-endian references.
2332
- (rule (lower (has_type $R64 (load flags @ (bigendian) addr offset)))
2333
- (load64 (lower_address flags addr offset)))
2334
-
2335
- ;; Load 64-bit little-endian references.
2336
- (rule -1 (lower (has_type $R64 (load flags @ (littleendian) addr offset)))
2337
- (loadrev64 (lower_address flags addr offset)))
2338
-
2339
- ;; Load 32-bit big-endian floating-point values (as vector lane).
2340
- (rule (lower (has_type $F32 (load flags @ (bigendian) addr offset)))
2341
- (vec_load_lane_undef $F32X4 (lower_address flags addr offset) 0))
2342
-
2343
- ;; Load 32-bit little-endian floating-point values (as vector lane).
2344
- (rule -1 (lower (has_type $F32 (load flags @ (littleendian) addr offset)))
2345
- (vec_load_lane_little_undef $F32X4 (lower_address flags addr offset) 0))
2346
-
2347
- ;; Load 64-bit big-endian floating-point values (as vector lane).
2348
- (rule (lower (has_type $F64 (load flags @ (bigendian) addr offset)))
2349
- (vec_load_lane_undef $F64X2 (lower_address flags addr offset) 0))
2350
-
2351
- ;; Load 64-bit little-endian floating-point values (as vector lane).
2352
- (rule -1 (lower (has_type $F64 (load flags @ (littleendian) addr offset)))
2353
- (vec_load_lane_little_undef $F64X2 (lower_address flags addr offset) 0))
2354
-
2355
- ;; Load 128-bit big-endian vector values, BE lane order - direct load.
2356
- (rule 4 (lower (has_type (vr128_ty ty) (load flags @ (bigendian) addr offset)))
2357
- (if-let (LaneOrder.BigEndian) (lane_order))
2358
- (vec_load ty (lower_address flags addr offset)))
2359
-
2360
- ;; Load 128-bit little-endian vector values, BE lane order - byte-reversed load.
2361
- (rule 3 (lower (has_type (vr128_ty ty) (load flags @ (littleendian) addr offset)))
2362
- (if-let (LaneOrder.BigEndian) (lane_order))
2363
- (vec_load_byte_rev ty flags addr offset))
2364
-
2365
- ;; Load 128-bit big-endian vector values, LE lane order - element-reversed load.
2366
- (rule 2 (lower (has_type (vr128_ty ty) (load flags @ (bigendian) addr offset)))
2367
- (if-let (LaneOrder.LittleEndian) (lane_order))
2368
- (vec_load_elt_rev ty flags addr offset))
2369
-
2370
- ;; Load 128-bit little-endian vector values, LE lane order - fully-reversed load.
2371
- (rule 1 (lower (has_type (vr128_ty ty) (load flags @ (littleendian) addr offset)))
2372
- (if-let (LaneOrder.LittleEndian) (lane_order))
2373
- (vec_load_full_rev ty flags addr offset))
2374
-
2375
-
2376
- ;; Helper to perform a 128-bit full-vector byte-reversed load.
2377
- (decl vec_load_full_rev (Type MemFlags Value Offset32) Reg)
2378
-
2379
- ;; Full-vector byte-reversed load via single instruction on z15.
2380
- (rule 1 (vec_load_full_rev (and (vxrs_ext2_enabled) (vr128_ty ty)) flags addr offset)
2381
- (vec_loadrev ty (lower_address flags addr offset)))
2382
-
2383
- ;; Full-vector byte-reversed load via GPRs on z14.
2384
- (rule (vec_load_full_rev (and (vxrs_ext2_disabled) (vr128_ty ty)) flags addr offset)
2385
- (let ((lo_addr MemArg (lower_address_bias flags addr offset 0))
2386
- (hi_addr MemArg (lower_address_bias flags addr offset 8))
2387
- (lo_val Reg (loadrev64 lo_addr))
2388
- (hi_val Reg (loadrev64 hi_addr)))
2389
- (mov_to_vec128 ty hi_val lo_val)))
2390
-
2391
-
2392
- ;; Helper to perform an element-wise byte-reversed load.
2393
- (decl vec_load_byte_rev (Type MemFlags Value Offset32) Reg)
2394
-
2395
- ;; Element-wise byte-reversed 1x128-bit load is a full byte-reversed load.
2396
- (rule -1 (vec_load_byte_rev $I128 flags addr offset)
2397
- (vec_load_full_rev $I128 flags addr offset))
2398
-
2399
- ;; Element-wise byte-reversed 16x8-bit load is a direct load.
2400
- (rule (vec_load_byte_rev ty @ (multi_lane 8 16) flags addr offset)
2401
- (vec_load ty (lower_address flags addr offset)))
2402
-
2403
- ;; Element-wise byte-reversed load via single instruction on z15.
2404
- (rule 1 (vec_load_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 64 2))
2405
- flags addr offset)
2406
- (vec_load_byte64rev ty (lower_address flags addr offset)))
2407
- (rule 1 (vec_load_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 32 4))
2408
- flags addr offset)
2409
- (vec_load_byte32rev ty (lower_address flags addr offset)))
2410
- (rule 1 (vec_load_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 16 8))
2411
- flags addr offset)
2412
- (vec_load_byte16rev ty (lower_address flags addr offset)))
2413
-
2414
- ;; Element-wise byte-reversed load as element-swapped byte-reversed load on z14.
2415
- (rule (vec_load_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 64 2))
2416
- flags addr offset)
2417
- (vec_elt_rev ty (vec_load_full_rev ty flags addr offset)))
2418
- (rule (vec_load_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 32 4))
2419
- flags addr offset)
2420
- (vec_elt_rev ty (vec_load_full_rev ty flags addr offset)))
2421
- (rule (vec_load_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 16 8))
2422
- flags addr offset)
2423
- (vec_elt_rev ty (vec_load_full_rev ty flags addr offset)))
2424
-
2425
-
2426
- ;; Helper to perform an element-reversed load.
2427
- (decl vec_load_elt_rev (Type MemFlags Value Offset32) Reg)
2428
-
2429
- ;; Element-reversed 1x128-bit load is a direct load.
2430
- ;; For 1x128-bit types, this is a direct load.
2431
- (rule -1 (vec_load_elt_rev $I128 flags addr offset)
2432
- (vec_load $I128 (lower_address flags addr offset)))
2433
-
2434
- ;; Element-reversed 16x8-bit load is a full byte-reversed load.
2435
- (rule (vec_load_elt_rev ty @ (multi_lane 8 16) flags addr offset)
2436
- (vec_load_full_rev ty flags addr offset))
2437
-
2438
- ;; Element-reversed load via single instruction on z15.
2439
- (rule 1 (vec_load_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 64 2))
2440
- flags addr offset)
2441
- (vec_load_elt64rev ty (lower_address flags addr offset)))
2442
- (rule 1 (vec_load_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 32 4))
2443
- flags addr offset)
2444
- (vec_load_elt32rev ty (lower_address flags addr offset)))
2445
- (rule 1 (vec_load_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 16 8))
2446
- flags addr offset)
2447
- (vec_load_elt16rev ty (lower_address flags addr offset)))
2448
-
2449
- ;; Element-reversed load as element-swapped direct load on z14.
2450
- (rule (vec_load_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 64 2))
2451
- flags addr offset)
2452
- (vec_elt_rev ty (vec_load ty (lower_address flags addr offset))))
2453
- (rule (vec_load_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 32 4))
2454
- flags addr offset)
2455
- (vec_elt_rev ty (vec_load ty (lower_address flags addr offset))))
2456
- (rule (vec_load_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 16 8))
2457
- flags addr offset)
2458
- (vec_elt_rev ty (vec_load ty (lower_address flags addr offset))))
2459
-
2460
-
2461
- ;;;; Rules for `uload8` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2462
-
2463
- ;; 16- or 32-bit target types.
2464
- (rule (lower (has_type (gpr32_ty _ty) (uload8 flags addr offset)))
2465
- (zext32_mem $I8 (lower_address flags addr offset)))
2466
-
2467
- ;; 64-bit target types.
2468
- (rule 1 (lower (has_type (gpr64_ty _ty) (uload8 flags addr offset)))
2469
- (zext64_mem $I8 (lower_address flags addr offset)))
2470
-
2471
-
2472
- ;;;; Rules for `sload8` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2473
-
2474
- ;; 16- or 32-bit target types.
2475
- (rule (lower (has_type (gpr32_ty _ty) (sload8 flags addr offset)))
2476
- (sext32_mem $I8 (lower_address flags addr offset)))
2477
-
2478
- ;; 64-bit target types.
2479
- (rule 1 (lower (has_type (gpr64_ty _ty) (sload8 flags addr offset)))
2480
- (sext64_mem $I8 (lower_address flags addr offset)))
2481
-
2482
-
2483
- ;;;; Rules for `uload16` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2484
-
2485
- ;; 32-bit target type, big-endian source value.
2486
- (rule 3 (lower (has_type (gpr32_ty _ty)
2487
- (uload16 flags @ (bigendian) addr offset)))
2488
- (zext32_mem $I16 (lower_address flags addr offset)))
2489
-
2490
- ;; 32-bit target type, little-endian source value (via explicit extension).
2491
- (rule 1 (lower (has_type (gpr32_ty _ty)
2492
- (uload16 flags @ (littleendian) addr offset)))
2493
- (let ((reg16 Reg (loadrev16 (lower_address flags addr offset))))
2494
- (zext32_reg $I16 reg16)))
2495
-
2496
- ;; 64-bit target type, big-endian source value.
2497
- (rule 4 (lower (has_type (gpr64_ty _ty)
2498
- (uload16 flags @ (bigendian) addr offset)))
2499
- (zext64_mem $I16 (lower_address flags addr offset)))
2500
-
2501
- ;; 64-bit target type, little-endian source value (via explicit extension).
2502
- (rule 2 (lower (has_type (gpr64_ty _ty)
2503
- (uload16 flags @ (littleendian) addr offset)))
2504
- (let ((reg16 Reg (loadrev16 (lower_address flags addr offset))))
2505
- (zext64_reg $I16 reg16)))
2506
-
2507
-
2508
- ;;;; Rules for `sload16` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2509
-
2510
- ;; 32-bit target type, big-endian source value.
2511
- (rule 2 (lower (has_type (gpr32_ty _ty)
2512
- (sload16 flags @ (bigendian) addr offset)))
2513
- (sext32_mem $I16 (lower_address flags addr offset)))
2514
-
2515
- ;; 32-bit target type, little-endian source value (via explicit extension).
2516
- (rule 0 (lower (has_type (gpr32_ty _ty)
2517
- (sload16 flags @ (littleendian) addr offset)))
2518
- (let ((reg16 Reg (loadrev16 (lower_address flags addr offset))))
2519
- (sext32_reg $I16 reg16)))
2520
-
2521
- ;; 64-bit target type, big-endian source value.
2522
- (rule 3 (lower (has_type (gpr64_ty _ty)
2523
- (sload16 flags @ (bigendian) addr offset)))
2524
- (sext64_mem $I16 (lower_address flags addr offset)))
2525
-
2526
- ;; 64-bit target type, little-endian source value (via explicit extension).
2527
- (rule 1 (lower (has_type (gpr64_ty _ty)
2528
- (sload16 flags @ (littleendian) addr offset)))
2529
- (let ((reg16 Reg (loadrev16 (lower_address flags addr offset))))
2530
- (sext64_reg $I16 reg16)))
2531
-
2532
-
2533
- ;;;; Rules for `uload32` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2534
-
2535
- ;; 64-bit target type, big-endian source value.
2536
- (rule 1 (lower (has_type (gpr64_ty _ty)
2537
- (uload32 flags @ (bigendian) addr offset)))
2538
- (zext64_mem $I32 (lower_address flags addr offset)))
2539
-
2540
- ;; 64-bit target type, little-endian source value (via explicit extension).
2541
- (rule (lower (has_type (gpr64_ty _ty)
2542
- (uload32 flags @ (littleendian) addr offset)))
2543
- (let ((reg32 Reg (loadrev32 (lower_address flags addr offset))))
2544
- (zext64_reg $I32 reg32)))
2545
-
2546
-
2547
- ;;;; Rules for `sload32` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2548
-
2549
- ;; 64-bit target type, big-endian source value.
2550
- (rule 1 (lower (has_type (gpr64_ty _ty)
2551
- (sload32 flags @ (bigendian) addr offset)))
2552
- (sext64_mem $I32 (lower_address flags addr offset)))
2553
-
2554
- ;; 64-bit target type, little-endian source value (via explicit extension).
2555
- (rule (lower (has_type (gpr64_ty _ty)
2556
- (sload32 flags @ (littleendian) addr offset)))
2557
- (let ((reg32 Reg (loadrev32 (lower_address flags addr offset))))
2558
- (sext64_reg $I32 reg32)))
2559
-
2560
-
2561
- ;;;; Rules for `uloadNxM` and `sloadNxM` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2562
-
2563
- ;; Unsigned 8->16 bit extension.
2564
- (rule (lower (has_type $I16X8 (uload8x8 flags addr offset)))
2565
- (vec_unpacku_high $I8X16 (load_v64 $I8X16 flags addr offset)))
2566
-
2567
- ;; Signed 8->16 bit extension.
2568
- (rule (lower (has_type $I16X8 (sload8x8 flags addr offset)))
2569
- (vec_unpacks_high $I8X16 (load_v64 $I8X16 flags addr offset)))
2570
-
2571
- ;; Unsigned 16->32 bit extension.
2572
- (rule (lower (has_type $I32X4 (uload16x4 flags addr offset)))
2573
- (vec_unpacku_high $I16X8 (load_v64 $I16X8 flags addr offset)))
2574
-
2575
- ;; Signed 16->32 bit extension.
2576
- (rule (lower (has_type $I32X4 (sload16x4 flags addr offset)))
2577
- (vec_unpacks_high $I16X8 (load_v64 $I16X8 flags addr offset)))
2578
-
2579
- ;; Unsigned 32->64 bit extension.
2580
- (rule (lower (has_type $I64X2 (uload32x2 flags addr offset)))
2581
- (vec_unpacku_high $I32X4 (load_v64 $I32X4 flags addr offset)))
2582
-
2583
- ;; Signed 32->64 bit extension.
2584
- (rule (lower (has_type $I64X2 (sload32x2 flags addr offset)))
2585
- (vec_unpacks_high $I32X4 (load_v64 $I32X4 flags addr offset)))
2586
-
2587
-
2588
- ;; Helper to load a 64-bit half-size vector from memory.
2589
- (decl load_v64 (Type MemFlags Value Offset32) Reg)
2590
-
2591
- ;; Any big-endian source value, BE lane order.
2592
- (rule -1 (load_v64 _ flags @ (bigendian) addr offset)
2593
- (if-let (LaneOrder.BigEndian) (lane_order))
2594
- (vec_load_lane_undef $I64X2 (lower_address flags addr offset) 0))
2595
-
2596
- ;; Any little-endian source value, LE lane order.
2597
- (rule -2 (load_v64 _ flags @ (littleendian) addr offset)
2598
- (if-let (LaneOrder.LittleEndian) (lane_order))
2599
- (vec_load_lane_little_undef $I64X2 (lower_address flags addr offset) 0))
2600
-
2601
- ;; Big-endian or little-endian 8x8-bit source value, BE lane order.
2602
- (rule (load_v64 (multi_lane 8 16) flags addr offset)
2603
- (if-let (LaneOrder.BigEndian) (lane_order))
2604
- (vec_load_lane_undef $I64X2 (lower_address flags addr offset) 0))
2605
-
2606
- ;; Big-endian or little-endian 8x8-bit source value, LE lane order.
2607
- (rule 1 (load_v64 (multi_lane 8 16) flags addr offset)
2608
- (if-let (LaneOrder.LittleEndian) (lane_order))
2609
- (vec_load_lane_little_undef $I64X2 (lower_address flags addr offset) 0))
2610
-
2611
- ;; Little-endian 4x16-bit source value, BE lane order.
2612
- (rule (load_v64 (multi_lane 16 8) flags @ (littleendian) addr offset)
2613
- (if-let (LaneOrder.BigEndian) (lane_order))
2614
- (vec_rot_imm $I16X8
2615
- (vec_load_lane_undef $I64X2 (lower_address flags addr offset) 0) 8))
2616
-
2617
- ;; Big-endian 4x16-bit source value, LE lane order.
2618
- (rule 1 (load_v64 (multi_lane 16 8) flags @ (bigendian) addr offset)
2619
- (if-let (LaneOrder.LittleEndian) (lane_order))
2620
- (vec_rot_imm $I16X8
2621
- (vec_load_lane_little_undef $I64X2 (lower_address flags addr offset) 0) 8))
2622
-
2623
- ;; Little-endian 2x32-bit source value, BE lane order.
2624
- (rule (load_v64 (multi_lane 32 4) flags @ (littleendian) addr offset)
2625
- (if-let (LaneOrder.BigEndian) (lane_order))
2626
- (vec_rot_imm $I64X2
2627
- (vec_load_lane_little_undef $I64X2 (lower_address flags addr offset) 0) 32))
2628
-
2629
- ;; Big-endian 2x32-bit source value, LE lane order.
2630
- (rule 1 (load_v64 (multi_lane 32 4) flags @ (bigendian) addr offset)
2631
- (if-let (LaneOrder.LittleEndian) (lane_order))
2632
- (vec_rot_imm $I64X2
2633
- (vec_load_lane_undef $I64X2 (lower_address flags addr offset) 0) 32))
2634
-
2635
-
2636
- ;;;; Rules for `store` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2637
-
2638
- ;; The actual store logic for integer types is identical for the `store`,
2639
- ;; `istoreNN`, and `atomic_store` instructions, so we share common helpers.
2640
-
2641
- ;; Store 8-bit integer type, main lowering entry point.
2642
- (rule (lower (store flags val @ (value_type $I8) addr offset))
2643
- (side_effect (istore8_impl flags val addr offset)))
2644
-
2645
- ;; Store 16-bit integer type, main lowering entry point.
2646
- (rule (lower (store flags val @ (value_type $I16) addr offset))
2647
- (side_effect (istore16_impl flags val addr offset)))
2648
-
2649
- ;; Store 32-bit integer type, main lowering entry point.
2650
- (rule (lower (store flags val @ (value_type $I32) addr offset))
2651
- (side_effect (istore32_impl flags val addr offset)))
2652
-
2653
- ;; Store 64-bit integer type, main lowering entry point.
2654
- (rule (lower (store flags val @ (value_type $I64) addr offset))
2655
- (side_effect (istore64_impl flags val addr offset)))
2656
-
2657
- ;; Store 64-bit reference type, main lowering entry point.
2658
- (rule (lower (store flags val @ (value_type $R64) addr offset))
2659
- (side_effect (istore64_impl flags val addr offset)))
2660
-
2661
- ;; Store 32-bit big-endian floating-point type (as vector lane).
2662
- (rule -1 (lower (store flags @ (bigendian)
2663
- val @ (value_type $F32) addr offset))
2664
- (side_effect (vec_store_lane $F32X4 val
2665
- (lower_address flags addr offset) 0)))
2666
-
2667
- ;; Store 32-bit little-endian floating-point type (as vector lane).
2668
- (rule (lower (store flags @ (littleendian)
2669
- val @ (value_type $F32) addr offset))
2670
- (side_effect (vec_store_lane_little $F32X4 val
2671
- (lower_address flags addr offset) 0)))
2672
-
2673
- ;; Store 64-bit big-endian floating-point type (as vector lane).
2674
- (rule -1 (lower (store flags @ (bigendian)
2675
- val @ (value_type $F64) addr offset))
2676
- (side_effect (vec_store_lane $F64X2 val
2677
- (lower_address flags addr offset) 0)))
2678
-
2679
- ;; Store 64-bit little-endian floating-point type (as vector lane).
2680
- (rule (lower (store flags @ (littleendian)
2681
- val @ (value_type $F64) addr offset))
2682
- (side_effect (vec_store_lane_little $F64X2 val
2683
- (lower_address flags addr offset) 0)))
2684
-
2685
- ;; Store 128-bit big-endian vector type, BE lane order - direct store.
2686
- (rule 4 (lower (store flags @ (bigendian)
2687
- val @ (value_type (vr128_ty ty)) addr offset))
2688
- (if-let (LaneOrder.BigEndian) (lane_order))
2689
- (side_effect (vec_store val (lower_address flags addr offset))))
2690
-
2691
- ;; Store 128-bit little-endian vector type, BE lane order - byte-reversed store.
2692
- (rule 3 (lower (store flags @ (littleendian)
2693
- val @ (value_type (vr128_ty ty)) addr offset))
2694
- (if-let (LaneOrder.BigEndian) (lane_order))
2695
- (side_effect (vec_store_byte_rev ty val flags addr offset)))
2696
-
2697
- ;; Store 128-bit big-endian vector type, LE lane order - element-reversed store.
2698
- (rule 2 (lower (store flags @ (bigendian)
2699
- val @ (value_type (vr128_ty ty)) addr offset))
2700
- (if-let (LaneOrder.LittleEndian) (lane_order))
2701
- (side_effect (vec_store_elt_rev ty val flags addr offset)))
2702
-
2703
- ;; Store 128-bit little-endian vector type, LE lane order - fully-reversed store.
2704
- (rule 1 (lower (store flags @ (littleendian)
2705
- val @ (value_type (vr128_ty ty)) addr offset))
2706
- (if-let (LaneOrder.LittleEndian) (lane_order))
2707
- (side_effect (vec_store_full_rev ty val flags addr offset)))
2708
-
2709
-
2710
- ;; Helper to perform a 128-bit full-vector byte-reversed store.
2711
- (decl vec_store_full_rev (Type Reg MemFlags Value Offset32) SideEffectNoResult)
2712
-
2713
- ;; Full-vector byte-reversed store via single instruction on z15.
2714
- (rule 1 (vec_store_full_rev (vxrs_ext2_enabled) val flags addr offset)
2715
- (vec_storerev val (lower_address flags addr offset)))
2716
-
2717
- ;; Full-vector byte-reversed store via GPRs on z14.
2718
- (rule (vec_store_full_rev (vxrs_ext2_disabled) val flags addr offset)
2719
- (let ((lo_addr MemArg (lower_address_bias flags addr offset 0))
2720
- (hi_addr MemArg (lower_address_bias flags addr offset 8))
2721
- (lo_val Reg (vec_extract_lane $I64X2 val 1 (zero_reg)))
2722
- (hi_val Reg (vec_extract_lane $I64X2 val 0 (zero_reg))))
2723
- (side_effect_concat (storerev64 lo_val lo_addr)
2724
- (storerev64 hi_val hi_addr))))
2725
-
2726
-
2727
- ;; Helper to perform an element-wise byte-reversed store.
2728
- (decl vec_store_byte_rev (Type Reg MemFlags Value Offset32) SideEffectNoResult)
2729
-
2730
- ;; Element-wise byte-reversed 1x128-bit store is a full byte-reversed store.
2731
- (rule -1 (vec_store_byte_rev $I128 val flags addr offset)
2732
- (vec_store_full_rev $I128 val flags addr offset))
2733
-
2734
- ;; Element-wise byte-reversed 16x8-bit store is a direct store.
2735
- (rule (vec_store_byte_rev (multi_lane 8 16) val flags addr offset)
2736
- (vec_store val (lower_address flags addr offset)))
2737
-
2738
- ;; Element-wise byte-reversed store via single instruction on z15.
2739
- (rule 1 (vec_store_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 64 2))
2740
- val flags addr offset)
2741
- (vec_store_byte64rev val (lower_address flags addr offset)))
2742
- (rule 1 (vec_store_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 32 4))
2743
- val flags addr offset)
2744
- (vec_store_byte32rev val (lower_address flags addr offset)))
2745
- (rule 1 (vec_store_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 16 8))
2746
- val flags addr offset)
2747
- (vec_store_byte16rev val (lower_address flags addr offset)))
2748
-
2749
- ;; Element-wise byte-reversed load as element-swapped byte-reversed store on z14.
2750
- (rule (vec_store_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 64 2))
2751
- val flags addr offset)
2752
- (vec_store_full_rev ty (vec_elt_rev ty val) flags addr offset))
2753
- (rule (vec_store_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 32 4))
2754
- val flags addr offset)
2755
- (vec_store_full_rev ty (vec_elt_rev ty val) flags addr offset))
2756
- (rule (vec_store_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 16 8))
2757
- val flags addr offset)
2758
- (vec_store_full_rev ty (vec_elt_rev ty val) flags addr offset))
2759
-
2760
-
2761
- ;; Helper to perform an element-reversed store.
2762
- (decl vec_store_elt_rev (Type Reg MemFlags Value Offset32) SideEffectNoResult)
2763
-
2764
- ;; Element-reversed 1x128-bit store is a direct store.
2765
- (rule -1 (vec_store_elt_rev $I128 val flags addr offset)
2766
- (vec_store val (lower_address flags addr offset)))
2767
-
2768
- ;; Element-reversed 16x8-bit store is a full byte-reversed store.
2769
- (rule (vec_store_elt_rev ty @ (multi_lane 8 16) val flags addr offset)
2770
- (vec_store_full_rev ty val flags addr offset))
2771
-
2772
- ;; Element-reversed store via single instruction on z15.
2773
- (rule 1 (vec_store_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 64 2))
2774
- val flags addr offset)
2775
- (vec_store_elt64rev val (lower_address flags addr offset)))
2776
- (rule 1 (vec_store_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 32 4))
2777
- val flags addr offset)
2778
- (vec_store_elt32rev val (lower_address flags addr offset)))
2779
- (rule 1 (vec_store_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 16 8))
2780
- val flags addr offset)
2781
- (vec_store_elt16rev val (lower_address flags addr offset)))
2782
-
2783
- ;; Element-reversed store as element-swapped direct store on z14.
2784
- (rule (vec_store_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 64 2))
2785
- val flags addr offset)
2786
- (vec_store (vec_elt_rev ty val) (lower_address flags addr offset)))
2787
- (rule (vec_store_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 32 4))
2788
- val flags addr offset)
2789
- (vec_store (vec_elt_rev ty val) (lower_address flags addr offset)))
2790
- (rule (vec_store_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 16 8))
2791
- val flags addr offset)
2792
- (vec_store (vec_elt_rev ty val) (lower_address flags addr offset)))
2793
-
2794
-
2795
- ;;;; Rules for 8-bit integer stores ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2796
-
2797
- ;; Main `istore8` lowering entry point, dispatching to the helper.
2798
- (rule (lower (istore8 flags val addr offset))
2799
- (side_effect (istore8_impl flags val addr offset)))
2800
-
2801
- ;; Helper to store 8-bit integer types.
2802
- (decl istore8_impl (MemFlags Value Value Offset32) SideEffectNoResult)
2803
-
2804
- ;; Store 8-bit integer types, register input.
2805
- (rule (istore8_impl flags val addr offset)
2806
- (store8 (put_in_reg val) (lower_address flags addr offset)))
2807
-
2808
- ;; Store 8-bit integer types, immediate input.
2809
- (rule 1 (istore8_impl flags (u8_from_value imm) addr offset)
2810
- (store8_imm imm (lower_address flags addr offset)))
2811
-
2812
-
2813
- ;;;; Rules for 16-bit integer stores ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2814
-
2815
- ;; Main `istore16` lowering entry point, dispatching to the helper.
2816
- (rule (lower (istore16 flags val addr offset))
2817
- (side_effect (istore16_impl flags val addr offset)))
2818
-
2819
- ;; Helper to store 16-bit integer types.
2820
- (decl istore16_impl (MemFlags Value Value Offset32) SideEffectNoResult)
2821
-
2822
- ;; Store 16-bit big-endian integer types, register input.
2823
- (rule 2 (istore16_impl flags @ (bigendian) val addr offset)
2824
- (store16 (put_in_reg val) (lower_address flags addr offset)))
2825
-
2826
- ;; Store 16-bit little-endian integer types, register input.
2827
- (rule 0 (istore16_impl flags @ (littleendian) val addr offset)
2828
- (storerev16 (put_in_reg val) (lower_address flags addr offset)))
2829
-
2830
- ;; Store 16-bit big-endian integer types, immediate input.
2831
- (rule 3 (istore16_impl flags @ (bigendian) (i16_from_value imm) addr offset)
2832
- (store16_imm imm (lower_address flags addr offset)))
2833
-
2834
- ;; Store 16-bit little-endian integer types, immediate input.
2835
- (rule 1 (istore16_impl flags @ (littleendian) (i16_from_swapped_value imm) addr offset)
2836
- (store16_imm imm (lower_address flags addr offset)))
2837
-
2838
-
2839
- ;;;; Rules for 32-bit integer stores ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2840
-
2841
- ;; Main `istore32` lowering entry point, dispatching to the helper.
2842
- (rule (lower (istore32 flags val addr offset))
2843
- (side_effect (istore32_impl flags val addr offset)))
2844
-
2845
- ;; Helper to store 32-bit integer types.
2846
- (decl istore32_impl (MemFlags Value Value Offset32) SideEffectNoResult)
2847
-
2848
- ;; Store 32-bit big-endian integer types, register input.
2849
- (rule 1 (istore32_impl flags @ (bigendian) val addr offset)
2850
- (store32 (put_in_reg val) (lower_address flags addr offset)))
2851
-
2852
- ;; Store 32-bit big-endian integer types, immediate input.
2853
- (rule 2 (istore32_impl flags @ (bigendian) (i16_from_value imm) addr offset)
2854
- (store32_simm16 imm (lower_address flags addr offset)))
2855
-
2856
- ;; Store 32-bit little-endian integer types.
2857
- (rule 0 (istore32_impl flags @ (littleendian) val addr offset)
2858
- (storerev32 (put_in_reg val) (lower_address flags addr offset)))
2859
-
2860
-
2861
- ;;;; Rules for 64-bit integer stores ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2862
-
2863
- ;; Helper to store 64-bit integer types.
2864
- (decl istore64_impl (MemFlags Value Value Offset32) SideEffectNoResult)
2865
-
2866
- ;; Store 64-bit big-endian integer types, register input.
2867
- (rule 1 (istore64_impl flags @ (bigendian) val addr offset)
2868
- (store64 (put_in_reg val) (lower_address flags addr offset)))
2869
-
2870
- ;; Store 64-bit big-endian integer types, immediate input.
2871
- (rule 2 (istore64_impl flags @ (bigendian) (i16_from_value imm) addr offset)
2872
- (store64_simm16 imm (lower_address flags addr offset)))
2873
-
2874
- ;; Store 64-bit little-endian integer types.
2875
- (rule 0 (istore64_impl flags @ (littleendian) val addr offset)
2876
- (storerev64 (put_in_reg val) (lower_address flags addr offset)))
2877
-
2878
-
2879
- ;;;; Rules for `atomic_rmw` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2880
-
2881
- ;; Atomic operations that do not require a compare-and-swap loop.
2882
-
2883
- ;; Atomic AND for 32/64-bit big-endian types, using a single instruction.
2884
- (rule 1 (lower (has_type (ty_32_or_64 ty)
2885
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.And) addr src)))
2886
- (atomic_rmw_and ty (put_in_reg src)
2887
- (lower_address flags addr (zero_offset))))
2888
-
2889
- ;; Atomic AND for 32/64-bit big-endian types, using byte-swapped input/output.
2890
- (rule (lower (has_type (ty_32_or_64 ty)
2891
- (atomic_rmw flags @ (littleendian) (AtomicRmwOp.And) addr src)))
2892
- (bswap_reg ty (atomic_rmw_and ty (bswap_reg ty (put_in_reg src))
2893
- (lower_address flags addr (zero_offset)))))
2894
-
2895
- ;; Atomic OR for 32/64-bit big-endian types, using a single instruction.
2896
- (rule 1 (lower (has_type (ty_32_or_64 ty)
2897
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.Or) addr src)))
2898
- (atomic_rmw_or ty (put_in_reg src)
2899
- (lower_address flags addr (zero_offset))))
2900
-
2901
- ;; Atomic OR for 32/64-bit little-endian types, using byte-swapped input/output.
2902
- (rule (lower (has_type (ty_32_or_64 ty)
2903
- (atomic_rmw flags @ (littleendian) (AtomicRmwOp.Or) addr src)))
2904
- (bswap_reg ty (atomic_rmw_or ty (bswap_reg ty (put_in_reg src))
2905
- (lower_address flags addr (zero_offset)))))
2906
-
2907
- ;; Atomic XOR for 32/64-bit big-endian types, using a single instruction.
2908
- (rule 1 (lower (has_type (ty_32_or_64 ty)
2909
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.Xor) addr src)))
2910
- (atomic_rmw_xor ty (put_in_reg src)
2911
- (lower_address flags addr (zero_offset))))
2912
-
2913
- ;; Atomic XOR for 32/64-bit little-endian types, using byte-swapped input/output.
2914
- (rule (lower (has_type (ty_32_or_64 ty)
2915
- (atomic_rmw flags @ (littleendian) (AtomicRmwOp.Xor) addr src)))
2916
- (bswap_reg ty (atomic_rmw_xor ty (bswap_reg ty (put_in_reg src))
2917
- (lower_address flags addr (zero_offset)))))
2918
-
2919
- ;; Atomic ADD for 32/64-bit big-endian types, using a single instruction.
2920
- (rule (lower (has_type (ty_32_or_64 ty)
2921
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.Add) addr src)))
2922
- (atomic_rmw_add ty (put_in_reg src)
2923
- (lower_address flags addr (zero_offset))))
2924
-
2925
- ;; Atomic SUB for 32/64-bit big-endian types, using atomic ADD with negated input.
2926
- (rule (lower (has_type (ty_32_or_64 ty)
2927
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.Sub) addr src)))
2928
- (atomic_rmw_add ty (neg_reg ty (put_in_reg src))
2929
- (lower_address flags addr (zero_offset))))
2930
-
2931
-
2932
- ;; Atomic operations that require a compare-and-swap loop.
2933
-
2934
- ;; Operations for 32/64-bit types can use a fullword compare-and-swap loop.
2935
- (rule -1 (lower (has_type (ty_32_or_64 ty) (atomic_rmw flags op addr src)))
2936
- (let ((src_reg Reg (put_in_reg src))
2937
- (addr_reg Reg (put_in_reg addr))
2938
- ;; Create body of compare-and-swap loop.
2939
- (ib VecMInstBuilder (inst_builder_new))
2940
- (val0 Reg (writable_reg_to_reg (casloop_val_reg)))
2941
- (val1 Reg (atomic_rmw_body ib ty flags op
2942
- (casloop_tmp_reg) val0 src_reg)))
2943
- ;; Emit compare-and-swap loop and extract final result.
2944
- (casloop ib ty flags addr_reg val1)))
2945
-
2946
- ;; Operations for 8/16-bit types must operate on the surrounding aligned word.
2947
- (rule -2 (lower (has_type (ty_8_or_16 ty) (atomic_rmw flags op addr src)))
2948
- (let ((src_reg Reg (put_in_reg src))
2949
- (addr_reg Reg (put_in_reg addr))
2950
- ;; Prepare access to surrounding aligned word.
2951
- (bitshift Reg (casloop_bitshift addr_reg))
2952
- (aligned_addr Reg (casloop_aligned_addr addr_reg))
2953
- ;; Create body of compare-and-swap loop.
2954
- (ib VecMInstBuilder (inst_builder_new))
2955
- (val0 Reg (writable_reg_to_reg (casloop_val_reg)))
2956
- (val1 Reg (casloop_rotate_in ib ty flags bitshift val0))
2957
- (val2 Reg (atomic_rmw_body ib ty flags op
2958
- (casloop_tmp_reg) val1 src_reg))
2959
- (val3 Reg (casloop_rotate_out ib ty flags bitshift val2)))
2960
- ;; Emit compare-and-swap loop and extract final result.
2961
- (casloop_subword ib ty flags aligned_addr bitshift val3)))
2962
-
2963
- ;; Loop bodies for atomic read-modify-write operations.
2964
- (decl atomic_rmw_body (VecMInstBuilder Type MemFlags AtomicRmwOp
2965
- WritableReg Reg Reg) Reg)
2966
-
2967
- ;; Loop bodies for 32-/64-bit atomic XCHG operations.
2968
- ;; Simply use the source (possibly byte-swapped) as new target value.
2969
- (rule 2 (atomic_rmw_body ib (ty_32_or_64 ty) (bigendian)
2970
- (AtomicRmwOp.Xchg) tmp val src)
2971
- src)
2972
- (rule 1 (atomic_rmw_body ib (ty_32_or_64 ty) (littleendian)
2973
- (AtomicRmwOp.Xchg) tmp val src)
2974
- (bswap_reg ty src))
2975
-
2976
- ;; Loop bodies for 32-/64-bit atomic NAND operations.
2977
- ;; On z15 this can use the NN(G)RK instruction. On z14, perform an And
2978
- ;; operation and invert the result. In the little-endian case, we can
2979
- ;; simply byte-swap the source operand.
2980
- (rule 4 (atomic_rmw_body ib (and (mie2_enabled) (ty_32_or_64 ty)) (bigendian)
2981
- (AtomicRmwOp.Nand) tmp val src)
2982
- (push_alu_reg ib (aluop_not_and ty) tmp val src))
2983
- (rule 3 (atomic_rmw_body ib (and (mie2_enabled) (ty_32_or_64 ty)) (littleendian)
2984
- (AtomicRmwOp.Nand) tmp val src)
2985
- (push_alu_reg ib (aluop_not_and ty) tmp val (bswap_reg ty src)))
2986
- (rule 2 (atomic_rmw_body ib (and (mie2_disabled) (ty_32_or_64 ty)) (bigendian)
2987
- (AtomicRmwOp.Nand) tmp val src)
2988
- (push_not_reg ib ty tmp
2989
- (push_alu_reg ib (aluop_and ty) tmp val src)))
2990
- (rule 1 (atomic_rmw_body ib (and (mie2_disabled) (ty_32_or_64 ty)) (littleendian)
2991
- (AtomicRmwOp.Nand) tmp val src)
2992
- (push_not_reg ib ty tmp
2993
- (push_alu_reg ib (aluop_and ty) tmp val (bswap_reg ty src))))
2994
-
2995
- ;; Loop bodies for 8-/16-bit atomic bit operations.
2996
- ;; These use the "rotate-then-<op>-selected bits" family of instructions.
2997
- ;; For the Nand operation, we again perform And and invert the result.
2998
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.Xchg) tmp val src)
2999
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.Insert) tmp val src))
3000
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.And) tmp val src)
3001
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.And) tmp val src))
3002
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.Or) tmp val src)
3003
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.Or) tmp val src))
3004
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.Xor) tmp val src)
3005
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.Xor) tmp val src))
3006
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.Nand) tmp val src)
3007
- (atomic_rmw_body_invert ib ty flags tmp
3008
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.And) tmp val src)))
3009
-
3010
- ;; RxSBG subword operation.
3011
- (decl atomic_rmw_body_rxsbg (VecMInstBuilder Type MemFlags RxSBGOp
3012
- WritableReg Reg Reg) Reg)
3013
- ;; 8-bit case: use the low byte of "src" and the high byte of "val".
3014
- (rule (atomic_rmw_body_rxsbg ib $I8 _ op tmp val src)
3015
- (push_rxsbg ib op tmp val src 32 40 24))
3016
- ;; 16-bit big-endian case: use the low two bytes of "src" and the
3017
- ;; high two bytes of "val".
3018
- (rule 1 (atomic_rmw_body_rxsbg ib $I16 (bigendian) op tmp val src)
3019
- (push_rxsbg ib op tmp val src 32 48 16))
3020
- ;; 16-bit little-endian case: use the low two bytes of "src", byte-swapped
3021
- ;; so they end up in the high two bytes, and the low two bytes of "val".
3022
- (rule (atomic_rmw_body_rxsbg ib $I16 (littleendian) op tmp val src)
3023
- (push_rxsbg ib op tmp val (bswap_reg $I32 src) 48 64 -16))
3024
-
3025
- ;; Invert a subword.
3026
- (decl atomic_rmw_body_invert (VecMInstBuilder Type MemFlags WritableReg Reg) Reg)
3027
- ;; 8-bit case: invert the high byte.
3028
- (rule (atomic_rmw_body_invert ib $I8 _ tmp val)
3029
- (push_xor_uimm32shifted ib $I32 tmp val (uimm32shifted 0xff000000 0)))
3030
- ;; 16-bit big-endian case: invert the two high bytes.
3031
- (rule 1 (atomic_rmw_body_invert ib $I16 (bigendian) tmp val)
3032
- (push_xor_uimm32shifted ib $I32 tmp val (uimm32shifted 0xffff0000 0)))
3033
- ;; 16-bit little-endian case: invert the two low bytes.
3034
- (rule (atomic_rmw_body_invert ib $I16 (littleendian) tmp val)
3035
- (push_xor_uimm32shifted ib $I32 tmp val (uimm32shifted 0xffff 0)))
3036
-
3037
- ;; Loop bodies for atomic ADD/SUB operations.
3038
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Add) tmp val src)
3039
- (atomic_rmw_body_addsub ib ty flags (aluop_add (ty_ext32 ty)) tmp val src))
3040
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Sub) tmp val src)
3041
- (atomic_rmw_body_addsub ib ty flags (aluop_sub (ty_ext32 ty)) tmp val src))
3042
-
3043
- ;; Addition or subtraction operation.
3044
- (decl atomic_rmw_body_addsub (VecMInstBuilder Type MemFlags ALUOp
3045
- WritableReg Reg Reg) Reg)
3046
- ;; 32/64-bit big-endian case: just a regular add/sub operation.
3047
- (rule 2 (atomic_rmw_body_addsub ib (ty_32_or_64 ty) (bigendian) op tmp val src)
3048
- (push_alu_reg ib op tmp val src))
3049
- ;; 32/64-bit little-endian case: byte-swap the value loaded from memory before
3050
- ;; and after performing the operation in native endianness.
3051
- (rule 1 (atomic_rmw_body_addsub ib (ty_32_or_64 ty) (littleendian) op tmp val src)
3052
- (let ((val_swapped Reg (push_bswap_reg ib ty tmp val))
3053
- (res_swapped Reg (push_alu_reg ib op tmp val_swapped src)))
3054
- (push_bswap_reg ib ty tmp res_swapped)))
3055
- ;; 8-bit case: perform a 32-bit addition of the source value shifted by 24 bits
3056
- ;; to the memory value, which contains the target in its high byte.
3057
- (rule (atomic_rmw_body_addsub ib $I8 _ op tmp val src)
3058
- (let ((src_shifted Reg (lshl_imm $I32 src 24)))
3059
- (push_alu_reg ib op tmp val src_shifted)))
3060
- ;; 16-bit big-endian case: similar, just shift the source by 16 bits.
3061
- (rule 3 (atomic_rmw_body_addsub ib $I16 (bigendian) op tmp val src)
3062
- (let ((src_shifted Reg (lshl_imm $I32 src 16)))
3063
- (push_alu_reg ib op tmp val src_shifted)))
3064
- ;; 16-bit little-endian case: the same, but in addition we need to byte-swap
3065
- ;; the memory value before and after the operation. Since the value was placed
3066
- ;; in the low two bytes by our standard rotation, we can use a 32-bit byte-swap
3067
- ;; and the native-endian value will end up in the high bytes where we need it
3068
- ;; to perform the operation.
3069
- (rule (atomic_rmw_body_addsub ib $I16 (littleendian) op tmp val src)
3070
- (let ((src_shifted Reg (lshl_imm $I32 src 16))
3071
- (val_swapped Reg (push_bswap_reg ib $I32 tmp val))
3072
- (res_swapped Reg (push_alu_reg ib op tmp val_swapped src_shifted)))
3073
- (push_bswap_reg ib $I32 tmp res_swapped)))
3074
-
3075
- ;; Loop bodies for atomic MIN/MAX operations.
3076
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Smin) tmp val src)
3077
- (atomic_rmw_body_minmax ib ty flags (cmpop_cmps (ty_ext32 ty))
3078
- (intcc_as_cond (IntCC.SignedLessThan)) tmp val src))
3079
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Smax) tmp val src)
3080
- (atomic_rmw_body_minmax ib ty flags (cmpop_cmps (ty_ext32 ty))
3081
- (intcc_as_cond (IntCC.SignedGreaterThan)) tmp val src))
3082
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Umin) tmp val src)
3083
- (atomic_rmw_body_minmax ib ty flags (cmpop_cmpu (ty_ext32 ty))
3084
- (intcc_as_cond (IntCC.UnsignedLessThan)) tmp val src))
3085
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Umax) tmp val src)
3086
- (atomic_rmw_body_minmax ib ty flags (cmpop_cmpu (ty_ext32 ty))
3087
- (intcc_as_cond (IntCC.UnsignedGreaterThan)) tmp val src))
3088
-
3089
- ;; Minimum or maximum operation.
3090
- (decl atomic_rmw_body_minmax (VecMInstBuilder Type MemFlags CmpOp Cond
3091
- WritableReg Reg Reg) Reg)
3092
- ;; 32/64-bit big-endian case: just a comparison followed by a conditional
3093
- ;; break out of the loop if the memory value does not need to change.
3094
- ;; If it does need to change, the new value is simply the source operand.
3095
- (rule 2 (atomic_rmw_body_minmax ib (ty_32_or_64 ty) (bigendian)
3096
- op cond tmp val src)
3097
- (let ((_ Reg (push_break_if ib (cmp_rr op src val) (invert_cond cond))))
3098
- src))
3099
- ;; 32/64-bit little-endian case: similar, but we need to byte-swap the
3100
- ;; memory value before the comparison. If we need to store the new value,
3101
- ;; it also needs to be byte-swapped.
3102
- (rule 1 (atomic_rmw_body_minmax ib (ty_32_or_64 ty) (littleendian)
3103
- op cond tmp val src)
3104
- (let ((val_swapped Reg (push_bswap_reg ib ty tmp val))
3105
- (_ Reg (push_break_if ib (cmp_rr op src val_swapped)
3106
- (invert_cond cond))))
3107
- (push_bswap_reg ib ty tmp src)))
3108
- ;; 8-bit case: compare the memory value (which contains the target in the
3109
- ;; high byte) with the source operand shifted by 24 bits. Note that in
3110
- ;; the case where the high bytes are equal, the comparison may succeed
3111
- ;; or fail depending on the unrelated low bits of the memory value, and
3112
- ;; so we either may or may not perform the update. But it would be an
3113
- ;; update with the same value in any case, so this does not matter.
3114
- (rule (atomic_rmw_body_minmax ib $I8 _ op cond tmp val src)
3115
- (let ((src_shifted Reg (lshl_imm $I32 src 24))
3116
- (_ Reg (push_break_if ib (cmp_rr op src_shifted val)
3117
- (invert_cond cond))))
3118
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src_shifted 32 40 0)))
3119
- ;; 16-bit big-endian case: similar, just shift the source by 16 bits.
3120
- (rule 3 (atomic_rmw_body_minmax ib $I16 (bigendian) op cond tmp val src)
3121
- (let ((src_shifted Reg (lshl_imm $I32 src 16))
3122
- (_ Reg (push_break_if ib (cmp_rr op src_shifted val)
3123
- (invert_cond cond))))
3124
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src_shifted 32 48 0)))
3125
- ;; 16-bit little-endian case: similar, but in addition byte-swap the
3126
- ;; memory value before and after the operation, like for _addsub_.
3127
- (rule (atomic_rmw_body_minmax ib $I16 (littleendian) op cond tmp val src)
3128
- (let ((src_shifted Reg (lshl_imm $I32 src 16))
3129
- (val_swapped Reg (push_bswap_reg ib $I32 tmp val))
3130
- (_ Reg (push_break_if ib (cmp_rr op src_shifted val_swapped)
3131
- (invert_cond cond)))
3132
- (res_swapped Reg (push_rxsbg ib (RxSBGOp.Insert)
3133
- tmp val_swapped src_shifted 32 48 0)))
3134
- (push_bswap_reg ib $I32 tmp res_swapped)))
3135
-
3136
-
3137
- ;;;; Rules for `atomic_cas` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3138
-
3139
- ;; 32/64-bit big-endian atomic compare-and-swap instruction.
3140
- (rule 2 (lower (has_type (ty_32_or_64 ty)
3141
- (atomic_cas flags @ (bigendian) addr src1 src2)))
3142
- (atomic_cas_impl ty (put_in_reg src1) (put_in_reg src2)
3143
- (lower_address flags addr (zero_offset))))
3144
-
3145
- ;; 32/64-bit little-endian atomic compare-and-swap instruction.
3146
- ;; Implemented by byte-swapping old/new inputs and the output.
3147
- (rule 1 (lower (has_type (ty_32_or_64 ty)
3148
- (atomic_cas flags @ (littleendian) addr src1 src2)))
3149
- (bswap_reg ty (atomic_cas_impl ty (bswap_reg ty (put_in_reg src1))
3150
- (bswap_reg ty (put_in_reg src2))
3151
- (lower_address flags addr (zero_offset)))))
3152
-
3153
- ;; 8/16-bit atomic compare-and-swap implemented via loop.
3154
- (rule (lower (has_type (ty_8_or_16 ty) (atomic_cas flags addr src1 src2)))
3155
- (let ((src1_reg Reg (put_in_reg src1))
3156
- (src2_reg Reg (put_in_reg src2))
3157
- (addr_reg Reg (put_in_reg addr))
3158
- ;; Prepare access to the surrounding aligned word.
3159
- (bitshift Reg (casloop_bitshift addr_reg))
3160
- (aligned_addr Reg (casloop_aligned_addr addr_reg))
3161
- ;; Create body of compare-and-swap loop.
3162
- (ib VecMInstBuilder (inst_builder_new))
3163
- (val0 Reg (writable_reg_to_reg (casloop_val_reg)))
3164
- (val1 Reg (casloop_rotate_in ib ty flags bitshift val0))
3165
- (val2 Reg (atomic_cas_body ib ty flags
3166
- (casloop_tmp_reg) val1 src1_reg src2_reg))
3167
- (val3 Reg (casloop_rotate_out ib ty flags bitshift val2)))
3168
- ;; Emit compare-and-swap loop and extract final result.
3169
- (casloop_subword ib ty flags aligned_addr bitshift val3)))
3170
-
3171
- ;; Emit loop body instructions to perform a subword compare-and-swap.
3172
- (decl atomic_cas_body (VecMInstBuilder Type MemFlags
3173
- WritableReg Reg Reg Reg) Reg)
3174
-
3175
- ;; 8-bit case: "val" contains the value loaded from memory in the high byte.
3176
- ;; Compare with the comparison value in the low byte of "src1". If unequal,
3177
- ;; break out of the loop, otherwise replace the target byte in "val" with
3178
- ;; the low byte of "src2".
3179
- (rule (atomic_cas_body ib $I8 _ tmp val src1 src2)
3180
- (let ((_ Reg (push_break_if ib (rxsbg_test (RxSBGOp.Xor) val src1 32 40 24)
3181
- (intcc_as_cond (IntCC.NotEqual)))))
3182
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src2 32 40 24)))
3183
-
3184
- ;; 16-bit big-endian case: Same as above, except with values in the high
3185
- ;; two bytes of "val" and low two bytes of "src1" and "src2".
3186
- (rule 1 (atomic_cas_body ib $I16 (bigendian) tmp val src1 src2)
3187
- (let ((_ Reg (push_break_if ib (rxsbg_test (RxSBGOp.Xor) val src1 32 48 16)
3188
- (intcc_as_cond (IntCC.NotEqual)))))
3189
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src2 32 48 16)))
3190
-
3191
- ;; 16-bit little-endian case: "val" here contains a little-endian value in the
3192
- ;; *low* two bytes. "src1" and "src2" contain native (i.e. big-endian) values
3193
- ;; in their low two bytes. Perform the operation in little-endian mode by
3194
- ;; byte-swapping "src1" and "src" ahead of the loop. Note that this is a
3195
- ;; 32-bit operation so the little-endian 16-bit values end up in the *high*
3196
- ;; two bytes of the swapped values.
3197
- (rule (atomic_cas_body ib $I16 (littleendian) tmp val src1 src2)
3198
- (let ((src1_swapped Reg (bswap_reg $I32 src1))
3199
- (src2_swapped Reg (bswap_reg $I32 src2))
3200
- (_ Reg (push_break_if ib
3201
- (rxsbg_test (RxSBGOp.Xor) val src1_swapped 48 64 -16)
3202
- (intcc_as_cond (IntCC.NotEqual)))))
3203
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src2_swapped 48 64 -16)))
3204
-
3205
-
3206
- ;;;; Rules for `atomic_load` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3207
-
3208
- ;; Atomic loads can be implemented via regular loads on this platform.
3209
-
3210
- ;; 8-bit atomic load.
3211
- (rule (lower (has_type $I8 (atomic_load flags addr)))
3212
- (zext32_mem $I8 (lower_address flags addr (zero_offset))))
3213
-
3214
- ;; 16-bit big-endian atomic load.
3215
- (rule 1 (lower (has_type $I16 (atomic_load flags @ (bigendian) addr)))
3216
- (zext32_mem $I16 (lower_address flags addr (zero_offset))))
3217
-
3218
- ;; 16-bit little-endian atomic load.
3219
- (rule (lower (has_type $I16 (atomic_load flags @ (littleendian) addr)))
3220
- (loadrev16 (lower_address flags addr (zero_offset))))
3221
-
3222
- ;; 32-bit big-endian atomic load.
3223
- (rule 1 (lower (has_type $I32 (atomic_load flags @ (bigendian) addr)))
3224
- (load32 (lower_address flags addr (zero_offset))))
3225
-
3226
- ;; 32-bit little-endian atomic load.
3227
- (rule (lower (has_type $I32 (atomic_load flags @ (littleendian) addr)))
3228
- (loadrev32 (lower_address flags addr (zero_offset))))
3229
-
3230
- ;; 64-bit big-endian atomic load.
3231
- (rule 1 (lower (has_type $I64 (atomic_load flags @ (bigendian) addr)))
3232
- (load64 (lower_address flags addr (zero_offset))))
3233
-
3234
- ;; 64-bit little-endian atomic load.
3235
- (rule (lower (has_type $I64 (atomic_load flags @ (littleendian) addr)))
3236
- (loadrev64 (lower_address flags addr (zero_offset))))
3237
-
3238
-
3239
- ;;;; Rules for `atomic_store` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3240
-
3241
- ;; Atomic stores can be implemented via regular stores followed by a fence.
3242
- (decl atomic_store_impl (SideEffectNoResult) InstOutput)
3243
- (rule (atomic_store_impl store)
3244
- (let ((_ InstOutput (side_effect store)))
3245
- (side_effect (fence_impl))))
3246
-
3247
- ;; 8-bit atomic store.
3248
- (rule (lower (atomic_store flags val @ (value_type $I8) addr))
3249
- (atomic_store_impl (istore8_impl flags val addr (zero_offset))))
3250
-
3251
- ;; 16-bit atomic store.
3252
- (rule (lower (atomic_store flags val @ (value_type $I16) addr))
3253
- (atomic_store_impl (istore16_impl flags val addr (zero_offset))))
3254
-
3255
- ;; 32-bit atomic store.
3256
- (rule (lower (atomic_store flags val @ (value_type $I32) addr))
3257
- (atomic_store_impl (istore32_impl flags val addr (zero_offset))))
3258
-
3259
- ;; 64-bit atomic store.
3260
- (rule (lower (atomic_store flags val @ (value_type $I64) addr))
3261
- (atomic_store_impl (istore64_impl flags val addr (zero_offset))))
3262
-
3263
-
3264
- ;;;; Rules for `fence` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3265
-
3266
- ;; Fence to ensure sequential consistency.
3267
- (rule (lower (fence))
3268
- (side_effect (fence_impl)))
3269
-
3270
-
3271
- ;;;; Rules for `icmp` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3272
-
3273
- ;; We want to optimize the typical use of `icmp` (generating an integer 0/1
3274
- ;; result) followed by some user, like a `select` or a conditional branch.
3275
- ;; Instead of first generating the integer result and later testing it again,
3276
- ;; we want to sink the comparison to be performed at the site of use.
3277
- ;;
3278
- ;; To enable this, we provide generic helpers that return a `ProducesBool`
3279
- ;; encapsulating the comparison in question, which can be used by all the
3280
- ;; above scenarios.
3281
- ;;
3282
- ;; N.B. There are specific considerations when sinking a memory load into a
3283
- ;; comparison. When emitting an `icmp` directly, this can of course be done
3284
- ;; as usual. However, when we use the `ProducesBool` elsewhere, we need to
3285
- ;; consider *three* instructions: the load, the `icmp`, and the final user
3286
- ;; (e.g. a conditional branch). The only way to safely sink the load would
3287
- ;; be to sink it direct into the final user, which is only possible if there
3288
- ;; is no *other* user of the `icmp` result. This is not currently being
3289
- ;; verified by the `SinkableInst` logic, so to be safe we do not perform this
3290
- ;; optimization at all.
3291
- ;;
3292
- ;; The generic `icmp_val` helper therefore has a flag indicating whether
3293
- ;; it is being invoked in a context where it is safe to sink memory loads
3294
- ;; (e.g. when directly emitting an `icmp`), or whether it is not (e.g. when
3295
- ;; sinking the `icmp` result into a conditional branch or select).
3296
-
3297
- ;; Main `icmp` entry point. Generate a `ProducesBool` capturing the
3298
- ;; integer comparison and immediately lower it to a 0/1 integer result.
3299
- ;; In this case, it is safe to sink memory loads.
3300
- (rule -1 (lower (has_type (fits_in_64 ty) (icmp int_cc x y)))
3301
- (lower_bool ty (icmp_val $true int_cc x y)))
3302
-
3303
-
3304
- ;; Return a `ProducesBool` to implement any integer comparison.
3305
- ;; The first argument is a flag to indicate whether it is safe to sink
3306
- ;; memory loads as discussed above.
3307
- (decl icmp_val (bool IntCC Value Value) ProducesBool)
3308
-
3309
- ;; Dispatch for signed comparisons.
3310
- (rule -1 (icmp_val allow_mem int_cc @ (signed) x @ (value_type (fits_in_64 _)) y)
3311
- (bool (icmps_val allow_mem x y) (intcc_as_cond int_cc)))
3312
- ;; Dispatch for unsigned comparisons.
3313
- (rule -2 (icmp_val allow_mem int_cc @ (unsigned) x @ (value_type (fits_in_64 _)) y)
3314
- (bool (icmpu_val allow_mem x y) (intcc_as_cond int_cc)))
3315
-
3316
-
3317
- ;; Return a `ProducesBool` to implement signed integer comparisons.
3318
- (decl icmps_val (bool Value Value) ProducesFlags)
3319
-
3320
- ;; Compare (signed) two registers.
3321
- (rule 0 (icmps_val _ x @ (value_type (fits_in_64 ty)) y)
3322
- (icmps_reg (ty_ext32 ty) (put_in_reg_sext32 x) (put_in_reg_sext32 y)))
3323
-
3324
- ;; Compare (signed) a register and a sign-extended register.
3325
- (rule 3 (icmps_val _ x @ (value_type (fits_in_64 ty)) (sext32_value y))
3326
- (icmps_reg_sext32 ty x y))
3327
-
3328
- ;; Compare (signed) a register and an immediate.
3329
- (rule 2 (icmps_val _ x @ (value_type (fits_in_64 ty)) (i16_from_value y))
3330
- (icmps_simm16 (ty_ext32 ty) (put_in_reg_sext32 x) y))
3331
- (rule 1 (icmps_val _ x @ (value_type (fits_in_64 ty)) (i32_from_value y))
3332
- (icmps_simm32 (ty_ext32 ty) (put_in_reg_sext32 x) y))
3333
-
3334
- ;; Compare (signed) a register and memory (32/64-bit types).
3335
- (rule 4 (icmps_val $true x @ (value_type (fits_in_64 ty)) (sinkable_load_32_64 y))
3336
- (icmps_mem ty x (sink_load y)))
3337
-
3338
- ;; Compare (signed) a register and memory (16-bit types).
3339
- (rule 5 (icmps_val $true x @ (value_type (fits_in_64 ty)) (sinkable_load_16 y))
3340
- (icmps_mem_sext16 (ty_ext32 ty) (put_in_reg_sext32 x) (sink_load y)))
3341
-
3342
- ;; Compare (signed) a register and sign-extended memory.
3343
- (rule 4 (icmps_val $true x @ (value_type (fits_in_64 ty)) (sinkable_sload16 y))
3344
- (icmps_mem_sext16 ty x (sink_sload16 y)))
3345
- (rule 4 (icmps_val $true x @ (value_type (fits_in_64 ty)) (sinkable_sload32 y))
3346
- (icmps_mem_sext32 ty x (sink_sload32 y)))
3347
-
3348
-
3349
- ;; Return a `ProducesBool` to implement unsigned integer comparisons.
3350
- (decl icmpu_val (bool Value Value) ProducesFlags)
3351
-
3352
- ;; Compare (unsigned) two registers.
3353
- (rule (icmpu_val _ x @ (value_type (fits_in_64 ty)) y)
3354
- (icmpu_reg (ty_ext32 ty) (put_in_reg_zext32 x) (put_in_reg_zext32 y)))
3355
-
3356
- ;; Compare (unsigned) a register and a sign-extended register.
3357
- (rule 1 (icmpu_val _ x @ (value_type (fits_in_64 ty)) (zext32_value y))
3358
- (icmpu_reg_zext32 ty x y))
3359
-
3360
- ;; Compare (unsigned) a register and an immediate.
3361
- (rule 2 (icmpu_val _ x @ (value_type (fits_in_64 ty)) (u32_from_value y))
3362
- (icmpu_uimm32 (ty_ext32 ty) (put_in_reg_zext32 x) y))
3363
-
3364
- ;; Compare (unsigned) a register and memory (32/64-bit types).
3365
- (rule 4 (icmpu_val $true x @ (value_type (fits_in_64 ty)) (sinkable_load_32_64 y))
3366
- (icmpu_mem ty x (sink_load y)))
3367
-
3368
- ;; Compare (unsigned) a register and memory (16-bit types).
3369
- ;; Note that the ISA only provides instructions with a PC-relative memory
3370
- ;; address here, so we need to check whether the sinkable load matches this.
3371
- (rule 3 (icmpu_val $true x @ (value_type (fits_in_64 ty))
3372
- (sinkable_load_16 ld))
3373
- (if-let y (load_sym ld))
3374
- (icmpu_mem_zext16 (ty_ext32 ty) (put_in_reg_zext32 x) (sink_load y)))
3375
-
3376
- ;; Compare (unsigned) a register and zero-extended memory.
3377
- ;; Note that the ISA only provides instructions with a PC-relative memory
3378
- ;; address here, so we need to check whether the sinkable load matches this.
3379
- (rule 3 (icmpu_val $true x @ (value_type (fits_in_64 ty))
3380
- (sinkable_uload16 ld))
3381
- (if-let y (uload16_sym ld))
3382
- (icmpu_mem_zext16 ty x (sink_uload16 y)))
3383
- (rule 3 (icmpu_val $true x @ (value_type (fits_in_64 ty)) (sinkable_uload32 y))
3384
- (icmpu_mem_zext32 ty x (sink_uload32 y)))
3385
-
3386
-
3387
- ;; Compare 128-bit integers for equality.
3388
- ;; Implemented via element-wise comparison using the all-element true CC flag.
3389
- (rule (icmp_val _ (IntCC.Equal) x @ (value_type (vr128_ty _)) y)
3390
- (bool (vec_cmpeqs $I64X2 x y)
3391
- (floatcc_as_cond (FloatCC.Equal))))
3392
- (rule (icmp_val _ (IntCC.NotEqual) x @ (value_type (vr128_ty _)) y)
3393
- (bool (vec_cmpeqs $I64X2 x y)
3394
- (floatcc_as_cond (FloatCC.NotEqual))))
3395
-
3396
- ;; Compare (signed) 128-bit integers for relational inequality.
3397
- ;; Implemented via synthetic instruction using VECG and VCHLGS.
3398
- (rule (icmp_val _ (IntCC.SignedGreaterThan) x @ (value_type (vr128_ty ty)) y)
3399
- (vec_int128_scmphi x y))
3400
- (rule (icmp_val _ (IntCC.SignedLessThan) x @ (value_type (vr128_ty ty)) y)
3401
- (vec_int128_scmphi y x))
3402
- (rule (icmp_val _ (IntCC.SignedGreaterThanOrEqual) x @ (value_type (vr128_ty ty)) y)
3403
- (invert_bool (vec_int128_scmphi y x)))
3404
- (rule (icmp_val _ (IntCC.SignedLessThanOrEqual) x @ (value_type (vr128_ty ty)) y)
3405
- (invert_bool (vec_int128_scmphi x y)))
3406
-
3407
- ;; Compare (unsigned) 128-bit integers for relational inequality.
3408
- ;; Implemented via synthetic instruction using VECLG and VCHLGS.
3409
- (rule (icmp_val _ (IntCC.UnsignedGreaterThan) x @ (value_type (vr128_ty ty)) y)
3410
- (vec_int128_ucmphi x y))
3411
- (rule (icmp_val _ (IntCC.UnsignedLessThan) x @ (value_type (vr128_ty ty)) y)
3412
- (vec_int128_ucmphi y x))
3413
- (rule (icmp_val _ (IntCC.UnsignedGreaterThanOrEqual) x @ (value_type (vr128_ty ty)) y)
3414
- (invert_bool (vec_int128_ucmphi y x)))
3415
- (rule (icmp_val _ (IntCC.UnsignedLessThanOrEqual) x @ (value_type (vr128_ty ty)) y)
3416
- (invert_bool (vec_int128_ucmphi x y)))
3417
-
3418
-
3419
- ;; Vector `icmp` produces a boolean vector.
3420
- ;; We need to handle the various IntCC flags separately here.
3421
-
3422
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.Equal) x y)))
3423
- (vec_cmpeq ty x y))
3424
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.NotEqual) x y)))
3425
- (vec_not ty (vec_cmpeq ty x y)))
3426
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.SignedGreaterThan) x y)))
3427
- (vec_cmph ty x y))
3428
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.SignedLessThanOrEqual) x y)))
3429
- (vec_not ty (vec_cmph ty x y)))
3430
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.SignedLessThan) x y)))
3431
- (vec_cmph ty y x))
3432
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.SignedGreaterThanOrEqual) x y)))
3433
- (vec_not ty (vec_cmph ty y x)))
3434
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.UnsignedGreaterThan) x y)))
3435
- (vec_cmphl ty x y))
3436
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.UnsignedLessThanOrEqual) x y)))
3437
- (vec_not ty (vec_cmphl ty x y)))
3438
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.UnsignedLessThan) x y)))
3439
- (vec_cmphl ty y x))
3440
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.UnsignedGreaterThanOrEqual) x y)))
3441
- (vec_not ty (vec_cmphl ty y x)))
3442
-
3443
-
3444
- ;;;; Rules for `fcmp` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3445
-
3446
- ;; Main `fcmp` entry point. Generate a `ProducesBool` capturing the
3447
- ;; integer comparison and immediately lower it to a 0/1 integer result.
3448
- (rule -1 (lower (has_type (fits_in_64 ty) (fcmp float_cc x y)))
3449
- (lower_bool ty (fcmp_val float_cc x y)))
3450
-
3451
- ;; Return a `ProducesBool` to implement any floating-point comparison.
3452
- (decl fcmp_val (FloatCC Value Value) ProducesBool)
3453
- (rule (fcmp_val float_cc x @ (value_type ty) y)
3454
- (bool (fcmp_reg ty x y)
3455
- (floatcc_as_cond float_cc)))
3456
-
3457
- ;; Vector `fcmp` produces a boolean vector.
3458
- ;; We need to handle the various FloatCC flags separately here.
3459
-
3460
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.Equal) x y)))
3461
- (vec_fcmpeq ty x y))
3462
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.NotEqual) x y)))
3463
- (vec_not ty (vec_fcmpeq ty x y)))
3464
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.GreaterThan) x y)))
3465
- (vec_fcmph ty x y))
3466
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrLessThanOrEqual) x y)))
3467
- (vec_not ty (vec_fcmph ty x y)))
3468
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.GreaterThanOrEqual) x y)))
3469
- (vec_fcmphe ty x y))
3470
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrLessThan) x y)))
3471
- (vec_not ty (vec_fcmphe ty x y)))
3472
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.LessThan) x y)))
3473
- (vec_fcmph ty y x))
3474
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrGreaterThanOrEqual) x y)))
3475
- (vec_not ty (vec_fcmph ty y x)))
3476
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.LessThanOrEqual) x y)))
3477
- (vec_fcmphe ty y x))
3478
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrGreaterThan) x y)))
3479
- (vec_not ty (vec_fcmphe ty y x)))
3480
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.Ordered) x y)))
3481
- (vec_or ty (vec_fcmphe ty x y) (vec_fcmphe ty y x)))
3482
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.Unordered) x y)))
3483
- (vec_not_or ty (vec_fcmphe ty x y) (vec_fcmphe ty y x)))
3484
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.OrderedNotEqual) x y)))
3485
- (vec_or ty (vec_fcmph ty x y) (vec_fcmph ty y x)))
3486
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrEqual) x y)))
3487
- (vec_not_or ty (vec_fcmph ty x y) (vec_fcmph ty y x)))
3488
-
3489
-
3490
- ;;;; Rules for `vall_true` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3491
-
3492
- ;; Main `vall_true` entry point. Generate a `ProducesBool` capturing the
3493
- ;; comparison and immediately lower it to a 0/1 integer result.
3494
- (rule (lower (has_type (fits_in_64 ty) (vall_true x)))
3495
- (lower_bool ty (vall_true_val x)))
3496
-
3497
- ;; Return a `ProducesBool` to implement `vall_true`.
3498
- (decl vall_true_val (Value) ProducesBool)
3499
- (rule -1 (vall_true_val x @ (value_type ty))
3500
- (bool (vec_cmpeqs ty x (vec_imm ty 0))
3501
- (floatcc_as_cond (FloatCC.Unordered))))
3502
-
3503
- ;; Short-circuit `vall_true` on the result of a `icmp`.
3504
- (rule (vall_true_val (has_type ty (icmp (IntCC.Equal) x y)))
3505
- (bool (vec_cmpeqs ty x y)
3506
- (floatcc_as_cond (FloatCC.Equal))))
3507
- (rule (vall_true_val (has_type ty (icmp (IntCC.NotEqual) x y)))
3508
- (bool (vec_cmpeqs ty x y)
3509
- (floatcc_as_cond (FloatCC.Unordered))))
3510
- (rule (vall_true_val (has_type ty (icmp (IntCC.SignedGreaterThan) x y)))
3511
- (bool (vec_cmphs ty x y)
3512
- (floatcc_as_cond (FloatCC.Equal))))
3513
- (rule (vall_true_val (has_type ty (icmp (IntCC.SignedLessThanOrEqual) x y)))
3514
- (bool (vec_cmphs ty x y)
3515
- (floatcc_as_cond (FloatCC.Unordered))))
3516
- (rule (vall_true_val (has_type ty (icmp (IntCC.SignedLessThan) x y)))
3517
- (bool (vec_cmphs ty y x)
3518
- (floatcc_as_cond (FloatCC.Equal))))
3519
- (rule (vall_true_val (has_type ty (icmp (IntCC.SignedGreaterThanOrEqual) x y)))
3520
- (bool (vec_cmphs ty y x)
3521
- (floatcc_as_cond (FloatCC.Unordered))))
3522
- (rule (vall_true_val (has_type ty (icmp (IntCC.UnsignedGreaterThan) x y)))
3523
- (bool (vec_cmphls ty x y)
3524
- (floatcc_as_cond (FloatCC.Equal))))
3525
- (rule (vall_true_val (has_type ty (icmp (IntCC.UnsignedLessThanOrEqual) x y)))
3526
- (bool (vec_cmphls ty x y)
3527
- (floatcc_as_cond (FloatCC.Unordered))))
3528
- (rule (vall_true_val (has_type ty (icmp (IntCC.UnsignedLessThan) x y)))
3529
- (bool (vec_cmphls ty y x)
3530
- (floatcc_as_cond (FloatCC.Equal))))
3531
- (rule (vall_true_val (has_type ty (icmp (IntCC.UnsignedGreaterThanOrEqual) x y)))
3532
- (bool (vec_cmphls ty y x)
3533
- (floatcc_as_cond (FloatCC.Unordered))))
3534
-
3535
- ;; Short-circuit `vall_true` on the result of a `fcmp` where possible.
3536
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.Equal) x y)))
3537
- (bool (vec_fcmpeqs ty x y)
3538
- (floatcc_as_cond (FloatCC.Equal))))
3539
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.NotEqual) x y)))
3540
- (bool (vec_fcmpeqs ty x y)
3541
- (floatcc_as_cond (FloatCC.Unordered))))
3542
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.GreaterThan) x y)))
3543
- (bool (vec_fcmphs ty x y)
3544
- (floatcc_as_cond (FloatCC.Equal))))
3545
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.UnorderedOrLessThanOrEqual) x y)))
3546
- (bool (vec_fcmphs ty x y)
3547
- (floatcc_as_cond (FloatCC.Unordered))))
3548
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.GreaterThanOrEqual) x y)))
3549
- (bool (vec_fcmphes ty x y)
3550
- (floatcc_as_cond (FloatCC.Equal))))
3551
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.UnorderedOrLessThan) x y)))
3552
- (bool (vec_fcmphes ty x y)
3553
- (floatcc_as_cond (FloatCC.Unordered))))
3554
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.LessThan) x y)))
3555
- (bool (vec_fcmphs ty y x)
3556
- (floatcc_as_cond (FloatCC.Equal))))
3557
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.UnorderedOrGreaterThanOrEqual) x y)))
3558
- (bool (vec_fcmphs ty y x)
3559
- (floatcc_as_cond (FloatCC.Unordered))))
3560
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.LessThanOrEqual) x y)))
3561
- (bool (vec_fcmphes ty y x)
3562
- (floatcc_as_cond (FloatCC.Equal))))
3563
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.UnorderedOrGreaterThan) x y)))
3564
- (bool (vec_fcmphes ty y x)
3565
- (floatcc_as_cond (FloatCC.Unordered))))
3566
-
3567
-
3568
- ;;;; Rules for `vany_true` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3569
-
3570
- ;; Main `vany_true` entry point. Generate a `ProducesBool` capturing the
3571
- ;; comparison and immediately lower it to a 0/1 integer result.
3572
- (rule (lower (has_type (fits_in_64 ty) (vany_true x)))
3573
- (lower_bool ty (vany_true_val x)))
3574
-
3575
- ;; Return a `ProducesBool` to implement `vany_true`.
3576
- (decl vany_true_val (Value) ProducesBool)
3577
- (rule -1 (vany_true_val x @ (value_type ty))
3578
- (bool (vec_cmpeqs ty x (vec_imm ty 0))
3579
- (floatcc_as_cond (FloatCC.NotEqual))))
3580
-
3581
- ;; Short-circuit `vany_true` on the result of a `icmp`.
3582
- (rule (vany_true_val (has_type ty (icmp (IntCC.Equal) x y)))
3583
- (bool (vec_cmpeqs ty x y)
3584
- (floatcc_as_cond (FloatCC.Ordered))))
3585
- (rule (vany_true_val (has_type ty (icmp (IntCC.NotEqual) x y)))
3586
- (bool (vec_cmpeqs ty x y)
3587
- (floatcc_as_cond (FloatCC.NotEqual))))
3588
- (rule (vany_true_val (has_type ty (icmp (IntCC.SignedGreaterThan) x y)))
3589
- (bool (vec_cmphs ty x y)
3590
- (floatcc_as_cond (FloatCC.Ordered))))
3591
- (rule (vany_true_val (has_type ty (icmp (IntCC.SignedLessThanOrEqual) x y)))
3592
- (bool (vec_cmphs ty x y)
3593
- (floatcc_as_cond (FloatCC.NotEqual))))
3594
- (rule (vany_true_val (has_type ty (icmp (IntCC.SignedLessThan) x y)))
3595
- (bool (vec_cmphs ty y x)
3596
- (floatcc_as_cond (FloatCC.Ordered))))
3597
- (rule (vany_true_val (has_type ty (icmp (IntCC.SignedGreaterThanOrEqual) x y)))
3598
- (bool (vec_cmphs ty y x)
3599
- (floatcc_as_cond (FloatCC.NotEqual))))
3600
- (rule (vany_true_val (has_type ty (icmp (IntCC.UnsignedGreaterThan) x y)))
3601
- (bool (vec_cmphls ty x y)
3602
- (floatcc_as_cond (FloatCC.Ordered))))
3603
- (rule (vany_true_val (has_type ty (icmp (IntCC.UnsignedLessThanOrEqual) x y)))
3604
- (bool (vec_cmphls ty x y)
3605
- (floatcc_as_cond (FloatCC.NotEqual))))
3606
- (rule (vany_true_val (has_type ty (icmp (IntCC.UnsignedLessThan) x y)))
3607
- (bool (vec_cmphls ty y x)
3608
- (floatcc_as_cond (FloatCC.Ordered))))
3609
- (rule (vany_true_val (has_type ty (icmp (IntCC.UnsignedGreaterThanOrEqual) x y)))
3610
- (bool (vec_cmphls ty y x)
3611
- (floatcc_as_cond (FloatCC.NotEqual))))
3612
-
3613
- ;; Short-circuit `vany_true` on the result of a `fcmp` where possible.
3614
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.Equal) x y)))
3615
- (bool (vec_fcmpeqs ty x y)
3616
- (floatcc_as_cond (FloatCC.Ordered))))
3617
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.NotEqual) x y)))
3618
- (bool (vec_fcmpeqs ty x y)
3619
- (floatcc_as_cond (FloatCC.NotEqual))))
3620
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.GreaterThan) x y)))
3621
- (bool (vec_fcmphs ty x y)
3622
- (floatcc_as_cond (FloatCC.Ordered))))
3623
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.UnorderedOrLessThanOrEqual) x y)))
3624
- (bool (vec_fcmphs ty x y)
3625
- (floatcc_as_cond (FloatCC.NotEqual))))
3626
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.GreaterThanOrEqual) x y)))
3627
- (bool (vec_fcmphes ty x y)
3628
- (floatcc_as_cond (FloatCC.Ordered))))
3629
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.UnorderedOrLessThan) x y)))
3630
- (bool (vec_fcmphes ty x y)
3631
- (floatcc_as_cond (FloatCC.NotEqual))))
3632
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.LessThan) x y)))
3633
- (bool (vec_fcmphs ty y x)
3634
- (floatcc_as_cond (FloatCC.Ordered))))
3635
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.UnorderedOrGreaterThanOrEqual) x y)))
3636
- (bool (vec_fcmphs ty y x)
3637
- (floatcc_as_cond (FloatCC.NotEqual))))
3638
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.LessThanOrEqual) x y)))
3639
- (bool (vec_fcmphes ty y x)
3640
- (floatcc_as_cond (FloatCC.Ordered))))
3641
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.UnorderedOrGreaterThan) x y)))
3642
- (bool (vec_fcmphes ty y x)
3643
- (floatcc_as_cond (FloatCC.NotEqual))))
3644
-
3645
-
3646
- ;;;; Rules for `vhigh_bits` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3647
-
3648
- (rule (lower (vhigh_bits x @ (value_type (multi_lane 8 16))))
3649
- (if-let (LaneOrder.LittleEndian) (lane_order))
3650
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 0 8 16 24 32 40 48 56
3651
- 64 72 80 88 96 104 112 120))))
3652
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3653
- (rule 1 (lower (vhigh_bits x @ (value_type (multi_lane 8 16))))
3654
- (if-let (LaneOrder.BigEndian) (lane_order))
3655
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 120 112 104 96 88 80 72 64
3656
- 56 48 40 32 24 16 8 0))))
3657
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3658
-
3659
- (rule (lower (vhigh_bits x @ (value_type (multi_lane 16 8))))
3660
- (if-let (LaneOrder.LittleEndian) (lane_order))
3661
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3662
- 0 16 32 48 64 80 96 112))))
3663
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3664
- (rule 1 (lower (vhigh_bits x @ (value_type (multi_lane 16 8))))
3665
- (if-let (LaneOrder.BigEndian) (lane_order))
3666
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3667
- 112 96 80 64 48 32 16 0))))
3668
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3669
-
3670
- (rule (lower (vhigh_bits x @ (value_type (multi_lane 32 4))))
3671
- (if-let (LaneOrder.LittleEndian) (lane_order))
3672
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3673
- 128 128 128 128 0 32 64 96))))
3674
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3675
- (rule 1 (lower (vhigh_bits x @ (value_type (multi_lane 32 4))))
3676
- (if-let (LaneOrder.BigEndian) (lane_order))
3677
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3678
- 128 128 128 128 96 64 32 0))))
3679
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3680
-
3681
- (rule (lower (vhigh_bits x @ (value_type (multi_lane 64 2))))
3682
- (if-let (LaneOrder.LittleEndian) (lane_order))
3683
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3684
- 128 128 128 128 128 128 0 64))))
3685
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3686
- (rule 1 (lower (vhigh_bits x @ (value_type (multi_lane 64 2))))
3687
- (if-let (LaneOrder.BigEndian) (lane_order))
3688
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3689
- 128 128 128 128 128 128 64 0))))
3690
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3691
-
3692
-
3693
- ;;;; Rules for `is_null` and `is_invalid` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3694
-
3695
- ;; Null references are represented by the constant value 0.
3696
- (rule (lower (has_type $I8 (is_null x @ (value_type $R64))))
3697
- (lower_bool $I8 (bool (icmps_simm16 $I64 x 0)
3698
- (intcc_as_cond (IntCC.Equal)))))
3699
-
3700
-
3701
- ;; Invalid references are represented by the constant value -1.
3702
- (rule (lower (has_type $I8 (is_invalid x @ (value_type $R64))))
3703
- (lower_bool $I8 (bool (icmps_simm16 $I64 x -1)
3704
- (intcc_as_cond (IntCC.Equal)))))
3705
-
3706
-
3707
- ;;;; Rules for `select` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3708
-
3709
- ;; Return a `ProducesBool` to capture the fact that the input value is nonzero.
3710
- ;; In the common case where that input is the result of an `icmp` or `fcmp`
3711
- ;; instruction, directly use that compare. Note that it is not safe to sink
3712
- ;; memory loads here, see the `icmp` comment.
3713
- (decl value_nonzero (Value) ProducesBool)
3714
- (rule (value_nonzero (icmp int_cc x y)) (icmp_val $false int_cc x y))
3715
- (rule (value_nonzero (fcmp float_cc x y)) (fcmp_val float_cc x y))
3716
- (rule -1 (value_nonzero val @ (value_type (gpr32_ty ty)))
3717
- (bool (icmps_simm16 $I32 (put_in_reg_sext32 val) 0)
3718
- (intcc_as_cond (IntCC.NotEqual))))
3719
- (rule -2 (value_nonzero val @ (value_type (gpr64_ty ty)))
3720
- (bool (icmps_simm16 $I64 (put_in_reg val) 0)
3721
- (intcc_as_cond (IntCC.NotEqual))))
3722
- (rule -3 (value_nonzero val @ (value_type (vr128_ty ty)))
3723
- (bool (vec_cmpeqs $I64X2 val (vec_imm $I64X2 0))
3724
- (floatcc_as_cond (FloatCC.NotEqual))))
3725
-
3726
- ;; Main `select` entry point. Lower the `value_nonzero` result.
3727
- (rule (lower (has_type ty (select val_cond val_true val_false)))
3728
- (select_bool_reg ty (value_nonzero val_cond)
3729
- (put_in_reg val_true) (put_in_reg val_false)))
3730
-
3731
- ;; Special-case some float-selection instructions for min/max
3732
- (rule 1 (lower (has_type (ty_scalar_float ty) (select (maybe_uextend (fcmp (FloatCC.LessThan) x y)) x y)))
3733
- (fmin_pseudo_reg ty y x))
3734
- (rule 2 (lower (has_type (ty_scalar_float ty) (select (maybe_uextend (fcmp (FloatCC.LessThan) y x)) x y)))
3735
- (fmax_pseudo_reg ty y x))
3736
-
3737
-
3738
- ;;;; Rules for `select_spectre_guard` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3739
-
3740
- ;; We need to guarantee a conditional move instruction. But on this platform
3741
- ;; this is already the best way to implement select in general, so the
3742
- ;; implementation of `select_spectre_guard` is identical to `select`.
3743
- (rule (lower (has_type ty (select_spectre_guard
3744
- val_cond val_true val_false)))
3745
- (select_bool_reg ty (value_nonzero val_cond)
3746
- (put_in_reg val_true) (put_in_reg val_false)))
3747
-
3748
-
3749
- ;;;; Rules for `jump` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3750
-
3751
- ;; Unconditional branch. The target is found as first (and only) element in
3752
- ;; the list of the current block's branch targets passed as `targets`.
3753
- (rule (lower_branch (jump _) (single_target label))
3754
- (emit_side_effect (jump_impl label)))
3755
-
3756
-
3757
- ;;;; Rules for `br_table` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3758
-
3759
- ;; Jump table. `targets` contains the default target followed by the
3760
- ;; list of branch targets per index value.
3761
- (rule (lower_branch (br_table val_idx _) (jump_table_targets default targets))
3762
- (let ((idx Reg (put_in_reg_zext64 val_idx))
3763
- ;; Bounds-check the index and branch to default.
3764
- ;; This is an internal branch that is not a terminator insn.
3765
- ;; Instead, the default target is listed a potential target
3766
- ;; in the final JTSequence, which is the block terminator.
3767
- (cond ProducesBool
3768
- (bool (icmpu_uimm32 $I64 idx (jump_table_size targets))
3769
- (intcc_as_cond (IntCC.UnsignedGreaterThanOrEqual))))
3770
- (_ Unit (emit_side_effect (oneway_cond_br_bool cond default))))
3771
- ;; Scale the index by the element size, and then emit the
3772
- ;; compound instruction that does:
3773
- ;;
3774
- ;; larl %r1, <jt-base>
3775
- ;; agf %r1, 0(%r1, %rScaledIndex)
3776
- ;; br %r1
3777
- ;; [jt entries]
3778
- ;;
3779
- ;; This must be *one* instruction in the vcode because
3780
- ;; we cannot allow regalloc to insert any spills/fills
3781
- ;; in the middle of the sequence; otherwise, the LARL's
3782
- ;; PC-rel offset to the jumptable would be incorrect.
3783
- ;; (The alternative is to introduce a relocation pass
3784
- ;; for inlined jumptables, which is much worse, IMHO.)
3785
- (emit_side_effect (jt_sequence (lshl_imm $I64 idx 2) targets))))
3786
-
3787
-
3788
- ;;;; Rules for `brif` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3789
-
3790
- ;; Two-way conditional branch on nonzero. `targets` contains:
3791
- ;; - element 0: target if the condition is true (i.e. value is nonzero)
3792
- ;; - element 1: target if the condition is false (i.e. value is zero)
3793
- (rule (lower_branch (brif val_cond _ _) (two_targets then else))
3794
- (emit_side_effect (cond_br_bool (value_nonzero val_cond) then else)))
3795
-
3796
-
3797
- ;;;; Rules for `trap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3798
-
3799
- (rule (lower (trap trap_code))
3800
- (side_effect (trap_impl trap_code)))
3801
-
3802
-
3803
- ;;;; Rules for `resumable_trap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3804
-
3805
- (rule (lower (resumable_trap trap_code))
3806
- (side_effect (trap_impl trap_code)))
3807
-
3808
-
3809
- ;;;; Rules for `trapz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3810
-
3811
- (rule (lower (trapz val trap_code))
3812
- (side_effect (trap_if_bool (invert_bool (value_nonzero val)) trap_code)))
3813
-
3814
-
3815
- ;;;; Rules for `trapnz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3816
-
3817
- (rule (lower (trapnz val trap_code))
3818
- (side_effect (trap_if_bool (value_nonzero val) trap_code)))
3819
-
3820
-
3821
- ;;;; Rules for `resumable_trapnz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3822
-
3823
- (rule (lower (resumable_trapnz val trap_code))
3824
- (side_effect (trap_if_bool (value_nonzero val) trap_code)))
3825
-
3826
-
3827
- ;;;; Rules for `debugtrap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3828
-
3829
- (rule (lower (debugtrap))
3830
- (side_effect (debugtrap_impl)))
3831
-
3832
- ;;;; Rules for `uadd_overflow_trap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3833
-
3834
- ;; UaddOverflowTrap is implemented via a ADD LOGICAL instruction, which sets the
3835
- ;; the condition code as follows:
3836
- ;; 0 Result zero; no carry
3837
- ;; 1 Result not zero; no carry
3838
- ;; 2 Result zero; carry
3839
- ;; 3 Result not zero; carry
3840
- ;; This means "carry" corresponds to condition code 2 or 3, i.e.
3841
- ;; a condition mask of 2 | 1.
3842
- ;;
3843
- ;; As this does not match any of the encodings used with a normal integer
3844
- ;; comparsion, this cannot be represented by any IntCC value. We need to
3845
- ;; remap the IntCC::UnsignedGreaterThan value that we have here as result
3846
- ;; of the unsigned_add_overflow_condition call to the correct mask.
3847
-
3848
- (rule 0 (lower (has_type (fits_in_64 ty) (uadd_overflow_trap x y tc)))
3849
- (with_flags
3850
- (add_logical_reg_with_flags_paired ty x y)
3851
- (trap_if_impl (mask_as_cond 3) tc)))
3852
-
3853
- ;; Add a register an a zero-extended register.
3854
- (rule 4 (lower (has_type (fits_in_64 ty)
3855
- (uadd_overflow_trap x (zext32_value y) tc)))
3856
- (with_flags
3857
- (add_logical_reg_zext32_with_flags_paired ty x y)
3858
- (trap_if_impl (mask_as_cond 3) tc)))
3859
- (rule 8 (lower (has_type (fits_in_64 ty)
3860
- (uadd_overflow_trap (zext32_value x) y tc)))
3861
- (with_flags
3862
- (add_logical_reg_zext32_with_flags_paired ty y x)
3863
- (trap_if_impl (mask_as_cond 3) tc)))
3864
-
3865
- ;; Add a register and an immediate
3866
- (rule 3 (lower (has_type (fits_in_64 ty)
3867
- (uadd_overflow_trap x (u32_from_value y) tc)))
3868
- (with_flags
3869
- (add_logical_zimm32_with_flags_paired ty x y)
3870
- (trap_if_impl (mask_as_cond 3) tc)))
3871
- (rule 7 (lower (has_type (fits_in_64 ty)
3872
- (uadd_overflow_trap (u32_from_value x) y tc)))
3873
- (with_flags
3874
- (add_logical_zimm32_with_flags_paired ty y x)
3875
- (trap_if_impl (mask_as_cond 3) tc)))
3876
-
3877
- ;; Add a register and memory (32/64-bit types).
3878
- (rule 2 (lower (has_type (fits_in_64 ty)
3879
- (uadd_overflow_trap x (sinkable_load_32_64 y) tc)))
3880
- (with_flags
3881
- (add_logical_mem_with_flags_paired ty x (sink_load y))
3882
- (trap_if_impl (mask_as_cond 3) tc)))
3883
- (rule 6 (lower (has_type (fits_in_64 ty)
3884
- (uadd_overflow_trap (sinkable_load_32_64 x) y tc)))
3885
- (with_flags
3886
- (add_logical_mem_with_flags_paired ty y (sink_load x))
3887
- (trap_if_impl (mask_as_cond 3) tc)))
3888
-
3889
- ;; Add a register and zero-extended memory.
3890
- (rule 1 (lower (has_type (fits_in_64 ty)
3891
- (uadd_overflow_trap x (sinkable_uload32 y) tc)))
3892
- (with_flags
3893
- (add_logical_mem_zext32_with_flags_paired ty x (sink_uload32 y))
3894
- (trap_if_impl (mask_as_cond 3) tc)))
3895
- (rule 5 (lower (has_type (fits_in_64 ty)
3896
- (uadd_overflow_trap (sinkable_uload32 x) y tc)))
3897
- (with_flags
3898
- (add_logical_mem_zext32_with_flags_paired ty y (sink_uload32 x))
3899
- (trap_if_impl (mask_as_cond 3) tc)))
3900
-
3901
- ;;;; Rules for `return` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3902
-
3903
- (rule (lower (return args))
3904
- (lower_return args))
3905
-
3906
-
3907
- ;;;; Rules for `call` and `call_indirect` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3908
-
3909
- ;; Direct call to an in-range function.
3910
- (rule 1 (lower (call (func_ref_data sig_ref name (reloc_distance_near)) args))
3911
- (let ((abi Sig (abi_sig sig_ref))
3912
- (_ Unit (abi_accumulate_outgoing_args_size abi))
3913
- (uses CallArgList (lower_call_args abi (range 0 (abi_num_args abi)) args))
3914
- (defs CallRetList (defs_init abi))
3915
- (_ InstOutput (side_effect (abi_call abi name uses defs (Opcode.Call)))))
3916
- (lower_call_rets abi defs (range (abi_first_ret sig_ref abi)
3917
- (abi_num_rets abi)) (output_builder_new))))
3918
-
3919
- ;; Direct call to an out-of-range function (implicitly via pointer).
3920
- (rule (lower (call (func_ref_data sig_ref name _) args))
3921
- (let ((abi Sig (abi_sig sig_ref))
3922
- (_ Unit (abi_accumulate_outgoing_args_size abi))
3923
- (uses CallArgList (lower_call_args abi (range 0 (abi_num_args abi)) args))
3924
- (defs CallRetList (defs_init abi))
3925
- (target Reg (load_symbol_reloc (SymbolReloc.Absolute name 0)))
3926
- (_ InstOutput (side_effect (abi_call_ind abi target uses defs (Opcode.Call)))))
3927
- (lower_call_rets abi defs (range (abi_first_ret sig_ref abi)
3928
- (abi_num_rets abi)) (output_builder_new))))
3929
-
3930
- ;; Indirect call.
3931
- (rule (lower (call_indirect sig_ref ptr args))
3932
- (let ((abi Sig (abi_sig sig_ref))
3933
- (target Reg (put_in_reg ptr))
3934
- (_ Unit (abi_accumulate_outgoing_args_size abi))
3935
- (uses CallArgList (lower_call_args abi (range 0 (abi_num_args abi)) args))
3936
- (defs CallRetList (defs_init abi))
3937
- (_ InstOutput (side_effect (abi_call_ind abi target uses defs (Opcode.CallIndirect)))))
3938
- (lower_call_rets abi defs (range (abi_first_ret sig_ref abi)
3939
- (abi_num_rets abi)) (output_builder_new))))
3940
-
3941
- ;; Lower function arguments.
3942
- (decl lower_call_args (Sig Range ValueSlice) CallArgList)
3943
- (rule (lower_call_args abi range args)
3944
- (let ((uses CallArgListBuilder (args_builder_new))
3945
- (_ InstOutput (lower_call_args_buffer abi range args))
3946
- (_ InstOutput (lower_call_args_slots abi uses range args))
3947
- (_ InstOutput (lower_call_ret_arg abi uses)))
3948
- (args_builder_finish uses)))
3949
-
3950
- ;; Lower function arguments (part 1): prepare buffer copies.
3951
- (decl lower_call_args_buffer (Sig Range ValueSlice) InstOutput)
3952
- (rule (lower_call_args_buffer abi (range_empty) _) (output_none))
3953
- (rule (lower_call_args_buffer abi (range_unwrap head tail) args)
3954
- (let ((_ InstOutput (copy_to_buffer 0 (abi_get_arg abi head)
3955
- (value_slice_get args head))))
3956
- (lower_call_args_buffer abi tail args)))
3957
-
3958
- ;; Lower function arguments (part 2): set up registers / stack slots.
3959
- (decl lower_call_args_slots (Sig CallArgListBuilder Range ValueSlice) InstOutput)
3960
- (rule (lower_call_args_slots abi _ (range_empty) _) (output_none))
3961
- (rule (lower_call_args_slots abi uses (range_unwrap head tail) args)
3962
- (let ((_ InstOutput (copy_to_arg uses (abi_lane_order abi)
3963
- 0 (abi_get_arg abi head)
3964
- (value_slice_get args head))))
3965
- (lower_call_args_slots abi uses tail args)))
3966
-
3967
- ;; Lower function arguments (part 3): implicit return-area pointer.
3968
- (decl lower_call_ret_arg (Sig CallArgListBuilder) InstOutput)
3969
- (rule (lower_call_ret_arg (abi_no_ret_arg) _) (output_none))
3970
- (rule 1 (lower_call_ret_arg abi @ (abi_ret_arg (abi_arg_only_slot slot)) uses)
3971
- (let ((mem MemArg (memarg_stack_off (abi_sized_stack_arg_space abi) 0)))
3972
- (copy_reg_to_arg_slot uses (abi_lane_order abi) 0 slot (load_addr mem))))
3973
-
3974
- ;; Lower function return values by collecting them from registers / stack slots.
3975
- (decl lower_call_rets (Sig CallRetList Range InstOutputBuilder) InstOutput)
3976
- (rule (lower_call_rets abi _ (range_empty) builder) (output_builder_finish builder))
3977
- (rule (lower_call_rets abi defs (range_unwrap head tail) builder)
3978
- (let ((ret ValueRegs (copy_from_arg defs (abi_lane_order abi)
3979
- (abi_sized_stack_arg_space abi)
3980
- (abi_get_ret abi head)))
3981
- (_ Unit (output_builder_push builder ret)))
3982
- (lower_call_rets abi defs tail builder)))
3983
-
3984
- ;;;; Rules for `get_{frame,stack}_pointer` and `get_return_address` ;;;;;;;;;;;;
3985
-
3986
- (rule (lower (get_stack_pointer))
3987
- (sp))
3988
-
3989
- (rule (lower (get_frame_pointer))
3990
- (load64 (memarg_stack_off 0 0)))
3991
-
3992
- (rule (lower (get_return_address))
3993
- ;; The return address is 14 pointer-sized slots above the initial SP. So
3994
- ;; our offset is `14 * 8 = 112`.
3995
- (load64 (memarg_initial_sp_offset 112)))