wasmtime 20.0.2 → 21.0.1

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 (2089) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +129 -124
  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.108.1/.cargo-checksum.json +1 -0
  14. data/ext/cargo-vendor/cranelift-bforest-0.108.1/Cargo.toml +40 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.108.1/.cargo-checksum.json +1 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.108.1/Cargo.toml +189 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.108.1/build.rs +266 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/alias_analysis.rs +403 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/context.rs +395 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ctxhash.rs +167 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/egraph/elaborate.rs +835 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/egraph.rs +839 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/incremental_cache.rs +256 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ir/instructions.rs +1020 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/abi.rs +1580 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/args.rs +721 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/emit.rs +3846 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/emit_tests.rs +7902 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/imms.rs +1213 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/mod.rs +3094 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/regs.rs +288 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst.isle +4225 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/lower/isle.rs +810 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/pcc.rs +568 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/mod.rs +449 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/abi.rs +1051 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/args.rs +1938 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/emit.rs +2681 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/emit_tests.rs +2197 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/mod.rs +1975 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/regs.rs +168 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/vector.rs +1144 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst.isle +2969 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/lower/isle.rs +625 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/lower.isle +2883 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/abi.rs +1037 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/args.rs +314 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/emit.rs +3646 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/imms.rs +202 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/mod.rs +3421 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/regs.rs +180 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/abi.rs +1410 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/args.rs +2256 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/emit.rs +4311 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/emit_tests.rs +5171 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/mod.rs +2838 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/regs.rs +276 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst.isle +5294 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/lower/isle.rs +1064 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/lower.isle +4808 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/lower.rs +337 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/pcc.rs +1014 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/lib.rs +106 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/abi.rs +2506 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/blockorder.rs +465 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/isle.rs +903 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/lower.rs +1432 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/mod.rs +555 -0
  69. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/reg.rs +522 -0
  70. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/valueregs.rs +138 -0
  71. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/vcode.rs +1741 -0
  72. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/nan_canonicalization.rs +130 -0
  73. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/opts/arithmetic.isle +240 -0
  74. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/opts/icmp.isle +215 -0
  75. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ranges.rs +131 -0
  76. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/remove_constant_phis.rs +419 -0
  77. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/scoped_hash_map.rs +310 -0
  78. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/settings.rs +590 -0
  79. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/.cargo-checksum.json +1 -0
  80. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/Cargo.toml +35 -0
  81. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/gen_inst.rs +1278 -0
  82. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/gen_isle.rs +519 -0
  83. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/gen_settings.rs +508 -0
  84. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/gen_types.rs +75 -0
  85. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/isa/riscv64.rs +168 -0
  86. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/isa/x86.rs +414 -0
  87. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/isle.rs +126 -0
  88. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/lib.rs +98 -0
  89. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/shared/settings.rs +348 -0
  90. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/srcgen.rs +464 -0
  91. data/ext/cargo-vendor/cranelift-codegen-shared-0.108.1/.cargo-checksum.json +1 -0
  92. data/ext/cargo-vendor/cranelift-codegen-shared-0.108.1/Cargo.toml +22 -0
  93. data/ext/cargo-vendor/cranelift-control-0.108.1/.cargo-checksum.json +1 -0
  94. data/ext/cargo-vendor/cranelift-control-0.108.1/Cargo.toml +30 -0
  95. data/ext/cargo-vendor/cranelift-entity-0.108.1/.cargo-checksum.json +1 -0
  96. data/ext/cargo-vendor/cranelift-entity-0.108.1/Cargo.toml +52 -0
  97. data/ext/cargo-vendor/cranelift-entity-0.108.1/src/lib.rs +381 -0
  98. data/ext/cargo-vendor/cranelift-frontend-0.108.1/.cargo-checksum.json +1 -0
  99. data/ext/cargo-vendor/cranelift-frontend-0.108.1/Cargo.toml +67 -0
  100. data/ext/cargo-vendor/cranelift-frontend-0.108.1/src/switch.rs +696 -0
  101. data/ext/cargo-vendor/cranelift-isle-0.108.1/.cargo-checksum.json +1 -0
  102. data/ext/cargo-vendor/cranelift-isle-0.108.1/Cargo.toml +46 -0
  103. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/codegen.rs +886 -0
  104. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/disjointsets.rs +169 -0
  105. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/lib.rs +33 -0
  106. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/sema.rs +2492 -0
  107. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/serialize.rs +846 -0
  108. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/stablemapset.rs +79 -0
  109. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/trie_again.rs +684 -0
  110. data/ext/cargo-vendor/cranelift-native-0.108.1/.cargo-checksum.json +1 -0
  111. data/ext/cargo-vendor/cranelift-native-0.108.1/Cargo.toml +43 -0
  112. data/ext/cargo-vendor/cranelift-wasm-0.108.1/.cargo-checksum.json +1 -0
  113. data/ext/cargo-vendor/cranelift-wasm-0.108.1/Cargo.toml +109 -0
  114. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/code_translator.rs +3687 -0
  115. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/environ/dummy.rs +906 -0
  116. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/environ/spec.rs +945 -0
  117. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/sections_translator.rs +389 -0
  118. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/.cargo-checksum.json +1 -0
  119. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/Cargo.toml +48 -0
  120. data/ext/cargo-vendor/embedded-io-0.4.0/.cargo-checksum.json +1 -0
  121. data/ext/cargo-vendor/embedded-io-0.4.0/CHANGELOG.md +28 -0
  122. data/ext/cargo-vendor/embedded-io-0.4.0/Cargo.toml +73 -0
  123. data/ext/cargo-vendor/embedded-io-0.4.0/LICENSE-APACHE +201 -0
  124. data/ext/cargo-vendor/embedded-io-0.4.0/LICENSE-MIT +25 -0
  125. data/ext/cargo-vendor/embedded-io-0.4.0/README.md +33 -0
  126. data/ext/cargo-vendor/embedded-io-0.4.0/ci.sh +21 -0
  127. data/ext/cargo-vendor/embedded-io-0.4.0/rust-toolchain.toml +3 -0
  128. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/futures_io.rs +65 -0
  129. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/mod.rs +40 -0
  130. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/std_io.rs +107 -0
  131. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/tokio.rs +108 -0
  132. data/ext/cargo-vendor/embedded-io-0.4.0/src/asynch.rs +230 -0
  133. data/ext/cargo-vendor/embedded-io-0.4.0/src/blocking.rs +309 -0
  134. data/ext/cargo-vendor/embedded-io-0.4.0/src/fmt.rs +228 -0
  135. data/ext/cargo-vendor/embedded-io-0.4.0/src/lib.rs +125 -0
  136. data/ext/cargo-vendor/libm-0.2.8/.cargo-checksum.json +1 -0
  137. data/ext/cargo-vendor/libm-0.2.8/CHANGELOG.md +123 -0
  138. data/ext/cargo-vendor/libm-0.2.8/CONTRIBUTING.md +95 -0
  139. data/ext/cargo-vendor/libm-0.2.8/Cargo.toml +45 -0
  140. data/ext/cargo-vendor/libm-0.2.8/LICENSE-APACHE +201 -0
  141. data/ext/cargo-vendor/libm-0.2.8/LICENSE-MIT +25 -0
  142. data/ext/cargo-vendor/libm-0.2.8/README.md +51 -0
  143. data/ext/cargo-vendor/libm-0.2.8/build.rs +463 -0
  144. data/ext/cargo-vendor/libm-0.2.8/src/lib.rs +59 -0
  145. data/ext/cargo-vendor/libm-0.2.8/src/libm_helper.rs +171 -0
  146. data/ext/cargo-vendor/libm-0.2.8/src/math/acos.rs +112 -0
  147. data/ext/cargo-vendor/libm-0.2.8/src/math/acosf.rs +79 -0
  148. data/ext/cargo-vendor/libm-0.2.8/src/math/acosh.rs +27 -0
  149. data/ext/cargo-vendor/libm-0.2.8/src/math/acoshf.rs +26 -0
  150. data/ext/cargo-vendor/libm-0.2.8/src/math/asin.rs +119 -0
  151. data/ext/cargo-vendor/libm-0.2.8/src/math/asinf.rs +72 -0
  152. data/ext/cargo-vendor/libm-0.2.8/src/math/asinh.rs +40 -0
  153. data/ext/cargo-vendor/libm-0.2.8/src/math/asinhf.rs +39 -0
  154. data/ext/cargo-vendor/libm-0.2.8/src/math/atan.rs +184 -0
  155. data/ext/cargo-vendor/libm-0.2.8/src/math/atan2.rs +126 -0
  156. data/ext/cargo-vendor/libm-0.2.8/src/math/atan2f.rs +91 -0
  157. data/ext/cargo-vendor/libm-0.2.8/src/math/atanf.rs +112 -0
  158. data/ext/cargo-vendor/libm-0.2.8/src/math/atanh.rs +37 -0
  159. data/ext/cargo-vendor/libm-0.2.8/src/math/atanhf.rs +37 -0
  160. data/ext/cargo-vendor/libm-0.2.8/src/math/cbrt.rs +113 -0
  161. data/ext/cargo-vendor/libm-0.2.8/src/math/cbrtf.rs +75 -0
  162. data/ext/cargo-vendor/libm-0.2.8/src/math/ceil.rs +82 -0
  163. data/ext/cargo-vendor/libm-0.2.8/src/math/ceilf.rs +65 -0
  164. data/ext/cargo-vendor/libm-0.2.8/src/math/copysign.rs +12 -0
  165. data/ext/cargo-vendor/libm-0.2.8/src/math/copysignf.rs +12 -0
  166. data/ext/cargo-vendor/libm-0.2.8/src/math/cos.rs +73 -0
  167. data/ext/cargo-vendor/libm-0.2.8/src/math/cosf.rs +83 -0
  168. data/ext/cargo-vendor/libm-0.2.8/src/math/cosh.rs +38 -0
  169. data/ext/cargo-vendor/libm-0.2.8/src/math/coshf.rs +38 -0
  170. data/ext/cargo-vendor/libm-0.2.8/src/math/erf.rs +318 -0
  171. data/ext/cargo-vendor/libm-0.2.8/src/math/erff.rs +230 -0
  172. data/ext/cargo-vendor/libm-0.2.8/src/math/exp.rs +154 -0
  173. data/ext/cargo-vendor/libm-0.2.8/src/math/exp10.rs +22 -0
  174. data/ext/cargo-vendor/libm-0.2.8/src/math/exp10f.rs +22 -0
  175. data/ext/cargo-vendor/libm-0.2.8/src/math/exp2.rs +394 -0
  176. data/ext/cargo-vendor/libm-0.2.8/src/math/exp2f.rs +135 -0
  177. data/ext/cargo-vendor/libm-0.2.8/src/math/expf.rs +101 -0
  178. data/ext/cargo-vendor/libm-0.2.8/src/math/expm1.rs +144 -0
  179. data/ext/cargo-vendor/libm-0.2.8/src/math/expm1f.rs +134 -0
  180. data/ext/cargo-vendor/libm-0.2.8/src/math/expo2.rs +14 -0
  181. data/ext/cargo-vendor/libm-0.2.8/src/math/fabs.rs +41 -0
  182. data/ext/cargo-vendor/libm-0.2.8/src/math/fabsf.rs +41 -0
  183. data/ext/cargo-vendor/libm-0.2.8/src/math/fdim.rs +22 -0
  184. data/ext/cargo-vendor/libm-0.2.8/src/math/fdimf.rs +22 -0
  185. data/ext/cargo-vendor/libm-0.2.8/src/math/fenv.rs +27 -0
  186. data/ext/cargo-vendor/libm-0.2.8/src/math/floor.rs +81 -0
  187. data/ext/cargo-vendor/libm-0.2.8/src/math/floorf.rs +66 -0
  188. data/ext/cargo-vendor/libm-0.2.8/src/math/fma.rs +232 -0
  189. data/ext/cargo-vendor/libm-0.2.8/src/math/fmaf.rs +117 -0
  190. data/ext/cargo-vendor/libm-0.2.8/src/math/fmax.rs +12 -0
  191. data/ext/cargo-vendor/libm-0.2.8/src/math/fmaxf.rs +12 -0
  192. data/ext/cargo-vendor/libm-0.2.8/src/math/fmin.rs +12 -0
  193. data/ext/cargo-vendor/libm-0.2.8/src/math/fminf.rs +12 -0
  194. data/ext/cargo-vendor/libm-0.2.8/src/math/fmod.rs +80 -0
  195. data/ext/cargo-vendor/libm-0.2.8/src/math/fmodf.rs +89 -0
  196. data/ext/cargo-vendor/libm-0.2.8/src/math/frexp.rs +20 -0
  197. data/ext/cargo-vendor/libm-0.2.8/src/math/frexpf.rs +21 -0
  198. data/ext/cargo-vendor/libm-0.2.8/src/math/hypot.rs +74 -0
  199. data/ext/cargo-vendor/libm-0.2.8/src/math/hypotf.rs +43 -0
  200. data/ext/cargo-vendor/libm-0.2.8/src/math/ilogb.rs +32 -0
  201. data/ext/cargo-vendor/libm-0.2.8/src/math/ilogbf.rs +32 -0
  202. data/ext/cargo-vendor/libm-0.2.8/src/math/j0.rs +422 -0
  203. data/ext/cargo-vendor/libm-0.2.8/src/math/j0f.rs +359 -0
  204. data/ext/cargo-vendor/libm-0.2.8/src/math/j1.rs +414 -0
  205. data/ext/cargo-vendor/libm-0.2.8/src/math/j1f.rs +380 -0
  206. data/ext/cargo-vendor/libm-0.2.8/src/math/jn.rs +343 -0
  207. data/ext/cargo-vendor/libm-0.2.8/src/math/jnf.rs +259 -0
  208. data/ext/cargo-vendor/libm-0.2.8/src/math/k_cos.rs +62 -0
  209. data/ext/cargo-vendor/libm-0.2.8/src/math/k_cosf.rs +29 -0
  210. data/ext/cargo-vendor/libm-0.2.8/src/math/k_expo2.rs +14 -0
  211. data/ext/cargo-vendor/libm-0.2.8/src/math/k_expo2f.rs +14 -0
  212. data/ext/cargo-vendor/libm-0.2.8/src/math/k_sin.rs +57 -0
  213. data/ext/cargo-vendor/libm-0.2.8/src/math/k_sinf.rs +30 -0
  214. data/ext/cargo-vendor/libm-0.2.8/src/math/k_tan.rs +105 -0
  215. data/ext/cargo-vendor/libm-0.2.8/src/math/k_tanf.rs +46 -0
  216. data/ext/cargo-vendor/libm-0.2.8/src/math/ldexp.rs +4 -0
  217. data/ext/cargo-vendor/libm-0.2.8/src/math/ldexpf.rs +4 -0
  218. data/ext/cargo-vendor/libm-0.2.8/src/math/lgamma.rs +6 -0
  219. data/ext/cargo-vendor/libm-0.2.8/src/math/lgamma_r.rs +320 -0
  220. data/ext/cargo-vendor/libm-0.2.8/src/math/lgammaf.rs +6 -0
  221. data/ext/cargo-vendor/libm-0.2.8/src/math/lgammaf_r.rs +255 -0
  222. data/ext/cargo-vendor/libm-0.2.8/src/math/log.rs +117 -0
  223. data/ext/cargo-vendor/libm-0.2.8/src/math/log10.rs +117 -0
  224. data/ext/cargo-vendor/libm-0.2.8/src/math/log10f.rs +91 -0
  225. data/ext/cargo-vendor/libm-0.2.8/src/math/log1p.rs +143 -0
  226. data/ext/cargo-vendor/libm-0.2.8/src/math/log1pf.rs +98 -0
  227. data/ext/cargo-vendor/libm-0.2.8/src/math/log2.rs +106 -0
  228. data/ext/cargo-vendor/libm-0.2.8/src/math/log2f.rs +87 -0
  229. data/ext/cargo-vendor/libm-0.2.8/src/math/logf.rs +65 -0
  230. data/ext/cargo-vendor/libm-0.2.8/src/math/mod.rs +370 -0
  231. data/ext/cargo-vendor/libm-0.2.8/src/math/modf.rs +34 -0
  232. data/ext/cargo-vendor/libm-0.2.8/src/math/modff.rs +33 -0
  233. data/ext/cargo-vendor/libm-0.2.8/src/math/nextafter.rs +37 -0
  234. data/ext/cargo-vendor/libm-0.2.8/src/math/nextafterf.rs +37 -0
  235. data/ext/cargo-vendor/libm-0.2.8/src/math/pow.rs +637 -0
  236. data/ext/cargo-vendor/libm-0.2.8/src/math/powf.rs +342 -0
  237. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2.rs +233 -0
  238. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2_large.rs +470 -0
  239. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2f.rs +67 -0
  240. data/ext/cargo-vendor/libm-0.2.8/src/math/remainder.rs +5 -0
  241. data/ext/cargo-vendor/libm-0.2.8/src/math/remainderf.rs +5 -0
  242. data/ext/cargo-vendor/libm-0.2.8/src/math/remquo.rs +110 -0
  243. data/ext/cargo-vendor/libm-0.2.8/src/math/remquof.rs +97 -0
  244. data/ext/cargo-vendor/libm-0.2.8/src/math/rint.rs +58 -0
  245. data/ext/cargo-vendor/libm-0.2.8/src/math/rintf.rs +58 -0
  246. data/ext/cargo-vendor/libm-0.2.8/src/math/round.rs +28 -0
  247. data/ext/cargo-vendor/libm-0.2.8/src/math/roundf.rs +30 -0
  248. data/ext/cargo-vendor/libm-0.2.8/src/math/scalbn.rs +33 -0
  249. data/ext/cargo-vendor/libm-0.2.8/src/math/scalbnf.rs +29 -0
  250. data/ext/cargo-vendor/libm-0.2.8/src/math/sin.rs +88 -0
  251. data/ext/cargo-vendor/libm-0.2.8/src/math/sincos.rs +134 -0
  252. data/ext/cargo-vendor/libm-0.2.8/src/math/sincosf.rs +185 -0
  253. data/ext/cargo-vendor/libm-0.2.8/src/math/sinf.rs +93 -0
  254. data/ext/cargo-vendor/libm-0.2.8/src/math/sinh.rs +49 -0
  255. data/ext/cargo-vendor/libm-0.2.8/src/math/sinhf.rs +30 -0
  256. data/ext/cargo-vendor/libm-0.2.8/src/math/sqrt.rs +280 -0
  257. data/ext/cargo-vendor/libm-0.2.8/src/math/sqrtf.rs +170 -0
  258. data/ext/cargo-vendor/libm-0.2.8/src/math/tan.rs +70 -0
  259. data/ext/cargo-vendor/libm-0.2.8/src/math/tanf.rs +78 -0
  260. data/ext/cargo-vendor/libm-0.2.8/src/math/tanh.rs +53 -0
  261. data/ext/cargo-vendor/libm-0.2.8/src/math/tanhf.rs +39 -0
  262. data/ext/cargo-vendor/libm-0.2.8/src/math/tgamma.rs +208 -0
  263. data/ext/cargo-vendor/libm-0.2.8/src/math/tgammaf.rs +6 -0
  264. data/ext/cargo-vendor/libm-0.2.8/src/math/trunc.rs +40 -0
  265. data/ext/cargo-vendor/libm-0.2.8/src/math/truncf.rs +42 -0
  266. data/ext/cargo-vendor/postcard-1.0.8/.cargo-checksum.json +1 -0
  267. data/ext/cargo-vendor/postcard-1.0.8/CHANGELOG.md +141 -0
  268. data/ext/cargo-vendor/postcard-1.0.8/Cargo.toml +100 -0
  269. data/ext/cargo-vendor/postcard-1.0.8/LICENSE-APACHE +201 -0
  270. data/ext/cargo-vendor/postcard-1.0.8/LICENSE-MIT +25 -0
  271. data/ext/cargo-vendor/postcard-1.0.8/README.md +146 -0
  272. data/ext/cargo-vendor/postcard-1.0.8/spec/LICENSE-CC-BY-SA +427 -0
  273. data/ext/cargo-vendor/postcard-1.0.8/spec/book.toml +6 -0
  274. data/ext/cargo-vendor/postcard-1.0.8/spec/src/SUMMARY.md +6 -0
  275. data/ext/cargo-vendor/postcard-1.0.8/spec/src/glossary.md +17 -0
  276. data/ext/cargo-vendor/postcard-1.0.8/spec/src/intro.md +12 -0
  277. data/ext/cargo-vendor/postcard-1.0.8/spec/src/serde-data-model.md +190 -0
  278. data/ext/cargo-vendor/postcard-1.0.8/spec/src/wire-format.md +327 -0
  279. data/ext/cargo-vendor/postcard-1.0.8/src/accumulator.rs +367 -0
  280. data/ext/cargo-vendor/postcard-1.0.8/src/de/deserializer.rs +599 -0
  281. data/ext/cargo-vendor/postcard-1.0.8/src/de/flavors.rs +468 -0
  282. data/ext/cargo-vendor/postcard-1.0.8/src/de/mod.rs +568 -0
  283. data/ext/cargo-vendor/postcard-1.0.8/src/error.rs +95 -0
  284. data/ext/cargo-vendor/postcard-1.0.8/src/fixint.rs +189 -0
  285. data/ext/cargo-vendor/postcard-1.0.8/src/lib.rs +143 -0
  286. data/ext/cargo-vendor/postcard-1.0.8/src/max_size.rs +233 -0
  287. data/ext/cargo-vendor/postcard-1.0.8/src/schema.rs +282 -0
  288. data/ext/cargo-vendor/postcard-1.0.8/src/ser/flavors.rs +722 -0
  289. data/ext/cargo-vendor/postcard-1.0.8/src/ser/mod.rs +866 -0
  290. data/ext/cargo-vendor/postcard-1.0.8/src/ser/serializer.rs +564 -0
  291. data/ext/cargo-vendor/postcard-1.0.8/src/varint.rs +103 -0
  292. data/ext/cargo-vendor/postcard-1.0.8/tests/accumulator.rs +57 -0
  293. data/ext/cargo-vendor/postcard-1.0.8/tests/crc.rs +60 -0
  294. data/ext/cargo-vendor/postcard-1.0.8/tests/loopback.rs +248 -0
  295. data/ext/cargo-vendor/postcard-1.0.8/tests/max_size.rs +101 -0
  296. data/ext/cargo-vendor/postcard-1.0.8/tests/schema.rs +107 -0
  297. data/ext/cargo-vendor/rb-sys-0.9.100/.cargo-checksum.json +1 -0
  298. data/ext/cargo-vendor/rb-sys-0.9.100/Cargo.toml +58 -0
  299. data/ext/cargo-vendor/rb-sys-0.9.100/build/main.rs +267 -0
  300. data/ext/cargo-vendor/rb-sys-0.9.100/build/stable_api_config.rs +139 -0
  301. data/ext/cargo-vendor/rb-sys-0.9.100/src/bindings.rs +21 -0
  302. data/ext/cargo-vendor/rb-sys-0.9.100/src/tracking_allocator.rs +266 -0
  303. data/ext/cargo-vendor/rb-sys-build-0.9.100/.cargo-checksum.json +1 -0
  304. data/ext/cargo-vendor/rb-sys-build-0.9.100/Cargo.toml +62 -0
  305. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/bindings/stable_api.rs +203 -0
  306. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/bindings.rs +254 -0
  307. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/cc.rs +374 -0
  308. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/utils.rs +52 -0
  309. data/ext/cargo-vendor/wasi-common-21.0.1/.cargo-checksum.json +1 -0
  310. data/ext/cargo-vendor/wasi-common-21.0.1/Cargo.toml +223 -0
  311. data/ext/cargo-vendor/wasi-common-21.0.1/tests/all/async_.rs +293 -0
  312. data/ext/cargo-vendor/wasi-common-21.0.1/tests/all/main.rs +21 -0
  313. data/ext/cargo-vendor/wasi-common-21.0.1/tests/all/sync.rs +279 -0
  314. data/ext/cargo-vendor/wasm-encoder-0.207.0/.cargo-checksum.json +1 -0
  315. data/ext/cargo-vendor/wasm-encoder-0.207.0/Cargo.toml +45 -0
  316. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/code.rs +3502 -0
  317. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/data.rs +186 -0
  318. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/elements.rs +221 -0
  319. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/globals.rs +112 -0
  320. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/imports.rs +157 -0
  321. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/memories.rs +128 -0
  322. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/tables.rs +134 -0
  323. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/types.rs +678 -0
  324. data/ext/cargo-vendor/wasmparser-0.207.0/.cargo-checksum.json +1 -0
  325. data/ext/cargo-vendor/wasmparser-0.207.0/Cargo.lock +659 -0
  326. data/ext/cargo-vendor/wasmparser-0.207.0/Cargo.toml +95 -0
  327. data/ext/cargo-vendor/wasmparser-0.207.0/src/binary_reader.rs +1867 -0
  328. data/ext/cargo-vendor/wasmparser-0.207.0/src/lib.rs +805 -0
  329. data/ext/cargo-vendor/wasmparser-0.207.0/src/limits.rs +78 -0
  330. data/ext/cargo-vendor/wasmparser-0.207.0/src/map.rs +137 -0
  331. data/ext/cargo-vendor/wasmparser-0.207.0/src/parser.rs +1636 -0
  332. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/canonicals.rs +121 -0
  333. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/instances.rs +164 -0
  334. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/names.rs +102 -0
  335. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/start.rs +31 -0
  336. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/types.rs +551 -0
  337. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/code.rs +146 -0
  338. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/coredumps.rs +244 -0
  339. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/custom.rs +64 -0
  340. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/data.rs +96 -0
  341. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/dylink0.rs +110 -0
  342. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/elements.rs +152 -0
  343. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/globals.rs +51 -0
  344. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/linking.rs +450 -0
  345. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/memories.rs +57 -0
  346. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/names.rs +159 -0
  347. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/operators.rs +430 -0
  348. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/reloc.rs +301 -0
  349. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/tables.rs +93 -0
  350. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/types/matches.rs +277 -0
  351. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/types.rs +1773 -0
  352. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core.rs +43 -0
  353. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers.rs +316 -0
  354. data/ext/cargo-vendor/wasmparser-0.207.0/src/resources.rs +235 -0
  355. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/component.rs +3242 -0
  356. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/core/canonical.rs +233 -0
  357. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/core.rs +1450 -0
  358. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/func.rs +331 -0
  359. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/names.rs +947 -0
  360. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/operators.rs +4117 -0
  361. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/types.rs +4492 -0
  362. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator.rs +1786 -0
  363. data/ext/cargo-vendor/wasmprinter-0.207.0/.cargo-checksum.json +1 -0
  364. data/ext/cargo-vendor/wasmprinter-0.207.0/Cargo.toml +50 -0
  365. data/ext/cargo-vendor/wasmprinter-0.207.0/src/lib.rs +3226 -0
  366. data/ext/cargo-vendor/wasmprinter-0.207.0/src/operator.rs +1164 -0
  367. data/ext/cargo-vendor/wasmprinter-0.207.0/tests/all.rs +293 -0
  368. data/ext/cargo-vendor/wasmtime-21.0.1/.cargo-checksum.json +1 -0
  369. data/ext/cargo-vendor/wasmtime-21.0.1/Cargo.toml +386 -0
  370. data/ext/cargo-vendor/wasmtime-21.0.1/build.rs +37 -0
  371. data/ext/cargo-vendor/wasmtime-21.0.1/src/compile/code_builder.rs +275 -0
  372. data/ext/cargo-vendor/wasmtime-21.0.1/src/compile/runtime.rs +176 -0
  373. data/ext/cargo-vendor/wasmtime-21.0.1/src/compile.rs +910 -0
  374. data/ext/cargo-vendor/wasmtime-21.0.1/src/config.rs +2904 -0
  375. data/ext/cargo-vendor/wasmtime-21.0.1/src/engine/serialization.rs +887 -0
  376. data/ext/cargo-vendor/wasmtime-21.0.1/src/engine.rs +728 -0
  377. data/ext/cargo-vendor/wasmtime-21.0.1/src/lib.rs +328 -0
  378. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent/jitdump.rs +67 -0
  379. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent/perfmap.rs +48 -0
  380. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent/vtune.rs +81 -0
  381. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent.rs +106 -0
  382. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/code.rs +102 -0
  383. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/code_memory.rs +337 -0
  384. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/component.rs +661 -0
  385. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func/host.rs +440 -0
  386. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func/options.rs +555 -0
  387. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func/typed.rs +2498 -0
  388. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func.rs +746 -0
  389. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/instance.rs +814 -0
  390. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/linker.rs +783 -0
  391. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/matching.rs +217 -0
  392. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/mod.rs +783 -0
  393. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/resource_table.rs +355 -0
  394. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/resources.rs +1133 -0
  395. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/storage.rs +43 -0
  396. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/store.rs +29 -0
  397. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/types.rs +892 -0
  398. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/values.rs +980 -0
  399. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/coredump.rs +342 -0
  400. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/debug.rs +166 -0
  401. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/externals/global.rs +310 -0
  402. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/externals/table.rs +477 -0
  403. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/externals.rs +236 -0
  404. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/func/typed.rs +899 -0
  405. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/func.rs +2627 -0
  406. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/disabled/anyref.rs +46 -0
  407. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/disabled/externref.rs +50 -0
  408. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/disabled/rooting.rs +224 -0
  409. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/anyref.rs +473 -0
  410. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/externref.rs +650 -0
  411. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/i31.rs +346 -0
  412. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/rooting.rs +1588 -0
  413. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc.rs +89 -0
  414. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/instance.rs +992 -0
  415. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/instantiate.rs +346 -0
  416. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/limits.rs +399 -0
  417. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/linker.rs +1506 -0
  418. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/memory.rs +998 -0
  419. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/module/registry.rs +353 -0
  420. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/module.rs +1295 -0
  421. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/profiling.rs +221 -0
  422. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/resources.rs +33 -0
  423. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/signatures.rs +216 -0
  424. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/stack.rs +73 -0
  425. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store/context.rs +243 -0
  426. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store/data.rs +301 -0
  427. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store/func_refs.rs +90 -0
  428. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store.rs +2820 -0
  429. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/func.rs +139 -0
  430. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/global.rs +68 -0
  431. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/memory.rs +287 -0
  432. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/table.rs +29 -0
  433. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline.rs +78 -0
  434. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trap.rs +642 -0
  435. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/type_registry.rs +807 -0
  436. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/types/matching.rs +421 -0
  437. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/types.rs +2239 -0
  438. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/unix.rs +40 -0
  439. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/v128.rs +131 -0
  440. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/values.rs +966 -0
  441. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/arch/aarch64.rs +76 -0
  442. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/arch/x86_64.rs +41 -0
  443. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/async_yield.rs +35 -0
  444. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/component/libcalls.rs +571 -0
  445. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/component/resources.rs +352 -0
  446. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/component.rs +860 -0
  447. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/const_expr.rs +102 -0
  448. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/cow.rs +893 -0
  449. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/debug_builtins.rs +59 -0
  450. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/export.rs +108 -0
  451. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/disabled.rs +24 -0
  452. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/enabled/drc.rs +968 -0
  453. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/enabled/externref.rs +116 -0
  454. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/enabled/free_list.rs +771 -0
  455. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/enabled.rs +18 -0
  456. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/gc_ref.rs +491 -0
  457. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/gc_runtime.rs +506 -0
  458. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/host_data.rs +82 -0
  459. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/i31.rs +87 -0
  460. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc.rs +245 -0
  461. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/imports.rs +29 -0
  462. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/on_demand.rs +218 -0
  463. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +93 -0
  464. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +66 -0
  465. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +705 -0
  466. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +1000 -0
  467. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/table_pool.rs +233 -0
  468. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +245 -0
  469. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling.rs +656 -0
  470. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator.rs +798 -0
  471. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance.rs +1519 -0
  472. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/libcalls.rs +834 -0
  473. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/memory.rs +744 -0
  474. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mmap.rs +220 -0
  475. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mmap_vec.rs +162 -0
  476. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/module_id.rs +43 -0
  477. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mpk/enabled.rs +214 -0
  478. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mpk/mod.rs +54 -0
  479. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mpk/pkru.rs +104 -0
  480. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mpk/sys.rs +114 -0
  481. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/send_sync_ptr.rs +106 -0
  482. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/store_box.rs +37 -0
  483. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/capi.rs +200 -0
  484. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/mmap.rs +112 -0
  485. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/mod.rs +34 -0
  486. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/traphandlers.rs +55 -0
  487. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/vm.rs +109 -0
  488. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/miri/mmap.rs +95 -0
  489. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/miri/mod.rs +24 -0
  490. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/miri/traphandlers.rs +47 -0
  491. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/mod.rs +25 -0
  492. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/machports.rs +416 -0
  493. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/mmap.rs +162 -0
  494. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/mod.rs +35 -0
  495. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/signals.rs +401 -0
  496. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/unwind.rs +150 -0
  497. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/vm.rs +215 -0
  498. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/windows/mmap.rs +221 -0
  499. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/windows/mod.rs +20 -0
  500. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/windows/traphandlers.rs +104 -0
  501. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/table.rs +847 -0
  502. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/threads/parking_spot.rs +623 -0
  503. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/threads/shared_memory.rs +233 -0
  504. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/threads/shared_memory_disabled.rs +101 -0
  505. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/traphandlers/backtrace.rs +267 -0
  506. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/traphandlers/coredump_disabled.rs +16 -0
  507. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/traphandlers/coredump_enabled.rs +42 -0
  508. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/traphandlers.rs +768 -0
  509. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/vmcontext/vm_host_func_context.rs +138 -0
  510. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/vmcontext.rs +1337 -0
  511. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm.rs +287 -0
  512. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/windows.rs +35 -0
  513. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime.rs +110 -0
  514. data/ext/cargo-vendor/wasmtime-21.0.1/src/sync_nostd.rs +255 -0
  515. data/ext/cargo-vendor/wasmtime-21.0.1/src/sync_std.rs +52 -0
  516. data/ext/cargo-vendor/wasmtime-asm-macros-21.0.1/.cargo-checksum.json +1 -0
  517. data/ext/cargo-vendor/wasmtime-asm-macros-21.0.1/Cargo.toml +22 -0
  518. data/ext/cargo-vendor/wasmtime-asm-macros-21.0.1/src/lib.rs +83 -0
  519. data/ext/cargo-vendor/wasmtime-cache-21.0.1/.cargo-checksum.json +1 -0
  520. data/ext/cargo-vendor/wasmtime-cache-21.0.1/Cargo.toml +88 -0
  521. data/ext/cargo-vendor/wasmtime-cache-21.0.1/src/lib.rs +235 -0
  522. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/.cargo-checksum.json +1 -0
  523. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/Cargo.toml +79 -0
  524. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/src/bindgen.rs +436 -0
  525. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/src/component.rs +1295 -0
  526. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/tests/codegen.rs +576 -0
  527. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/tests/codegen_no_std.rs +16 -0
  528. data/ext/cargo-vendor/wasmtime-component-util-21.0.1/.cargo-checksum.json +1 -0
  529. data/ext/cargo-vendor/wasmtime-component-util-21.0.1/Cargo.toml +25 -0
  530. data/ext/cargo-vendor/wasmtime-component-util-21.0.1/src/lib.rs +182 -0
  531. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/.cargo-checksum.json +1 -0
  532. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/Cargo.toml +114 -0
  533. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/compiler/component.rs +968 -0
  534. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/compiler.rs +1383 -0
  535. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/gc.rs +252 -0
  536. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/attr.rs +320 -0
  537. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/expression.rs +1248 -0
  538. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/line_program.rs +287 -0
  539. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/mod.rs +256 -0
  540. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/unit.rs +529 -0
  541. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/utils.rs +186 -0
  542. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/write_debuginfo.rs +196 -0
  543. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug.rs +18 -0
  544. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/func_environ.rs +2888 -0
  545. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/gc/enabled.rs +648 -0
  546. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/gc.rs +198 -0
  547. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/lib.rs +511 -0
  548. data/ext/cargo-vendor/wasmtime-environ-21.0.1/.cargo-checksum.json +1 -0
  549. data/ext/cargo-vendor/wasmtime-environ-21.0.1/Cargo.lock +772 -0
  550. data/ext/cargo-vendor/wasmtime-environ-21.0.1/Cargo.toml +154 -0
  551. data/ext/cargo-vendor/wasmtime-environ-21.0.1/examples/factc.rs +198 -0
  552. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/address_map.rs +73 -0
  553. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/mod.rs +419 -0
  554. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/module_artifacts.rs +315 -0
  555. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/module_environ.rs +1337 -0
  556. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/module_types.rs +362 -0
  557. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/trap_encoding.rs +70 -0
  558. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/compiler.rs +20 -0
  559. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/dfg.rs +691 -0
  560. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/info.rs +672 -0
  561. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/translate/adapt.rs +455 -0
  562. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/translate.rs +978 -0
  563. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/types.rs +1029 -0
  564. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/types_builder/resources.rs +233 -0
  565. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/types_builder.rs +997 -0
  566. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component.rs +107 -0
  567. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/demangling.rs +28 -0
  568. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/core_types.rs +25 -0
  569. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/signature.rs +119 -0
  570. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/trampoline.rs +3234 -0
  571. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/transcode.rs +90 -0
  572. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/traps.rs +116 -0
  573. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact.rs +714 -0
  574. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/lib.rs +161 -0
  575. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/module.rs +697 -0
  576. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/module_artifacts.rs +146 -0
  577. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/module_types.rs +91 -0
  578. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/scopevec.rs +80 -0
  579. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/stack_map.rs +37 -0
  580. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/trap_encoding.rs +189 -0
  581. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/tunables.rs +168 -0
  582. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/vmoffsets.rs +1015 -0
  583. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/.cargo-checksum.json +1 -0
  584. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/Cargo.toml +64 -0
  585. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/build.rs +38 -0
  586. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/src/lib.rs +328 -0
  587. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/src/unix.rs +490 -0
  588. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/src/windows.rs +166 -0
  589. data/ext/cargo-vendor/wasmtime-jit-debug-21.0.1/.cargo-checksum.json +1 -0
  590. data/ext/cargo-vendor/wasmtime-jit-debug-21.0.1/Cargo.toml +67 -0
  591. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/.cargo-checksum.json +1 -0
  592. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/Cargo.toml +51 -0
  593. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/src/lib.rs +109 -0
  594. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/src/libc.rs +163 -0
  595. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/src/miri.rs +10 -0
  596. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/src/win.rs +49 -0
  597. data/ext/cargo-vendor/wasmtime-slab-21.0.1/.cargo-checksum.json +1 -0
  598. data/ext/cargo-vendor/wasmtime-slab-21.0.1/Cargo.toml +21 -0
  599. data/ext/cargo-vendor/wasmtime-slab-21.0.1/src/lib.rs +498 -0
  600. data/ext/cargo-vendor/wasmtime-types-21.0.1/.cargo-checksum.json +1 -0
  601. data/ext/cargo-vendor/wasmtime-types-21.0.1/Cargo.toml +55 -0
  602. data/ext/cargo-vendor/wasmtime-types-21.0.1/src/error.rs +81 -0
  603. data/ext/cargo-vendor/wasmtime-types-21.0.1/src/lib.rs +1572 -0
  604. data/ext/cargo-vendor/wasmtime-versioned-export-macros-21.0.1/.cargo-checksum.json +1 -0
  605. data/ext/cargo-vendor/wasmtime-versioned-export-macros-21.0.1/Cargo.toml +32 -0
  606. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/.cargo-checksum.json +1 -0
  607. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/Cargo.toml +200 -0
  608. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/bindings.rs +280 -0
  609. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/ctx.rs +667 -0
  610. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/filesystem.rs +446 -0
  611. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/lib.rs +426 -0
  612. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/preview0.rs +877 -0
  613. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/preview1.rs +2660 -0
  614. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/api.rs +198 -0
  615. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/async_.rs +397 -0
  616. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/main.rs +91 -0
  617. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/preview1.rs +251 -0
  618. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/sync.rs +331 -0
  619. data/ext/cargo-vendor/wasmtime-winch-21.0.1/.cargo-checksum.json +1 -0
  620. data/ext/cargo-vendor/wasmtime-winch-21.0.1/Cargo.toml +81 -0
  621. data/ext/cargo-vendor/wasmtime-winch-21.0.1/src/compiler.rs +261 -0
  622. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/.cargo-checksum.json +1 -0
  623. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/Cargo.toml +46 -0
  624. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/src/lib.rs +2541 -0
  625. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/src/rust.rs +421 -0
  626. data/ext/cargo-vendor/wiggle-21.0.1/.cargo-checksum.json +1 -0
  627. data/ext/cargo-vendor/wiggle-21.0.1/Cargo.toml +123 -0
  628. data/ext/cargo-vendor/wiggle-generate-21.0.1/.cargo-checksum.json +1 -0
  629. data/ext/cargo-vendor/wiggle-generate-21.0.1/Cargo.toml +66 -0
  630. data/ext/cargo-vendor/wiggle-macro-21.0.1/.cargo-checksum.json +1 -0
  631. data/ext/cargo-vendor/wiggle-macro-21.0.1/Cargo.toml +55 -0
  632. data/ext/cargo-vendor/winch-codegen-0.19.1/.cargo-checksum.json +1 -0
  633. data/ext/cargo-vendor/winch-codegen-0.19.1/Cargo.toml +76 -0
  634. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/context.rs +534 -0
  635. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/env.rs +440 -0
  636. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/mod.rs +882 -0
  637. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/abi.rs +291 -0
  638. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/address.rs +143 -0
  639. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/asm.rs +380 -0
  640. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/masm.rs +566 -0
  641. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/mod.rs +158 -0
  642. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/regs.rs +161 -0
  643. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/reg.rs +73 -0
  644. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/x64/asm.rs +1423 -0
  645. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/x64/masm.rs +1120 -0
  646. data/ext/cargo-vendor/winch-codegen-0.19.1/src/masm.rs +941 -0
  647. data/ext/cargo-vendor/winch-codegen-0.19.1/src/regalloc.rs +65 -0
  648. data/ext/cargo-vendor/winch-codegen-0.19.1/src/regset.rs +194 -0
  649. data/ext/cargo-vendor/winch-codegen-0.19.1/src/visitor.rs +2144 -0
  650. data/ext/cargo-vendor/wit-parser-0.207.0/.cargo-checksum.json +1 -0
  651. data/ext/cargo-vendor/wit-parser-0.207.0/Cargo.toml +109 -0
  652. data/ext/cargo-vendor/wit-parser-0.207.0/src/ast/resolve.rs +1442 -0
  653. data/ext/cargo-vendor/wit-parser-0.207.0/src/decoding.rs +1764 -0
  654. data/ext/cargo-vendor/wit-parser-0.207.0/src/lib.rs +777 -0
  655. data/ext/cargo-vendor/wit-parser-0.207.0/src/live.rs +126 -0
  656. data/ext/cargo-vendor/wit-parser-0.207.0/src/resolve.rs +2337 -0
  657. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +5 -0
  658. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/resources-return-borrow.wit.result +5 -0
  659. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow1.wit +7 -0
  660. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow1.wit.result +5 -0
  661. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow2.wit +8 -0
  662. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow2.wit.result +5 -0
  663. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow3.wit +7 -0
  664. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow3.wit.result +5 -0
  665. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow4.wit +7 -0
  666. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow4.wit.result +5 -0
  667. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow5.wit +7 -0
  668. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow5.wit.result +5 -0
  669. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow6.wit +7 -0
  670. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow6.wit.result +5 -0
  671. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow7.wit +11 -0
  672. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow7.wit.result +5 -0
  673. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow8/deps/baz.wit +9 -0
  674. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow8/foo.wit +7 -0
  675. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow8.wit.result +8 -0
  676. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-top-level-resources.wit +24 -0
  677. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-top-level-resources.wit.json +231 -0
  678. data/ext/src/lib.rs +1 -0
  679. data/ext/src/ruby_api/config.rs +1 -12
  680. data/ext/src/ruby_api/engine.rs +3 -6
  681. data/ext/src/ruby_api/store.rs +68 -5
  682. data/lib/wasmtime/version.rb +1 -1
  683. metadata +1601 -1408
  684. data/ext/cargo-vendor/bincode-1.3.3/.cargo-checksum.json +0 -1
  685. data/ext/cargo-vendor/bincode-1.3.3/Cargo.toml +0 -37
  686. data/ext/cargo-vendor/bincode-1.3.3/LICENSE.md +0 -21
  687. data/ext/cargo-vendor/bincode-1.3.3/readme.md +0 -112
  688. data/ext/cargo-vendor/bincode-1.3.3/src/byteorder.rs +0 -385
  689. data/ext/cargo-vendor/bincode-1.3.3/src/config/endian.rs +0 -27
  690. data/ext/cargo-vendor/bincode-1.3.3/src/config/int.rs +0 -682
  691. data/ext/cargo-vendor/bincode-1.3.3/src/config/legacy.rs +0 -253
  692. data/ext/cargo-vendor/bincode-1.3.3/src/config/limit.rs +0 -49
  693. data/ext/cargo-vendor/bincode-1.3.3/src/config/mod.rs +0 -408
  694. data/ext/cargo-vendor/bincode-1.3.3/src/config/trailing.rs +0 -37
  695. data/ext/cargo-vendor/bincode-1.3.3/src/de/mod.rs +0 -515
  696. data/ext/cargo-vendor/bincode-1.3.3/src/de/read.rs +0 -202
  697. data/ext/cargo-vendor/bincode-1.3.3/src/error.rs +0 -115
  698. data/ext/cargo-vendor/bincode-1.3.3/src/internal.rs +0 -124
  699. data/ext/cargo-vendor/bincode-1.3.3/src/lib.rs +0 -201
  700. data/ext/cargo-vendor/bincode-1.3.3/src/ser/mod.rs +0 -772
  701. data/ext/cargo-vendor/bincode-1.3.3/tests/test.rs +0 -899
  702. data/ext/cargo-vendor/cranelift-bforest-0.107.2/.cargo-checksum.json +0 -1
  703. data/ext/cargo-vendor/cranelift-bforest-0.107.2/Cargo.toml +0 -40
  704. data/ext/cargo-vendor/cranelift-codegen-0.107.2/.cargo-checksum.json +0 -1
  705. data/ext/cargo-vendor/cranelift-codegen-0.107.2/Cargo.toml +0 -178
  706. data/ext/cargo-vendor/cranelift-codegen-0.107.2/build.rs +0 -396
  707. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/alias_analysis.rs +0 -403
  708. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/context.rs +0 -386
  709. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ctxhash.rs +0 -167
  710. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph/elaborate.rs +0 -835
  711. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph.rs +0 -838
  712. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/fx.rs +0 -105
  713. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/incremental_cache.rs +0 -256
  714. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/instructions.rs +0 -1019
  715. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/abi.rs +0 -1707
  716. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/args.rs +0 -779
  717. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/emit.rs +0 -3932
  718. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/emit_tests.rs +0 -7919
  719. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/imms.rs +0 -1218
  720. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/mod.rs +0 -3083
  721. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/regs.rs +0 -292
  722. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst.isle +0 -4218
  723. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/lower/isle.rs +0 -884
  724. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/pcc.rs +0 -565
  725. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/mod.rs +0 -432
  726. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/abi.rs +0 -1109
  727. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/args.rs +0 -1968
  728. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/emit.rs +0 -3466
  729. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/emit_tests.rs +0 -2146
  730. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/mod.rs +0 -2041
  731. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/regs.rs +0 -175
  732. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/vector.rs +0 -1162
  733. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst.isle +0 -2944
  734. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower/isle.rs +0 -625
  735. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower.isle +0 -2872
  736. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/abi.rs +0 -1047
  737. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/args.rs +0 -347
  738. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/emit.rs +0 -3646
  739. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/imms.rs +0 -202
  740. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/mod.rs +0 -3423
  741. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/regs.rs +0 -187
  742. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/abi.rs +0 -1369
  743. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/args.rs +0 -2289
  744. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit.rs +0 -4383
  745. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit_tests.rs +0 -5131
  746. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/mod.rs +0 -2798
  747. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/regs.rs +0 -276
  748. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst.isle +0 -5304
  749. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower/isle.rs +0 -1066
  750. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.isle +0 -4809
  751. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.rs +0 -339
  752. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/pcc.rs +0 -1003
  753. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/lib.rs +0 -106
  754. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/abi.rs +0 -2594
  755. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/blockorder.rs +0 -465
  756. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/isle.rs +0 -914
  757. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/lower.rs +0 -1452
  758. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/mod.rs +0 -555
  759. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/reg.rs +0 -562
  760. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/valueregs.rs +0 -132
  761. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/vcode.rs +0 -1807
  762. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/nan_canonicalization.rs +0 -110
  763. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/arithmetic.isle +0 -179
  764. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/icmp.isle +0 -197
  765. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/remove_constant_phis.rs +0 -420
  766. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/scoped_hash_map.rs +0 -310
  767. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/settings.rs +0 -591
  768. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/.cargo-checksum.json +0 -1
  769. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/Cargo.toml +0 -35
  770. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_inst.rs +0 -1784
  771. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_settings.rs +0 -508
  772. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_types.rs +0 -75
  773. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/isa/riscv64.rs +0 -160
  774. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/isa/x86.rs +0 -402
  775. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/lib.rs +0 -59
  776. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/shared/settings.rs +0 -355
  777. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/srcgen.rs +0 -470
  778. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/.cargo-checksum.json +0 -1
  779. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/Cargo.toml +0 -22
  780. data/ext/cargo-vendor/cranelift-control-0.107.2/.cargo-checksum.json +0 -1
  781. data/ext/cargo-vendor/cranelift-control-0.107.2/Cargo.toml +0 -30
  782. data/ext/cargo-vendor/cranelift-entity-0.107.2/.cargo-checksum.json +0 -1
  783. data/ext/cargo-vendor/cranelift-entity-0.107.2/Cargo.toml +0 -50
  784. data/ext/cargo-vendor/cranelift-entity-0.107.2/src/lib.rs +0 -317
  785. data/ext/cargo-vendor/cranelift-frontend-0.107.2/.cargo-checksum.json +0 -1
  786. data/ext/cargo-vendor/cranelift-frontend-0.107.2/Cargo.toml +0 -69
  787. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/switch.rs +0 -654
  788. data/ext/cargo-vendor/cranelift-isle-0.107.2/.cargo-checksum.json +0 -1
  789. data/ext/cargo-vendor/cranelift-isle-0.107.2/Cargo.toml +0 -46
  790. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/codegen.rs +0 -886
  791. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/lib.rs +0 -271
  792. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/sema.rs +0 -2492
  793. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/serialize.rs +0 -846
  794. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/trie_again.rs +0 -683
  795. data/ext/cargo-vendor/cranelift-native-0.107.2/.cargo-checksum.json +0 -1
  796. data/ext/cargo-vendor/cranelift-native-0.107.2/Cargo.toml +0 -45
  797. data/ext/cargo-vendor/cranelift-wasm-0.107.2/.cargo-checksum.json +0 -1
  798. data/ext/cargo-vendor/cranelift-wasm-0.107.2/Cargo.toml +0 -107
  799. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/code_translator.rs +0 -3683
  800. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/dummy.rs +0 -912
  801. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/spec.rs +0 -945
  802. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/sections_translator.rs +0 -409
  803. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/.cargo-checksum.json +0 -1
  804. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/Cargo.toml +0 -48
  805. data/ext/cargo-vendor/rb-sys-0.9.97/.cargo-checksum.json +0 -1
  806. data/ext/cargo-vendor/rb-sys-0.9.97/Cargo.toml +0 -54
  807. data/ext/cargo-vendor/rb-sys-0.9.97/build/main.rs +0 -238
  808. data/ext/cargo-vendor/rb-sys-0.9.97/build/stable_api_config.rs +0 -133
  809. data/ext/cargo-vendor/rb-sys-0.9.97/src/bindings.rs +0 -20
  810. data/ext/cargo-vendor/rb-sys-0.9.97/src/tracking_allocator.rs +0 -265
  811. data/ext/cargo-vendor/rb-sys-build-0.9.97/.cargo-checksum.json +0 -1
  812. data/ext/cargo-vendor/rb-sys-build-0.9.97/Cargo.toml +0 -62
  813. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/bindings/stable_api.rs +0 -202
  814. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/bindings.rs +0 -250
  815. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/cc.rs +0 -365
  816. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/utils.rs +0 -52
  817. data/ext/cargo-vendor/wasi-common-20.0.2/.cargo-checksum.json +0 -1
  818. data/ext/cargo-vendor/wasi-common-20.0.2/Cargo.toml +0 -220
  819. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/async_.rs +0 -293
  820. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/main.rs +0 -21
  821. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/sync.rs +0 -279
  822. data/ext/cargo-vendor/wasm-encoder-0.202.0/.cargo-checksum.json +0 -1
  823. data/ext/cargo-vendor/wasm-encoder-0.202.0/Cargo.toml +0 -43
  824. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/code.rs +0 -3444
  825. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/data.rs +0 -185
  826. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/elements.rs +0 -220
  827. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/globals.rs +0 -101
  828. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/imports.rs +0 -156
  829. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/memories.rs +0 -111
  830. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/tables.rs +0 -116
  831. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/types.rs +0 -673
  832. data/ext/cargo-vendor/wasmparser-0.202.0/.cargo-checksum.json +0 -1
  833. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.lock +0 -744
  834. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.toml +0 -66
  835. data/ext/cargo-vendor/wasmparser-0.202.0/src/binary_reader.rs +0 -1849
  836. data/ext/cargo-vendor/wasmparser-0.202.0/src/lib.rs +0 -766
  837. data/ext/cargo-vendor/wasmparser-0.202.0/src/limits.rs +0 -64
  838. data/ext/cargo-vendor/wasmparser-0.202.0/src/parser.rs +0 -1611
  839. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/canonicals.rs +0 -120
  840. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/instances.rs +0 -163
  841. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/names.rs +0 -102
  842. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/start.rs +0 -30
  843. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/types.rs +0 -549
  844. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/code.rs +0 -146
  845. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/coredumps.rs +0 -243
  846. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/custom.rs +0 -63
  847. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/data.rs +0 -96
  848. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/dylink0.rs +0 -109
  849. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/elements.rs +0 -152
  850. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/globals.rs +0 -49
  851. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/linking.rs +0 -449
  852. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/memories.rs +0 -56
  853. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/names.rs +0 -156
  854. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/operators.rs +0 -411
  855. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/tables.rs +0 -87
  856. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/types/matches.rs +0 -277
  857. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/types.rs +0 -1680
  858. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core.rs +0 -41
  859. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers.rs +0 -316
  860. data/ext/cargo-vendor/wasmparser-0.202.0/src/resources.rs +0 -235
  861. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/component.rs +0 -3238
  862. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/core/canonical.rs +0 -233
  863. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/core.rs +0 -1400
  864. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/func.rs +0 -338
  865. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/names.rs +0 -929
  866. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/operators.rs +0 -4076
  867. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/types.rs +0 -4449
  868. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator.rs +0 -1619
  869. data/ext/cargo-vendor/wasmprinter-0.202.0/.cargo-checksum.json +0 -1
  870. data/ext/cargo-vendor/wasmprinter-0.202.0/Cargo.toml +0 -45
  871. data/ext/cargo-vendor/wasmprinter-0.202.0/src/lib.rs +0 -3202
  872. data/ext/cargo-vendor/wasmprinter-0.202.0/src/operator.rs +0 -1131
  873. data/ext/cargo-vendor/wasmprinter-0.202.0/tests/all.rs +0 -279
  874. data/ext/cargo-vendor/wasmtime-20.0.2/.cargo-checksum.json +0 -1
  875. data/ext/cargo-vendor/wasmtime-20.0.2/Cargo.toml +0 -268
  876. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile/code_builder.rs +0 -201
  877. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile/runtime.rs +0 -175
  878. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile.rs +0 -897
  879. data/ext/cargo-vendor/wasmtime-20.0.2/src/config.rs +0 -2695
  880. data/ext/cargo-vendor/wasmtime-20.0.2/src/engine/serialization.rs +0 -849
  881. data/ext/cargo-vendor/wasmtime-20.0.2/src/engine.rs +0 -741
  882. data/ext/cargo-vendor/wasmtime-20.0.2/src/lib.rs +0 -303
  883. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/jitdump.rs +0 -66
  884. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/perfmap.rs +0 -47
  885. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/vtune.rs +0 -80
  886. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent.rs +0 -105
  887. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/code.rs +0 -102
  888. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/code_memory.rs +0 -335
  889. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/component.rs +0 -661
  890. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/host.rs +0 -439
  891. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/options.rs +0 -554
  892. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/typed.rs +0 -2484
  893. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func.rs +0 -747
  894. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/instance.rs +0 -804
  895. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/linker.rs +0 -786
  896. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/matching.rs +0 -217
  897. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/mod.rs +0 -756
  898. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/resource_table.rs +0 -350
  899. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/resources.rs +0 -1133
  900. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/storage.rs +0 -43
  901. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/store.rs +0 -28
  902. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/types.rs +0 -892
  903. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/values.rs +0 -978
  904. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/coredump.rs +0 -336
  905. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/debug.rs +0 -165
  906. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals/global.rs +0 -300
  907. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals/table.rs +0 -480
  908. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals.rs +0 -236
  909. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/func/typed.rs +0 -898
  910. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/func.rs +0 -2633
  911. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/anyref.rs +0 -46
  912. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/externref.rs +0 -50
  913. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/rooting.rs +0 -222
  914. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/anyref.rs +0 -472
  915. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/externref.rs +0 -644
  916. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/i31.rs +0 -345
  917. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/rooting.rs +0 -1543
  918. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc.rs +0 -87
  919. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/instance.rs +0 -992
  920. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/instantiate.rs +0 -345
  921. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/limits.rs +0 -398
  922. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/linker.rs +0 -1521
  923. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/memory.rs +0 -999
  924. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/module/registry.rs +0 -354
  925. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/module.rs +0 -1295
  926. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/profiling.rs +0 -224
  927. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/resources.rs +0 -33
  928. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/signatures.rs +0 -216
  929. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/stack.rs +0 -73
  930. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/context.rs +0 -243
  931. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/data.rs +0 -289
  932. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/func_refs.rs +0 -85
  933. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store.rs +0 -2796
  934. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/func.rs +0 -138
  935. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/global.rs +0 -68
  936. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/memory.rs +0 -286
  937. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/table.rs +0 -34
  938. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline.rs +0 -77
  939. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trap.rs +0 -641
  940. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/type_registry.rs +0 -632
  941. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/types/matching.rs +0 -367
  942. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/types.rs +0 -1378
  943. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/unix.rs +0 -39
  944. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/v128.rs +0 -131
  945. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/values.rs +0 -945
  946. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/windows.rs +0 -34
  947. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime.rs +0 -112
  948. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/.cargo-checksum.json +0 -1
  949. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/Cargo.toml +0 -22
  950. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/src/lib.rs +0 -81
  951. data/ext/cargo-vendor/wasmtime-cache-20.0.2/.cargo-checksum.json +0 -1
  952. data/ext/cargo-vendor/wasmtime-cache-20.0.2/Cargo.toml +0 -81
  953. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/lib.rs +0 -235
  954. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/.cargo-checksum.json +0 -1
  955. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/Cargo.toml +0 -67
  956. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/src/bindgen.rs +0 -390
  957. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/src/component.rs +0 -1295
  958. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/tests/codegen.rs +0 -342
  959. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/.cargo-checksum.json +0 -1
  960. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/Cargo.toml +0 -25
  961. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/src/lib.rs +0 -180
  962. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/.cargo-checksum.json +0 -1
  963. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/Cargo.toml +0 -114
  964. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/compiler/component.rs +0 -962
  965. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/compiler.rs +0 -1369
  966. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/gc.rs +0 -239
  967. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/attr.rs +0 -345
  968. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/expression.rs +0 -1252
  969. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/line_program.rs +0 -282
  970. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/mod.rs +0 -126
  971. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/unit.rs +0 -522
  972. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/utils.rs +0 -187
  973. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/write_debuginfo.rs +0 -187
  974. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug.rs +0 -18
  975. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/func_environ.rs +0 -2672
  976. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/gc/enabled.rs +0 -649
  977. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/gc.rs +0 -198
  978. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/lib.rs +0 -505
  979. data/ext/cargo-vendor/wasmtime-environ-20.0.2/.cargo-checksum.json +0 -1
  980. data/ext/cargo-vendor/wasmtime-environ-20.0.2/Cargo.lock +0 -782
  981. data/ext/cargo-vendor/wasmtime-environ-20.0.2/Cargo.toml +0 -144
  982. data/ext/cargo-vendor/wasmtime-environ-20.0.2/examples/factc.rs +0 -205
  983. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/address_map.rs +0 -72
  984. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/mod.rs +0 -389
  985. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/module_artifacts.rs +0 -300
  986. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/trap_encoding.rs +0 -69
  987. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/compiler.rs +0 -19
  988. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/dfg.rs +0 -690
  989. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/info.rs +0 -672
  990. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/translate/adapt.rs +0 -459
  991. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/translate.rs +0 -965
  992. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/types/resources.rs +0 -234
  993. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/types.rs +0 -1972
  994. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component.rs +0 -103
  995. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/demangling.rs +0 -28
  996. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/core_types.rs +0 -24
  997. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/signature.rs +0 -135
  998. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/trampoline.rs +0 -3233
  999. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/transcode.rs +0 -89
  1000. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/traps.rs +0 -115
  1001. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact.rs +0 -711
  1002. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/lib.rs +0 -70
  1003. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module.rs +0 -780
  1004. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_artifacts.rs +0 -145
  1005. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_environ.rs +0 -1288
  1006. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_types.rs +0 -122
  1007. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/scopevec.rs +0 -78
  1008. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/stack_map.rs +0 -36
  1009. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/trap_encoding.rs +0 -188
  1010. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/tunables.rs +0 -158
  1011. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/vmoffsets.rs +0 -952
  1012. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/.cargo-checksum.json +0 -1
  1013. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/Cargo.toml +0 -63
  1014. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/build.rs +0 -26
  1015. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/lib.rs +0 -328
  1016. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/unix.rs +0 -265
  1017. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/windows.rs +0 -166
  1018. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/.cargo-checksum.json +0 -1
  1019. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/Cargo.toml +0 -67
  1020. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/.cargo-checksum.json +0 -1
  1021. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/Cargo.toml +0 -47
  1022. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/lib.rs +0 -108
  1023. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/libc.rs +0 -149
  1024. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/miri.rs +0 -10
  1025. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/win.rs +0 -45
  1026. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/.cargo-checksum.json +0 -1
  1027. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/Cargo.toml +0 -147
  1028. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/build.rs +0 -24
  1029. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/arch/aarch64.rs +0 -76
  1030. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/arch/x86_64.rs +0 -41
  1031. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/async_yield.rs +0 -35
  1032. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component/libcalls.rs +0 -571
  1033. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component/resources.rs +0 -351
  1034. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component.rs +0 -860
  1035. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/cow.rs +0 -888
  1036. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/debug_builtins.rs +0 -59
  1037. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/export.rs +0 -108
  1038. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/disabled.rs +0 -23
  1039. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/drc.rs +0 -963
  1040. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/externref.rs +0 -115
  1041. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/free_list.rs +0 -767
  1042. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled.rs +0 -18
  1043. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/gc_ref.rs +0 -486
  1044. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/gc_runtime.rs +0 -503
  1045. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/host_data.rs +0 -81
  1046. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/i31.rs +0 -86
  1047. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc.rs +0 -244
  1048. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/imports.rs +0 -27
  1049. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/on_demand.rs +0 -217
  1050. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/gc_heap_pool.rs +0 -92
  1051. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/index_allocator.rs +0 -704
  1052. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/memory_pool.rs +0 -996
  1053. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/stack_pool.rs +0 -242
  1054. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/table_pool.rs +0 -231
  1055. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling.rs +0 -699
  1056. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator.rs +0 -780
  1057. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance.rs +0 -1566
  1058. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/lib.rs +0 -289
  1059. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/libcalls.rs +0 -777
  1060. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/memory.rs +0 -751
  1061. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mmap.rs +0 -214
  1062. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mmap_vec.rs +0 -201
  1063. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/module_id.rs +0 -43
  1064. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/enabled.rs +0 -213
  1065. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/mod.rs +0 -54
  1066. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/pkru.rs +0 -104
  1067. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/sys.rs +0 -113
  1068. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/send_sync_ptr.rs +0 -106
  1069. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/store_box.rs +0 -35
  1070. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/capi.rs +0 -189
  1071. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/mmap.rs +0 -111
  1072. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/mod.rs +0 -24
  1073. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/traphandlers.rs +0 -55
  1074. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/vm.rs +0 -108
  1075. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/mmap.rs +0 -94
  1076. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/mod.rs +0 -10
  1077. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/traphandlers.rs +0 -47
  1078. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/mod.rs +0 -33
  1079. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/machports.rs +0 -416
  1080. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/mmap.rs +0 -151
  1081. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/mod.rs +0 -21
  1082. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/signals.rs +0 -401
  1083. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/unwind.rs +0 -149
  1084. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/vm.rs +0 -208
  1085. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/mmap.rs +0 -216
  1086. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/mod.rs +0 -6
  1087. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/traphandlers.rs +0 -104
  1088. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/table.rs +0 -851
  1089. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/parking_spot.rs +0 -621
  1090. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/shared_memory.rs +0 -230
  1091. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/shared_memory_disabled.rs +0 -100
  1092. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/backtrace.rs +0 -265
  1093. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/coredump_disabled.rs +0 -16
  1094. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/coredump_enabled.rs +0 -40
  1095. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers.rs +0 -785
  1096. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/vmcontext/vm_host_func_context.rs +0 -137
  1097. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/vmcontext.rs +0 -1293
  1098. data/ext/cargo-vendor/wasmtime-slab-20.0.2/.cargo-checksum.json +0 -1
  1099. data/ext/cargo-vendor/wasmtime-slab-20.0.2/Cargo.toml +0 -21
  1100. data/ext/cargo-vendor/wasmtime-slab-20.0.2/src/lib.rs +0 -493
  1101. data/ext/cargo-vendor/wasmtime-types-20.0.2/.cargo-checksum.json +0 -1
  1102. data/ext/cargo-vendor/wasmtime-types-20.0.2/Cargo.toml +0 -36
  1103. data/ext/cargo-vendor/wasmtime-types-20.0.2/src/error.rs +0 -59
  1104. data/ext/cargo-vendor/wasmtime-types-20.0.2/src/lib.rs +0 -832
  1105. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.2/.cargo-checksum.json +0 -1
  1106. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.2/Cargo.toml +0 -32
  1107. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/.cargo-checksum.json +0 -1
  1108. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/Cargo.toml +0 -194
  1109. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/bindings.rs +0 -283
  1110. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/ctx.rs +0 -659
  1111. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/filesystem.rs +0 -433
  1112. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/lib.rs +0 -404
  1113. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/preview0.rs +0 -879
  1114. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/preview1.rs +0 -2601
  1115. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/api.rs +0 -194
  1116. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/async_.rs +0 -397
  1117. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/main.rs +0 -91
  1118. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/preview1.rs +0 -251
  1119. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/sync.rs +0 -333
  1120. data/ext/cargo-vendor/wasmtime-winch-20.0.2/.cargo-checksum.json +0 -1
  1121. data/ext/cargo-vendor/wasmtime-winch-20.0.2/Cargo.toml +0 -81
  1122. data/ext/cargo-vendor/wasmtime-winch-20.0.2/src/compiler.rs +0 -257
  1123. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/.cargo-checksum.json +0 -1
  1124. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/Cargo.toml +0 -41
  1125. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/lib.rs +0 -2213
  1126. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/rust.rs +0 -421
  1127. data/ext/cargo-vendor/wiggle-20.0.2/.cargo-checksum.json +0 -1
  1128. data/ext/cargo-vendor/wiggle-20.0.2/Cargo.toml +0 -122
  1129. data/ext/cargo-vendor/wiggle-generate-20.0.2/.cargo-checksum.json +0 -1
  1130. data/ext/cargo-vendor/wiggle-generate-20.0.2/Cargo.toml +0 -65
  1131. data/ext/cargo-vendor/wiggle-generate-20.0.2/LICENSE +0 -220
  1132. data/ext/cargo-vendor/wiggle-macro-20.0.2/.cargo-checksum.json +0 -1
  1133. data/ext/cargo-vendor/wiggle-macro-20.0.2/Cargo.toml +0 -55
  1134. data/ext/cargo-vendor/wiggle-macro-20.0.2/LICENSE +0 -220
  1135. data/ext/cargo-vendor/winch-codegen-0.18.2/.cargo-checksum.json +0 -1
  1136. data/ext/cargo-vendor/winch-codegen-0.18.2/Cargo.toml +0 -81
  1137. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/context.rs +0 -534
  1138. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/env.rs +0 -435
  1139. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/mod.rs +0 -756
  1140. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/abi.rs +0 -291
  1141. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/address.rs +0 -144
  1142. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/asm.rs +0 -252
  1143. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/masm.rs +0 -573
  1144. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/mod.rs +0 -154
  1145. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/regs.rs +0 -149
  1146. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/reg.rs +0 -86
  1147. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/x64/asm.rs +0 -1423
  1148. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/x64/masm.rs +0 -1256
  1149. data/ext/cargo-vendor/winch-codegen-0.18.2/src/masm.rs +0 -947
  1150. data/ext/cargo-vendor/winch-codegen-0.18.2/src/regalloc.rs +0 -65
  1151. data/ext/cargo-vendor/winch-codegen-0.18.2/src/regset.rs +0 -194
  1152. data/ext/cargo-vendor/winch-codegen-0.18.2/src/visitor.rs +0 -2149
  1153. data/ext/cargo-vendor/wit-parser-0.202.0/.cargo-checksum.json +0 -1
  1154. data/ext/cargo-vendor/wit-parser-0.202.0/Cargo.toml +0 -101
  1155. data/ext/cargo-vendor/wit-parser-0.202.0/src/ast/resolve.rs +0 -1443
  1156. data/ext/cargo-vendor/wit-parser-0.202.0/src/decoding.rs +0 -1764
  1157. data/ext/cargo-vendor/wit-parser-0.202.0/src/lib.rs +0 -765
  1158. data/ext/cargo-vendor/wit-parser-0.202.0/src/live.rs +0 -111
  1159. data/ext/cargo-vendor/wit-parser-0.202.0/src/resolve.rs +0 -2240
  1160. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-multiple-returns-borrow.wit.json +0 -74
  1161. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-return-borrow.wit.json +0 -69
  1162. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-top-level-resources.wit +0 -24
  1163. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-top-level-resources.wit.json +0 -240
  1164. data/ext/src/ruby_api/config/tracked_memory_creator.rs +0 -82
  1165. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/LICENSE +0 -0
  1166. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/README.md +0 -0
  1167. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/lib.rs +0 -0
  1168. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/map.rs +0 -0
  1169. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/node.rs +0 -0
  1170. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/path.rs +0 -0
  1171. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/pool.rs +0 -0
  1172. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/set.rs +0 -0
  1173. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/LICENSE +0 -0
  1174. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/README.md +0 -0
  1175. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/benches/x64-evex-encoding.rs +0 -0
  1176. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/binemit/mod.rs +0 -0
  1177. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/binemit/stack_map.rs +0 -0
  1178. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/bitset.rs +0 -0
  1179. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/cfg_printer.rs +0 -0
  1180. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/constant_hash.rs +0 -0
  1181. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/cursor.rs +0 -0
  1182. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/data_value.rs +0 -0
  1183. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/dbg.rs +0 -0
  1184. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/dce.rs +0 -0
  1185. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/dominator_tree.rs +0 -0
  1186. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/egraph/cost.rs +0 -0
  1187. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/flowgraph.rs +0 -0
  1188. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/inst_predicates.rs +0 -0
  1189. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/atomic_rmw_op.rs +0 -0
  1190. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/builder.rs +0 -0
  1191. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/condcodes.rs +0 -0
  1192. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/constant.rs +0 -0
  1193. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/dfg.rs +0 -0
  1194. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/dynamic_type.rs +0 -0
  1195. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/entities.rs +0 -0
  1196. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/extfunc.rs +0 -0
  1197. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/extname.rs +0 -0
  1198. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/function.rs +0 -0
  1199. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/globalvalue.rs +0 -0
  1200. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/immediates.rs +0 -0
  1201. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/jumptable.rs +0 -0
  1202. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/known_symbol.rs +0 -0
  1203. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/layout.rs +0 -0
  1204. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/libcall.rs +0 -0
  1205. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/memflags.rs +0 -0
  1206. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/memtype.rs +0 -0
  1207. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/mod.rs +0 -0
  1208. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/pcc.rs +0 -0
  1209. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/progpoint.rs +0 -0
  1210. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/sourceloc.rs +0 -0
  1211. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/stackslot.rs +0 -0
  1212. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/trapcode.rs +0 -0
  1213. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/types.rs +0 -0
  1214. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  1215. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/inst/unwind.rs +0 -0
  1216. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/inst_neon.isle +0 -0
  1217. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1218. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/lower.isle +0 -0
  1219. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/lower.rs +0 -0
  1220. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1221. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/mod.rs +0 -0
  1222. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/settings.rs +0 -0
  1223. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/call_conv.rs +0 -0
  1224. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst/encode.rs +0 -0
  1225. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst/imms.rs +0 -0
  1226. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  1227. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst/unwind.rs +0 -0
  1228. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst_vector.isle +0 -0
  1229. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1230. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/lower.rs +0 -0
  1231. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/mod.rs +0 -0
  1232. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/settings.rs +0 -0
  1233. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/inst/emit_tests.rs +0 -0
  1234. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  1235. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/inst/unwind.rs +0 -0
  1236. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/inst.isle +0 -0
  1237. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1238. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/lower/isle.rs +0 -0
  1239. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/lower.isle +0 -0
  1240. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/lower.rs +0 -0
  1241. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/mod.rs +0 -0
  1242. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/settings.rs +0 -0
  1243. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/unwind/systemv.rs +0 -0
  1244. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/unwind/winx64.rs +0 -0
  1245. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/unwind.rs +0 -0
  1246. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/encoding/evex.rs +0 -0
  1247. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/encoding/mod.rs +0 -0
  1248. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/encoding/rex.rs +0 -0
  1249. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/encoding/vex.rs +0 -0
  1250. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/inst/emit_state.rs +0 -0
  1251. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  1252. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1253. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/inst/unwind.rs +0 -0
  1254. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1255. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/mod.rs +0 -0
  1256. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/settings.rs +0 -0
  1257. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isle_prelude.rs +0 -0
  1258. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/iterators.rs +0 -0
  1259. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/legalizer/globalvalue.rs +0 -0
  1260. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/legalizer/mod.rs +0 -0
  1261. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/loop_analysis.rs +0 -0
  1262. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/buffer.rs +0 -0
  1263. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/compile.rs +0 -0
  1264. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/helpers.rs +0 -0
  1265. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/inst_common.rs +0 -0
  1266. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/pcc.rs +0 -0
  1267. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/README.md +0 -0
  1268. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/bitops.isle +0 -0
  1269. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/cprop.isle +0 -0
  1270. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/extends.isle +0 -0
  1271. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/generated_code.rs +0 -0
  1272. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/remat.isle +0 -0
  1273. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/selects.isle +0 -0
  1274. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/shifts.isle +0 -0
  1275. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/spaceship.isle +0 -0
  1276. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/spectre.isle +0 -0
  1277. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/vector.isle +0 -0
  1278. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts.rs +0 -0
  1279. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/prelude.isle +0 -0
  1280. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/prelude_lower.isle +0 -0
  1281. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/prelude_opt.isle +0 -0
  1282. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/print_errors.rs +0 -0
  1283. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/result.rs +0 -0
  1284. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/souper_harvest.rs +0 -0
  1285. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/timing.rs +0 -0
  1286. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/unionfind.rs +0 -0
  1287. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/unreachable_code.rs +0 -0
  1288. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/value_label.rs +0 -0
  1289. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/verifier/mod.rs +0 -0
  1290. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/write.rs +0 -0
  1291. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/LICENSE +0 -0
  1292. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/README.md +0 -0
  1293. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/formats.rs +0 -0
  1294. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/instructions.rs +0 -0
  1295. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/isa.rs +0 -0
  1296. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/mod.rs +0 -0
  1297. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/operands.rs +0 -0
  1298. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/settings.rs +0 -0
  1299. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/types.rs +0 -0
  1300. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/typevar.rs +0 -0
  1301. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/constant_hash.rs +0 -0
  1302. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/error.rs +0 -0
  1303. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/isa/arm64.rs +0 -0
  1304. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/isa/mod.rs +0 -0
  1305. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/isa/s390x.rs +0 -0
  1306. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/entities.rs +0 -0
  1307. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/formats.rs +0 -0
  1308. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/immediates.rs +0 -0
  1309. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/instructions.rs +0 -0
  1310. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/mod.rs +0 -0
  1311. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/types.rs +0 -0
  1312. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/unique_table.rs +0 -0
  1313. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/LICENSE +0 -0
  1314. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/README.md +0 -0
  1315. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/src/constant_hash.rs +0 -0
  1316. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/src/constants.rs +0 -0
  1317. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/src/lib.rs +0 -0
  1318. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/LICENSE +0 -0
  1319. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/README.md +0 -0
  1320. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/src/chaos.rs +0 -0
  1321. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/src/lib.rs +0 -0
  1322. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/src/zero_sized.rs +0 -0
  1323. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/LICENSE +0 -0
  1324. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/README.md +0 -0
  1325. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/boxed_slice.rs +0 -0
  1326. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/iter.rs +0 -0
  1327. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/keys.rs +0 -0
  1328. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/list.rs +0 -0
  1329. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/map.rs +0 -0
  1330. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/packed_option.rs +0 -0
  1331. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/primary.rs +0 -0
  1332. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/set.rs +0 -0
  1333. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/sparse.rs +0 -0
  1334. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/unsigned.rs +0 -0
  1335. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/LICENSE +0 -0
  1336. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/README.md +0 -0
  1337. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/src/frontend.rs +0 -0
  1338. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/src/lib.rs +0 -0
  1339. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/src/ssa.rs +0 -0
  1340. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/src/variable.rs +0 -0
  1341. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/README.md +0 -0
  1342. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/build.rs +0 -0
  1343. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/bad_converters.isle +0 -0
  1344. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1345. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1346. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/error1.isle +0 -0
  1347. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/extra_parens.isle +0 -0
  1348. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/impure_expression.isle +0 -0
  1349. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/impure_rhs.isle +0 -0
  1350. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1351. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/multi_prio.isle +0 -0
  1352. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/borrows.isle +0 -0
  1353. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/borrows_main.rs +0 -0
  1354. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/iflets.isle +0 -0
  1355. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/iflets_main.rs +0 -0
  1356. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/multi_constructor.isle +0 -0
  1357. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/multi_constructor_main.rs +0 -0
  1358. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/multi_extractor.isle +0 -0
  1359. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/multi_extractor_main.rs +0 -0
  1360. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/test.isle +0 -0
  1361. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/test_main.rs +0 -0
  1362. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/bound_var.isle +0 -0
  1363. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/construct_and_extract.isle +0 -0
  1364. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/conversions.isle +0 -0
  1365. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/conversions_extern.isle +0 -0
  1366. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/let.isle +0 -0
  1367. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/nodebug.isle +0 -0
  1368. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1369. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/test2.isle +0 -0
  1370. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/test3.isle +0 -0
  1371. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/test4.isle +0 -0
  1372. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/tutorial.isle +0 -0
  1373. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/run/iconst.isle +0 -0
  1374. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/run/iconst_main.rs +0 -0
  1375. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/run/let_shadowing.isle +0 -0
  1376. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/run/let_shadowing_main.rs +0 -0
  1377. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/ast.rs +0 -0
  1378. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/compile.rs +0 -0
  1379. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/error.rs +0 -0
  1380. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/lexer.rs +0 -0
  1381. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/log.rs +0 -0
  1382. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/overlap.rs +0 -0
  1383. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/parser.rs +0 -0
  1384. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/tests/run_tests.rs +0 -0
  1385. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.108.1}/LICENSE +0 -0
  1386. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.108.1}/README.md +0 -0
  1387. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.108.1}/src/lib.rs +0 -0
  1388. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.108.1}/src/riscv.rs +0 -0
  1389. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/LICENSE +0 -0
  1390. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/README.md +0 -0
  1391. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/code_translator/bounds_checks.rs +0 -0
  1392. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/environ/mod.rs +0 -0
  1393. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/func_translator.rs +0 -0
  1394. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/heap.rs +0 -0
  1395. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/lib.rs +0 -0
  1396. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/module_translator.rs +0 -0
  1397. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/state.rs +0 -0
  1398. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/table.rs +0 -0
  1399. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/translation_utils.rs +0 -0
  1400. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/README.md +0 -0
  1401. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/clocks.rs +0 -0
  1402. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/lib.rs +0 -0
  1403. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/noop_scheduler.rs +0 -0
  1404. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/clocks.rs +0 -0
  1405. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/common/mod.rs +0 -0
  1406. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/random.rs +0 -0
  1407. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/scheduler.rs +0 -0
  1408. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/LICENSE-APACHE +0 -0
  1409. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/LICENSE-MIT +0 -0
  1410. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/bin/release.sh +0 -0
  1411. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/build/features.rs +0 -0
  1412. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/build/version.rs +0 -0
  1413. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/readme.md +0 -0
  1414. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/hidden.rs +0 -0
  1415. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/lib.rs +0 -0
  1416. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/macros.rs +0 -0
  1417. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/memory.rs +0 -0
  1418. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/ruby_abi_version.rs +0 -0
  1419. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/special_consts.rs +0 -0
  1420. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/compiled.c +0 -0
  1421. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/compiled.rs +0 -0
  1422. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_2_6.rs +0 -0
  1423. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_2_7.rs +0 -0
  1424. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_0.rs +0 -0
  1425. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_1.rs +0 -0
  1426. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_2.rs +0 -0
  1427. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_3.rs +0 -0
  1428. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api.rs +0 -0
  1429. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/symbol.rs +0 -0
  1430. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/utils.rs +0 -0
  1431. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/value_type.rs +0 -0
  1432. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/LICENSE-APACHE +0 -0
  1433. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/LICENSE-MIT +0 -0
  1434. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/bindings/sanitizer.rs +0 -0
  1435. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/bindings/wrapper.h +0 -0
  1436. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/lib.rs +0 -0
  1437. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/flags.rs +0 -0
  1438. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/library.rs +0 -0
  1439. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/search_path.rs +0 -0
  1440. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config.rs +0 -0
  1441. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/LICENSE +0 -0
  1442. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/README.md +0 -0
  1443. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/clocks.rs +0 -0
  1444. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/ctx.rs +0 -0
  1445. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/dir.rs +0 -0
  1446. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/error.rs +0 -0
  1447. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/file.rs +0 -0
  1448. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/lib.rs +0 -0
  1449. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/pipe.rs +0 -0
  1450. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/random.rs +0 -0
  1451. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sched/subscription.rs +0 -0
  1452. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sched.rs +0 -0
  1453. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/snapshots/mod.rs +0 -0
  1454. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/snapshots/preview_0.rs +0 -0
  1455. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/snapshots/preview_1/error.rs +0 -0
  1456. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/snapshots/preview_1.rs +0 -0
  1457. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/string_array.rs +0 -0
  1458. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/clocks.rs +0 -0
  1459. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/dir.rs +0 -0
  1460. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/file.rs +0 -0
  1461. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/mod.rs +0 -0
  1462. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/net.rs +0 -0
  1463. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/sched/unix.rs +0 -0
  1464. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/sched/windows.rs +0 -0
  1465. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/sched.rs +0 -0
  1466. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/stdio.rs +0 -0
  1467. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/table.rs +0 -0
  1468. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/dir.rs +0 -0
  1469. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/file.rs +0 -0
  1470. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/mod.rs +0 -0
  1471. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/net.rs +0 -0
  1472. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/sched/unix.rs +0 -0
  1473. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/sched/windows.rs +0 -0
  1474. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/sched.rs +0 -0
  1475. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/stdio.rs +0 -0
  1476. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/witx/preview0/typenames.witx +0 -0
  1477. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/witx/preview0/wasi_unstable.witx +0 -0
  1478. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/witx/preview1/typenames.witx +0 -0
  1479. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1480. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/LICENSE +0 -0
  1481. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/README.md +0 -0
  1482. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/aliases.rs +0 -0
  1483. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/builder.rs +0 -0
  1484. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/canonicals.rs +0 -0
  1485. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/components.rs +0 -0
  1486. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/exports.rs +0 -0
  1487. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/imports.rs +0 -0
  1488. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/instances.rs +0 -0
  1489. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/modules.rs +0 -0
  1490. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/names.rs +0 -0
  1491. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/start.rs +0 -0
  1492. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/types.rs +0 -0
  1493. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component.rs +0 -0
  1494. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/custom.rs +0 -0
  1495. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/dump.rs +0 -0
  1496. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/exports.rs +0 -0
  1497. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/functions.rs +0 -0
  1498. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/linking.rs +0 -0
  1499. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/names.rs +0 -0
  1500. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/producers.rs +0 -0
  1501. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/start.rs +0 -0
  1502. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/tags.rs +0 -0
  1503. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core.rs +0 -0
  1504. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/lib.rs +0 -0
  1505. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/raw.rs +0 -0
  1506. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/README.md +0 -0
  1507. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/benches/benchmark.rs +0 -0
  1508. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/examples/simple.rs +0 -0
  1509. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/component/aliases.rs +0 -0
  1510. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/component/exports.rs +0 -0
  1511. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/component/imports.rs +0 -0
  1512. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/component.rs +0 -0
  1513. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/branch_hinting.rs +0 -0
  1514. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/exports.rs +0 -0
  1515. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/functions.rs +0 -0
  1516. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/imports.rs +0 -0
  1517. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/init.rs +0 -0
  1518. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/producers.rs +0 -0
  1519. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/tags.rs +0 -0
  1520. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/tests/big-module.rs +0 -0
  1521. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmprinter-0.207.0}/LICENSE +0 -0
  1522. /data/ext/cargo-vendor/{wasmprinter-0.202.0 → wasmprinter-0.207.0}/README.md +0 -0
  1523. /data/ext/cargo-vendor/{wasmprinter-0.202.0 → wasmtime-21.0.1}/LICENSE +0 -0
  1524. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/README.md +0 -0
  1525. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/proptest-regressions → wasmtime-21.0.1/proptest-regressions/runtime/vm}/instance/allocator/pooling/memory_pool.txt +0 -0
  1526. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/src/runtime/gc/disabled/i31.rs +0 -0
  1527. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/src/runtime/gc/disabled.rs +0 -0
  1528. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/src/runtime/gc/enabled.rs +0 -0
  1529. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/src/runtime/uninhabited.rs +0 -0
  1530. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/arch/mod.rs +0 -0
  1531. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/arch/riscv64.rs +0 -0
  1532. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/arch/s390x.S +0 -0
  1533. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/arch/s390x.rs +0 -0
  1534. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/helpers.c +0 -0
  1535. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/mpk/disabled.rs +0 -0
  1536. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/custom/unwind.rs +0 -0
  1537. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/miri/unwind.rs +0 -0
  1538. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/miri/vm.rs +0 -0
  1539. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/unix/macos_traphandlers.rs +0 -0
  1540. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/windows/unwind.rs +0 -0
  1541. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/windows/vm.rs +0 -0
  1542. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/threads/mod.rs +0 -0
  1543. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-cache-21.0.1}/LICENSE +0 -0
  1544. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/build.rs +0 -0
  1545. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/config/tests.rs +0 -0
  1546. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/config.rs +0 -0
  1547. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/tests.rs +0 -0
  1548. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/worker/tests/system_time_stub.rs +0 -0
  1549. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/worker/tests.rs +0 -0
  1550. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/worker.rs +0 -0
  1551. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/tests/cache_write_default_config.rs +0 -0
  1552. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/build.rs +0 -0
  1553. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/src/lib.rs +0 -0
  1554. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/char.wit +0 -0
  1555. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/conventions.wit +0 -0
  1556. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/dead-code.wit +0 -0
  1557. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/direct-import.wit +0 -0
  1558. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/empty.wit +0 -0
  1559. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/flags.wit +0 -0
  1560. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/floats.wit +0 -0
  1561. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/function-new.wit +0 -0
  1562. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/integers.wit +0 -0
  1563. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/lists.wit +0 -0
  1564. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/many-arguments.wit +0 -0
  1565. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/multi-return.wit +0 -0
  1566. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  1567. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  1568. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/multiversion/root.wit +0 -0
  1569. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/records.wit +0 -0
  1570. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/rename.wit +0 -0
  1571. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/resources-export.wit +0 -0
  1572. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/resources-import.wit +0 -0
  1573. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/share-types.wit +0 -0
  1574. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/simple-functions.wit +0 -0
  1575. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/simple-lists.wit +0 -0
  1576. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/simple-wasi.wit +0 -0
  1577. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/small-anonymous.wit +0 -0
  1578. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/smoke-default.wit +0 -0
  1579. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/smoke-export.wit +0 -0
  1580. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/smoke.wit +0 -0
  1581. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/strings.wit +0 -0
  1582. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/unversioned-foo.wit +0 -0
  1583. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/use-paths.wit +0 -0
  1584. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/variants.wit +0 -0
  1585. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/wat.wit +0 -0
  1586. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/worlds-with-types.wit +0 -0
  1587. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cranelift-21.0.1}/LICENSE +0 -0
  1588. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/SECURITY.md +0 -0
  1589. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/builder.rs +0 -0
  1590. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/compiled_function.rs +0 -0
  1591. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/debug/transform/address_transform.rs +0 -0
  1592. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/debug/transform/range_info_builder.rs +0 -0
  1593. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/debug/transform/refs.rs +0 -0
  1594. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/debug/transform/simulate.rs +0 -0
  1595. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/gc/disabled.rs +0 -0
  1596. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/isa_builder.rs +0 -0
  1597. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/obj.rs +0 -0
  1598. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-environ-21.0.1}/LICENSE +0 -0
  1599. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/address_map.rs +0 -0
  1600. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/builtin.rs +0 -0
  1601. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/component/artifacts.rs +0 -0
  1602. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/component/translate/inline.rs +0 -0
  1603. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/component/vmcomponent_offsets.rs +0 -0
  1604. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/gc.rs +0 -0
  1605. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/obj.rs +0 -0
  1606. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/ref_bits.rs +0 -0
  1607. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-fiber-21.0.1}/LICENSE +0 -0
  1608. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/aarch64.rs +0 -0
  1609. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/arm.rs +0 -0
  1610. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/riscv64.rs +0 -0
  1611. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/s390x.S +0 -0
  1612. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/x86.rs +0 -0
  1613. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/x86_64.rs +0 -0
  1614. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/windows.c +0 -0
  1615. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-21.0.1}/README.md +0 -0
  1616. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-21.0.1}/src/gdb_jit_int.rs +0 -0
  1617. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-21.0.1}/src/lib.rs +0 -0
  1618. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-21.0.1}/src/perf_jitdump.rs +0 -0
  1619. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-types-21.0.1}/LICENSE +0 -0
  1620. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-20.0.2 → wasmtime-versioned-export-macros-21.0.1}/src/lib.rs +0 -0
  1621. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2 → wasmtime-wasi-21.0.1}/LICENSE +0 -0
  1622. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/README.md +0 -0
  1623. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/clocks/host.rs +0 -0
  1624. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/clocks.rs +0 -0
  1625. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/error.rs +0 -0
  1626. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/clocks.rs +0 -0
  1627. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/env.rs +0 -0
  1628. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/exit.rs +0 -0
  1629. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/filesystem/sync.rs +0 -0
  1630. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/filesystem.rs +0 -0
  1631. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/instance_network.rs +0 -0
  1632. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/io.rs +0 -0
  1633. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/mod.rs +0 -0
  1634. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/network.rs +0 -0
  1635. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/random.rs +0 -0
  1636. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/tcp.rs +0 -0
  1637. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/tcp_create_socket.rs +0 -0
  1638. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/udp.rs +0 -0
  1639. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/udp_create_socket.rs +0 -0
  1640. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/ip_name_lookup.rs +0 -0
  1641. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/network.rs +0 -0
  1642. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/pipe.rs +0 -0
  1643. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/poll.rs +0 -0
  1644. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/random.rs +0 -0
  1645. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/runtime.rs +0 -0
  1646. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/stdio/worker_thread_stdin.rs +0 -0
  1647. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/stdio.rs +0 -0
  1648. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/stream.rs +0 -0
  1649. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/tcp.rs +0 -0
  1650. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/udp.rs +0 -0
  1651. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/write_stream.rs +0 -0
  1652. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/tests/process_stdin.rs +0 -0
  1653. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/command-extended.wit +0 -0
  1654. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/command.wit +0 -0
  1655. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/environment.wit +0 -0
  1656. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/exit.wit +0 -0
  1657. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/imports.wit +0 -0
  1658. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/run.wit +0 -0
  1659. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/stdio.wit +0 -0
  1660. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/terminal.wit +0 -0
  1661. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1662. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/clocks/wall-clock.wit +0 -0
  1663. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/clocks/world.wit +0 -0
  1664. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/filesystem/preopens.wit +0 -0
  1665. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/filesystem/types.wit +0 -0
  1666. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/filesystem/world.wit +0 -0
  1667. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/http/handler.wit +0 -0
  1668. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/http/proxy.wit +0 -0
  1669. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/http/types.wit +0 -0
  1670. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/io/error.wit +0 -0
  1671. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/io/poll.wit +0 -0
  1672. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/io/streams.wit +0 -0
  1673. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/io/world.wit +0 -0
  1674. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/random/insecure-seed.wit +0 -0
  1675. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/random/insecure.wit +0 -0
  1676. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/random/random.wit +0 -0
  1677. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/random/world.wit +0 -0
  1678. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/instance-network.wit +0 -0
  1679. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1680. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/network.wit +0 -0
  1681. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1682. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/tcp.wit +0 -0
  1683. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1684. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/udp.wit +0 -0
  1685. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/world.wit +0 -0
  1686. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/test.wit +0 -0
  1687. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/witx/preview0/typenames.witx +0 -0
  1688. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/witx/preview0/wasi_unstable.witx +0 -0
  1689. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/witx/preview1/typenames.witx +0 -0
  1690. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1691. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-21.0.1}/LICENSE +0 -0
  1692. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-21.0.1}/src/builder.rs +0 -0
  1693. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-21.0.1}/src/lib.rs +0 -0
  1694. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-20.0.2 → wasmtime-wit-bindgen-21.0.1}/src/source.rs +0 -0
  1695. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-20.0.2 → wasmtime-wit-bindgen-21.0.1}/src/types.rs +0 -0
  1696. /data/ext/cargo-vendor/{wasmtime-types-20.0.2 → wiggle-21.0.1}/LICENSE +0 -0
  1697. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/README.md +0 -0
  1698. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/borrow.rs +0 -0
  1699. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/error.rs +0 -0
  1700. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/guest_type.rs +0 -0
  1701. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/lib.rs +0 -0
  1702. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/region.rs +0 -0
  1703. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/wasmtime.rs +0 -0
  1704. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wiggle-generate-21.0.1}/LICENSE +0 -0
  1705. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/README.md +0 -0
  1706. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/codegen_settings.rs +0 -0
  1707. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/config.rs +0 -0
  1708. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/funcs.rs +0 -0
  1709. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/lib.rs +0 -0
  1710. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/lifetimes.rs +0 -0
  1711. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/module_trait.rs +0 -0
  1712. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/names.rs +0 -0
  1713. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/error.rs +0 -0
  1714. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/flags.rs +0 -0
  1715. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/handle.rs +0 -0
  1716. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/mod.rs +0 -0
  1717. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/record.rs +0 -0
  1718. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/variant.rs +0 -0
  1719. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/wasmtime.rs +0 -0
  1720. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-macro-21.0.1}/LICENSE +0 -0
  1721. /data/ext/cargo-vendor/{wiggle-macro-20.0.2 → wiggle-macro-21.0.1}/src/lib.rs +0 -0
  1722. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/LICENSE +0 -0
  1723. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/build.rs +0 -0
  1724. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/abi/local.rs +0 -0
  1725. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/abi/mod.rs +0 -0
  1726. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/codegen/bounds.rs +0 -0
  1727. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/codegen/builtin.rs +0 -0
  1728. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/codegen/call.rs +0 -0
  1729. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/codegen/control.rs +0 -0
  1730. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/frame/mod.rs +0 -0
  1731. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/mod.rs +0 -0
  1732. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/x64/abi.rs +0 -0
  1733. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/x64/address.rs +0 -0
  1734. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/x64/mod.rs +0 -0
  1735. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/x64/regs.rs +0 -0
  1736. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/lib.rs +0 -0
  1737. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/stack.rs +0 -0
  1738. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/README.md +0 -0
  1739. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/abi.rs +0 -0
  1740. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/ast/lex.rs +0 -0
  1741. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/ast/toposort.rs +0 -0
  1742. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/ast.rs +0 -0
  1743. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/docs.rs +0 -0
  1744. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/serde_.rs +0 -0
  1745. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/sizealign.rs +0 -0
  1746. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/all.rs +0 -0
  1747. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/comments.wit +0 -0
  1748. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/comments.wit.json +0 -0
  1749. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/complex-include/deps/bar/root.wit +0 -0
  1750. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/complex-include/deps/baz/root.wit +0 -0
  1751. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/complex-include/root.wit +0 -0
  1752. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/complex-include.wit.json +0 -0
  1753. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/cross-package-resource/deps/foo/foo.wit +0 -0
  1754. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/cross-package-resource/foo.wit +0 -0
  1755. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/cross-package-resource.wit.json +0 -0
  1756. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/diamond1/deps/dep1/types.wit +0 -0
  1757. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/diamond1/deps/dep2/types.wit +0 -0
  1758. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/diamond1/join.wit +0 -0
  1759. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/diamond1.wit.json +0 -0
  1760. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/disambiguate-diamond/shared1.wit +0 -0
  1761. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/disambiguate-diamond/shared2.wit +0 -0
  1762. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/disambiguate-diamond/world.wit +0 -0
  1763. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/disambiguate-diamond.wit.json +0 -0
  1764. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/empty.wit +0 -0
  1765. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/empty.wit.json +0 -0
  1766. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -0
  1767. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/corp/saas.wit +0 -0
  1768. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -0
  1769. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -0
  1770. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -0
  1771. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -0
  1772. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -0
  1773. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/root.wit +0 -0
  1774. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit +0 -0
  1775. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/corp/saas.wit +0 -0
  1776. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit +0 -0
  1777. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit +0 -0
  1778. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit +0 -0
  1779. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/wasi/clocks.wit +0 -0
  1780. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit +0 -0
  1781. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/wasi/wasi.wit +0 -0
  1782. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/root.wit +0 -0
  1783. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union.wit.json +0 -0
  1784. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps.wit.json +0 -0
  1785. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/functions.wit +0 -0
  1786. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/functions.wit.json +0 -0
  1787. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/ignore-files-deps/deps/bar/types.wit +0 -0
  1788. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/ignore-files-deps/deps/ignore-me.txt +0 -0
  1789. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/ignore-files-deps/world.wit +0 -0
  1790. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/ignore-files-deps.wit.json +0 -0
  1791. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/import-export-overlap1.wit +0 -0
  1792. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/import-export-overlap1.wit.json +0 -0
  1793. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/import-export-overlap2.wit +0 -0
  1794. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/import-export-overlap2.wit.json +0 -0
  1795. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/include-reps.wit +0 -0
  1796. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/include-reps.wit.json +0 -0
  1797. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kebab-name-include-with.wit +0 -0
  1798. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kebab-name-include-with.wit.json +0 -0
  1799. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/a.wit +0 -0
  1800. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/deps/b/root.wit +0 -0
  1801. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/deps/c.wit +0 -0
  1802. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/deps/d.wat +0 -0
  1803. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/deps/e.wasm +0 -0
  1804. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps.wit.json +0 -0
  1805. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/many-names/a.wit +0 -0
  1806. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/many-names/b.wit +0 -0
  1807. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/many-names.wit.json +0 -0
  1808. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file/bar.wit +0 -0
  1809. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file/cycle-a.wit +0 -0
  1810. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file/cycle-b.wit +0 -0
  1811. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file/foo.wit +0 -0
  1812. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file.wit.json +0 -0
  1813. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/name-both-resource-and-type/deps/dep/foo.wit +0 -0
  1814. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/name-both-resource-and-type/foo.wit +0 -0
  1815. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/name-both-resource-and-type.wit.json +0 -0
  1816. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax1.wit +0 -0
  1817. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax1.wit.json +0 -0
  1818. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax3.wit +0 -0
  1819. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax3.wit.json +0 -0
  1820. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax4.wit +0 -0
  1821. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax4.wit.json +0 -0
  1822. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  1823. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/alias-no-type.wit.result +0 -0
  1824. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/async.wit.result +0 -0
  1825. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/async1.wit.result +0 -0
  1826. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-function.wit +0 -0
  1827. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-function.wit.result +0 -0
  1828. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-function2.wit +0 -0
  1829. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-function2.wit.result +0 -0
  1830. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include1.wit +0 -0
  1831. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include1.wit.result +0 -0
  1832. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include2.wit +0 -0
  1833. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include2.wit.result +0 -0
  1834. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include3.wit +0 -0
  1835. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include3.wit.result +0 -0
  1836. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-list.wit +0 -0
  1837. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  1838. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg1/root.wit +0 -0
  1839. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg1.wit.result +0 -0
  1840. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +0 -0
  1841. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg2/root.wit +0 -0
  1842. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg2.wit.result +0 -0
  1843. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  1844. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg3/root.wit +0 -0
  1845. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg3.wit.result +0 -0
  1846. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -0
  1847. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg4/root.wit +0 -0
  1848. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg4.wit.result +0 -0
  1849. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -0
  1850. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg5/root.wit +0 -0
  1851. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg5.wit.result +0 -0
  1852. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  1853. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg6/root.wit +0 -0
  1854. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg6.wit.result +0 -0
  1855. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource1.wit +0 -0
  1856. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource1.wit.result +0 -0
  1857. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource10.wit +0 -0
  1858. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource10.wit.result +0 -0
  1859. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource11.wit +0 -0
  1860. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource11.wit.result +0 -0
  1861. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource12.wit +0 -0
  1862. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource12.wit.result +0 -0
  1863. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource13.wit +0 -0
  1864. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource13.wit.result +0 -0
  1865. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource14.wit +0 -0
  1866. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource14.wit.result +0 -0
  1867. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit +0 -0
  1868. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource15/foo.wit +0 -0
  1869. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource15.wit.result +0 -0
  1870. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource2.wit +0 -0
  1871. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource2.wit.result +0 -0
  1872. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource3.wit +0 -0
  1873. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource3.wit.result +0 -0
  1874. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource4.wit +0 -0
  1875. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource4.wit.result +0 -0
  1876. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource5.wit +0 -0
  1877. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource5.wit.result +0 -0
  1878. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource6.wit +0 -0
  1879. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource6.wit.result +0 -0
  1880. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource7.wit +0 -0
  1881. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource7.wit.result +0 -0
  1882. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource8.wit +0 -0
  1883. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource8.wit.result +0 -0
  1884. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource9.wit +0 -0
  1885. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource9.wit.result +0 -0
  1886. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-world-type1.wit +0 -0
  1887. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-world-type1.wit.result +0 -0
  1888. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/conflicting-package/a.wit +0 -0
  1889. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/conflicting-package/b.wit +0 -0
  1890. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/conflicting-package.wit.result +0 -0
  1891. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle.wit +0 -0
  1892. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle.wit.result +0 -0
  1893. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle2.wit +0 -0
  1894. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle2.wit.result +0 -0
  1895. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle3.wit +0 -0
  1896. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle3.wit.result +0 -0
  1897. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle4.wit +0 -0
  1898. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle4.wit.result +0 -0
  1899. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle5.wit +0 -0
  1900. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle5.wit.result +0 -0
  1901. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/dangling-type.wit +0 -0
  1902. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  1903. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-function-params.wit +0 -0
  1904. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-function-params.wit.result +0 -0
  1905. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-functions.wit +0 -0
  1906. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-functions.wit.result +0 -0
  1907. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface.wit +0 -0
  1908. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface.wit.result +0 -0
  1909. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface2/foo.wit +0 -0
  1910. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface2/foo2.wit +0 -0
  1911. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface2.wit.result +0 -0
  1912. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-type.wit +0 -0
  1913. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-type.wit.result +0 -0
  1914. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/empty-enum.wit +0 -0
  1915. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/empty-enum.wit.result +0 -0
  1916. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/empty-variant1.wit +0 -0
  1917. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/empty-variant1.wit.result +0 -0
  1918. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/export-twice.wit +0 -0
  1919. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/export-twice.wit.result +0 -0
  1920. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export1.wit +0 -0
  1921. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export1.wit.result +0 -0
  1922. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export2.wit +0 -0
  1923. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export2.wit.result +0 -0
  1924. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export3.wit +0 -0
  1925. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export3.wit.result +0 -0
  1926. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export4.wit +0 -0
  1927. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export4.wit.result +0 -0
  1928. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export5.wit +0 -0
  1929. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export5.wit.result +0 -0
  1930. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-twice.wit +0 -0
  1931. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-twice.wit.result +0 -0
  1932. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-cycle.wit +0 -0
  1933. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-cycle.wit.result +0 -0
  1934. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit +0 -0
  1935. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-foreign/root.wit +0 -0
  1936. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-foreign.wit.result +0 -0
  1937. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-with-id.wit +0 -0
  1938. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-with-id.wit.result +0 -0
  1939. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-with-on-id.wit +0 -0
  1940. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-with-on-id.wit.result +0 -0
  1941. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  1942. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  1943. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-type-reference.wit +0 -0
  1944. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -0
  1945. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-type-reference2.wit +0 -0
  1946. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -0
  1947. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit +0 -0
  1948. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit.result +0 -0
  1949. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/kebab-name-include.wit +0 -0
  1950. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/kebab-name-include.wit.result +0 -0
  1951. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/keyword.wit +0 -0
  1952. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/keyword.wit.result +0 -0
  1953. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/missing-package.wit +0 -0
  1954. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/missing-package.wit.result +0 -0
  1955. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/multiple-package-docs/a.wit +0 -0
  1956. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/multiple-package-docs/b.wit +0 -0
  1957. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/multiple-package-docs.wit.result +0 -0
  1958. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +0 -0
  1959. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +0 -0
  1960. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +0 -0
  1961. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit +0 -0
  1962. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/non-existance-world-include/root.wit +0 -0
  1963. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/non-existance-world-include.wit.result +0 -0
  1964. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -0
  1965. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle/root.wit +0 -0
  1966. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle.wit.result +0 -0
  1967. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -0
  1968. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -0
  1969. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -0
  1970. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -0
  1971. /data/ext/cargo-vendor/{wit-parser-0.202.0/tests/ui → wit-parser-0.207.0/tests/ui/parse-fail}/resources-multiple-returns-borrow.wit +0 -0
  1972. /data/ext/cargo-vendor/{wit-parser-0.202.0/tests/ui → wit-parser-0.207.0/tests/ui/parse-fail}/resources-return-borrow.wit +0 -0
  1973. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit +0 -0
  1974. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/type-and-resource-same-name/foo.wit +0 -0
  1975. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/type-and-resource-same-name.wit.result +0 -0
  1976. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/undefined-typed.wit +0 -0
  1977. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/undefined-typed.wit.result +0 -0
  1978. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unknown-interface.wit +0 -0
  1979. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unknown-interface.wit.result +0 -0
  1980. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface1.wit +0 -0
  1981. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -0
  1982. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface2.wit +0 -0
  1983. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -0
  1984. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface3.wit +0 -0
  1985. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -0
  1986. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface4.wit +0 -0
  1987. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -0
  1988. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use1.wit +0 -0
  1989. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use1.wit.result +0 -0
  1990. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -0
  1991. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  1992. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use10.wit.result +0 -0
  1993. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use2.wit +0 -0
  1994. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use2.wit.result +0 -0
  1995. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use3.wit +0 -0
  1996. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use3.wit.result +0 -0
  1997. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use7.wit +0 -0
  1998. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use7.wit.result +0 -0
  1999. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use8.wit +0 -0
  2000. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use8.wit.result +0 -0
  2001. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use9.wit +0 -0
  2002. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use9.wit.result +0 -0
  2003. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
  2004. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit +0 -0
  2005. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-and-include-world/root.wit +0 -0
  2006. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-and-include-world.wit.result +0 -0
  2007. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict.wit +0 -0
  2008. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict.wit.result +0 -0
  2009. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict2.wit +0 -0
  2010. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict2.wit.result +0 -0
  2011. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict3.wit +0 -0
  2012. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict3.wit.result +0 -0
  2013. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-cycle1.wit +0 -0
  2014. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-cycle1.wit.result +0 -0
  2015. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-cycle4.wit +0 -0
  2016. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-cycle4.wit.result +0 -0
  2017. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-shadow1.wit +0 -0
  2018. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-shadow1.wit.result +0 -0
  2019. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-world/deps/bar/baz.wit +0 -0
  2020. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-world/root.wit +0 -0
  2021. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-world.wit.result +0 -0
  2022. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-interface-clash.wit +0 -0
  2023. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-interface-clash.wit.result +0 -0
  2024. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-same-fields2.wit +0 -0
  2025. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-same-fields2.wit.result +0 -0
  2026. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-same-fields3.wit +0 -0
  2027. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-same-fields3.wit.result +0 -0
  2028. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-top-level-func.wit +0 -0
  2029. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-top-level-func.wit.result +0 -0
  2030. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-top-level-func2.wit +0 -0
  2031. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -0
  2032. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/random.wit +0 -0
  2033. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/random.wit.json +0 -0
  2034. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-empty.wit +0 -0
  2035. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-empty.wit.json +0 -0
  2036. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-multiple-returns-own.wit +0 -0
  2037. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-multiple-returns-own.wit.json +0 -0
  2038. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-multiple.wit +0 -0
  2039. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-multiple.wit.json +0 -0
  2040. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-return-own.wit +0 -0
  2041. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-return-own.wit.json +0 -0
  2042. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources.wit +0 -0
  2043. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources.wit.json +0 -0
  2044. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources1.wit +0 -0
  2045. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources1.wit.json +0 -0
  2046. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/same-name-import-export.wit +0 -0
  2047. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/same-name-import-export.wit.json +0 -0
  2048. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/shared-types.wit +0 -0
  2049. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/shared-types.wit.json +0 -0
  2050. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/simple-wasm-text.wat +0 -0
  2051. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/simple-wasm-text.wit.json +0 -0
  2052. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/stress-export-elaborate.wit +0 -0
  2053. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/stress-export-elaborate.wit.json +0 -0
  2054. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/type-then-eof.wit +0 -0
  2055. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/type-then-eof.wit.json +0 -0
  2056. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/types.wit +0 -0
  2057. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/types.wit.json +0 -0
  2058. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/union-fuzz-1.wit +0 -0
  2059. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/union-fuzz-1.wit.json +0 -0
  2060. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/union-fuzz-2.wit +0 -0
  2061. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/union-fuzz-2.wit.json +0 -0
  2062. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/use-chain.wit +0 -0
  2063. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/use-chain.wit.json +0 -0
  2064. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/use.wit +0 -0
  2065. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/use.wit.json +0 -0
  2066. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/versions/deps/a1/foo.wit +0 -0
  2067. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/versions/deps/a2/foo.wit +0 -0
  2068. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/versions/foo.wit +0 -0
  2069. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/versions.wit.json +0 -0
  2070. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/wasi.wit +0 -0
  2071. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/wasi.wit.json +0 -0
  2072. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-diamond.wit +0 -0
  2073. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-diamond.wit.json +0 -0
  2074. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-iface-no-collide.wit +0 -0
  2075. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-iface-no-collide.wit.json +0 -0
  2076. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import1.wit +0 -0
  2077. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import1.wit.json +0 -0
  2078. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import2.wit +0 -0
  2079. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import2.wit.json +0 -0
  2080. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import3.wit +0 -0
  2081. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import3.wit.json +0 -0
  2082. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-same-fields4.wit +0 -0
  2083. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-same-fields4.wit.json +0 -0
  2084. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-top-level-funcs.wit +0 -0
  2085. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-top-level-funcs.wit.json +0 -0
  2086. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/worlds-union-dedup.wit +0 -0
  2087. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/worlds-union-dedup.wit.json +0 -0
  2088. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/worlds-with-types.wit +0 -0
  2089. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/worlds-with-types.wit.json +0 -0
@@ -0,0 +1,4225 @@
1
+ ;; Instruction formats.
2
+ (type MInst
3
+ (enum
4
+ ;; A no-op of zero size.
5
+ (Nop0)
6
+
7
+ ;; A no-op that is one instruction large.
8
+ (Nop4)
9
+
10
+ ;; An ALU operation with two register sources and a register destination.
11
+ (AluRRR
12
+ (alu_op ALUOp)
13
+ (size OperandSize)
14
+ (rd WritableReg)
15
+ (rn Reg)
16
+ (rm Reg))
17
+
18
+ ;; An ALU operation with three register sources and a register destination.
19
+ (AluRRRR
20
+ (alu_op ALUOp3)
21
+ (size OperandSize)
22
+ (rd WritableReg)
23
+ (rn Reg)
24
+ (rm Reg)
25
+ (ra Reg))
26
+
27
+ ;; An ALU operation with a register source and an immediate-12 source, and a register
28
+ ;; destination.
29
+ (AluRRImm12
30
+ (alu_op ALUOp)
31
+ (size OperandSize)
32
+ (rd WritableReg)
33
+ (rn Reg)
34
+ (imm12 Imm12))
35
+
36
+ ;; An ALU operation with a register source and an immediate-logic source, and a register destination.
37
+ (AluRRImmLogic
38
+ (alu_op ALUOp)
39
+ (size OperandSize)
40
+ (rd WritableReg)
41
+ (rn Reg)
42
+ (imml ImmLogic))
43
+
44
+ ;; An ALU operation with a register source and an immediate-shiftamt source, and a register destination.
45
+ (AluRRImmShift
46
+ (alu_op ALUOp)
47
+ (size OperandSize)
48
+ (rd WritableReg)
49
+ (rn Reg)
50
+ (immshift ImmShift))
51
+
52
+ ;; An ALU operation with two register sources, one of which can be shifted, and a register
53
+ ;; destination.
54
+ (AluRRRShift
55
+ (alu_op ALUOp)
56
+ (size OperandSize)
57
+ (rd WritableReg)
58
+ (rn Reg)
59
+ (rm Reg)
60
+ (shiftop ShiftOpAndAmt))
61
+
62
+ ;; An ALU operation with two register sources, one of which can be {zero,sign}-extended and
63
+ ;; shifted, and a register destination.
64
+ (AluRRRExtend
65
+ (alu_op ALUOp)
66
+ (size OperandSize)
67
+ (rd WritableReg)
68
+ (rn Reg)
69
+ (rm Reg)
70
+ (extendop ExtendOp))
71
+
72
+ ;; A bit op instruction with a single register source.
73
+ (BitRR
74
+ (op BitOp)
75
+ (size OperandSize)
76
+ (rd WritableReg)
77
+ (rn Reg))
78
+
79
+ ;; An unsigned (zero-extending) 8-bit load.
80
+ (ULoad8
81
+ (rd WritableReg)
82
+ (mem AMode)
83
+ (flags MemFlags))
84
+
85
+ ;; A signed (sign-extending) 8-bit load.
86
+ (SLoad8
87
+ (rd WritableReg)
88
+ (mem AMode)
89
+ (flags MemFlags))
90
+
91
+ ;; An unsigned (zero-extending) 16-bit load.
92
+ (ULoad16
93
+ (rd WritableReg)
94
+ (mem AMode)
95
+ (flags MemFlags))
96
+
97
+ ;; A signed (sign-extending) 16-bit load.
98
+ (SLoad16
99
+ (rd WritableReg)
100
+ (mem AMode)
101
+ (flags MemFlags))
102
+
103
+ ;; An unsigned (zero-extending) 32-bit load.
104
+ (ULoad32
105
+ (rd WritableReg)
106
+ (mem AMode)
107
+ (flags MemFlags))
108
+
109
+ ;; A signed (sign-extending) 32-bit load.
110
+ (SLoad32
111
+ (rd WritableReg)
112
+ (mem AMode)
113
+ (flags MemFlags))
114
+
115
+ ;; A 64-bit load.
116
+ (ULoad64
117
+ (rd WritableReg)
118
+ (mem AMode)
119
+ (flags MemFlags))
120
+
121
+ ;; An 8-bit store.
122
+ (Store8
123
+ (rd Reg)
124
+ (mem AMode)
125
+ (flags MemFlags))
126
+
127
+ ;; A 16-bit store.
128
+ (Store16
129
+ (rd Reg)
130
+ (mem AMode)
131
+ (flags MemFlags))
132
+
133
+ ;; A 32-bit store.
134
+ (Store32
135
+ (rd Reg)
136
+ (mem AMode)
137
+ (flags MemFlags))
138
+
139
+ ;; A 64-bit store.
140
+ (Store64
141
+ (rd Reg)
142
+ (mem AMode)
143
+ (flags MemFlags))
144
+
145
+ ;; A store of a pair of registers.
146
+ (StoreP64
147
+ (rt Reg)
148
+ (rt2 Reg)
149
+ (mem PairAMode)
150
+ (flags MemFlags))
151
+
152
+ ;; A load of a pair of registers.
153
+ (LoadP64
154
+ (rt WritableReg)
155
+ (rt2 WritableReg)
156
+ (mem PairAMode)
157
+ (flags MemFlags))
158
+
159
+ ;; A MOV instruction. These are encoded as ORR's (AluRRR form).
160
+ ;; The 32-bit version zeroes the top 32 bits of the
161
+ ;; destination, which is effectively an alias for an unsigned
162
+ ;; 32-to-64-bit extension.
163
+ (Mov
164
+ (size OperandSize)
165
+ (rd WritableReg)
166
+ (rm Reg))
167
+
168
+ ;; Like `Move` but with a particular `PReg` source (for implementing CLIF
169
+ ;; instructions like `get_stack_pointer`).
170
+ (MovFromPReg
171
+ (rd WritableReg)
172
+ (rm PReg))
173
+
174
+ ;; Like `Move` but with a particular `PReg` destination (for
175
+ ;; implementing CLIF instructions like `set_pinned_reg`).
176
+ (MovToPReg
177
+ (rd PReg)
178
+ (rm Reg))
179
+
180
+ ;; A MOV[Z,N] with a 16-bit immediate.
181
+ (MovWide
182
+ (op MoveWideOp)
183
+ (rd WritableReg)
184
+ (imm MoveWideConst)
185
+ (size OperandSize))
186
+
187
+ ;; A MOVK with a 16-bit immediate. Modifies its register; we
188
+ ;; model this with a seprate input `rn` and output `rd` virtual
189
+ ;; register, with a regalloc constraint to tie them together.
190
+ (MovK
191
+ (rd WritableReg)
192
+ (rn Reg)
193
+ (imm MoveWideConst)
194
+ (size OperandSize))
195
+
196
+
197
+ ;; A sign- or zero-extend operation.
198
+ (Extend
199
+ (rd WritableReg)
200
+ (rn Reg)
201
+ (signed bool)
202
+ (from_bits u8)
203
+ (to_bits u8))
204
+
205
+ ;; A conditional-select operation.
206
+ (CSel
207
+ (rd WritableReg)
208
+ (cond Cond)
209
+ (rn Reg)
210
+ (rm Reg))
211
+
212
+ ;; A conditional-select negation operation.
213
+ (CSNeg
214
+ (rd WritableReg)
215
+ (cond Cond)
216
+ (rn Reg)
217
+ (rm Reg))
218
+
219
+ ;; A conditional-set operation.
220
+ (CSet
221
+ (rd WritableReg)
222
+ (cond Cond))
223
+
224
+ ;; A conditional-set-mask operation.
225
+ (CSetm
226
+ (rd WritableReg)
227
+ (cond Cond))
228
+
229
+ ;; A conditional comparison with a second register.
230
+ (CCmp
231
+ (size OperandSize)
232
+ (rn Reg)
233
+ (rm Reg)
234
+ (nzcv NZCV)
235
+ (cond Cond))
236
+
237
+ ;; A conditional comparison with an immediate.
238
+ (CCmpImm
239
+ (size OperandSize)
240
+ (rn Reg)
241
+ (imm UImm5)
242
+ (nzcv NZCV)
243
+ (cond Cond))
244
+
245
+ ;; A synthetic insn, which is a load-linked store-conditional loop, that has the overall
246
+ ;; effect of atomically modifying a memory location in a particular way. Because we have
247
+ ;; no way to explain to the regalloc about earlyclobber registers, this instruction has
248
+ ;; completely fixed operand registers, and we rely on the RA's coalescing to remove copies
249
+ ;; in the surrounding code to the extent it can. Load- and store-exclusive instructions,
250
+ ;; with acquire-release semantics, are used to access memory. The operand conventions are:
251
+ ;;
252
+ ;; x25 (rd) address
253
+ ;; x26 (rd) second operand for `op`
254
+ ;; x27 (wr) old value
255
+ ;; x24 (wr) scratch reg; value afterwards has no meaning
256
+ ;; x28 (wr) scratch reg; value afterwards has no meaning
257
+ (AtomicRMWLoop
258
+ (ty Type) ;; I8, I16, I32 or I64
259
+ (op AtomicRMWLoopOp)
260
+ (flags MemFlags)
261
+ (addr Reg)
262
+ (operand Reg)
263
+ (oldval WritableReg)
264
+ (scratch1 WritableReg)
265
+ (scratch2 WritableReg))
266
+
267
+ ;; Similar to AtomicRMWLoop, a compare-and-swap operation implemented using a load-linked
268
+ ;; store-conditional loop, with acquire-release semantics.
269
+ ;; Note that the operand conventions, although very similar to AtomicRMWLoop, are different:
270
+ ;;
271
+ ;; x25 (rd) address
272
+ ;; x26 (rd) expected value
273
+ ;; x28 (rd) replacement value
274
+ ;; x27 (wr) old value
275
+ ;; x24 (wr) scratch reg; value afterwards has no meaning
276
+ (AtomicCASLoop
277
+ (ty Type) ;; I8, I16, I32 or I64
278
+ (flags MemFlags)
279
+ (addr Reg)
280
+ (expected Reg)
281
+ (replacement Reg)
282
+ (oldval WritableReg)
283
+ (scratch WritableReg))
284
+
285
+ ;; An atomic read-modify-write operation. These instructions require the
286
+ ;; Large System Extension (LSE) ISA support (FEAT_LSE). The instructions have
287
+ ;; acquire-release semantics.
288
+ (AtomicRMW
289
+ (op AtomicRMWOp)
290
+ (rs Reg)
291
+ (rt WritableReg)
292
+ (rn Reg)
293
+ (ty Type)
294
+ (flags MemFlags))
295
+
296
+ ;; An atomic compare-and-swap operation. These instructions require the
297
+ ;; Large System Extension (LSE) ISA support (FEAT_LSE). The instructions have
298
+ ;; acquire-release semantics.
299
+ (AtomicCAS
300
+ ;; `rd` is really `rs` in the encoded instruction (so `rd` == `rs`); we separate
301
+ ;; them here to have separate use and def vregs for regalloc.
302
+ (rd WritableReg)
303
+ (rs Reg)
304
+ (rt Reg)
305
+ (rn Reg)
306
+ (ty Type)
307
+ (flags MemFlags))
308
+
309
+ ;; Read `access_ty` bits from address `rt`, either 8, 16, 32 or 64-bits, and put
310
+ ;; it in `rn`, optionally zero-extending to fill a word or double word result.
311
+ ;; This instruction is sequentially consistent.
312
+ (LoadAcquire
313
+ (access_ty Type) ;; I8, I16, I32 or I64
314
+ (rt WritableReg)
315
+ (rn Reg)
316
+ (flags MemFlags))
317
+
318
+ ;; Write the lowest `ty` bits of `rt` to address `rn`.
319
+ ;; This instruction is sequentially consistent.
320
+ (StoreRelease
321
+ (access_ty Type) ;; I8, I16, I32 or I64
322
+ (rt Reg)
323
+ (rn Reg)
324
+ (flags MemFlags))
325
+
326
+ ;; A memory fence. This must provide ordering to ensure that, at a minimum, neither loads
327
+ ;; nor stores may move forwards or backwards across the fence. Currently emitted as "dmb
328
+ ;; ish". This instruction is sequentially consistent.
329
+ (Fence)
330
+
331
+ ;; Consumption of speculative data barrier.
332
+ (Csdb)
333
+
334
+ ;; FPU 32-bit move.
335
+ (FpuMove32
336
+ (rd WritableReg)
337
+ (rn Reg))
338
+
339
+ ;; FPU move. Note that this is distinct from a vector-register
340
+ ;; move; moving just 64 bits seems to be significantly faster.
341
+ (FpuMove64
342
+ (rd WritableReg)
343
+ (rn Reg))
344
+
345
+ ;; Vector register move.
346
+ (FpuMove128
347
+ (rd WritableReg)
348
+ (rn Reg))
349
+
350
+ ;; Move to scalar from a vector element.
351
+ (FpuMoveFromVec
352
+ (rd WritableReg)
353
+ (rn Reg)
354
+ (idx u8)
355
+ (size VectorSize))
356
+
357
+ ;; Zero-extend a SIMD & FP scalar to the full width of a vector register.
358
+ ;; 16-bit scalars require half-precision floating-point support (FEAT_FP16).
359
+ (FpuExtend
360
+ (rd WritableReg)
361
+ (rn Reg)
362
+ (size ScalarSize))
363
+
364
+ ;; 1-op FPU instruction.
365
+ (FpuRR
366
+ (fpu_op FPUOp1)
367
+ (size ScalarSize)
368
+ (rd WritableReg)
369
+ (rn Reg))
370
+
371
+ ;; 2-op FPU instruction.
372
+ (FpuRRR
373
+ (fpu_op FPUOp2)
374
+ (size ScalarSize)
375
+ (rd WritableReg)
376
+ (rn Reg)
377
+ (rm Reg))
378
+
379
+ (FpuRRI
380
+ (fpu_op FPUOpRI)
381
+ (rd WritableReg)
382
+ (rn Reg))
383
+
384
+ ;; Variant of FpuRRI that modifies its `rd`, and so we name the
385
+ ;; input state `ri` (for "input") and constrain the two
386
+ ;; together.
387
+ (FpuRRIMod
388
+ (fpu_op FPUOpRIMod)
389
+ (rd WritableReg)
390
+ (ri Reg)
391
+ (rn Reg))
392
+
393
+
394
+ ;; 3-op FPU instruction.
395
+ ;; 16-bit scalars require half-precision floating-point support (FEAT_FP16).
396
+ (FpuRRRR
397
+ (fpu_op FPUOp3)
398
+ (size ScalarSize)
399
+ (rd WritableReg)
400
+ (rn Reg)
401
+ (rm Reg)
402
+ (ra Reg))
403
+
404
+ ;; FPU comparison.
405
+ (FpuCmp
406
+ (size ScalarSize)
407
+ (rn Reg)
408
+ (rm Reg))
409
+
410
+ ;; Floating-point load, single-precision (32 bit).
411
+ (FpuLoad32
412
+ (rd WritableReg)
413
+ (mem AMode)
414
+ (flags MemFlags))
415
+
416
+ ;; Floating-point store, single-precision (32 bit).
417
+ (FpuStore32
418
+ (rd Reg)
419
+ (mem AMode)
420
+ (flags MemFlags))
421
+
422
+ ;; Floating-point load, double-precision (64 bit).
423
+ (FpuLoad64
424
+ (rd WritableReg)
425
+ (mem AMode)
426
+ (flags MemFlags))
427
+
428
+ ;; Floating-point store, double-precision (64 bit).
429
+ (FpuStore64
430
+ (rd Reg)
431
+ (mem AMode)
432
+ (flags MemFlags))
433
+
434
+ ;; Floating-point/vector load, 128 bit.
435
+ (FpuLoad128
436
+ (rd WritableReg)
437
+ (mem AMode)
438
+ (flags MemFlags))
439
+
440
+ ;; Floating-point/vector store, 128 bit.
441
+ (FpuStore128
442
+ (rd Reg)
443
+ (mem AMode)
444
+ (flags MemFlags))
445
+
446
+ ;; A load of a pair of floating-point registers, double precision (64-bit).
447
+ (FpuLoadP64
448
+ (rt WritableReg)
449
+ (rt2 WritableReg)
450
+ (mem PairAMode)
451
+ (flags MemFlags))
452
+
453
+ ;; A store of a pair of floating-point registers, double precision (64-bit).
454
+ (FpuStoreP64
455
+ (rt Reg)
456
+ (rt2 Reg)
457
+ (mem PairAMode)
458
+ (flags MemFlags))
459
+
460
+ ;; A load of a pair of floating-point registers, 128-bit.
461
+ (FpuLoadP128
462
+ (rt WritableReg)
463
+ (rt2 WritableReg)
464
+ (mem PairAMode)
465
+ (flags MemFlags))
466
+
467
+ ;; A store of a pair of floating-point registers, 128-bit.
468
+ (FpuStoreP128
469
+ (rt Reg)
470
+ (rt2 Reg)
471
+ (mem PairAMode)
472
+ (flags MemFlags))
473
+
474
+ ;; Conversion: FP -> integer.
475
+ (FpuToInt
476
+ (op FpuToIntOp)
477
+ (rd WritableReg)
478
+ (rn Reg))
479
+
480
+ ;; Conversion: integer -> FP.
481
+ (IntToFpu
482
+ (op IntToFpuOp)
483
+ (rd WritableReg)
484
+ (rn Reg))
485
+
486
+ ;; FP conditional select, 32 bit.
487
+ (FpuCSel32
488
+ (rd WritableReg)
489
+ (rn Reg)
490
+ (rm Reg)
491
+ (cond Cond))
492
+
493
+ ;; FP conditional select, 64 bit.
494
+ (FpuCSel64
495
+ (rd WritableReg)
496
+ (rn Reg)
497
+ (rm Reg)
498
+ (cond Cond))
499
+
500
+ ;; Round to integer.
501
+ (FpuRound
502
+ (op FpuRoundMode)
503
+ (rd WritableReg)
504
+ (rn Reg))
505
+
506
+ ;; Move from a GPR to a vector register. The scalar value is parked in the lowest lane
507
+ ;; of the destination, and all other lanes are zeroed out. Currently only 32- and 64-bit
508
+ ;; transactions are supported.
509
+ (MovToFpu
510
+ (rd WritableReg)
511
+ (rn Reg)
512
+ (size ScalarSize))
513
+
514
+ ;; Loads a floating-point immediate.
515
+ (FpuMoveFPImm
516
+ (rd WritableReg)
517
+ (imm ASIMDFPModImm)
518
+ (size ScalarSize))
519
+
520
+ ;; Move to a vector element from a GPR.
521
+ (MovToVec
522
+ (rd WritableReg)
523
+ (ri Reg)
524
+ (rn Reg)
525
+ (idx u8)
526
+ (size VectorSize))
527
+
528
+ ;; Unsigned move from a vector element to a GPR.
529
+ (MovFromVec
530
+ (rd WritableReg)
531
+ (rn Reg)
532
+ (idx u8)
533
+ (size ScalarSize))
534
+
535
+ ;; Signed move from a vector element to a GPR.
536
+ (MovFromVecSigned
537
+ (rd WritableReg)
538
+ (rn Reg)
539
+ (idx u8)
540
+ (size VectorSize)
541
+ (scalar_size OperandSize))
542
+
543
+ ;; Duplicate general-purpose register to vector.
544
+ (VecDup
545
+ (rd WritableReg)
546
+ (rn Reg)
547
+ (size VectorSize))
548
+
549
+ ;; Duplicate scalar to vector.
550
+ (VecDupFromFpu
551
+ (rd WritableReg)
552
+ (rn Reg)
553
+ (size VectorSize)
554
+ (lane u8))
555
+
556
+ ;; Duplicate FP immediate to vector.
557
+ (VecDupFPImm
558
+ (rd WritableReg)
559
+ (imm ASIMDFPModImm)
560
+ (size VectorSize))
561
+
562
+ ;; Duplicate immediate to vector.
563
+ (VecDupImm
564
+ (rd WritableReg)
565
+ (imm ASIMDMovModImm)
566
+ (invert bool)
567
+ (size VectorSize))
568
+
569
+ ;; Vector extend.
570
+ (VecExtend
571
+ (t VecExtendOp)
572
+ (rd WritableReg)
573
+ (rn Reg)
574
+ (high_half bool)
575
+ (lane_size ScalarSize))
576
+
577
+ ;; Move vector element to another vector element.
578
+ (VecMovElement
579
+ (rd WritableReg)
580
+ (ri Reg)
581
+ (rn Reg)
582
+ (dest_idx u8)
583
+ (src_idx u8)
584
+ (size VectorSize))
585
+
586
+ ;; Vector widening operation.
587
+ (VecRRLong
588
+ (op VecRRLongOp)
589
+ (rd WritableReg)
590
+ (rn Reg)
591
+ (high_half bool))
592
+
593
+ ;; Vector narrowing operation -- low half.
594
+ (VecRRNarrowLow
595
+ (op VecRRNarrowOp)
596
+ (rd WritableReg)
597
+ (rn Reg)
598
+ (lane_size ScalarSize))
599
+
600
+ ;; Vector narrowing operation -- high half.
601
+ (VecRRNarrowHigh
602
+ (op VecRRNarrowOp)
603
+ (rd WritableReg)
604
+ (ri Reg)
605
+ (rn Reg)
606
+ (lane_size ScalarSize))
607
+
608
+ ;; 1-operand vector instruction that operates on a pair of elements.
609
+ (VecRRPair
610
+ (op VecPairOp)
611
+ (rd WritableReg)
612
+ (rn Reg))
613
+
614
+ ;; 2-operand vector instruction that produces a result with twice the
615
+ ;; lane width and half the number of lanes.
616
+ (VecRRRLong
617
+ (alu_op VecRRRLongOp)
618
+ (rd WritableReg)
619
+ (rn Reg)
620
+ (rm Reg)
621
+ (high_half bool))
622
+
623
+ ;; 2-operand vector instruction that produces a result with
624
+ ;; twice the lane width and half the number of lanes. Variant
625
+ ;; that modifies `rd` (so takes its initial state as `ri`).
626
+ (VecRRRLongMod
627
+ (alu_op VecRRRLongModOp)
628
+ (rd WritableReg)
629
+ (ri Reg)
630
+ (rn Reg)
631
+ (rm Reg)
632
+ (high_half bool))
633
+
634
+ ;; 1-operand vector instruction that extends elements of the input
635
+ ;; register and operates on a pair of elements. The output lane width
636
+ ;; is double that of the input.
637
+ (VecRRPairLong
638
+ (op VecRRPairLongOp)
639
+ (rd WritableReg)
640
+ (rn Reg))
641
+
642
+ ;; A vector ALU op.
643
+ (VecRRR
644
+ (alu_op VecALUOp)
645
+ (rd WritableReg)
646
+ (rn Reg)
647
+ (rm Reg)
648
+ (size VectorSize))
649
+
650
+ ;; A vector ALU op modifying a source register.
651
+ (VecRRRMod
652
+ (alu_op VecALUModOp)
653
+ (rd WritableReg)
654
+ (ri Reg)
655
+ (rn Reg)
656
+ (rm Reg)
657
+ (size VectorSize))
658
+
659
+ ;; A vector ALU op modifying a source register.
660
+ (VecFmlaElem
661
+ (alu_op VecALUModOp)
662
+ (rd WritableReg)
663
+ (ri Reg)
664
+ (rn Reg)
665
+ (rm Reg)
666
+ (size VectorSize)
667
+ (idx u8))
668
+
669
+ ;; Vector two register miscellaneous instruction.
670
+ (VecMisc
671
+ (op VecMisc2)
672
+ (rd WritableReg)
673
+ (rn Reg)
674
+ (size VectorSize))
675
+
676
+ ;; Vector instruction across lanes.
677
+ (VecLanes
678
+ (op VecLanesOp)
679
+ (rd WritableReg)
680
+ (rn Reg)
681
+ (size VectorSize))
682
+
683
+ ;; Vector shift by immediate Shift Left (immediate), Unsigned Shift Right (immediate)
684
+ ;; Signed Shift Right (immediate). These are somewhat unusual in that, for right shifts,
685
+ ;; the allowed range of `imm` values is 1 to lane-size-in-bits, inclusive. A zero
686
+ ;; right-shift cannot be encoded. Left shifts are "normal", though, having valid `imm`
687
+ ;; values from 0 to lane-size-in-bits - 1 inclusive.
688
+ (VecShiftImm
689
+ (op VecShiftImmOp)
690
+ (rd WritableReg)
691
+ (rn Reg)
692
+ (size VectorSize)
693
+ (imm u8))
694
+
695
+ ;; Destructive vector shift by immediate.
696
+ (VecShiftImmMod
697
+ (op VecShiftImmModOp)
698
+ (rd WritableReg)
699
+ (ri Reg)
700
+ (rn Reg)
701
+ (size VectorSize)
702
+ (imm u8))
703
+
704
+ ;; Vector extract - create a new vector, being the concatenation of the lowest `imm4` bytes
705
+ ;; of `rm` followed by the uppermost `16 - imm4` bytes of `rn`.
706
+ (VecExtract
707
+ (rd WritableReg)
708
+ (rn Reg)
709
+ (rm Reg)
710
+ (imm4 u8))
711
+
712
+ ;; Table vector lookup - single register table. The table
713
+ ;; consists of 8-bit elements and is stored in `rn`, while `rm`
714
+ ;; contains 8-bit element indices. This variant emits `TBL`,
715
+ ;; which sets elements that correspond to out-of-range indices
716
+ ;; (greater than 15) to 0.
717
+ (VecTbl
718
+ (rd WritableReg)
719
+ (rn Reg)
720
+ (rm Reg))
721
+
722
+ ;; Table vector lookup - single register table. The table
723
+ ;; consists of 8-bit elements and is stored in `rn`, while `rm`
724
+ ;; contains 8-bit element indices. This variant emits `TBX`,
725
+ ;; which leaves elements that correspond to out-of-range indices
726
+ ;; (greater than 15) unmodified. Hence, it takes an input vreg in
727
+ ;; `ri` that is constrained to the same allocation as `rd`.
728
+ (VecTblExt
729
+ (rd WritableReg)
730
+ (ri Reg)
731
+ (rn Reg)
732
+ (rm Reg))
733
+
734
+ ;; Table vector lookup - two register table. The table consists
735
+ ;; of 8-bit elements and is stored in `rn` and `rn2`, while
736
+ ;; `rm` contains 8-bit element indices. The table registers
737
+ ;; `rn` and `rn2` must have consecutive numbers modulo 32, that
738
+ ;; is v31 and v0 (in that order) are consecutive registers.
739
+ ;; This variant emits `TBL`, which sets out-of-range results to
740
+ ;; 0.
741
+ (VecTbl2
742
+ (rd WritableReg)
743
+ (rn Reg)
744
+ (rn2 Reg)
745
+ (rm Reg))
746
+
747
+ ;; Table vector lookup - two register table. The table consists
748
+ ;; of 8-bit elements and is stored in `rn` and `rn2`, while
749
+ ;; `rm` contains 8-bit element indices. The table registers
750
+ ;; `rn` and `rn2` must have consecutive numbers modulo 32, that
751
+ ;; is v31 and v0 (in that order) are consecutive registers.
752
+ ;; This variant emits `TBX`, which leaves out-of-range results
753
+ ;; unmodified, hence takes the initial state of the result
754
+ ;; register in vreg `ri`.
755
+ (VecTbl2Ext
756
+ (rd WritableReg)
757
+ (ri Reg)
758
+ (rn Reg)
759
+ (rn2 Reg)
760
+ (rm Reg))
761
+
762
+ ;; Load an element and replicate to all lanes of a vector.
763
+ (VecLoadReplicate
764
+ (rd WritableReg)
765
+ (rn Reg)
766
+ (size VectorSize)
767
+ (flags MemFlags))
768
+
769
+ ;; Vector conditional select, 128 bit. A synthetic instruction, which generates a 4-insn
770
+ ;; control-flow diamond.
771
+ (VecCSel
772
+ (rd WritableReg)
773
+ (rn Reg)
774
+ (rm Reg)
775
+ (cond Cond))
776
+
777
+ ;; Move to the NZCV flags (actually a `MSR NZCV, Xn` insn).
778
+ (MovToNZCV
779
+ (rn Reg))
780
+
781
+ ;; Move from the NZCV flags (actually a `MRS Xn, NZCV` insn).
782
+ (MovFromNZCV
783
+ (rd WritableReg))
784
+
785
+ ;; A machine call instruction. N.B.: this allows only a +/- 128MB offset (it uses a relocation
786
+ ;; of type `Reloc::Arm64Call`); if the destination distance is not `RelocDistance::Near`, the
787
+ ;; code should use a `LoadExtName` / `CallInd` sequence instead, allowing an arbitrary 64-bit
788
+ ;; target.
789
+ (Call
790
+ (info BoxCallInfo))
791
+
792
+ ;; A machine indirect-call instruction.
793
+ (CallInd
794
+ (info BoxCallIndInfo))
795
+
796
+ ;; A return-call macro instruction.
797
+ (ReturnCall
798
+ (callee BoxExternalName)
799
+ (info BoxReturnCallInfo))
800
+
801
+ ;; An indirect return-call macro instruction.
802
+ (ReturnCallInd
803
+ (callee Reg)
804
+ (info BoxReturnCallInfo))
805
+
806
+ ;; A pseudo-instruction that captures register arguments in vregs.
807
+ (Args
808
+ (args VecArgPair))
809
+
810
+ ;; A pseudo-instruction that moves vregs to return registers.
811
+ (Rets
812
+ (rets VecRetPair))
813
+
814
+ ;; ---- branches (exactly one must appear at end of BB) ----
815
+
816
+ ;; A machine return instruction.
817
+ (Ret)
818
+
819
+ ;; A machine return instruction with pointer authentication using SP as the
820
+ ;; modifier. This instruction requires pointer authentication support
821
+ ;; (FEAT_PAuth) unless `is_hint` is true, in which case it is equivalent to
822
+ ;; the combination of a no-op and a return instruction on platforms without
823
+ ;; the relevant support.
824
+ (AuthenticatedRet
825
+ (key APIKey)
826
+ (is_hint bool))
827
+
828
+ ;; An unconditional branch.
829
+ (Jump
830
+ (dest BranchTarget))
831
+
832
+ ;; A conditional branch. Contains two targets; at emission time, both are emitted, but
833
+ ;; the MachBuffer knows to truncate the trailing branch if fallthrough. We optimize the
834
+ ;; choice of taken/not_taken (inverting the branch polarity as needed) based on the
835
+ ;; fallthrough at the time of lowering.
836
+ (CondBr
837
+ (taken BranchTarget)
838
+ (not_taken BranchTarget)
839
+ (kind CondBrKind))
840
+
841
+ ;; A conditional branch which tests the `bit` of `rn` and branches
842
+ ;; depending on `kind`.
843
+ (TestBitAndBranch
844
+ (kind TestBitAndBranchKind)
845
+ (taken BranchTarget)
846
+ (not_taken BranchTarget)
847
+ (rn Reg)
848
+ (bit u8))
849
+
850
+ ;; A conditional trap: execute a `udf` if the condition is true. This is
851
+ ;; one VCode instruction because it uses embedded control flow; it is
852
+ ;; logically a single-in, single-out region, but needs to appear as one
853
+ ;; unit to the register allocator.
854
+ ;;
855
+ ;; The `CondBrKind` gives the conditional-branch condition that will
856
+ ;; *execute* the embedded `Inst`. (In the emitted code, we use the inverse
857
+ ;; of this condition in a branch that skips the trap instruction.)
858
+ (TrapIf
859
+ (kind CondBrKind)
860
+ (trap_code TrapCode))
861
+
862
+ ;; An indirect branch through a register, augmented with set of all
863
+ ;; possible successors.
864
+ (IndirectBr
865
+ (rn Reg)
866
+ (targets VecMachLabel))
867
+
868
+ ;; A "break" instruction, used for e.g. traps and debug breakpoints.
869
+ (Brk)
870
+
871
+ ;; An instruction guaranteed to always be undefined and to trigger an illegal instruction at
872
+ ;; runtime.
873
+ (Udf
874
+ (trap_code TrapCode))
875
+
876
+ ;; Compute the address (using a PC-relative offset) of a memory location, using the `ADR`
877
+ ;; instruction. Note that we take a simple offset, not a `MemLabel`, here, because `Adr` is
878
+ ;; only used for now in fixed lowering sequences with hardcoded offsets. In the future we may
879
+ ;; need full `MemLabel` support.
880
+ (Adr
881
+ (rd WritableReg)
882
+ ;; Offset in range -2^20 .. 2^20.
883
+ (off i32))
884
+
885
+ ;; Compute the address (using a PC-relative offset) of a 4KB page.
886
+ (Adrp
887
+ (rd WritableReg)
888
+ (off i32))
889
+
890
+ ;; Raw 32-bit word, used for inline constants and jump-table entries.
891
+ (Word4
892
+ (data u32))
893
+
894
+ ;; Raw 64-bit word, used for inline constants.
895
+ (Word8
896
+ (data u64))
897
+
898
+ ;; Jump-table sequence, as one compound instruction (see note in lower_inst.rs for rationale).
899
+ (JTSequence
900
+ (default MachLabel)
901
+ (targets BoxVecMachLabel)
902
+ (ridx Reg)
903
+ (rtmp1 WritableReg)
904
+ (rtmp2 WritableReg))
905
+
906
+ ;; Load an inline symbol reference.
907
+ (LoadExtName
908
+ (rd WritableReg)
909
+ (name BoxExternalName)
910
+ (offset i64))
911
+
912
+ ;; Load address referenced by `mem` into `rd`.
913
+ (LoadAddr
914
+ (rd WritableReg)
915
+ (mem AMode))
916
+
917
+ ;; Pointer authentication code for instruction address with modifier in SP;
918
+ ;; equivalent to a no-op if Pointer authentication (FEAT_PAuth) is not
919
+ ;; supported.
920
+ (Paci
921
+ (key APIKey))
922
+
923
+ ;; Strip pointer authentication code from instruction address in LR;
924
+ ;; equivalent to a no-op if Pointer authentication (FEAT_PAuth) is not
925
+ ;; supported.
926
+ (Xpaclri)
927
+
928
+ ;; Branch target identification; equivalent to a no-op if Branch Target
929
+ ;; Identification (FEAT_BTI) is not supported.
930
+ (Bti
931
+ (targets BranchTargetType))
932
+
933
+ ;; Marker, no-op in generated code: SP "virtual offset" is adjusted. This
934
+ ;; controls how AMode::NominalSPOffset args are lowered.
935
+ (VirtualSPOffsetAdj
936
+ (offset i64))
937
+
938
+ ;; Meta-insn, no-op in generated code: emit constant/branch veneer island
939
+ ;; at this point (with a guard jump around it) if less than the needed
940
+ ;; space is available before the next branch deadline. See the `MachBuffer`
941
+ ;; implementation in `machinst/buffer.rs` for the overall algorithm. In
942
+ ;; brief, we retain a set of "pending/unresolved label references" from
943
+ ;; branches as we scan forward through instructions to emit machine code;
944
+ ;; if we notice we're about to go out of range on an unresolved reference,
945
+ ;; we stop, emit a bunch of "veneers" (branches in a form that has a longer
946
+ ;; range, e.g. a 26-bit-offset unconditional jump), and point the original
947
+ ;; label references to those. This is an "island" because it comes in the
948
+ ;; middle of the code.
949
+ ;;
950
+ ;; This meta-instruction is a necessary part of the logic that determines
951
+ ;; where to place islands. Ordinarily, we want to place them between basic
952
+ ;; blocks, so we compute the worst-case size of each block, and emit the
953
+ ;; island before starting a block if we would exceed a deadline before the
954
+ ;; end of the block. However, some sequences (such as an inline jumptable)
955
+ ;; are variable-length and not accounted for by this logic; so these
956
+ ;; lowered sequences include an `EmitIsland` to trigger island generation
957
+ ;; where necessary.
958
+ (EmitIsland
959
+ ;; The needed space before the next deadline.
960
+ (needed_space CodeOffset))
961
+
962
+ ;; A call to the `ElfTlsGetAddr` libcall. Returns address of TLS symbol in x0.
963
+ (ElfTlsGetAddr
964
+ (symbol BoxExternalName)
965
+ (rd WritableReg)
966
+ (tmp WritableReg))
967
+
968
+ (MachOTlsGetAddr
969
+ (symbol ExternalName)
970
+ (rd WritableReg))
971
+
972
+ ;; An unwind pseudo-instruction.
973
+ (Unwind
974
+ (inst UnwindInst))
975
+
976
+ ;; A dummy use, useful to keep a value alive.
977
+ (DummyUse
978
+ (reg Reg))
979
+
980
+ ;; Emits an inline stack probe loop.
981
+ ;;
982
+ ;; Note that this is emitted post-regalloc so `start` and `end` can be
983
+ ;; temporary registers such as the spilltmp and tmp2 registers. This also
984
+ ;; means that the internal codegen can't use these registers.
985
+ (StackProbeLoop (start WritableReg)
986
+ (end Reg)
987
+ (step Imm12))))
988
+
989
+ ;; An ALU operation. This can be paired with several instruction formats
990
+ ;; below (see `Inst`) in any combination.
991
+ (type ALUOp
992
+ (enum
993
+ (Add)
994
+ (Sub)
995
+ (Orr)
996
+ (OrrNot)
997
+ (And)
998
+ (AndS)
999
+ (AndNot)
1000
+ ;; XOR (AArch64 calls this "EOR")
1001
+ (Eor)
1002
+ ;; XNOR (AArch64 calls this "EOR-NOT")
1003
+ (EorNot)
1004
+ ;; Add, setting flags
1005
+ (AddS)
1006
+ ;; Sub, setting flags
1007
+ (SubS)
1008
+ ;; Signed multiply, high-word result
1009
+ (SMulH)
1010
+ ;; Unsigned multiply, high-word result
1011
+ (UMulH)
1012
+ (SDiv)
1013
+ (UDiv)
1014
+ (RotR)
1015
+ (Lsr)
1016
+ (Asr)
1017
+ (Lsl)
1018
+ ;; Add with carry
1019
+ (Adc)
1020
+ ;; Add with carry, settings flags
1021
+ (AdcS)
1022
+ ;; Subtract with carry
1023
+ (Sbc)
1024
+ ;; Subtract with carry, settings flags
1025
+ (SbcS)
1026
+ ))
1027
+
1028
+ ;; An ALU operation with three arguments.
1029
+ (type ALUOp3
1030
+ (enum
1031
+ ;; Multiply-add
1032
+ (MAdd)
1033
+ ;; Multiply-sub
1034
+ (MSub)
1035
+ ;; Unsigned-Multiply-add
1036
+ (UMAddL)
1037
+ ;; Signed-Multiply-add
1038
+ (SMAddL)
1039
+ ))
1040
+
1041
+ (type MoveWideOp
1042
+ (enum
1043
+ (MovZ)
1044
+ (MovN)
1045
+ ))
1046
+
1047
+ (type UImm5 (primitive UImm5))
1048
+ (type Imm12 (primitive Imm12))
1049
+ (type ImmLogic (primitive ImmLogic))
1050
+ (type ImmShift (primitive ImmShift))
1051
+ (type ShiftOpAndAmt (primitive ShiftOpAndAmt))
1052
+ (type MoveWideConst (primitive MoveWideConst))
1053
+ (type NZCV (primitive NZCV))
1054
+ (type ASIMDFPModImm (primitive ASIMDFPModImm))
1055
+ (type ASIMDMovModImm (primitive ASIMDMovModImm))
1056
+ (type SImm7Scaled (primitive SImm7Scaled))
1057
+
1058
+ (type BoxCallInfo (primitive BoxCallInfo))
1059
+ (type BoxCallIndInfo (primitive BoxCallIndInfo))
1060
+ (type BoxReturnCallInfo (primitive BoxReturnCallInfo))
1061
+ (type CondBrKind (primitive CondBrKind))
1062
+ (type BranchTarget (primitive BranchTarget))
1063
+ (type BoxJTSequenceInfo (primitive BoxJTSequenceInfo))
1064
+ (type CodeOffset (primitive CodeOffset))
1065
+ (type VecMachLabel extern (enum))
1066
+
1067
+ (type ExtendOp extern
1068
+ (enum
1069
+ (UXTB)
1070
+ (UXTH)
1071
+ (UXTW)
1072
+ (UXTX)
1073
+ (SXTB)
1074
+ (SXTH)
1075
+ (SXTW)
1076
+ (SXTX)
1077
+ ))
1078
+
1079
+ ;; An operation on the bits of a register. This can be paired with several instruction formats
1080
+ ;; below (see `Inst`) in any combination.
1081
+ (type BitOp
1082
+ (enum
1083
+ ;; Bit reverse
1084
+ (RBit)
1085
+ (Clz)
1086
+ (Cls)
1087
+ ;; Byte reverse
1088
+ (Rev16)
1089
+ (Rev32)
1090
+ (Rev64)
1091
+ ))
1092
+
1093
+ (type MemLabel extern (enum))
1094
+ (type SImm9 extern (enum))
1095
+ (type UImm12Scaled extern (enum))
1096
+
1097
+ ;; An addressing mode specified for a load/store operation.
1098
+ (type AMode
1099
+ (enum
1100
+ ;;
1101
+ ;; Real ARM64 addressing modes:
1102
+ ;;
1103
+ ;; "post-indexed" mode as per AArch64 docs: postincrement reg after
1104
+ ;; address computation.
1105
+ ;; Specialized here to SP so we don't have to emit regalloc metadata.
1106
+ (SPPostIndexed
1107
+ (simm9 SImm9))
1108
+
1109
+ ;; "pre-indexed" mode as per AArch64 docs: preincrement reg before
1110
+ ;; address computation.
1111
+ ;; Specialized here to SP so we don't have to emit regalloc metadata.
1112
+ (SPPreIndexed
1113
+ (simm9 SImm9))
1114
+
1115
+ ;; N.B.: RegReg, RegScaled, and RegScaledExtended all correspond to
1116
+ ;; what the ISA calls the "register offset" addressing mode. We split
1117
+ ;; out several options here for more ergonomic codegen.
1118
+ ;;
1119
+ ;; Register plus register offset.
1120
+ (RegReg
1121
+ (rn Reg)
1122
+ (rm Reg))
1123
+
1124
+ ;; Register plus register offset, scaled by type's size.
1125
+ (RegScaled
1126
+ (rn Reg)
1127
+ (rm Reg))
1128
+
1129
+ ;; Register plus register offset, scaled by type's size, with index
1130
+ ;; sign- or zero-extended first.
1131
+ (RegScaledExtended
1132
+ (rn Reg)
1133
+ (rm Reg)
1134
+ (extendop ExtendOp))
1135
+
1136
+ ;; Register plus register offset, with index sign- or zero-extended
1137
+ ;; first.
1138
+ (RegExtended
1139
+ (rn Reg)
1140
+ (rm Reg)
1141
+ (extendop ExtendOp))
1142
+
1143
+ ;; Unscaled signed 9-bit immediate offset from reg.
1144
+ (Unscaled
1145
+ (rn Reg)
1146
+ (simm9 SImm9))
1147
+
1148
+ ;; Scaled (by size of a type) unsigned 12-bit immediate offset from reg.
1149
+ (UnsignedOffset
1150
+ (rn Reg)
1151
+ (uimm12 UImm12Scaled))
1152
+
1153
+ ;; virtual addressing modes that are lowered at emission time:
1154
+ ;;
1155
+ ;; Reference to a "label": e.g., a symbol.
1156
+ (Label
1157
+ (label MemLabel))
1158
+
1159
+ ;; Arbitrary offset from a register. Converted to generation of large
1160
+ ;; offsets with multiple instructions as necessary during code emission.
1161
+ (RegOffset
1162
+ (rn Reg)
1163
+ (off i64))
1164
+
1165
+ ;; Offset from the stack pointer.
1166
+ (SPOffset
1167
+ (off i64))
1168
+
1169
+ ;; Offset from the frame pointer.
1170
+ (FPOffset
1171
+ (off i64))
1172
+
1173
+ ;; A reference to a constant which is placed outside of the function's
1174
+ ;; body, typically at the end.
1175
+ (Const
1176
+ (addr VCodeConstant))
1177
+
1178
+ ;; Offset from the beginning of the argument area to the argument
1179
+ ;; referenced. This can only be determined when the function has been
1180
+ ;; processed fully, as the size of the argument area after the prologue
1181
+ ;; is only known once all return_call instructions in the function body
1182
+ ;; have been processed.
1183
+ (IncomingArg
1184
+ (off i64))
1185
+
1186
+ ;; Offset from the "nominal stack pointer", which is where the real SP is
1187
+ ;; just after stack and spill slots are allocated in the function prologue.
1188
+ ;; At emission time, this is converted to `SPOffset` with a fixup added to
1189
+ ;; the offset constant. The fixup is a running value that is tracked as
1190
+ ;; emission iterates through instructions in linear order, and can be
1191
+ ;; adjusted up and down with [Inst::VirtualSPOffsetAdj].
1192
+ ;;
1193
+ ;; The standard ABI is in charge of handling this (by emitting the
1194
+ ;; adjustment meta-instructions). It maintains the invariant that "nominal
1195
+ ;; SP" is where the actual SP is after the function prologue and before
1196
+ ;; clobber pushes. See the diagram in the documentation for
1197
+ ;; [crate::isa::aarch64::abi](the ABI module) for more details.
1198
+ (NominalSPOffset
1199
+ (off i64))))
1200
+
1201
+ ;; A memory argument to a load/store-pair.
1202
+ (type PairAMode (enum
1203
+ ;; Signed, scaled 7-bit offset from a register.
1204
+ (SignedOffset
1205
+ (reg Reg)
1206
+ (simm7 SImm7Scaled))
1207
+
1208
+ ;; Pre-increment register before address computation.
1209
+ (SPPreIndexed (simm7 SImm7Scaled))
1210
+
1211
+ ;; Post-increment register after address computation.
1212
+ (SPPostIndexed (simm7 SImm7Scaled))
1213
+ ))
1214
+
1215
+ (type FPUOpRI extern (enum))
1216
+ (type FPUOpRIMod extern (enum))
1217
+
1218
+ (type OperandSize extern
1219
+ (enum Size32
1220
+ Size64))
1221
+
1222
+ (type TestBitAndBranchKind (enum (Z) (NZ)))
1223
+
1224
+ ;; Helper for calculating the `OperandSize` corresponding to a type
1225
+ (decl operand_size (Type) OperandSize)
1226
+ (rule 1 (operand_size (fits_in_32 _ty)) (OperandSize.Size32))
1227
+ (rule (operand_size (fits_in_64 _ty)) (OperandSize.Size64))
1228
+
1229
+ (type ScalarSize extern
1230
+ (enum Size8
1231
+ Size16
1232
+ Size32
1233
+ Size64
1234
+ Size128))
1235
+
1236
+ ;; Helper for calculating the `ScalarSize` corresponding to a type
1237
+ (decl scalar_size (Type) ScalarSize)
1238
+
1239
+ (rule (scalar_size $I8) (ScalarSize.Size8))
1240
+ (rule (scalar_size $I16) (ScalarSize.Size16))
1241
+ (rule (scalar_size $I32) (ScalarSize.Size32))
1242
+ (rule (scalar_size $I64) (ScalarSize.Size64))
1243
+ (rule (scalar_size $I128) (ScalarSize.Size128))
1244
+
1245
+ (rule (scalar_size $F32) (ScalarSize.Size32))
1246
+ (rule (scalar_size $F64) (ScalarSize.Size64))
1247
+
1248
+ ;; Helper for calculating the `ScalarSize` lane type from vector type
1249
+ (decl lane_size (Type) ScalarSize)
1250
+ (rule 1 (lane_size (multi_lane 8 _)) (ScalarSize.Size8))
1251
+ (rule 1 (lane_size (multi_lane 16 _)) (ScalarSize.Size16))
1252
+ (rule 1 (lane_size (multi_lane 32 _)) (ScalarSize.Size32))
1253
+ (rule 1 (lane_size (multi_lane 64 _)) (ScalarSize.Size64))
1254
+ (rule (lane_size (dynamic_lane 8 _)) (ScalarSize.Size8))
1255
+ (rule (lane_size (dynamic_lane 16 _)) (ScalarSize.Size16))
1256
+ (rule (lane_size (dynamic_lane 32 _)) (ScalarSize.Size32))
1257
+ (rule (lane_size (dynamic_lane 64 _)) (ScalarSize.Size64))
1258
+
1259
+ ;; Helper for extracting the size of a lane from the input `VectorSize`
1260
+ (decl pure vector_lane_size (VectorSize) ScalarSize)
1261
+ (rule (vector_lane_size (VectorSize.Size8x16)) (ScalarSize.Size8))
1262
+ (rule (vector_lane_size (VectorSize.Size8x8)) (ScalarSize.Size8))
1263
+ (rule (vector_lane_size (VectorSize.Size16x8)) (ScalarSize.Size16))
1264
+ (rule (vector_lane_size (VectorSize.Size16x4)) (ScalarSize.Size16))
1265
+ (rule (vector_lane_size (VectorSize.Size32x4)) (ScalarSize.Size32))
1266
+ (rule (vector_lane_size (VectorSize.Size32x2)) (ScalarSize.Size32))
1267
+ (rule (vector_lane_size (VectorSize.Size64x2)) (ScalarSize.Size64))
1268
+
1269
+ (type Cond extern
1270
+ (enum
1271
+ (Eq)
1272
+ (Ne)
1273
+ (Hs)
1274
+ (Lo)
1275
+ (Mi)
1276
+ (Pl)
1277
+ (Vs)
1278
+ (Vc)
1279
+ (Hi)
1280
+ (Ls)
1281
+ (Ge)
1282
+ (Lt)
1283
+ (Gt)
1284
+ (Le)
1285
+ (Al)
1286
+ (Nv)
1287
+ ))
1288
+
1289
+ (type VectorSize extern
1290
+ (enum
1291
+ (Size8x8)
1292
+ (Size8x16)
1293
+ (Size16x4)
1294
+ (Size16x8)
1295
+ (Size32x2)
1296
+ (Size32x4)
1297
+ (Size64x2)
1298
+ ))
1299
+
1300
+ ;; Helper for calculating the `VectorSize` corresponding to a type
1301
+ (decl vector_size (Type) VectorSize)
1302
+ (rule 1 (vector_size (multi_lane 8 8)) (VectorSize.Size8x8))
1303
+ (rule 1 (vector_size (multi_lane 8 16)) (VectorSize.Size8x16))
1304
+ (rule 1 (vector_size (multi_lane 16 4)) (VectorSize.Size16x4))
1305
+ (rule 1 (vector_size (multi_lane 16 8)) (VectorSize.Size16x8))
1306
+ (rule 1 (vector_size (multi_lane 32 2)) (VectorSize.Size32x2))
1307
+ (rule 1 (vector_size (multi_lane 32 4)) (VectorSize.Size32x4))
1308
+ (rule 1 (vector_size (multi_lane 64 2)) (VectorSize.Size64x2))
1309
+ (rule (vector_size (dynamic_lane 8 8)) (VectorSize.Size8x8))
1310
+ (rule (vector_size (dynamic_lane 8 16)) (VectorSize.Size8x16))
1311
+ (rule (vector_size (dynamic_lane 16 4)) (VectorSize.Size16x4))
1312
+ (rule (vector_size (dynamic_lane 16 8)) (VectorSize.Size16x8))
1313
+ (rule (vector_size (dynamic_lane 32 2)) (VectorSize.Size32x2))
1314
+ (rule (vector_size (dynamic_lane 32 4)) (VectorSize.Size32x4))
1315
+ (rule (vector_size (dynamic_lane 64 2)) (VectorSize.Size64x2))
1316
+
1317
+ ;; A floating-point unit (FPU) operation with one arg.
1318
+ (type FPUOp1
1319
+ (enum
1320
+ (Abs)
1321
+ (Neg)
1322
+ (Sqrt)
1323
+ (Cvt32To64)
1324
+ (Cvt64To32)
1325
+ ))
1326
+
1327
+ ;; A floating-point unit (FPU) operation with two args.
1328
+ (type FPUOp2
1329
+ (enum
1330
+ (Add)
1331
+ (Sub)
1332
+ (Mul)
1333
+ (Div)
1334
+ (Max)
1335
+ (Min)
1336
+ ))
1337
+
1338
+ ;; A floating-point unit (FPU) operation with three args.
1339
+ (type FPUOp3
1340
+ (enum
1341
+ (MAdd)
1342
+ ))
1343
+
1344
+ ;; A conversion from an FP to an integer value.
1345
+ (type FpuToIntOp
1346
+ (enum
1347
+ (F32ToU32)
1348
+ (F32ToI32)
1349
+ (F32ToU64)
1350
+ (F32ToI64)
1351
+ (F64ToU32)
1352
+ (F64ToI32)
1353
+ (F64ToU64)
1354
+ (F64ToI64)
1355
+ ))
1356
+
1357
+ ;; A conversion from an integer to an FP value.
1358
+ (type IntToFpuOp
1359
+ (enum
1360
+ (U32ToF32)
1361
+ (I32ToF32)
1362
+ (U32ToF64)
1363
+ (I32ToF64)
1364
+ (U64ToF32)
1365
+ (I64ToF32)
1366
+ (U64ToF64)
1367
+ (I64ToF64)
1368
+ ))
1369
+
1370
+ ;; Modes for FP rounding ops: round down (floor) or up (ceil), or toward zero (trunc), or to
1371
+ ;; nearest, and for 32- or 64-bit FP values.
1372
+ (type FpuRoundMode
1373
+ (enum
1374
+ (Minus32)
1375
+ (Minus64)
1376
+ (Plus32)
1377
+ (Plus64)
1378
+ (Zero32)
1379
+ (Zero64)
1380
+ (Nearest32)
1381
+ (Nearest64)
1382
+ ))
1383
+
1384
+ ;; Type of vector element extensions.
1385
+ (type VecExtendOp
1386
+ (enum
1387
+ ;; Signed extension
1388
+ (Sxtl)
1389
+ ;; Unsigned extension
1390
+ (Uxtl)
1391
+ ))
1392
+
1393
+ ;; A vector ALU operation.
1394
+ (type VecALUOp
1395
+ (enum
1396
+ ;; Signed saturating add
1397
+ (Sqadd)
1398
+ ;; Unsigned saturating add
1399
+ (Uqadd)
1400
+ ;; Signed saturating subtract
1401
+ (Sqsub)
1402
+ ;; Unsigned saturating subtract
1403
+ (Uqsub)
1404
+ ;; Compare bitwise equal
1405
+ (Cmeq)
1406
+ ;; Compare signed greater than or equal
1407
+ (Cmge)
1408
+ ;; Compare signed greater than
1409
+ (Cmgt)
1410
+ ;; Compare unsigned higher
1411
+ (Cmhs)
1412
+ ;; Compare unsigned higher or same
1413
+ (Cmhi)
1414
+ ;; Floating-point compare equal
1415
+ (Fcmeq)
1416
+ ;; Floating-point compare greater than
1417
+ (Fcmgt)
1418
+ ;; Floating-point compare greater than or equal
1419
+ (Fcmge)
1420
+ ;; Bitwise and
1421
+ (And)
1422
+ ;; Bitwise bit clear
1423
+ (Bic)
1424
+ ;; Bitwise inclusive or
1425
+ (Orr)
1426
+ ;; Bitwise exclusive or
1427
+ (Eor)
1428
+ ;; Unsigned maximum pairwise
1429
+ (Umaxp)
1430
+ ;; Add
1431
+ (Add)
1432
+ ;; Subtract
1433
+ (Sub)
1434
+ ;; Multiply
1435
+ (Mul)
1436
+ ;; Signed shift left
1437
+ (Sshl)
1438
+ ;; Unsigned shift left
1439
+ (Ushl)
1440
+ ;; Unsigned minimum
1441
+ (Umin)
1442
+ ;; Signed minimum
1443
+ (Smin)
1444
+ ;; Unsigned maximum
1445
+ (Umax)
1446
+ ;; Signed maximum
1447
+ (Smax)
1448
+ ;; Unsigned rounding halving add
1449
+ (Urhadd)
1450
+ ;; Floating-point add
1451
+ (Fadd)
1452
+ ;; Floating-point subtract
1453
+ (Fsub)
1454
+ ;; Floating-point divide
1455
+ (Fdiv)
1456
+ ;; Floating-point maximum
1457
+ (Fmax)
1458
+ ;; Floating-point minimum
1459
+ (Fmin)
1460
+ ;; Floating-point multiply
1461
+ (Fmul)
1462
+ ;; Add pairwise
1463
+ (Addp)
1464
+ ;; Zip vectors (primary) [meaning, high halves]
1465
+ (Zip1)
1466
+ ;; Zip vectors (secondary)
1467
+ (Zip2)
1468
+ ;; Signed saturating rounding doubling multiply returning high half
1469
+ (Sqrdmulh)
1470
+ ;; Unzip vectors (primary)
1471
+ (Uzp1)
1472
+ ;; Unzip vectors (secondary)
1473
+ (Uzp2)
1474
+ ;; Transpose vectors (primary)
1475
+ (Trn1)
1476
+ ;; Transpose vectors (secondary)
1477
+ (Trn2)
1478
+ ))
1479
+
1480
+ ;; A Vector ALU operation which modifies a source register.
1481
+ (type VecALUModOp
1482
+ (enum
1483
+ ;; Bitwise select
1484
+ (Bsl)
1485
+ ;; Floating-point fused multiply-add vectors
1486
+ (Fmla)
1487
+ ;; Floating-point fused multiply-subtract vectors
1488
+ (Fmls)
1489
+ ))
1490
+
1491
+ ;; A Vector miscellaneous operation with two registers.
1492
+ (type VecMisc2
1493
+ (enum
1494
+ ;; Bitwise NOT
1495
+ (Not)
1496
+ ;; Negate
1497
+ (Neg)
1498
+ ;; Absolute value
1499
+ (Abs)
1500
+ ;; Floating-point absolute value
1501
+ (Fabs)
1502
+ ;; Floating-point negate
1503
+ (Fneg)
1504
+ ;; Floating-point square root
1505
+ (Fsqrt)
1506
+ ;; Reverse elements in 16-bit lanes
1507
+ (Rev16)
1508
+ ;; Reverse elements in 32-bit lanes
1509
+ (Rev32)
1510
+ ;; Reverse elements in 64-bit doublewords
1511
+ (Rev64)
1512
+ ;; Floating-point convert to signed integer, rounding toward zero
1513
+ (Fcvtzs)
1514
+ ;; Floating-point convert to unsigned integer, rounding toward zero
1515
+ (Fcvtzu)
1516
+ ;; Signed integer convert to floating-point
1517
+ (Scvtf)
1518
+ ;; Unsigned integer convert to floating-point
1519
+ (Ucvtf)
1520
+ ;; Floating point round to integral, rounding towards nearest
1521
+ (Frintn)
1522
+ ;; Floating point round to integral, rounding towards zero
1523
+ (Frintz)
1524
+ ;; Floating point round to integral, rounding towards minus infinity
1525
+ (Frintm)
1526
+ ;; Floating point round to integral, rounding towards plus infinity
1527
+ (Frintp)
1528
+ ;; Population count per byte
1529
+ (Cnt)
1530
+ ;; Compare bitwise equal to 0
1531
+ (Cmeq0)
1532
+ ;; Compare signed greater than or equal to 0
1533
+ (Cmge0)
1534
+ ;; Compare signed greater than 0
1535
+ (Cmgt0)
1536
+ ;; Compare signed less than or equal to 0
1537
+ (Cmle0)
1538
+ ;; Compare signed less than 0
1539
+ (Cmlt0)
1540
+ ;; Floating point compare equal to 0
1541
+ (Fcmeq0)
1542
+ ;; Floating point compare greater than or equal to 0
1543
+ (Fcmge0)
1544
+ ;; Floating point compare greater than 0
1545
+ (Fcmgt0)
1546
+ ;; Floating point compare less than or equal to 0
1547
+ (Fcmle0)
1548
+ ;; Floating point compare less than 0
1549
+ (Fcmlt0)
1550
+ ))
1551
+
1552
+ ;; A vector widening operation with one argument.
1553
+ (type VecRRLongOp
1554
+ (enum
1555
+ ;; Floating-point convert to higher precision long, 16-bit elements
1556
+ (Fcvtl16)
1557
+ ;; Floating-point convert to higher precision long, 32-bit elements
1558
+ (Fcvtl32)
1559
+ ;; Shift left long (by element size), 8-bit elements
1560
+ (Shll8)
1561
+ ;; Shift left long (by element size), 16-bit elements
1562
+ (Shll16)
1563
+ ;; Shift left long (by element size), 32-bit elements
1564
+ (Shll32)
1565
+ ))
1566
+
1567
+ ;; A vector narrowing operation with one argument.
1568
+ (type VecRRNarrowOp
1569
+ (enum
1570
+ ;; Extract narrow.
1571
+ (Xtn)
1572
+ ;; Signed saturating extract narrow.
1573
+ (Sqxtn)
1574
+ ;; Signed saturating extract unsigned narrow.
1575
+ (Sqxtun)
1576
+ ;; Unsigned saturating extract narrow.
1577
+ (Uqxtn)
1578
+ ;; Floating-point convert to lower precision narrow.
1579
+ (Fcvtn)
1580
+ ))
1581
+
1582
+ (type VecRRRLongOp
1583
+ (enum
1584
+ ;; Signed multiply long.
1585
+ (Smull8)
1586
+ (Smull16)
1587
+ (Smull32)
1588
+ ;; Unsigned multiply long.
1589
+ (Umull8)
1590
+ (Umull16)
1591
+ (Umull32)
1592
+ ))
1593
+
1594
+ (type VecRRRLongModOp
1595
+ (enum
1596
+ ;; Unsigned multiply add long
1597
+ (Umlal8)
1598
+ (Umlal16)
1599
+ (Umlal32)
1600
+ ))
1601
+
1602
+ ;; A vector operation on a pair of elements with one register.
1603
+ (type VecPairOp
1604
+ (enum
1605
+ ;; Add pair of elements
1606
+ (Addp)
1607
+ ))
1608
+
1609
+ ;; 1-operand vector instruction that extends elements of the input register
1610
+ ;; and operates on a pair of elements.
1611
+ (type VecRRPairLongOp
1612
+ (enum
1613
+ ;; Sign extend and add pair of elements
1614
+ (Saddlp8)
1615
+ (Saddlp16)
1616
+ ;; Unsigned extend and add pair of elements
1617
+ (Uaddlp8)
1618
+ (Uaddlp16)
1619
+ ))
1620
+
1621
+ ;; An operation across the lanes of vectors.
1622
+ (type VecLanesOp
1623
+ (enum
1624
+ ;; Integer addition across a vector
1625
+ (Addv)
1626
+ ;; Unsigned minimum across a vector
1627
+ (Uminv)
1628
+ ))
1629
+
1630
+ ;; A shift-by-immediate operation on each lane of a vector.
1631
+ (type VecShiftImmOp
1632
+ (enum
1633
+ ;; Unsigned shift left
1634
+ (Shl)
1635
+ ;; Unsigned shift right
1636
+ (Ushr)
1637
+ ;; Signed shift right
1638
+ (Sshr)
1639
+ ))
1640
+
1641
+ ;; Destructive shift-by-immediate operation on each lane of a vector.
1642
+ (type VecShiftImmModOp
1643
+ (enum
1644
+ ;; Shift left and insert
1645
+ (Sli)
1646
+ ))
1647
+
1648
+ ;; Atomic read-modify-write operations with acquire-release semantics
1649
+ (type AtomicRMWOp
1650
+ (enum
1651
+ (Add)
1652
+ (Clr)
1653
+ (Eor)
1654
+ (Set)
1655
+ (Smax)
1656
+ (Smin)
1657
+ (Umax)
1658
+ (Umin)
1659
+ (Swp)
1660
+ ))
1661
+
1662
+ ;; Atomic read-modify-write operations, with acquire-release semantics,
1663
+ ;; implemented with a loop.
1664
+ (type AtomicRMWLoopOp
1665
+ (enum
1666
+ (Add)
1667
+ (Sub)
1668
+ (And)
1669
+ (Nand)
1670
+ (Eor)
1671
+ (Orr)
1672
+ (Smax)
1673
+ (Smin)
1674
+ (Umax)
1675
+ (Umin)
1676
+ (Xchg)
1677
+ ))
1678
+
1679
+ ;; Keys for instruction address PACs
1680
+ (type APIKey
1681
+ (enum
1682
+ ;; API key A with the modifier of SP
1683
+ (ASP)
1684
+ ;; API key B with the modifier of SP
1685
+ (BSP)
1686
+ ;; API key A with the modifier of zero
1687
+ (AZ)
1688
+ ;; API key B with the modifier of zero
1689
+ (BZ)
1690
+ ))
1691
+
1692
+ ;; Branch target types
1693
+ (type BranchTargetType
1694
+ (enum
1695
+ (None)
1696
+ (C)
1697
+ (J)
1698
+ (JC)
1699
+ ))
1700
+
1701
+ ;; Extractors for target features ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1702
+ (decl pure partial sign_return_address_disabled () Unit)
1703
+ (extern constructor sign_return_address_disabled sign_return_address_disabled)
1704
+
1705
+ (decl use_lse () Inst)
1706
+ (extern extractor use_lse use_lse)
1707
+
1708
+ ;; Extractor helpers for various immmediate constants ;;;;;;;;;;;;;;;;;;;;;;;;;;
1709
+
1710
+ (decl pure partial move_wide_const_from_u64 (Type u64) MoveWideConst)
1711
+ (extern constructor move_wide_const_from_u64 move_wide_const_from_u64)
1712
+
1713
+ (decl pure partial move_wide_const_from_inverted_u64 (Type u64) MoveWideConst)
1714
+ (extern constructor move_wide_const_from_inverted_u64 move_wide_const_from_inverted_u64)
1715
+
1716
+ (decl pure partial imm_logic_from_u64 (Type u64) ImmLogic)
1717
+ (extern constructor imm_logic_from_u64 imm_logic_from_u64)
1718
+
1719
+ (decl pure partial imm_size_from_type (Type) u16)
1720
+ (extern constructor imm_size_from_type imm_size_from_type)
1721
+
1722
+ (decl pure partial imm_logic_from_imm64 (Type Imm64) ImmLogic)
1723
+ (extern constructor imm_logic_from_imm64 imm_logic_from_imm64)
1724
+
1725
+ (decl pure partial imm_shift_from_imm64 (Type Imm64) ImmShift)
1726
+ (extern constructor imm_shift_from_imm64 imm_shift_from_imm64)
1727
+
1728
+ (decl imm_shift_from_u8 (u8) ImmShift)
1729
+ (extern constructor imm_shift_from_u8 imm_shift_from_u8)
1730
+
1731
+ (decl imm12_from_u64 (Imm12) u64)
1732
+ (extern extractor imm12_from_u64 imm12_from_u64)
1733
+
1734
+ (decl u8_into_uimm5 (u8) UImm5)
1735
+ (extern constructor u8_into_uimm5 u8_into_uimm5)
1736
+
1737
+ (decl u8_into_imm12 (u8) Imm12)
1738
+ (extern constructor u8_into_imm12 u8_into_imm12)
1739
+
1740
+ (decl u64_into_imm_logic (Type u64) ImmLogic)
1741
+ (extern constructor u64_into_imm_logic u64_into_imm_logic)
1742
+
1743
+ (decl branch_target (MachLabel) BranchTarget)
1744
+ (extern constructor branch_target branch_target)
1745
+ (convert MachLabel BranchTarget branch_target)
1746
+
1747
+ (decl targets_jt_space (BoxVecMachLabel) CodeOffset)
1748
+ (extern constructor targets_jt_space targets_jt_space)
1749
+
1750
+ ;; Calculate the minimum floating-point bound for a conversion to floating
1751
+ ;; point from an integer type.
1752
+ ;; Accepts whether the output is signed, the size of the input
1753
+ ;; floating point type in bits, and the size of the output integer type
1754
+ ;; in bits.
1755
+ (decl min_fp_value (bool u8 u8) Reg)
1756
+ (extern constructor min_fp_value min_fp_value)
1757
+
1758
+ ;; Calculate the maximum floating-point bound for a conversion to floating
1759
+ ;; point from an integer type.
1760
+ ;; Accepts whether the output is signed, the size of the input
1761
+ ;; floating point type in bits, and the size of the output integer type
1762
+ ;; in bits.
1763
+ (decl max_fp_value (bool u8 u8) Reg)
1764
+ (extern constructor max_fp_value max_fp_value)
1765
+
1766
+ ;; Constructs an FPUOpRI.Ushr* given the size in bits of the value (or lane)
1767
+ ;; and the amount to shift by.
1768
+ (decl fpu_op_ri_ushr (u8 u8) FPUOpRI)
1769
+ (extern constructor fpu_op_ri_ushr fpu_op_ri_ushr)
1770
+
1771
+ ;; Constructs an FPUOpRIMod.Sli* given the size in bits of the value (or lane)
1772
+ ;; and the amount to shift by.
1773
+ (decl fpu_op_ri_sli (u8 u8) FPUOpRIMod)
1774
+ (extern constructor fpu_op_ri_sli fpu_op_ri_sli)
1775
+
1776
+ (decl pure partial lshr_from_u64 (Type u64) ShiftOpAndAmt)
1777
+ (extern constructor lshr_from_u64 lshr_from_u64)
1778
+
1779
+ (decl pure partial lshl_from_imm64 (Type Imm64) ShiftOpAndAmt)
1780
+ (extern constructor lshl_from_imm64 lshl_from_imm64)
1781
+
1782
+ (decl pure partial lshl_from_u64 (Type u64) ShiftOpAndAmt)
1783
+ (extern constructor lshl_from_u64 lshl_from_u64)
1784
+
1785
+ (decl pure partial ashr_from_u64 (Type u64) ShiftOpAndAmt)
1786
+ (extern constructor ashr_from_u64 ashr_from_u64)
1787
+
1788
+ (decl integral_ty (Type) Type)
1789
+ (extern extractor integral_ty integral_ty)
1790
+
1791
+ (decl valid_atomic_transaction (Type) Type)
1792
+ (extern extractor valid_atomic_transaction valid_atomic_transaction)
1793
+
1794
+ (decl pure partial is_zero_simm9 (SImm9) Unit)
1795
+ (extern constructor is_zero_simm9 is_zero_simm9)
1796
+
1797
+ (decl pure partial is_zero_uimm12 (UImm12Scaled) Unit)
1798
+ (extern constructor is_zero_uimm12 is_zero_uimm12)
1799
+
1800
+ ;; Helper to go directly from a `Value`, when it's an `iconst`, to an `Imm12`.
1801
+ (decl imm12_from_value (Imm12) Value)
1802
+ (extractor
1803
+ (imm12_from_value n)
1804
+ (iconst (u64_from_imm64 (imm12_from_u64 n))))
1805
+
1806
+ ;; Conceptually the same as `imm12_from_value`, but tries negating the constant
1807
+ ;; value (first sign-extending to handle narrow widths).
1808
+ (decl pure partial imm12_from_negated_value (Value) Imm12)
1809
+ (rule
1810
+ (imm12_from_negated_value (has_type ty (iconst n)))
1811
+ (if-let (imm12_from_u64 imm) (i64_as_u64 (i64_neg (i64_sextend_imm64 ty n))))
1812
+ imm)
1813
+
1814
+ ;; Helper type to represent a value and an extend operation fused together.
1815
+ (type ExtendedValue extern (enum))
1816
+ (decl extended_value_from_value (ExtendedValue) Value)
1817
+ (extern extractor extended_value_from_value extended_value_from_value)
1818
+
1819
+ ;; Constructors used to poke at the fields of an `ExtendedValue`.
1820
+ (decl put_extended_in_reg (ExtendedValue) Reg)
1821
+ (extern constructor put_extended_in_reg put_extended_in_reg)
1822
+ (decl get_extended_op (ExtendedValue) ExtendOp)
1823
+ (extern constructor get_extended_op get_extended_op)
1824
+
1825
+ (decl nzcv (bool bool bool bool) NZCV)
1826
+ (extern constructor nzcv nzcv)
1827
+
1828
+ (decl cond_br_zero (Reg) CondBrKind)
1829
+ (extern constructor cond_br_zero cond_br_zero)
1830
+
1831
+ (decl cond_br_not_zero (Reg) CondBrKind)
1832
+ (extern constructor cond_br_not_zero cond_br_not_zero)
1833
+
1834
+ (decl cond_br_cond (Cond) CondBrKind)
1835
+ (extern constructor cond_br_cond cond_br_cond)
1836
+
1837
+ ;; Instruction creation helpers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1838
+
1839
+ ;; Helper for creating the zero register.
1840
+ (decl zero_reg () Reg)
1841
+ (extern constructor zero_reg zero_reg)
1842
+
1843
+ (decl fp_reg () Reg)
1844
+ (extern constructor fp_reg fp_reg)
1845
+
1846
+ (decl stack_reg () Reg)
1847
+ (extern constructor stack_reg stack_reg)
1848
+
1849
+ (decl writable_link_reg () WritableReg)
1850
+ (extern constructor writable_link_reg writable_link_reg)
1851
+
1852
+ (decl writable_zero_reg () WritableReg)
1853
+ (extern constructor writable_zero_reg writable_zero_reg)
1854
+
1855
+ (decl value_regs_zero () ValueRegs)
1856
+ (rule (value_regs_zero)
1857
+ (value_regs
1858
+ (imm $I64 (ImmExtend.Zero) 0)
1859
+ (imm $I64 (ImmExtend.Zero) 0)))
1860
+
1861
+
1862
+ ;; Helper for emitting `MInst.Mov` instructions.
1863
+ (decl mov (Reg Type) Reg)
1864
+ (rule (mov src ty)
1865
+ (let ((dst WritableReg (temp_writable_reg $I64))
1866
+ (_ Unit (emit (MInst.Mov (operand_size ty) dst src))))
1867
+ dst))
1868
+
1869
+ ;; Helper for emitting `MInst.MovZ` instructions.
1870
+ (decl movz (MoveWideConst OperandSize) Reg)
1871
+ (rule (movz imm size)
1872
+ (let ((dst WritableReg (temp_writable_reg $I64))
1873
+ (_ Unit (emit (MInst.MovWide (MoveWideOp.MovZ) dst imm size))))
1874
+ dst))
1875
+
1876
+ ;; Helper for emitting `MInst.MovN` instructions.
1877
+ (decl movn (MoveWideConst OperandSize) Reg)
1878
+ (rule (movn imm size)
1879
+ (let ((dst WritableReg (temp_writable_reg $I64))
1880
+ (_ Unit (emit (MInst.MovWide (MoveWideOp.MovN) dst imm size))))
1881
+ dst))
1882
+
1883
+ ;; Helper for emitting `MInst.AluRRImmLogic` instructions.
1884
+ (decl alu_rr_imm_logic (ALUOp Type Reg ImmLogic) Reg)
1885
+ (rule (alu_rr_imm_logic op ty src imm)
1886
+ (let ((dst WritableReg (temp_writable_reg $I64))
1887
+ (_ Unit (emit (MInst.AluRRImmLogic op (operand_size ty) dst src imm))))
1888
+ dst))
1889
+
1890
+ ;; Helper for emitting `MInst.AluRRImmShift` instructions.
1891
+ (decl alu_rr_imm_shift (ALUOp Type Reg ImmShift) Reg)
1892
+ (rule (alu_rr_imm_shift op ty src imm)
1893
+ (let ((dst WritableReg (temp_writable_reg $I64))
1894
+ (_ Unit (emit (MInst.AluRRImmShift op (operand_size ty) dst src imm))))
1895
+ dst))
1896
+
1897
+ ;; Helper for emitting `MInst.AluRRR` instructions.
1898
+ (decl alu_rrr (ALUOp Type Reg Reg) Reg)
1899
+ (rule (alu_rrr op ty src1 src2)
1900
+ (let ((dst WritableReg (temp_writable_reg $I64))
1901
+ (_ Unit (emit (MInst.AluRRR op (operand_size ty) dst src1 src2))))
1902
+ dst))
1903
+
1904
+ ;; Helper for emitting `MInst.VecRRR` instructions.
1905
+ (decl vec_rrr (VecALUOp Reg Reg VectorSize) Reg)
1906
+ (rule (vec_rrr op src1 src2 size)
1907
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
1908
+ (_ Unit (emit (MInst.VecRRR op dst src1 src2 size))))
1909
+ dst))
1910
+
1911
+ ;; Helper for emitting `MInst.FpuRR` instructions.
1912
+ (decl fpu_rr (FPUOp1 Reg ScalarSize) Reg)
1913
+ (rule (fpu_rr op src size)
1914
+ (let ((dst WritableReg (temp_writable_reg $F64))
1915
+ (_ Unit (emit (MInst.FpuRR op size dst src))))
1916
+ dst))
1917
+
1918
+ ;; Helper for emitting `MInst.VecRRRMod` instructions which use three registers,
1919
+ ;; one of which is both source and output.
1920
+ (decl vec_rrr_mod (VecALUModOp Reg Reg Reg VectorSize) Reg)
1921
+ (rule (vec_rrr_mod op src1 src2 src3 size)
1922
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
1923
+ (_1 Unit (emit (MInst.VecRRRMod op dst src1 src2 src3 size))))
1924
+ dst))
1925
+
1926
+ ;; Helper for emitting `MInst.VecFmlaElem` instructions which use three registers,
1927
+ ;; one of which is both source and output.
1928
+ (decl vec_fmla_elem (VecALUModOp Reg Reg Reg VectorSize u8) Reg)
1929
+ (rule (vec_fmla_elem op src1 src2 src3 size idx)
1930
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
1931
+ (_1 Unit (emit (MInst.VecFmlaElem op dst src1 src2 src3 size idx))))
1932
+ dst))
1933
+
1934
+ (decl fpu_rri (FPUOpRI Reg) Reg)
1935
+ (rule (fpu_rri op src)
1936
+ (let ((dst WritableReg (temp_writable_reg $F64))
1937
+ (_ Unit (emit (MInst.FpuRRI op dst src))))
1938
+ dst))
1939
+
1940
+ (decl fpu_rri_mod (FPUOpRIMod Reg Reg) Reg)
1941
+ (rule (fpu_rri_mod op dst_src src)
1942
+ (let ((dst WritableReg (temp_writable_reg $F64))
1943
+ (_ Unit (emit (MInst.FpuRRIMod op dst dst_src src))))
1944
+ dst))
1945
+
1946
+ ;; Helper for emitting `MInst.FpuRRR` instructions.
1947
+ (decl fpu_rrr (FPUOp2 Reg Reg ScalarSize) Reg)
1948
+ (rule (fpu_rrr op src1 src2 size)
1949
+ (let ((dst WritableReg (temp_writable_reg $F64))
1950
+ (_ Unit (emit (MInst.FpuRRR op size dst src1 src2))))
1951
+ dst))
1952
+
1953
+ ;; Helper for emitting `MInst.FpuRRRR` instructions.
1954
+ (decl fpu_rrrr (FPUOp3 ScalarSize Reg Reg Reg) Reg)
1955
+ (rule (fpu_rrrr size op src1 src2 src3)
1956
+ (let ((dst WritableReg (temp_writable_reg $F64))
1957
+ (_ Unit (emit (MInst.FpuRRRR size op dst src1 src2 src3))))
1958
+ dst))
1959
+
1960
+ ;; Helper for emitting `MInst.FpuCmp` instructions.
1961
+ (decl fpu_cmp (ScalarSize Reg Reg) ProducesFlags)
1962
+ (rule (fpu_cmp size rn rm)
1963
+ (ProducesFlags.ProducesFlagsSideEffect
1964
+ (MInst.FpuCmp size rn rm)))
1965
+
1966
+ ;; Helper for emitting `MInst.VecLanes` instructions.
1967
+ (decl vec_lanes (VecLanesOp Reg VectorSize) Reg)
1968
+ (rule (vec_lanes op src size)
1969
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
1970
+ (_ Unit (emit (MInst.VecLanes op dst src size))))
1971
+ dst))
1972
+
1973
+ ;; Helper for emitting `MInst.VecShiftImm` instructions.
1974
+ (decl vec_shift_imm (VecShiftImmOp u8 Reg VectorSize) Reg)
1975
+ (rule (vec_shift_imm op imm src size)
1976
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
1977
+ (_ Unit (emit (MInst.VecShiftImm op dst src size imm))))
1978
+ dst))
1979
+
1980
+ ;; Helper for emitting `MInst.VecDup` instructions.
1981
+ (decl vec_dup (Reg VectorSize) Reg)
1982
+ (rule (vec_dup src size)
1983
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
1984
+ (_ Unit (emit (MInst.VecDup dst src size))))
1985
+ dst))
1986
+
1987
+ ;; Helper for emitting `MInst.VecDupFromFpu` instructions.
1988
+ (decl vec_dup_from_fpu (Reg VectorSize u8) Reg)
1989
+ (rule (vec_dup_from_fpu src size lane)
1990
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
1991
+ (_ Unit (emit (MInst.VecDupFromFpu dst src size lane))))
1992
+ dst))
1993
+
1994
+ ;; Helper for emitting `MInst.VecDupImm` instructions.
1995
+ (decl vec_dup_imm (ASIMDMovModImm bool VectorSize) Reg)
1996
+ (rule (vec_dup_imm imm invert size)
1997
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
1998
+ (_ Unit (emit (MInst.VecDupImm dst imm invert size))))
1999
+ dst))
2000
+
2001
+ ;; Helper for emitting `MInst.AluRRImm12` instructions.
2002
+ (decl alu_rr_imm12 (ALUOp Type Reg Imm12) Reg)
2003
+ (rule (alu_rr_imm12 op ty src imm)
2004
+ (let ((dst WritableReg (temp_writable_reg $I64))
2005
+ (_ Unit (emit (MInst.AluRRImm12 op (operand_size ty) dst src imm))))
2006
+ dst))
2007
+
2008
+ ;; Helper for emitting `MInst.AluRRRShift` instructions.
2009
+ (decl alu_rrr_shift (ALUOp Type Reg Reg ShiftOpAndAmt) Reg)
2010
+ (rule (alu_rrr_shift op ty src1 src2 shift)
2011
+ (let ((dst WritableReg (temp_writable_reg $I64))
2012
+ (_ Unit (emit (MInst.AluRRRShift op (operand_size ty) dst src1 src2 shift))))
2013
+ dst))
2014
+
2015
+ ;; Helper for emitting `cmp` instructions, setting flags, with a right-shifted
2016
+ ;; second operand register.
2017
+ (decl cmp_rr_shift (OperandSize Reg Reg u64) ProducesFlags)
2018
+ (rule (cmp_rr_shift size src1 src2 shift_amount)
2019
+ (if-let shift (lshr_from_u64 $I64 shift_amount))
2020
+ (ProducesFlags.ProducesFlagsSideEffect
2021
+ (MInst.AluRRRShift (ALUOp.SubS) size (writable_zero_reg)
2022
+ src1 src2 shift)))
2023
+
2024
+ ;; Helper for emitting `cmp` instructions, setting flags, with an arithmetic right-shifted
2025
+ ;; second operand register.
2026
+ (decl cmp_rr_shift_asr (OperandSize Reg Reg u64) ProducesFlags)
2027
+ (rule (cmp_rr_shift_asr size src1 src2 shift_amount)
2028
+ (if-let shift (ashr_from_u64 $I64 shift_amount))
2029
+ (ProducesFlags.ProducesFlagsSideEffect
2030
+ (MInst.AluRRRShift (ALUOp.SubS) size (writable_zero_reg)
2031
+ src1 src2 shift)))
2032
+
2033
+ ;; Helper for emitting `MInst.AluRRRExtend` instructions.
2034
+ (decl alu_rrr_extend (ALUOp Type Reg Reg ExtendOp) Reg)
2035
+ (rule (alu_rrr_extend op ty src1 src2 extend)
2036
+ (let ((dst WritableReg (temp_writable_reg $I64))
2037
+ (_ Unit (emit (MInst.AluRRRExtend op (operand_size ty) dst src1 src2 extend))))
2038
+ dst))
2039
+
2040
+ ;; Same as `alu_rrr_extend`, but takes an `ExtendedValue` packed "pair" instead
2041
+ ;; of a `Reg` and an `ExtendOp`.
2042
+ (decl alu_rr_extend_reg (ALUOp Type Reg ExtendedValue) Reg)
2043
+ (rule (alu_rr_extend_reg op ty src1 extended_reg)
2044
+ (let ((src2 Reg (put_extended_in_reg extended_reg))
2045
+ (extend ExtendOp (get_extended_op extended_reg)))
2046
+ (alu_rrr_extend op ty src1 src2 extend)))
2047
+
2048
+ ;; Helper for emitting `MInst.AluRRRR` instructions.
2049
+ (decl alu_rrrr (ALUOp3 Type Reg Reg Reg) Reg)
2050
+ (rule (alu_rrrr op ty src1 src2 src3)
2051
+ (let ((dst WritableReg (temp_writable_reg $I64))
2052
+ (_ Unit (emit (MInst.AluRRRR op (operand_size ty) dst src1 src2 src3))))
2053
+ dst))
2054
+
2055
+ ;; Helper for emitting paired `MInst.AluRRR` instructions
2056
+ (decl alu_rrr_with_flags_paired (Type Reg Reg ALUOp) ProducesFlags)
2057
+ (rule (alu_rrr_with_flags_paired ty src1 src2 alu_op)
2058
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2059
+ (ProducesFlags.ProducesFlagsReturnsResultWithConsumer
2060
+ (MInst.AluRRR alu_op (operand_size ty) dst src1 src2)
2061
+ dst)))
2062
+
2063
+ ;; Should only be used for AdcS and SbcS
2064
+ (decl alu_rrr_with_flags_chained (Type Reg Reg ALUOp) ConsumesAndProducesFlags)
2065
+ (rule (alu_rrr_with_flags_chained ty src1 src2 alu_op)
2066
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2067
+ (ConsumesAndProducesFlags.ReturnsReg
2068
+ (MInst.AluRRR alu_op (operand_size ty) dst src1 src2)
2069
+ dst)))
2070
+
2071
+ ;; Helper for emitting `MInst.BitRR` instructions.
2072
+ (decl bit_rr (BitOp Type Reg) Reg)
2073
+ (rule (bit_rr op ty src)
2074
+ (let ((dst WritableReg (temp_writable_reg $I64))
2075
+ (_ Unit (emit (MInst.BitRR op (operand_size ty) dst src))))
2076
+ dst))
2077
+
2078
+ ;; Helper for emitting `adds` instructions.
2079
+ (decl add_with_flags_paired (Type Reg Reg) ProducesFlags)
2080
+ (rule (add_with_flags_paired ty src1 src2)
2081
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2082
+ (ProducesFlags.ProducesFlagsReturnsResultWithConsumer
2083
+ (MInst.AluRRR (ALUOp.AddS) (operand_size ty) dst src1 src2)
2084
+ dst)))
2085
+
2086
+ ;; Helper for emitting `adc` instructions.
2087
+ (decl adc_paired (Type Reg Reg) ConsumesFlags)
2088
+ (rule (adc_paired ty src1 src2)
2089
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2090
+ (ConsumesFlags.ConsumesFlagsReturnsResultWithProducer
2091
+ (MInst.AluRRR (ALUOp.Adc) (operand_size ty) dst src1 src2)
2092
+ dst)))
2093
+
2094
+ ;; Helper for emitting `subs` instructions.
2095
+ (decl sub_with_flags_paired (Type Reg Reg) ProducesFlags)
2096
+ (rule (sub_with_flags_paired ty src1 src2)
2097
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2098
+ (ProducesFlags.ProducesFlagsReturnsResultWithConsumer
2099
+ (MInst.AluRRR (ALUOp.SubS) (operand_size ty) dst src1 src2)
2100
+ dst)))
2101
+
2102
+ ;; Helper for materializing a boolean value into a register from
2103
+ ;; flags.
2104
+ (decl materialize_bool_result (Cond) ConsumesFlags)
2105
+ (rule (materialize_bool_result cond)
2106
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2107
+ (ConsumesFlags.ConsumesFlagsReturnsReg
2108
+ (MInst.CSet dst cond)
2109
+ dst)))
2110
+
2111
+ (decl cmn_imm (OperandSize Reg Imm12) ProducesFlags)
2112
+ (rule (cmn_imm size src1 src2)
2113
+ (ProducesFlags.ProducesFlagsSideEffect
2114
+ (MInst.AluRRImm12 (ALUOp.AddS) size (writable_zero_reg)
2115
+ src1 src2)))
2116
+
2117
+ (decl cmp (OperandSize Reg Reg) ProducesFlags)
2118
+ (rule (cmp size src1 src2)
2119
+ (ProducesFlags.ProducesFlagsSideEffect
2120
+ (MInst.AluRRR (ALUOp.SubS) size (writable_zero_reg)
2121
+ src1 src2)))
2122
+
2123
+ (decl cmp_imm (OperandSize Reg Imm12) ProducesFlags)
2124
+ (rule (cmp_imm size src1 src2)
2125
+ (ProducesFlags.ProducesFlagsSideEffect
2126
+ (MInst.AluRRImm12 (ALUOp.SubS) size (writable_zero_reg)
2127
+ src1 src2)))
2128
+
2129
+ (decl cmp64_imm (Reg Imm12) ProducesFlags)
2130
+ (rule (cmp64_imm src1 src2)
2131
+ (cmp_imm (OperandSize.Size64) src1 src2))
2132
+
2133
+ (decl cmp_extend (OperandSize Reg Reg ExtendOp) ProducesFlags)
2134
+ (rule (cmp_extend size src1 src2 extend)
2135
+ (ProducesFlags.ProducesFlagsSideEffect
2136
+ (MInst.AluRRRExtend (ALUOp.SubS) size (writable_zero_reg)
2137
+ src1 src2 extend)))
2138
+
2139
+ ;; Helper for emitting `sbc` instructions.
2140
+ (decl sbc_paired (Type Reg Reg) ConsumesFlags)
2141
+ (rule (sbc_paired ty src1 src2)
2142
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2143
+ (ConsumesFlags.ConsumesFlagsReturnsResultWithProducer
2144
+ (MInst.AluRRR (ALUOp.Sbc) (operand_size ty) dst src1 src2)
2145
+ dst)))
2146
+
2147
+ ;; Helper for emitting `MInst.VecMisc` instructions.
2148
+ (decl vec_misc (VecMisc2 Reg VectorSize) Reg)
2149
+ (rule (vec_misc op src size)
2150
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2151
+ (_ Unit (emit (MInst.VecMisc op dst src size))))
2152
+ dst))
2153
+
2154
+ ;; Helper for emitting `MInst.VecTbl` instructions.
2155
+ (decl vec_tbl (Reg Reg) Reg)
2156
+ (rule (vec_tbl rn rm)
2157
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2158
+ (_ Unit (emit (MInst.VecTbl dst rn rm))))
2159
+ dst))
2160
+
2161
+ (decl vec_tbl_ext (Reg Reg Reg) Reg)
2162
+ (rule (vec_tbl_ext ri rn rm)
2163
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2164
+ (_ Unit (emit (MInst.VecTblExt dst ri rn rm))))
2165
+ dst))
2166
+
2167
+ ;; Helper for emitting `MInst.VecTbl2` instructions.
2168
+ (decl vec_tbl2 (Reg Reg Reg Type) Reg)
2169
+ (rule (vec_tbl2 rn rn2 rm ty)
2170
+ (let (
2171
+ (dst WritableReg (temp_writable_reg $I8X16))
2172
+ (_ Unit (emit (MInst.VecTbl2 dst rn rn2 rm)))
2173
+ )
2174
+ dst))
2175
+
2176
+ ;; Helper for emitting `MInst.VecTbl2Ext` instructions.
2177
+ (decl vec_tbl2_ext (Reg Reg Reg Reg Type) Reg)
2178
+ (rule (vec_tbl2_ext ri rn rn2 rm ty)
2179
+ (let (
2180
+ (dst WritableReg (temp_writable_reg $I8X16))
2181
+ (_ Unit (emit (MInst.VecTbl2Ext dst ri rn rn2 rm)))
2182
+ )
2183
+ dst))
2184
+
2185
+ ;; Helper for emitting `MInst.VecRRRLong` instructions.
2186
+ (decl vec_rrr_long (VecRRRLongOp Reg Reg bool) Reg)
2187
+ (rule (vec_rrr_long op src1 src2 high_half)
2188
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2189
+ (_ Unit (emit (MInst.VecRRRLong op dst src1 src2 high_half))))
2190
+ dst))
2191
+
2192
+ ;; Helper for emitting `MInst.VecRRPairLong` instructions.
2193
+ (decl vec_rr_pair_long (VecRRPairLongOp Reg) Reg)
2194
+ (rule (vec_rr_pair_long op src)
2195
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2196
+ (_ Unit (emit (MInst.VecRRPairLong op dst src))))
2197
+ dst))
2198
+
2199
+ ;; Helper for emitting `MInst.VecRRRLongMod` instructions.
2200
+ (decl vec_rrrr_long (VecRRRLongModOp Reg Reg Reg bool) Reg)
2201
+ (rule (vec_rrrr_long op src1 src2 src3 high_half)
2202
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2203
+ (_ Unit (emit (MInst.VecRRRLongMod op dst src1 src2 src3 high_half))))
2204
+ dst))
2205
+
2206
+ ;; Helper for emitting `MInst.VecRRNarrow` instructions.
2207
+ (decl vec_rr_narrow_low (VecRRNarrowOp Reg ScalarSize) Reg)
2208
+ (rule (vec_rr_narrow_low op src size)
2209
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2210
+ (_ Unit (emit (MInst.VecRRNarrowLow op dst src size))))
2211
+ dst))
2212
+
2213
+ ;; Helper for emitting `MInst.VecRRNarrow` instructions which update the
2214
+ ;; high half of the destination register.
2215
+ (decl vec_rr_narrow_high (VecRRNarrowOp Reg Reg ScalarSize) Reg)
2216
+ (rule (vec_rr_narrow_high op mod src size)
2217
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2218
+ (_ Unit (emit (MInst.VecRRNarrowHigh op dst mod src size))))
2219
+ dst))
2220
+
2221
+ ;; Helper for emitting `MInst.VecRRLong` instructions.
2222
+ (decl vec_rr_long (VecRRLongOp Reg bool) Reg)
2223
+ (rule (vec_rr_long op src high_half)
2224
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2225
+ (_ Unit (emit (MInst.VecRRLong op dst src high_half))))
2226
+ dst))
2227
+
2228
+ ;; Helper for emitting `MInst.FpuCSel32` / `MInst.FpuCSel64`
2229
+ ;; instructions.
2230
+ (decl fpu_csel (Type Cond Reg Reg) ConsumesFlags)
2231
+ (rule (fpu_csel $F32 cond if_true if_false)
2232
+ (let ((dst WritableReg (temp_writable_reg $F32)))
2233
+ (ConsumesFlags.ConsumesFlagsReturnsReg
2234
+ (MInst.FpuCSel32 dst if_true if_false cond)
2235
+ dst)))
2236
+
2237
+ (rule (fpu_csel $F64 cond if_true if_false)
2238
+ (let ((dst WritableReg (temp_writable_reg $F64)))
2239
+ (ConsumesFlags.ConsumesFlagsReturnsReg
2240
+ (MInst.FpuCSel64 dst if_true if_false cond)
2241
+ dst)))
2242
+
2243
+ ;; Helper for emitting `MInst.VecCSel` instructions.
2244
+ (decl vec_csel (Cond Reg Reg) ConsumesFlags)
2245
+ (rule (vec_csel cond if_true if_false)
2246
+ (let ((dst WritableReg (temp_writable_reg $I8X16)))
2247
+ (ConsumesFlags.ConsumesFlagsReturnsReg
2248
+ (MInst.VecCSel dst if_true if_false cond)
2249
+ dst)))
2250
+
2251
+ ;; Helper for emitting `MInst.FpuRound` instructions.
2252
+ (decl fpu_round (FpuRoundMode Reg) Reg)
2253
+ (rule (fpu_round op rn)
2254
+ (let ((dst WritableReg (temp_writable_reg $F64))
2255
+ (_ Unit (emit (MInst.FpuRound op dst rn))))
2256
+ dst))
2257
+
2258
+ ;; Helper for emitting `MInst.FpuMove64` and `MInst.FpuMove128` instructions.
2259
+ (decl fpu_move (Type Reg) Reg)
2260
+ (rule (fpu_move _ src)
2261
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2262
+ (_ Unit (emit (MInst.FpuMove128 dst src))))
2263
+ dst))
2264
+ (rule 1 (fpu_move (fits_in_64 _) src)
2265
+ (let ((dst WritableReg (temp_writable_reg $F64))
2266
+ (_ Unit (emit (MInst.FpuMove64 dst src))))
2267
+ dst))
2268
+
2269
+ ;; Helper for emitting `MInst.MovToFpu` instructions.
2270
+ (decl mov_to_fpu (Reg ScalarSize) Reg)
2271
+ (rule (mov_to_fpu x size)
2272
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2273
+ (_ Unit (emit (MInst.MovToFpu dst x size))))
2274
+ dst))
2275
+
2276
+ ;; Helper for emitting `MInst.FpuMoveFPImm` instructions.
2277
+ (decl fpu_move_fp_imm (ASIMDFPModImm ScalarSize) Reg)
2278
+ (rule (fpu_move_fp_imm imm size)
2279
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2280
+ (_ Unit (emit (MInst.FpuMoveFPImm dst imm size))))
2281
+ dst))
2282
+
2283
+ ;; Helper for emitting `MInst.MovToVec` instructions.
2284
+ (decl mov_to_vec (Reg Reg u8 VectorSize) Reg)
2285
+ (rule (mov_to_vec src1 src2 lane size)
2286
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2287
+ (_ Unit (emit (MInst.MovToVec dst src1 src2 lane size))))
2288
+ dst))
2289
+
2290
+ ;; Helper for emitting `MInst.VecMovElement` instructions.
2291
+ (decl mov_vec_elem (Reg Reg u8 u8 VectorSize) Reg)
2292
+ (rule (mov_vec_elem src1 src2 dst_idx src_idx size)
2293
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2294
+ (_ Unit (emit (MInst.VecMovElement dst src1 src2 dst_idx src_idx size))))
2295
+ dst))
2296
+
2297
+ ;; Helper for emitting `MInst.MovFromVec` instructions.
2298
+ (decl mov_from_vec (Reg u8 ScalarSize) Reg)
2299
+ (rule (mov_from_vec rn idx size)
2300
+ (let ((dst WritableReg (temp_writable_reg $I64))
2301
+ (_ Unit (emit (MInst.MovFromVec dst rn idx size))))
2302
+ dst))
2303
+
2304
+ ;; Helper for emitting `MInst.MovFromVecSigned` instructions.
2305
+ (decl mov_from_vec_signed (Reg u8 VectorSize OperandSize) Reg)
2306
+ (rule (mov_from_vec_signed rn idx size scalar_size)
2307
+ (let ((dst WritableReg (temp_writable_reg $I64))
2308
+ (_ Unit (emit (MInst.MovFromVecSigned dst rn idx size scalar_size))))
2309
+ dst))
2310
+
2311
+ (decl fpu_move_from_vec (Reg u8 VectorSize) Reg)
2312
+ (rule (fpu_move_from_vec rn idx size)
2313
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2314
+ (_ Unit (emit (MInst.FpuMoveFromVec dst rn idx size))))
2315
+ dst))
2316
+
2317
+ ;; Helper for emitting `MInst.Extend` instructions.
2318
+ (decl extend (Reg bool u8 u8) Reg)
2319
+ (rule (extend rn signed from_bits to_bits)
2320
+ (let ((dst WritableReg (temp_writable_reg $I64))
2321
+ (_ Unit (emit (MInst.Extend dst rn signed from_bits to_bits))))
2322
+ dst))
2323
+
2324
+ ;; Helper for emitting `MInst.FpuExtend` instructions.
2325
+ (decl fpu_extend (Reg ScalarSize) Reg)
2326
+ (rule (fpu_extend src size)
2327
+ (let ((dst WritableReg (temp_writable_reg $F32X4))
2328
+ (_ Unit (emit (MInst.FpuExtend dst src size))))
2329
+ dst))
2330
+
2331
+ ;; Helper for emitting `MInst.VecExtend` instructions.
2332
+ (decl vec_extend (VecExtendOp Reg bool ScalarSize) Reg)
2333
+ (rule (vec_extend op src high_half size)
2334
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2335
+ (_ Unit (emit (MInst.VecExtend op dst src high_half size))))
2336
+ dst))
2337
+
2338
+ ;; Helper for emitting `MInst.VecExtract` instructions.
2339
+ (decl vec_extract (Reg Reg u8) Reg)
2340
+ (rule (vec_extract src1 src2 idx)
2341
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
2342
+ (_ Unit (emit (MInst.VecExtract dst src1 src2 idx))))
2343
+ dst))
2344
+
2345
+ ;; Helper for emitting `MInst.LoadAcquire` instructions.
2346
+ (decl load_acquire (Type MemFlags Reg) Reg)
2347
+ (rule (load_acquire ty flags addr)
2348
+ (let ((dst WritableReg (temp_writable_reg $I64))
2349
+ (_ Unit (emit (MInst.LoadAcquire ty dst addr flags))))
2350
+ dst))
2351
+
2352
+ ;; Helper for emitting `MInst.StoreRelease` instructions.
2353
+ (decl store_release (Type MemFlags Reg Reg) SideEffectNoResult)
2354
+ (rule (store_release ty flags src addr)
2355
+ (SideEffectNoResult.Inst (MInst.StoreRelease ty src addr flags)))
2356
+
2357
+ ;; Helper for generating a `tst` instruction.
2358
+ ;;
2359
+ ;; Produces a `ProducesFlags` rather than a register or emitted instruction
2360
+ ;; which must be paired with `with_flags*` helpers.
2361
+ (decl tst_imm (Type Reg ImmLogic) ProducesFlags)
2362
+ (rule (tst_imm ty reg imm)
2363
+ (ProducesFlags.ProducesFlagsSideEffect
2364
+ (MInst.AluRRImmLogic (ALUOp.AndS)
2365
+ (operand_size ty)
2366
+ (writable_zero_reg)
2367
+ reg
2368
+ imm)))
2369
+
2370
+ ;; Helper for generating a `CSel` instruction.
2371
+ ;;
2372
+ ;; Note that this doesn't actually emit anything, instead it produces a
2373
+ ;; `ConsumesFlags` instruction which must be consumed with `with_flags*`
2374
+ ;; helpers.
2375
+ (decl csel (Cond Reg Reg) ConsumesFlags)
2376
+ (rule (csel cond if_true if_false)
2377
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2378
+ (ConsumesFlags.ConsumesFlagsReturnsReg
2379
+ (MInst.CSel dst cond if_true if_false)
2380
+ dst)))
2381
+
2382
+ ;; Helper for constructing `cset` instructions.
2383
+ (decl cset (Cond) ConsumesFlags)
2384
+ (rule (cset cond)
2385
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2386
+ (ConsumesFlags.ConsumesFlagsReturnsReg (MInst.CSet dst cond) dst)))
2387
+
2388
+ ;; Helper for constructing `cset` instructions, when the flags producer will
2389
+ ;; also return a value.
2390
+ (decl cset_paired (Cond) ConsumesFlags)
2391
+ (rule (cset_paired cond)
2392
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2393
+ (ConsumesFlags.ConsumesFlagsReturnsResultWithProducer (MInst.CSet dst cond) dst)))
2394
+
2395
+ ;; Helper for constructing `csetm` instructions.
2396
+ (decl csetm (Cond) ConsumesFlags)
2397
+ (rule (csetm cond)
2398
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2399
+ (ConsumesFlags.ConsumesFlagsReturnsReg (MInst.CSetm dst cond) dst)))
2400
+
2401
+ ;; Helper for generating a `CSNeg` instruction.
2402
+ ;;
2403
+ ;; Note that this doesn't actually emit anything, instead it produces a
2404
+ ;; `ConsumesFlags` instruction which must be consumed with `with_flags*`
2405
+ ;; helpers.
2406
+ (decl csneg (Cond Reg Reg) ConsumesFlags)
2407
+ (rule (csneg cond if_true if_false)
2408
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2409
+ (ConsumesFlags.ConsumesFlagsReturnsReg
2410
+ (MInst.CSNeg dst cond if_true if_false)
2411
+ dst)))
2412
+
2413
+ ;; Helper for generating `MInst.CCmp` instructions.
2414
+ ;; Creates a new `ProducesFlags` from the supplied `ProducesFlags` followed
2415
+ ;; immediately by the `MInst.CCmp` instruction.
2416
+ (decl ccmp (OperandSize Reg Reg NZCV Cond ProducesFlags) ProducesFlags)
2417
+ (rule (ccmp size rn rm nzcv cond inst_input)
2418
+ (produces_flags_concat inst_input (ProducesFlags.ProducesFlagsSideEffect (MInst.CCmp size rn rm nzcv cond))))
2419
+
2420
+ ;; Helper for generating `MInst.CCmpImm` instructions.
2421
+ (decl ccmp_imm (OperandSize Reg UImm5 NZCV Cond) ConsumesFlags)
2422
+ (rule 1 (ccmp_imm size rn imm nzcv cond)
2423
+ (let ((dst WritableReg (temp_writable_reg $I64)))
2424
+ (ConsumesFlags.ConsumesFlagsTwiceReturnsValueRegs
2425
+ (MInst.CCmpImm size rn imm nzcv cond)
2426
+ (MInst.CSet dst cond)
2427
+ (value_reg dst))))
2428
+
2429
+ ;; Helpers for generating `add` instructions.
2430
+
2431
+ (decl add (Type Reg Reg) Reg)
2432
+ (rule (add ty x y) (alu_rrr (ALUOp.Add) ty x y))
2433
+
2434
+ (decl add_imm (Type Reg Imm12) Reg)
2435
+ (rule (add_imm ty x y) (alu_rr_imm12 (ALUOp.Add) ty x y))
2436
+
2437
+ (decl add_extend (Type Reg ExtendedValue) Reg)
2438
+ (rule (add_extend ty x y) (alu_rr_extend_reg (ALUOp.Add) ty x y))
2439
+
2440
+ (decl add_extend_op (Type Reg Reg ExtendOp) Reg)
2441
+ (rule (add_extend_op ty x y extend) (alu_rrr_extend (ALUOp.Add) ty x y extend))
2442
+
2443
+ (decl add_shift (Type Reg Reg ShiftOpAndAmt) Reg)
2444
+ (rule (add_shift ty x y z) (alu_rrr_shift (ALUOp.Add) ty x y z))
2445
+
2446
+ (decl add_vec (Reg Reg VectorSize) Reg)
2447
+ (rule (add_vec x y size) (vec_rrr (VecALUOp.Add) x y size))
2448
+
2449
+ ;; Helpers for generating `sub` instructions.
2450
+
2451
+ (decl sub (Type Reg Reg) Reg)
2452
+ (rule (sub ty x y) (alu_rrr (ALUOp.Sub) ty x y))
2453
+
2454
+ (decl sub_imm (Type Reg Imm12) Reg)
2455
+ (rule (sub_imm ty x y) (alu_rr_imm12 (ALUOp.Sub) ty x y))
2456
+
2457
+ (decl sub_extend (Type Reg ExtendedValue) Reg)
2458
+ (rule (sub_extend ty x y) (alu_rr_extend_reg (ALUOp.Sub) ty x y))
2459
+
2460
+ (decl sub_shift (Type Reg Reg ShiftOpAndAmt) Reg)
2461
+ (rule (sub_shift ty x y z) (alu_rrr_shift (ALUOp.Sub) ty x y z))
2462
+
2463
+ (decl sub_vec (Reg Reg VectorSize) Reg)
2464
+ (rule (sub_vec x y size) (vec_rrr (VecALUOp.Sub) x y size))
2465
+
2466
+ (decl sub_i128 (ValueRegs ValueRegs) ValueRegs)
2467
+ (rule (sub_i128 x y)
2468
+ (let
2469
+ ;; Get the high/low registers for `x`.
2470
+ ((x_regs ValueRegs x)
2471
+ (x_lo Reg (value_regs_get x_regs 0))
2472
+ (x_hi Reg (value_regs_get x_regs 1))
2473
+
2474
+ ;; Get the high/low registers for `y`.
2475
+ (y_regs ValueRegs y)
2476
+ (y_lo Reg (value_regs_get y_regs 0))
2477
+ (y_hi Reg (value_regs_get y_regs 1)))
2478
+ ;; the actual subtraction is `subs` followed by `sbc` which comprises
2479
+ ;; the low/high bits of the result
2480
+ (with_flags
2481
+ (sub_with_flags_paired $I64 x_lo y_lo)
2482
+ (sbc_paired $I64 x_hi y_hi))))
2483
+
2484
+ ;; Helpers for generating `madd` instructions.
2485
+
2486
+ (decl madd (Type Reg Reg Reg) Reg)
2487
+ (rule (madd ty x y z) (alu_rrrr (ALUOp3.MAdd) ty x y z))
2488
+
2489
+ ;; Helpers for generating `msub` instructions.
2490
+
2491
+ (decl msub (Type Reg Reg Reg) Reg)
2492
+ (rule (msub ty x y z) (alu_rrrr (ALUOp3.MSub) ty x y z))
2493
+
2494
+ ;; Helpers for generating `umaddl` instructions
2495
+ (decl umaddl (Reg Reg Reg) Reg)
2496
+ (rule (umaddl x y z) (alu_rrrr (ALUOp3.UMAddL) $I32 x y z))
2497
+
2498
+ ;; Helpers for generating `smaddl` instructions
2499
+ (decl smaddl (Reg Reg Reg) Reg)
2500
+ (rule (smaddl x y z) (alu_rrrr (ALUOp3.SMAddL) $I32 x y z))
2501
+
2502
+ ;; Helper for generating `uqadd` instructions.
2503
+ (decl uqadd (Reg Reg VectorSize) Reg)
2504
+ (rule (uqadd x y size) (vec_rrr (VecALUOp.Uqadd) x y size))
2505
+
2506
+ ;; Helper for generating `sqadd` instructions.
2507
+ (decl sqadd (Reg Reg VectorSize) Reg)
2508
+ (rule (sqadd x y size) (vec_rrr (VecALUOp.Sqadd) x y size))
2509
+
2510
+ ;; Helper for generating `uqsub` instructions.
2511
+ (decl uqsub (Reg Reg VectorSize) Reg)
2512
+ (rule (uqsub x y size) (vec_rrr (VecALUOp.Uqsub) x y size))
2513
+
2514
+ ;; Helper for generating `sqsub` instructions.
2515
+ (decl sqsub (Reg Reg VectorSize) Reg)
2516
+ (rule (sqsub x y size) (vec_rrr (VecALUOp.Sqsub) x y size))
2517
+
2518
+ ;; Helper for generating `umulh` instructions.
2519
+ (decl umulh (Type Reg Reg) Reg)
2520
+ (rule (umulh ty x y) (alu_rrr (ALUOp.UMulH) ty x y))
2521
+
2522
+ ;; Helper for generating `smulh` instructions.
2523
+ (decl smulh (Type Reg Reg) Reg)
2524
+ (rule (smulh ty x y) (alu_rrr (ALUOp.SMulH) ty x y))
2525
+
2526
+ ;; Helper for generating `mul` instructions.
2527
+ (decl mul (Reg Reg VectorSize) Reg)
2528
+ (rule (mul x y size) (vec_rrr (VecALUOp.Mul) x y size))
2529
+
2530
+ ;; Helper for generating `neg` instructions.
2531
+ (decl neg (Reg VectorSize) Reg)
2532
+ (rule (neg x size) (vec_misc (VecMisc2.Neg) x size))
2533
+
2534
+ ;; Helper for generating `rev16` instructions.
2535
+ (decl rev16 (Reg VectorSize) Reg)
2536
+ (rule (rev16 x size) (vec_misc (VecMisc2.Rev16) x size))
2537
+
2538
+ ;; Helper for generating `rev32` instructions.
2539
+ (decl rev32 (Reg VectorSize) Reg)
2540
+ (rule (rev32 x size) (vec_misc (VecMisc2.Rev32) x size))
2541
+
2542
+ ;; Helper for generating `rev64` instructions.
2543
+ (decl rev64 (Reg VectorSize) Reg)
2544
+ (rule (rev64 x size) (vec_misc (VecMisc2.Rev64) x size))
2545
+
2546
+ ;; Helper for generating `xtn` instructions.
2547
+ (decl xtn (Reg ScalarSize) Reg)
2548
+ (rule (xtn x size) (vec_rr_narrow_low (VecRRNarrowOp.Xtn) x size))
2549
+
2550
+ ;; Helper for generating `fcvtn` instructions.
2551
+ (decl fcvtn (Reg ScalarSize) Reg)
2552
+ (rule (fcvtn x size) (vec_rr_narrow_low (VecRRNarrowOp.Fcvtn) x size))
2553
+
2554
+ ;; Helper for generating `sqxtn` instructions.
2555
+ (decl sqxtn (Reg ScalarSize) Reg)
2556
+ (rule (sqxtn x size) (vec_rr_narrow_low (VecRRNarrowOp.Sqxtn) x size))
2557
+
2558
+ ;; Helper for generating `sqxtn2` instructions.
2559
+ (decl sqxtn2 (Reg Reg ScalarSize) Reg)
2560
+ (rule (sqxtn2 x y size) (vec_rr_narrow_high (VecRRNarrowOp.Sqxtn) x y size))
2561
+
2562
+ ;; Helper for generating `sqxtun` instructions.
2563
+ (decl sqxtun (Reg ScalarSize) Reg)
2564
+ (rule (sqxtun x size) (vec_rr_narrow_low (VecRRNarrowOp.Sqxtun) x size))
2565
+
2566
+ ;; Helper for generating `sqxtun2` instructions.
2567
+ (decl sqxtun2 (Reg Reg ScalarSize) Reg)
2568
+ (rule (sqxtun2 x y size) (vec_rr_narrow_high (VecRRNarrowOp.Sqxtun) x y size))
2569
+
2570
+ ;; Helper for generating `uqxtn` instructions.
2571
+ (decl uqxtn (Reg ScalarSize) Reg)
2572
+ (rule (uqxtn x size) (vec_rr_narrow_low (VecRRNarrowOp.Uqxtn) x size))
2573
+
2574
+ ;; Helper for generating `uqxtn2` instructions.
2575
+ (decl uqxtn2 (Reg Reg ScalarSize) Reg)
2576
+ (rule (uqxtn2 x y size) (vec_rr_narrow_high (VecRRNarrowOp.Uqxtn) x y size))
2577
+
2578
+ ;; Helper for generating `fence` instructions.
2579
+ (decl aarch64_fence () SideEffectNoResult)
2580
+ (rule (aarch64_fence)
2581
+ (SideEffectNoResult.Inst (MInst.Fence)))
2582
+
2583
+ ;; Helper for generating `csdb` instructions.
2584
+ (decl csdb () SideEffectNoResult)
2585
+ (rule (csdb)
2586
+ (SideEffectNoResult.Inst (MInst.Csdb)))
2587
+
2588
+ ;; Helper for generating `brk` instructions.
2589
+ (decl brk () SideEffectNoResult)
2590
+ (rule (brk)
2591
+ (SideEffectNoResult.Inst (MInst.Brk)))
2592
+
2593
+ ;; Helper for generating `addp` instructions.
2594
+ (decl addp (Reg Reg VectorSize) Reg)
2595
+ (rule (addp x y size) (vec_rrr (VecALUOp.Addp) x y size))
2596
+
2597
+ ;; Helper for generating `zip1` instructions.
2598
+ (decl zip1 (Reg Reg VectorSize) Reg)
2599
+ (rule (zip1 x y size) (vec_rrr (VecALUOp.Zip1) x y size))
2600
+
2601
+ ;; Helper for generating vector `abs` instructions.
2602
+ (decl vec_abs (Reg VectorSize) Reg)
2603
+ (rule (vec_abs x size) (vec_misc (VecMisc2.Abs) x size))
2604
+
2605
+ ;; Helper for generating instruction sequences to calculate a scalar absolute
2606
+ ;; value.
2607
+ (decl abs (OperandSize Reg) Reg)
2608
+ (rule (abs size x)
2609
+ (value_regs_get (with_flags (cmp_imm size x (u8_into_imm12 0))
2610
+ (csneg (Cond.Gt) x x)) 0))
2611
+
2612
+ ;; Helper for generating `addv` instructions.
2613
+ (decl addv (Reg VectorSize) Reg)
2614
+ (rule (addv x size) (vec_lanes (VecLanesOp.Addv) x size))
2615
+
2616
+ ;; Helper for generating `shll32` instructions.
2617
+ (decl shll32 (Reg bool) Reg)
2618
+ (rule (shll32 x high_half) (vec_rr_long (VecRRLongOp.Shll32) x high_half))
2619
+
2620
+ ;; Helpers for generating `addlp` instructions.
2621
+
2622
+ (decl saddlp8 (Reg) Reg)
2623
+ (rule (saddlp8 x) (vec_rr_pair_long (VecRRPairLongOp.Saddlp8) x))
2624
+
2625
+ (decl saddlp16 (Reg) Reg)
2626
+ (rule (saddlp16 x) (vec_rr_pair_long (VecRRPairLongOp.Saddlp16) x))
2627
+
2628
+ (decl uaddlp8 (Reg) Reg)
2629
+ (rule (uaddlp8 x) (vec_rr_pair_long (VecRRPairLongOp.Uaddlp8) x))
2630
+
2631
+ (decl uaddlp16 (Reg) Reg)
2632
+ (rule (uaddlp16 x) (vec_rr_pair_long (VecRRPairLongOp.Uaddlp16) x))
2633
+
2634
+ ;; Helper for generating `umlal32` instructions.
2635
+ (decl umlal32 (Reg Reg Reg bool) Reg)
2636
+ (rule (umlal32 x y z high_half) (vec_rrrr_long (VecRRRLongModOp.Umlal32) x y z high_half))
2637
+
2638
+ ;; Helper for generating `smull8` instructions.
2639
+ (decl smull8 (Reg Reg bool) Reg)
2640
+ (rule (smull8 x y high_half) (vec_rrr_long (VecRRRLongOp.Smull8) x y high_half))
2641
+
2642
+ ;; Helper for generating `umull8` instructions.
2643
+ (decl umull8 (Reg Reg bool) Reg)
2644
+ (rule (umull8 x y high_half) (vec_rrr_long (VecRRRLongOp.Umull8) x y high_half))
2645
+
2646
+ ;; Helper for generating `smull16` instructions.
2647
+ (decl smull16 (Reg Reg bool) Reg)
2648
+ (rule (smull16 x y high_half) (vec_rrr_long (VecRRRLongOp.Smull16) x y high_half))
2649
+
2650
+ ;; Helper for generating `umull16` instructions.
2651
+ (decl umull16 (Reg Reg bool) Reg)
2652
+ (rule (umull16 x y high_half) (vec_rrr_long (VecRRRLongOp.Umull16) x y high_half))
2653
+
2654
+ ;; Helper for generating `smull32` instructions.
2655
+ (decl smull32 (Reg Reg bool) Reg)
2656
+ (rule (smull32 x y high_half) (vec_rrr_long (VecRRRLongOp.Smull32) x y high_half))
2657
+
2658
+ ;; Helper for generating `umull32` instructions.
2659
+ (decl umull32 (Reg Reg bool) Reg)
2660
+ (rule (umull32 x y high_half) (vec_rrr_long (VecRRRLongOp.Umull32) x y high_half))
2661
+
2662
+ ;; Helper for generating `asr` instructions.
2663
+ (decl asr (Type Reg Reg) Reg)
2664
+ (rule (asr ty x y) (alu_rrr (ALUOp.Asr) ty x y))
2665
+
2666
+ (decl asr_imm (Type Reg ImmShift) Reg)
2667
+ (rule (asr_imm ty x imm) (alu_rr_imm_shift (ALUOp.Asr) ty x imm))
2668
+
2669
+ ;; Helper for generating `lsr` instructions.
2670
+ (decl lsr (Type Reg Reg) Reg)
2671
+ (rule (lsr ty x y) (alu_rrr (ALUOp.Lsr) ty x y))
2672
+
2673
+ (decl lsr_imm (Type Reg ImmShift) Reg)
2674
+ (rule (lsr_imm ty x imm) (alu_rr_imm_shift (ALUOp.Lsr) ty x imm))
2675
+
2676
+ ;; Helper for generating `lsl` instructions.
2677
+ (decl lsl (Type Reg Reg) Reg)
2678
+ (rule (lsl ty x y) (alu_rrr (ALUOp.Lsl) ty x y))
2679
+
2680
+ (decl lsl_imm (Type Reg ImmShift) Reg)
2681
+ (rule (lsl_imm ty x imm) (alu_rr_imm_shift (ALUOp.Lsl) ty x imm))
2682
+
2683
+ ;; Helper for generating `udiv` instructions.
2684
+ (decl a64_udiv (Type Reg Reg) Reg)
2685
+ (rule (a64_udiv ty x y) (alu_rrr (ALUOp.UDiv) ty x y))
2686
+
2687
+ ;; Helper for generating `sdiv` instructions.
2688
+ (decl a64_sdiv (Type Reg Reg) Reg)
2689
+ (rule (a64_sdiv ty x y) (alu_rrr (ALUOp.SDiv) ty x y))
2690
+
2691
+ ;; Helper for generating `not` instructions.
2692
+ (decl not (Reg VectorSize) Reg)
2693
+ (rule (not x size) (vec_misc (VecMisc2.Not) x size))
2694
+
2695
+ ;; Helpers for generating `orr_not` instructions.
2696
+
2697
+ (decl orr_not (Type Reg Reg) Reg)
2698
+ (rule (orr_not ty x y) (alu_rrr (ALUOp.OrrNot) ty x y))
2699
+
2700
+ (decl orr_not_shift (Type Reg Reg ShiftOpAndAmt) Reg)
2701
+ (rule (orr_not_shift ty x y shift) (alu_rrr_shift (ALUOp.OrrNot) ty x y shift))
2702
+
2703
+ ;; Helpers for generating `orr` instructions.
2704
+
2705
+ (decl orr (Type Reg Reg) Reg)
2706
+ (rule (orr ty x y) (alu_rrr (ALUOp.Orr) ty x y))
2707
+
2708
+ (decl orr_imm (Type Reg ImmLogic) Reg)
2709
+ (rule (orr_imm ty x y) (alu_rr_imm_logic (ALUOp.Orr) ty x y))
2710
+
2711
+ (decl orr_shift (Type Reg Reg ShiftOpAndAmt) Reg)
2712
+ (rule (orr_shift ty x y shift) (alu_rrr_shift (ALUOp.Orr) ty x y shift))
2713
+
2714
+ (decl orr_vec (Reg Reg VectorSize) Reg)
2715
+ (rule (orr_vec x y size) (vec_rrr (VecALUOp.Orr) x y size))
2716
+
2717
+ ;; Helpers for generating `and` instructions.
2718
+
2719
+ (decl and_reg (Type Reg Reg) Reg)
2720
+ (rule (and_reg ty x y) (alu_rrr (ALUOp.And) ty x y))
2721
+
2722
+ (decl and_imm (Type Reg ImmLogic) Reg)
2723
+ (rule (and_imm ty x y) (alu_rr_imm_logic (ALUOp.And) ty x y))
2724
+
2725
+ (decl and_vec (Reg Reg VectorSize) Reg)
2726
+ (rule (and_vec x y size) (vec_rrr (VecALUOp.And) x y size))
2727
+
2728
+ ;; Helpers for generating `eor` instructions.
2729
+ (decl eor (Type Reg Reg) Reg)
2730
+ (rule (eor ty x y) (alu_rrr (ALUOp.Eor) ty x y))
2731
+
2732
+ (decl eor_vec (Reg Reg VectorSize) Reg)
2733
+ (rule (eor_vec x y size) (vec_rrr (VecALUOp.Eor) x y size))
2734
+
2735
+ ;; Helpers for generating `bic` instructions.
2736
+
2737
+ (decl bic (Type Reg Reg) Reg)
2738
+ (rule (bic ty x y) (alu_rrr (ALUOp.AndNot) ty x y))
2739
+
2740
+ (decl bic_vec (Reg Reg VectorSize) Reg)
2741
+ (rule (bic_vec x y size) (vec_rrr (VecALUOp.Bic) x y size))
2742
+
2743
+ ;; Helpers for generating `sshl` instructions.
2744
+ (decl sshl (Reg Reg VectorSize) Reg)
2745
+ (rule (sshl x y size) (vec_rrr (VecALUOp.Sshl) x y size))
2746
+
2747
+ ;; Helpers for generating `ushl` instructions.
2748
+ (decl ushl (Reg Reg VectorSize) Reg)
2749
+ (rule (ushl x y size) (vec_rrr (VecALUOp.Ushl) x y size))
2750
+
2751
+ ;; Helpers for generating `ushl` instructions.
2752
+ (decl ushl_vec_imm (Reg u8 VectorSize) Reg)
2753
+ (rule (ushl_vec_imm x amt size) (vec_shift_imm (VecShiftImmOp.Shl) amt x size))
2754
+
2755
+ ;; Helpers for generating `ushr` instructions.
2756
+ (decl ushr_vec_imm (Reg u8 VectorSize) Reg)
2757
+ (rule (ushr_vec_imm x amt size) (vec_shift_imm (VecShiftImmOp.Ushr) amt x size))
2758
+
2759
+ ;; Helpers for generating `sshr` instructions.
2760
+ (decl sshr_vec_imm (Reg u8 VectorSize) Reg)
2761
+ (rule (sshr_vec_imm x amt size) (vec_shift_imm (VecShiftImmOp.Sshr) amt x size))
2762
+
2763
+ ;; Helpers for generating `rotr` instructions.
2764
+
2765
+ (decl a64_rotr (Type Reg Reg) Reg)
2766
+ (rule (a64_rotr ty x y) (alu_rrr (ALUOp.RotR) ty x y))
2767
+
2768
+ (decl a64_rotr_imm (Type Reg ImmShift) Reg)
2769
+ (rule (a64_rotr_imm ty x y) (alu_rr_imm_shift (ALUOp.RotR) ty x y))
2770
+
2771
+ ;; Helpers for generating `rbit` instructions.
2772
+
2773
+ (decl rbit (Type Reg) Reg)
2774
+ (rule (rbit ty x) (bit_rr (BitOp.RBit) ty x))
2775
+
2776
+ ;; Helpers for generating `clz` instructions.
2777
+
2778
+ (decl a64_clz (Type Reg) Reg)
2779
+ (rule (a64_clz ty x) (bit_rr (BitOp.Clz) ty x))
2780
+
2781
+ ;; Helpers for generating `cls` instructions.
2782
+
2783
+ (decl a64_cls (Type Reg) Reg)
2784
+ (rule (a64_cls ty x) (bit_rr (BitOp.Cls) ty x))
2785
+
2786
+ ;; Helpers for generating `rev` instructions
2787
+
2788
+ (decl a64_rev16 (Type Reg) Reg)
2789
+ (rule (a64_rev16 ty x) (bit_rr (BitOp.Rev16) ty x))
2790
+
2791
+ (decl a64_rev32 (Type Reg) Reg)
2792
+ (rule (a64_rev32 ty x) (bit_rr (BitOp.Rev32) ty x))
2793
+
2794
+ (decl a64_rev64 (Type Reg) Reg)
2795
+ (rule (a64_rev64 ty x) (bit_rr (BitOp.Rev64) ty x))
2796
+
2797
+ ;; Helpers for generating `eon` instructions.
2798
+
2799
+ (decl eon (Type Reg Reg) Reg)
2800
+ (rule (eon ty x y) (alu_rrr (ALUOp.EorNot) ty x y))
2801
+
2802
+ ;; Helpers for generating `cnt` instructions.
2803
+
2804
+ (decl vec_cnt (Reg VectorSize) Reg)
2805
+ (rule (vec_cnt x size) (vec_misc (VecMisc2.Cnt) x size))
2806
+
2807
+ ;; Helpers for generating a `bsl` instruction.
2808
+
2809
+ (decl bsl (Type Reg Reg Reg) Reg)
2810
+ (rule (bsl ty c x y)
2811
+ (vec_rrr_mod (VecALUModOp.Bsl) c x y (vector_size ty)))
2812
+
2813
+ ;; Helper for generating a `udf` instruction.
2814
+
2815
+ (decl udf (TrapCode) SideEffectNoResult)
2816
+ (rule (udf trap_code)
2817
+ (SideEffectNoResult.Inst (MInst.Udf trap_code)))
2818
+
2819
+ ;; Helpers for generating various load instructions, with varying
2820
+ ;; widths and sign/zero-extending properties.
2821
+ (decl aarch64_uload8 (AMode MemFlags) Reg)
2822
+ (rule (aarch64_uload8 amode flags)
2823
+ (let ((dst WritableReg (temp_writable_reg $I64))
2824
+ (_ Unit (emit (MInst.ULoad8 dst amode flags))))
2825
+ dst))
2826
+ (decl aarch64_sload8 (AMode MemFlags) Reg)
2827
+ (rule (aarch64_sload8 amode flags)
2828
+ (let ((dst WritableReg (temp_writable_reg $I64))
2829
+ (_ Unit (emit (MInst.SLoad8 dst amode flags))))
2830
+ dst))
2831
+ (decl aarch64_uload16 (AMode MemFlags) Reg)
2832
+ (rule (aarch64_uload16 amode flags)
2833
+ (let ((dst WritableReg (temp_writable_reg $I64))
2834
+ (_ Unit (emit (MInst.ULoad16 dst amode flags))))
2835
+ dst))
2836
+ (decl aarch64_sload16 (AMode MemFlags) Reg)
2837
+ (rule (aarch64_sload16 amode flags)
2838
+ (let ((dst WritableReg (temp_writable_reg $I64))
2839
+ (_ Unit (emit (MInst.SLoad16 dst amode flags))))
2840
+ dst))
2841
+ (decl aarch64_uload32 (AMode MemFlags) Reg)
2842
+ (rule (aarch64_uload32 amode flags)
2843
+ (let ((dst WritableReg (temp_writable_reg $I64))
2844
+ (_ Unit (emit (MInst.ULoad32 dst amode flags))))
2845
+ dst))
2846
+ (decl aarch64_sload32 (AMode MemFlags) Reg)
2847
+ (rule (aarch64_sload32 amode flags)
2848
+ (let ((dst WritableReg (temp_writable_reg $I64))
2849
+ (_ Unit (emit (MInst.SLoad32 dst amode flags))))
2850
+ dst))
2851
+ (decl aarch64_uload64 (AMode MemFlags) Reg)
2852
+ (rule (aarch64_uload64 amode flags)
2853
+ (let ((dst WritableReg (temp_writable_reg $I64))
2854
+ (_ Unit (emit (MInst.ULoad64 dst amode flags))))
2855
+ dst))
2856
+ (decl aarch64_fpuload32 (AMode MemFlags) Reg)
2857
+ (rule (aarch64_fpuload32 amode flags)
2858
+ (let ((dst WritableReg (temp_writable_reg $F64))
2859
+ (_ Unit (emit (MInst.FpuLoad32 dst amode flags))))
2860
+ dst))
2861
+ (decl aarch64_fpuload64 (AMode MemFlags) Reg)
2862
+ (rule (aarch64_fpuload64 amode flags)
2863
+ (let ((dst WritableReg (temp_writable_reg $F64))
2864
+ (_ Unit (emit (MInst.FpuLoad64 dst amode flags))))
2865
+ dst))
2866
+ (decl aarch64_fpuload128 (AMode MemFlags) Reg)
2867
+ (rule (aarch64_fpuload128 amode flags)
2868
+ (let ((dst WritableReg (temp_writable_reg $F64X2))
2869
+ (_ Unit (emit (MInst.FpuLoad128 dst amode flags))))
2870
+ dst))
2871
+ (decl aarch64_loadp64 (PairAMode MemFlags) ValueRegs)
2872
+ (rule (aarch64_loadp64 amode flags)
2873
+ (let ((dst1 WritableReg (temp_writable_reg $I64))
2874
+ (dst2 WritableReg (temp_writable_reg $I64))
2875
+ (_ Unit (emit (MInst.LoadP64 dst1 dst2 amode flags))))
2876
+ (value_regs dst1 dst2)))
2877
+
2878
+ ;; Helpers for generating various store instructions with varying
2879
+ ;; widths.
2880
+ (decl aarch64_store8 (AMode MemFlags Reg) SideEffectNoResult)
2881
+ (rule (aarch64_store8 amode flags val)
2882
+ (SideEffectNoResult.Inst (MInst.Store8 val amode flags)))
2883
+ (decl aarch64_store16 (AMode MemFlags Reg) SideEffectNoResult)
2884
+ (rule (aarch64_store16 amode flags val)
2885
+ (SideEffectNoResult.Inst (MInst.Store16 val amode flags)))
2886
+ (decl aarch64_store32 (AMode MemFlags Reg) SideEffectNoResult)
2887
+ (rule (aarch64_store32 amode flags val)
2888
+ (SideEffectNoResult.Inst (MInst.Store32 val amode flags)))
2889
+ (decl aarch64_store64 (AMode MemFlags Reg) SideEffectNoResult)
2890
+ (rule (aarch64_store64 amode flags val)
2891
+ (SideEffectNoResult.Inst (MInst.Store64 val amode flags)))
2892
+ (decl aarch64_fpustore32 (AMode MemFlags Reg) SideEffectNoResult)
2893
+ (rule (aarch64_fpustore32 amode flags val)
2894
+ (SideEffectNoResult.Inst (MInst.FpuStore32 val amode flags)))
2895
+ (decl aarch64_fpustore64 (AMode MemFlags Reg) SideEffectNoResult)
2896
+ (rule (aarch64_fpustore64 amode flags val)
2897
+ (SideEffectNoResult.Inst (MInst.FpuStore64 val amode flags)))
2898
+ (decl aarch64_fpustore128 (AMode MemFlags Reg) SideEffectNoResult)
2899
+ (rule (aarch64_fpustore128 amode flags val)
2900
+ (SideEffectNoResult.Inst (MInst.FpuStore128 val amode flags)))
2901
+ (decl aarch64_storep64 (PairAMode MemFlags Reg Reg) SideEffectNoResult)
2902
+ (rule (aarch64_storep64 amode flags val1 val2)
2903
+ (SideEffectNoResult.Inst (MInst.StoreP64 val1 val2 amode flags)))
2904
+
2905
+ ;; Helper for generating a `trapif` instruction.
2906
+
2907
+ (decl trap_if (ProducesFlags TrapCode Cond) InstOutput)
2908
+ (rule (trap_if flags trap_code cond)
2909
+ (side_effect
2910
+ (with_flags_side_effect flags
2911
+ (ConsumesFlags.ConsumesFlagsSideEffect
2912
+ (MInst.TrapIf (cond_br_cond cond) trap_code)))))
2913
+
2914
+ ;; Immediate value helpers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2915
+
2916
+ ;; Type of extension performed by an immediate helper
2917
+ (type ImmExtend
2918
+ (enum
2919
+ (Sign)
2920
+ (Zero)))
2921
+
2922
+ ;; Arguments:
2923
+ ;; * Immediate type
2924
+ ;; * Way to extend the immediate value to the full width of the destination
2925
+ ;; register
2926
+ ;; * Immediate value - only the bits that fit within the type are used and
2927
+ ;; extended, while the rest are ignored
2928
+ ;;
2929
+ ;; Note that, unlike the convention in the AArch64 backend, this helper leaves
2930
+ ;; all bits in the destination register in a defined state, i.e. smaller types
2931
+ ;; such as `I8` are either sign- or zero-extended.
2932
+ (decl imm (Type ImmExtend u64) Reg)
2933
+
2934
+ ;; Move wide immediate instructions; to simplify, we only match when we
2935
+ ;; are zero-extending the value.
2936
+ (rule 3 (imm (integral_ty ty) (ImmExtend.Zero) k)
2937
+ (if-let n (move_wide_const_from_u64 ty k))
2938
+ (add_range_fact
2939
+ (movz n (operand_size ty))
2940
+ 64 k k))
2941
+ (rule 2 (imm (integral_ty (ty_32_or_64 ty)) (ImmExtend.Zero) k)
2942
+ (if-let n (move_wide_const_from_inverted_u64 ty k))
2943
+ (add_range_fact
2944
+ (movn n (operand_size ty))
2945
+ 64 k k))
2946
+
2947
+ ;; Weird logical-instruction immediate in ORI using zero register; to simplify,
2948
+ ;; we only match when we are zero-extending the value.
2949
+ (rule 1 (imm (integral_ty ty) (ImmExtend.Zero) k)
2950
+ (if-let n (imm_logic_from_u64 ty k))
2951
+ (if-let m (imm_size_from_type ty))
2952
+ (add_range_fact
2953
+ (orr_imm ty (zero_reg) n)
2954
+ m k k))
2955
+
2956
+ (decl load_constant64_full (Type ImmExtend u64) Reg)
2957
+ (extern constructor load_constant64_full load_constant64_full)
2958
+
2959
+ ;; Fallback for integral 64-bit constants
2960
+ (rule (imm (integral_ty ty) extend n)
2961
+ (load_constant64_full ty extend n))
2962
+
2963
+ ;; Sign extension helpers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2964
+
2965
+ ;; Place a `Value` into a register, sign extending it to 32-bits
2966
+ (decl put_in_reg_sext32 (Value) Reg)
2967
+ (rule -1 (put_in_reg_sext32 val @ (value_type (fits_in_32 ty)))
2968
+ (extend val $true (ty_bits ty) 32))
2969
+
2970
+ ;; 32/64-bit passthrough.
2971
+ (rule (put_in_reg_sext32 val @ (value_type $I32)) val)
2972
+ (rule (put_in_reg_sext32 val @ (value_type $I64)) val)
2973
+
2974
+ ;; Place a `Value` into a register, zero extending it to 32-bits
2975
+ (decl put_in_reg_zext32 (Value) Reg)
2976
+ (rule -1 (put_in_reg_zext32 val @ (value_type (fits_in_32 ty)))
2977
+ (extend val $false (ty_bits ty) 32))
2978
+
2979
+ ;; 32/64-bit passthrough.
2980
+ (rule (put_in_reg_zext32 val @ (value_type $I32)) val)
2981
+ (rule (put_in_reg_zext32 val @ (value_type $I64)) val)
2982
+
2983
+ ;; Place a `Value` into a register, sign extending it to 64-bits
2984
+ (decl put_in_reg_sext64 (Value) Reg)
2985
+ (rule 1 (put_in_reg_sext64 val @ (value_type (fits_in_32 ty)))
2986
+ (extend val $true (ty_bits ty) 64))
2987
+
2988
+ ;; 64-bit passthrough.
2989
+ (rule (put_in_reg_sext64 val @ (value_type $I64)) val)
2990
+
2991
+ ;; Place a `Value` into a register, zero extending it to 64-bits
2992
+ (decl put_in_reg_zext64 (Value) Reg)
2993
+ (rule 1 (put_in_reg_zext64 val @ (value_type (fits_in_32 ty)))
2994
+ (extend val $false (ty_bits ty) 64))
2995
+
2996
+ ;; 64-bit passthrough.
2997
+ (rule (put_in_reg_zext64 val @ (value_type $I64)) val)
2998
+
2999
+ ;; Misc instruction helpers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3000
+
3001
+ (decl trap_if_zero_divisor (Reg) Reg)
3002
+ (rule (trap_if_zero_divisor reg)
3003
+ (let ((_ Unit (emit (MInst.TrapIf (cond_br_zero reg) (trap_code_division_by_zero)))))
3004
+ reg))
3005
+
3006
+ (decl size_from_ty (Type) OperandSize)
3007
+ (rule 1 (size_from_ty (fits_in_32 _ty)) (OperandSize.Size32))
3008
+ (rule (size_from_ty $I64) (OperandSize.Size64))
3009
+
3010
+ ;; Check for signed overflow. The only case is min_value / -1.
3011
+ ;; The following checks must be done in 32-bit or 64-bit, depending
3012
+ ;; on the input type.
3013
+ (decl trap_if_div_overflow (Type Reg Reg) Reg)
3014
+ (rule (trap_if_div_overflow ty x y)
3015
+ (let (
3016
+ ;; Check RHS is -1.
3017
+ (_ Unit (emit (MInst.AluRRImm12 (ALUOp.AddS) (operand_size ty) (writable_zero_reg) y (u8_into_imm12 1))))
3018
+
3019
+ ;; Check LHS is min_value, by subtracting 1 and branching if
3020
+ ;; there is overflow.
3021
+ (_ Unit (emit (MInst.CCmpImm (size_from_ty ty)
3022
+ x
3023
+ (u8_into_uimm5 1)
3024
+ (nzcv $false $false $false $false)
3025
+ (Cond.Eq))))
3026
+ (_ Unit (emit (MInst.TrapIf (cond_br_cond (Cond.Vs))
3027
+ (trap_code_integer_overflow))))
3028
+ )
3029
+ x))
3030
+
3031
+ ;; Check for unsigned overflow.
3032
+ (decl trap_if_overflow (ProducesFlags TrapCode) Reg)
3033
+ (rule (trap_if_overflow producer tc)
3034
+ (with_flags_reg
3035
+ producer
3036
+ (ConsumesFlags.ConsumesFlagsSideEffect
3037
+ (MInst.TrapIf (cond_br_cond (Cond.Hs)) tc))))
3038
+
3039
+ (decl sink_atomic_load (Inst) Reg)
3040
+ (rule (sink_atomic_load x @ (atomic_load _ addr))
3041
+ (let ((_ Unit (sink_inst x)))
3042
+ (put_in_reg addr)))
3043
+
3044
+ ;; Helper for generating either an `AluRRR`, `AluRRRShift`, or `AluRRImmLogic`
3045
+ ;; instruction depending on the input. Note that this requires that the `ALUOp`
3046
+ ;; specified is commutative.
3047
+ (decl alu_rs_imm_logic_commutative (ALUOp Type Value Value) Reg)
3048
+
3049
+ ;; Base case of operating on registers.
3050
+ (rule -1 (alu_rs_imm_logic_commutative op ty x y)
3051
+ (alu_rrr op ty x y))
3052
+
3053
+ ;; Special cases for when one operand is a constant.
3054
+ (rule (alu_rs_imm_logic_commutative op ty x (iconst k))
3055
+ (if-let imm (imm_logic_from_imm64 ty k))
3056
+ (alu_rr_imm_logic op ty x imm))
3057
+ (rule 1 (alu_rs_imm_logic_commutative op ty (iconst k) x)
3058
+ (if-let imm (imm_logic_from_imm64 ty k))
3059
+ (alu_rr_imm_logic op ty x imm))
3060
+
3061
+ ;; Special cases for when one operand is shifted left by a constant.
3062
+ (rule (alu_rs_imm_logic_commutative op ty x (ishl y (iconst k)))
3063
+ (if-let amt (lshl_from_imm64 ty k))
3064
+ (alu_rrr_shift op ty x y amt))
3065
+ (rule 1 (alu_rs_imm_logic_commutative op ty (ishl x (iconst k)) y)
3066
+ (if-let amt (lshl_from_imm64 ty k))
3067
+ (alu_rrr_shift op ty y x amt))
3068
+
3069
+ ;; Same as `alu_rs_imm_logic_commutative` above, except that it doesn't require
3070
+ ;; that the operation is commutative.
3071
+ (decl alu_rs_imm_logic (ALUOp Type Value Value) Reg)
3072
+ (rule -1 (alu_rs_imm_logic op ty x y)
3073
+ (alu_rrr op ty x y))
3074
+ (rule (alu_rs_imm_logic op ty x (iconst k))
3075
+ (if-let imm (imm_logic_from_imm64 ty k))
3076
+ (alu_rr_imm_logic op ty x imm))
3077
+ (rule (alu_rs_imm_logic op ty x (ishl y (iconst k)))
3078
+ (if-let amt (lshl_from_imm64 ty k))
3079
+ (alu_rrr_shift op ty x y amt))
3080
+
3081
+ ;; Helper for generating i128 bitops which simply do the same operation to the
3082
+ ;; hi/lo registers.
3083
+ ;;
3084
+ ;; TODO: Support immlogic here
3085
+ (decl i128_alu_bitop (ALUOp Type Value Value) ValueRegs)
3086
+ (rule (i128_alu_bitop op ty x y)
3087
+ (let (
3088
+ (x_regs ValueRegs (put_in_regs x))
3089
+ (x_lo Reg (value_regs_get x_regs 0))
3090
+ (x_hi Reg (value_regs_get x_regs 1))
3091
+ (y_regs ValueRegs (put_in_regs y))
3092
+ (y_lo Reg (value_regs_get y_regs 0))
3093
+ (y_hi Reg (value_regs_get y_regs 1))
3094
+ )
3095
+ (value_regs
3096
+ (alu_rrr op ty x_lo y_lo)
3097
+ (alu_rrr op ty x_hi y_hi))))
3098
+
3099
+ ;; Helper for emitting `MInst.VecLoadReplicate` instructions.
3100
+ (decl ld1r (Reg VectorSize MemFlags) Reg)
3101
+ (rule (ld1r src size flags)
3102
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
3103
+ (_ Unit (emit (MInst.VecLoadReplicate dst src size flags))))
3104
+ dst))
3105
+
3106
+ ;; Helper for emitting `MInst.LoadExtName` instructions.
3107
+ (decl load_ext_name (BoxExternalName i64) Reg)
3108
+ (rule (load_ext_name extname offset)
3109
+ (let ((dst WritableReg (temp_writable_reg $I64))
3110
+ (_ Unit (emit (MInst.LoadExtName dst extname offset))))
3111
+ dst))
3112
+
3113
+ ;; Lower the address of a load or a store.
3114
+ ;;
3115
+ ;; This will create an `AMode` representing the address of the `Value` provided
3116
+ ;; at runtime plus the immediate offset `i32` provided. The `Type` here is used
3117
+ ;; to represent the size of the value being loaded or stored for offset scaling
3118
+ ;; if necessary.
3119
+ ;;
3120
+ ;; Note that this is broken up into two phases. In the first phase this attempts
3121
+ ;; to find constants within the `val` provided and fold them in to the `offset`
3122
+ ;; provided. Afterwards though the `amode_no_more_iconst` helper is used at
3123
+ ;; which pointer constants are no longer pattern-matched and instead only
3124
+ ;; various modes are generated. This in theory would not be necessary with
3125
+ ;; mid-end optimizations that fold constants into load/store immediate offsets
3126
+ ;; instead, but for now each backend needs to do this.
3127
+ (decl amode (Type Value i32) AMode)
3128
+ (rule 0 (amode ty val offset)
3129
+ (amode_no_more_iconst ty val offset))
3130
+ (rule 1 (amode ty (iadd x (iconst (simm32 y))) offset)
3131
+ (if-let new_offset (s32_add_fallible y offset))
3132
+ (amode_no_more_iconst ty x new_offset))
3133
+ (rule 2 (amode ty (iadd (iconst (simm32 x)) y) offset)
3134
+ (if-let new_offset (s32_add_fallible x offset))
3135
+ (amode_no_more_iconst ty y new_offset))
3136
+
3137
+ (decl amode_no_more_iconst (Type Value i32) AMode)
3138
+ ;; Base case: move the `offset` into a register and add it to `val` via the
3139
+ ;; amode
3140
+ (rule 0 (amode_no_more_iconst ty val offset)
3141
+ (AMode.RegReg val (imm $I64 (ImmExtend.Zero) (i64_as_u64 offset))))
3142
+
3143
+ ;; Optimize cases where the `offset` provided fits into a immediates of
3144
+ ;; various kinds of addressing modes.
3145
+ (rule 1 (amode_no_more_iconst ty val offset)
3146
+ (if-let simm9 (simm9_from_i64 offset))
3147
+ (AMode.Unscaled val simm9))
3148
+ (rule 2 (amode_no_more_iconst ty val offset)
3149
+ (if-let uimm12 (uimm12_scaled_from_i64 offset ty))
3150
+ (AMode.UnsignedOffset val uimm12))
3151
+
3152
+ ;; Optimizations where addition can fold some operations into the `amode`.
3153
+ ;;
3154
+ ;; Note that here these take higher priority than constants because an
3155
+ ;; add-of-extend can be folded into an amode, representing 2 otherwise emitted
3156
+ ;; instructions. Constants on the other hand added to the amode represent only
3157
+ ;; a single instruction folded in, so fewer instructions should be generated
3158
+ ;; with these higher priority than the rules above.
3159
+ (rule 3 (amode_no_more_iconst ty (iadd x y) offset)
3160
+ (AMode.RegReg (amode_add x offset) y))
3161
+ (rule 4 (amode_no_more_iconst ty (iadd x (uextend y @ (value_type $I32))) offset)
3162
+ (AMode.RegExtended (amode_add x offset) y (ExtendOp.UXTW)))
3163
+ (rule 4 (amode_no_more_iconst ty (iadd x (sextend y @ (value_type $I32))) offset)
3164
+ (AMode.RegExtended (amode_add x offset) y (ExtendOp.SXTW)))
3165
+ (rule 5 (amode_no_more_iconst ty (iadd (uextend x @ (value_type $I32)) y) offset)
3166
+ (AMode.RegExtended (amode_add y offset) x (ExtendOp.UXTW)))
3167
+ (rule 5 (amode_no_more_iconst ty (iadd (sextend x @ (value_type $I32)) y) offset)
3168
+ (AMode.RegExtended (amode_add y offset) x (ExtendOp.SXTW)))
3169
+
3170
+ ;; `RegScaled*` rules where this matches an addition of an "index register" to a
3171
+ ;; base register. The index register is shifted by the size of the type loaded
3172
+ ;; in bytes to enable this mode matching.
3173
+ ;;
3174
+ ;; Note that this can additionally bundle an extending operation but the
3175
+ ;; extension must happen before the shift. This will pattern-match the shift
3176
+ ;; first and then if that succeeds afterwards try to find an extend.
3177
+ (rule 6 (amode_no_more_iconst ty (iadd x (ishl y (iconst (u64_from_imm64 n)))) offset)
3178
+ (if-let $true (u64_eq (ty_bytes ty) (u64_shl 1 n)))
3179
+ (amode_reg_scaled (amode_add x offset) y))
3180
+ (rule 7 (amode_no_more_iconst ty (iadd (ishl y (iconst (u64_from_imm64 n))) x) offset)
3181
+ (if-let $true (u64_eq (ty_bytes ty) (u64_shl 1 n)))
3182
+ (amode_reg_scaled (amode_add x offset) y))
3183
+
3184
+ (decl amode_reg_scaled (Reg Value) AMode)
3185
+ (rule 0 (amode_reg_scaled base index)
3186
+ (AMode.RegScaled base index))
3187
+ (rule 1 (amode_reg_scaled base (uextend index @ (value_type $I32)))
3188
+ (AMode.RegScaledExtended base index (ExtendOp.UXTW)))
3189
+ (rule 1 (amode_reg_scaled base (sextend index @ (value_type $I32)))
3190
+ (AMode.RegScaledExtended base index (ExtendOp.SXTW)))
3191
+
3192
+ ;; Helper to add a 32-bit signed immediate to the register provided. This will
3193
+ ;; select an appropriate `add` instruction to use.
3194
+ (decl amode_add (Reg i32) Reg)
3195
+ (rule 0 (amode_add x y)
3196
+ (add $I64 x (imm $I64 (ImmExtend.Zero) (i64_as_u64 y))))
3197
+ (rule 1 (amode_add x y)
3198
+ (if-let (imm12_from_u64 imm12) (i64_as_u64 y))
3199
+ (add_imm $I64 x imm12))
3200
+ (rule 2 (amode_add x 0) x)
3201
+
3202
+ ;; Creates a `PairAMode` for the `Value` provided plus the `i32` constant
3203
+ ;; offset provided.
3204
+ (decl pair_amode (Value i32) PairAMode)
3205
+
3206
+ ;; Base case where `val` and `offset` are combined with an `add`
3207
+ (rule 0 (pair_amode val offset)
3208
+ (if-let simm7 (simm7_scaled_from_i64 0 $I64))
3209
+ (PairAMode.SignedOffset (amode_add val offset) simm7))
3210
+
3211
+ ;; Optimization when `offset` can fit into a `SImm7Scaled`.
3212
+ (rule 1 (pair_amode val offset)
3213
+ (if-let simm7 (simm7_scaled_from_i64 offset $I64))
3214
+ (PairAMode.SignedOffset val simm7))
3215
+
3216
+ (decl pure partial simm7_scaled_from_i64 (i64 Type) SImm7Scaled)
3217
+ (extern constructor simm7_scaled_from_i64 simm7_scaled_from_i64)
3218
+
3219
+ (decl pure partial uimm12_scaled_from_i64 (i64 Type) UImm12Scaled)
3220
+ (extern constructor uimm12_scaled_from_i64 uimm12_scaled_from_i64)
3221
+
3222
+ (decl pure partial simm9_from_i64 (i64) SImm9)
3223
+ (extern constructor simm9_from_i64 simm9_from_i64)
3224
+
3225
+
3226
+ (decl sink_load_into_addr (Type Inst) Reg)
3227
+ (rule (sink_load_into_addr ty x @ (load _ addr (offset32 offset)))
3228
+ (let ((_ Unit (sink_inst x)))
3229
+ (add_imm_to_addr addr (i64_as_u64 offset))))
3230
+
3231
+ (decl add_imm_to_addr (Reg u64) Reg)
3232
+ (rule 2 (add_imm_to_addr val 0) val)
3233
+ (rule 1 (add_imm_to_addr val (imm12_from_u64 imm)) (add_imm $I64 val imm))
3234
+ (rule 0 (add_imm_to_addr val offset) (add $I64 val (imm $I64 (ImmExtend.Zero) offset)))
3235
+
3236
+ ;; Lower a constant f32.
3237
+ ;;
3238
+ ;; Note that we must make sure that all bits outside the lowest 32 are set to 0
3239
+ ;; because this function is also used to load wider constants (that have zeros
3240
+ ;; in their most significant bits).
3241
+ (decl constant_f32 (u32) Reg)
3242
+ (rule 2 (constant_f32 0)
3243
+ (vec_dup_imm (asimd_mov_mod_imm_zero (ScalarSize.Size32))
3244
+ $false
3245
+ (VectorSize.Size32x2)))
3246
+ (rule 1 (constant_f32 n)
3247
+ (if-let imm (asimd_fp_mod_imm_from_u64 n (ScalarSize.Size32)))
3248
+ (fpu_move_fp_imm imm (ScalarSize.Size32)))
3249
+ (rule (constant_f32 n)
3250
+ (mov_to_fpu (imm $I32 (ImmExtend.Zero) n) (ScalarSize.Size32)))
3251
+
3252
+ ;; Lower a constant f64.
3253
+ ;;
3254
+ ;; Note that we must make sure that all bits outside the lowest 64 are set to 0
3255
+ ;; because this function is also used to load wider constants (that have zeros
3256
+ ;; in their most significant bits).
3257
+ ;; TODO: Treat as half of a 128 bit vector and consider replicated patterns.
3258
+ ;; Scalar MOVI might also be an option.
3259
+ (decl constant_f64 (u64) Reg)
3260
+ (rule 4 (constant_f64 0)
3261
+ (vec_dup_imm (asimd_mov_mod_imm_zero (ScalarSize.Size32))
3262
+ $false
3263
+ (VectorSize.Size32x2)))
3264
+ (rule 3 (constant_f64 n)
3265
+ (if-let imm (asimd_fp_mod_imm_from_u64 n (ScalarSize.Size64)))
3266
+ (fpu_move_fp_imm imm (ScalarSize.Size64)))
3267
+ (rule 2 (constant_f64 (u64_as_u32 n))
3268
+ (constant_f32 n))
3269
+ (rule 1 (constant_f64 (u64_low32_bits_unset n))
3270
+ (mov_to_fpu (imm $I64 (ImmExtend.Zero) n) (ScalarSize.Size64)))
3271
+ (rule (constant_f64 n)
3272
+ (fpu_load64 (AMode.Const (emit_u64_le_const n)) (mem_flags_trusted)))
3273
+
3274
+ ;; Tests whether the low 32 bits in the input are all zero.
3275
+ (decl u64_low32_bits_unset (u64) u64)
3276
+ (extern extractor u64_low32_bits_unset u64_low32_bits_unset)
3277
+
3278
+ ;; Lower a constant f128.
3279
+ (decl constant_f128 (u128) Reg)
3280
+ (rule 3 (constant_f128 0)
3281
+ (vec_dup_imm (asimd_mov_mod_imm_zero (ScalarSize.Size8))
3282
+ $false
3283
+ (VectorSize.Size8x16)))
3284
+
3285
+ ;; If the upper 64-bits are all zero then defer to `constant_f64`.
3286
+ (rule 2 (constant_f128 (u128_as_u64 n)) (constant_f64 n))
3287
+
3288
+ ;; If the low half of the u128 equals the high half then delegate to the splat
3289
+ ;; logic as a splat of a 64-bit value.
3290
+ (rule 1 (constant_f128 (u128_replicated_u64 n))
3291
+ (splat_const n (VectorSize.Size64x2)))
3292
+
3293
+ ;; Base case is to load the constant from memory.
3294
+ (rule (constant_f128 n)
3295
+ (fpu_load128 (AMode.Const (emit_u128_le_const n)) (mem_flags_trusted)))
3296
+
3297
+ ;; Lower a vector splat with a constant parameter.
3298
+ ;;
3299
+ ;; The 64-bit input here only uses the low bits for the lane size in
3300
+ ;; `VectorSize` and all other bits are ignored.
3301
+ (decl splat_const (u64 VectorSize) Reg)
3302
+
3303
+ ;; If the splat'd constant can itself be reduced in size then attempt to do so
3304
+ ;; as it will make it easier to create the immediates in the instructions below.
3305
+ (rule 5 (splat_const (u64_replicated_u32 n) (VectorSize.Size64x2))
3306
+ (splat_const n (VectorSize.Size32x4)))
3307
+ (rule 5 (splat_const (u32_replicated_u16 n) (VectorSize.Size32x4))
3308
+ (splat_const n (VectorSize.Size16x8)))
3309
+ (rule 5 (splat_const (u32_replicated_u16 n) (VectorSize.Size32x2))
3310
+ (splat_const n (VectorSize.Size16x4)))
3311
+ (rule 5 (splat_const (u16_replicated_u8 n) (VectorSize.Size16x8))
3312
+ (splat_const n (VectorSize.Size8x16)))
3313
+ (rule 5 (splat_const (u16_replicated_u8 n) (VectorSize.Size16x4))
3314
+ (splat_const n (VectorSize.Size8x8)))
3315
+
3316
+ ;; Special cases for `vec_dup_imm` instructions where the input is either
3317
+ ;; negated or not.
3318
+ (rule 4 (splat_const n size)
3319
+ (if-let imm (asimd_mov_mod_imm_from_u64 n (vector_lane_size size)))
3320
+ (vec_dup_imm imm $false size))
3321
+ (rule 3 (splat_const n size)
3322
+ (if-let imm (asimd_mov_mod_imm_from_u64 (u64_not n) (vector_lane_size size)))
3323
+ (vec_dup_imm imm $true size))
3324
+
3325
+ ;; Special case a 32-bit splat where an immediate can be created by
3326
+ ;; concatenating the 32-bit constant into a 64-bit value
3327
+ (rule 2 (splat_const n (VectorSize.Size32x4))
3328
+ (if-let imm (asimd_mov_mod_imm_from_u64 (u64_or n (u64_shl n 32)) (ScalarSize.Size64)))
3329
+ (vec_dup_imm imm $false (VectorSize.Size64x2)))
3330
+ (rule 2 (splat_const n (VectorSize.Size32x2))
3331
+ (if-let imm (asimd_mov_mod_imm_from_u64 (u64_or n (u64_shl n 32)) (ScalarSize.Size64)))
3332
+ (fpu_extend (vec_dup_imm imm $false (VectorSize.Size64x2)) (ScalarSize.Size64)))
3333
+
3334
+ (rule 1 (splat_const n size)
3335
+ (if-let imm (asimd_fp_mod_imm_from_u64 n (vector_lane_size size)))
3336
+ (vec_dup_fp_imm imm size))
3337
+
3338
+ ;; The base case for splat is to use `vec_dup` with the immediate loaded into a
3339
+ ;; register.
3340
+ (rule (splat_const n size)
3341
+ (vec_dup (imm $I64 (ImmExtend.Zero) n) size))
3342
+
3343
+ ;; Lower a FloatCC to a Cond.
3344
+ (decl fp_cond_code (FloatCC) Cond)
3345
+ ;; TODO: Port lower_fp_condcode() to ISLE.
3346
+ (extern constructor fp_cond_code fp_cond_code)
3347
+
3348
+ ;; Lower an integer cond code.
3349
+ (decl cond_code (IntCC) Cond)
3350
+ ;; TODO: Port lower_condcode() to ISLE.
3351
+ (extern constructor cond_code cond_code)
3352
+
3353
+ ;; Invert a condition code.
3354
+ (decl invert_cond (Cond) Cond)
3355
+ ;; TODO: Port cond.invert() to ISLE.
3356
+ (extern constructor invert_cond invert_cond)
3357
+
3358
+ ;; Generate comparison to zero operator from input condition code
3359
+ (decl float_cc_cmp_zero_to_vec_misc_op (FloatCC) VecMisc2)
3360
+ (extern constructor float_cc_cmp_zero_to_vec_misc_op float_cc_cmp_zero_to_vec_misc_op)
3361
+
3362
+ (decl float_cc_cmp_zero_to_vec_misc_op_swap (FloatCC) VecMisc2)
3363
+ (extern constructor float_cc_cmp_zero_to_vec_misc_op_swap float_cc_cmp_zero_to_vec_misc_op_swap)
3364
+
3365
+ ;; Match valid generic compare to zero cases
3366
+ (decl fcmp_zero_cond (FloatCC) FloatCC)
3367
+ (extern extractor fcmp_zero_cond fcmp_zero_cond)
3368
+
3369
+ ;; Match not equal compare to zero separately as it requires two output instructions
3370
+ (decl fcmp_zero_cond_not_eq (FloatCC) FloatCC)
3371
+ (extern extractor fcmp_zero_cond_not_eq fcmp_zero_cond_not_eq)
3372
+
3373
+ ;; Helper for generating float compare to zero instructions where 2nd argument is zero
3374
+ (decl float_cmp_zero (FloatCC Reg VectorSize) Reg)
3375
+ (rule (float_cmp_zero cond rn size)
3376
+ (vec_misc (float_cc_cmp_zero_to_vec_misc_op cond) rn size))
3377
+
3378
+ ;; Helper for generating float compare to zero instructions in case where 1st argument is zero
3379
+ (decl float_cmp_zero_swap (FloatCC Reg VectorSize) Reg)
3380
+ (rule (float_cmp_zero_swap cond rn size)
3381
+ (vec_misc (float_cc_cmp_zero_to_vec_misc_op_swap cond) rn size))
3382
+
3383
+ ;; Helper for generating float compare equal to zero instruction
3384
+ (decl fcmeq0 (Reg VectorSize) Reg)
3385
+ (rule (fcmeq0 rn size)
3386
+ (vec_misc (VecMisc2.Fcmeq0) rn size))
3387
+
3388
+ ;; Generate comparison to zero operator from input condition code
3389
+ (decl int_cc_cmp_zero_to_vec_misc_op (IntCC) VecMisc2)
3390
+ (extern constructor int_cc_cmp_zero_to_vec_misc_op int_cc_cmp_zero_to_vec_misc_op)
3391
+
3392
+ (decl int_cc_cmp_zero_to_vec_misc_op_swap (IntCC) VecMisc2)
3393
+ (extern constructor int_cc_cmp_zero_to_vec_misc_op_swap int_cc_cmp_zero_to_vec_misc_op_swap)
3394
+
3395
+ ;; Match valid generic compare to zero cases
3396
+ (decl icmp_zero_cond (IntCC) IntCC)
3397
+ (extern extractor icmp_zero_cond icmp_zero_cond)
3398
+
3399
+ ;; Match not equal compare to zero separately as it requires two output instructions
3400
+ (decl icmp_zero_cond_not_eq (IntCC) IntCC)
3401
+ (extern extractor icmp_zero_cond_not_eq icmp_zero_cond_not_eq)
3402
+
3403
+ ;; Helper for generating int compare to zero instructions where 2nd argument is zero
3404
+ (decl int_cmp_zero (IntCC Reg VectorSize) Reg)
3405
+ (rule (int_cmp_zero cond rn size)
3406
+ (vec_misc (int_cc_cmp_zero_to_vec_misc_op cond) rn size))
3407
+
3408
+ ;; Helper for generating int compare to zero instructions in case where 1st argument is zero
3409
+ (decl int_cmp_zero_swap (IntCC Reg VectorSize) Reg)
3410
+ (rule (int_cmp_zero_swap cond rn size)
3411
+ (vec_misc (int_cc_cmp_zero_to_vec_misc_op_swap cond) rn size))
3412
+
3413
+ ;; Helper for generating int compare equal to zero instruction
3414
+ (decl cmeq0 (Reg VectorSize) Reg)
3415
+ (rule (cmeq0 rn size)
3416
+ (vec_misc (VecMisc2.Cmeq0) rn size))
3417
+
3418
+ ;; Helper for emitting `MInst.AtomicRMW` instructions.
3419
+ (decl lse_atomic_rmw (AtomicRMWOp Value Reg Type MemFlags) Reg)
3420
+ (rule (lse_atomic_rmw op p r_arg2 ty flags)
3421
+ (let (
3422
+ (r_addr Reg p)
3423
+ (dst WritableReg (temp_writable_reg ty))
3424
+ (_ Unit (emit (MInst.AtomicRMW op r_arg2 dst r_addr ty flags)))
3425
+ )
3426
+ dst))
3427
+
3428
+ ;; Helper for emitting `MInst.AtomicCAS` instructions.
3429
+ (decl lse_atomic_cas (Reg Reg Reg Type MemFlags) Reg)
3430
+ (rule (lse_atomic_cas addr expect replace ty flags)
3431
+ (let (
3432
+ (dst WritableReg (temp_writable_reg ty))
3433
+ (_ Unit (emit (MInst.AtomicCAS dst expect replace addr ty flags)))
3434
+ )
3435
+ dst))
3436
+
3437
+ ;; Helper for emitting `MInst.AtomicRMWLoop` instructions.
3438
+ ;; - Make sure that both args are in virtual regs, since in effect
3439
+ ;; we have to do a parallel copy to get them safely to the AtomicRMW input
3440
+ ;; regs, and that's not guaranteed safe if either is in a real reg.
3441
+ ;; - Move the args to the preordained AtomicRMW input regs
3442
+ ;; - And finally, copy the preordained AtomicRMW output reg to its destination.
3443
+ (decl atomic_rmw_loop (AtomicRMWLoopOp Reg Reg Type MemFlags) Reg)
3444
+ (rule (atomic_rmw_loop op addr operand ty flags)
3445
+ (let ((dst WritableReg (temp_writable_reg $I64))
3446
+ (scratch1 WritableReg (temp_writable_reg $I64))
3447
+ (scratch2 WritableReg (temp_writable_reg $I64))
3448
+ (_ Unit (emit (MInst.AtomicRMWLoop ty op flags addr operand dst scratch1 scratch2))))
3449
+ dst))
3450
+
3451
+ ;; Helper for emitting `MInst.AtomicCASLoop` instructions.
3452
+ ;; This is very similar to, but not identical to, the AtomicRmw case. Note
3453
+ ;; that the AtomicCASLoop sequence does its own masking, so we don't need to worry
3454
+ ;; about zero-extending narrow (I8/I16/I32) values here.
3455
+ ;; Make sure that all three args are in virtual regs. See corresponding comment
3456
+ ;; for `atomic_rmw_loop` above.
3457
+ (decl atomic_cas_loop (Reg Reg Reg Type MemFlags) Reg)
3458
+ (rule (atomic_cas_loop addr expect replace ty flags)
3459
+ (let ((dst WritableReg (temp_writable_reg $I64))
3460
+ (scratch WritableReg (temp_writable_reg $I64))
3461
+ (_ Unit (emit (MInst.AtomicCASLoop ty flags addr expect replace dst scratch))))
3462
+ dst))
3463
+
3464
+ ;; Copy a register of the given type to a new register.
3465
+ ;;
3466
+ ;; Generally, regalloc should take care of this kind of thing for us. This is
3467
+ ;; only useful for implementing things like `bitcast` from an `r64` to an `i64`
3468
+ ;; to avoid conflicting constraints on a single aliased value by splitting the
3469
+ ;; value into two parts.
3470
+ (decl copy_reg (Type Reg) Reg)
3471
+ (rule (copy_reg $I32 src)
3472
+ (let ((dst WritableReg (temp_writable_reg $I32))
3473
+ (_ Unit (emit (MInst.Mov (OperandSize.Size32)
3474
+ dst
3475
+ src))))
3476
+ dst))
3477
+ (rule (copy_reg $I64 src)
3478
+ (let ((dst WritableReg (temp_writable_reg $I64))
3479
+ (_ Unit (emit (MInst.Mov (OperandSize.Size64)
3480
+ dst
3481
+ src))))
3482
+ dst))
3483
+
3484
+
3485
+ ;; Helper for emitting `MInst.MovPReg` instructions.
3486
+ (decl mov_from_preg (PReg) Reg)
3487
+ (rule (mov_from_preg src)
3488
+ (let ((dst WritableReg (temp_writable_reg $I64))
3489
+ (_ Unit (emit (MInst.MovFromPReg dst src))))
3490
+ dst))
3491
+
3492
+ (decl mov_to_preg (PReg Reg) SideEffectNoResult)
3493
+ (rule (mov_to_preg dst src)
3494
+ (SideEffectNoResult.Inst (MInst.MovToPReg dst src)))
3495
+
3496
+ (decl preg_sp () PReg)
3497
+ (extern constructor preg_sp preg_sp)
3498
+
3499
+ (decl preg_fp () PReg)
3500
+ (extern constructor preg_fp preg_fp)
3501
+
3502
+ (decl preg_link () PReg)
3503
+ (extern constructor preg_link preg_link)
3504
+
3505
+ (decl preg_pinned () PReg)
3506
+ (extern constructor preg_pinned preg_pinned)
3507
+
3508
+ (decl aarch64_sp () Reg)
3509
+ (rule (aarch64_sp)
3510
+ (mov_from_preg (preg_sp)))
3511
+
3512
+ (decl aarch64_fp () Reg)
3513
+ (rule (aarch64_fp)
3514
+ (mov_from_preg (preg_fp)))
3515
+
3516
+ (decl aarch64_link () Reg)
3517
+ (rule 1 (aarch64_link)
3518
+ (if (preserve_frame_pointers))
3519
+ (if (sign_return_address_disabled))
3520
+ (let ((dst WritableReg (temp_writable_reg $I64))
3521
+ ;; Even though LR is not an allocatable register, whether it
3522
+ ;; contains the return address for the current function is
3523
+ ;; unknown at this point. For example, this operation may come
3524
+ ;; immediately after a call, in which case LR would not have a
3525
+ ;; valid value. That's why we must obtain the return address from
3526
+ ;; the frame record that corresponds to the current subroutine on
3527
+ ;; the stack; the presence of the record is guaranteed by the
3528
+ ;; `preserve_frame_pointers` setting.
3529
+ (addr AMode (AMode.FPOffset 8))
3530
+ (_ Unit (emit (MInst.ULoad64 dst addr (mem_flags_trusted)))))
3531
+ dst))
3532
+
3533
+ (rule (aarch64_link)
3534
+ (if (preserve_frame_pointers))
3535
+ ;; Similarly to the rule above, we must load the return address from the
3536
+ ;; the frame record. Furthermore, we can use LR as a scratch register
3537
+ ;; because the function will set it to the return address immediately
3538
+ ;; before returning.
3539
+ (let ((addr AMode (AMode.FPOffset 8))
3540
+ (lr WritableReg (writable_link_reg))
3541
+ (_ Unit (emit (MInst.ULoad64 lr addr (mem_flags_trusted))))
3542
+ (_ Unit (emit (MInst.Xpaclri))))
3543
+ (mov_from_preg (preg_link))))
3544
+
3545
+ ;; Helper for getting the maximum shift amount for a type.
3546
+
3547
+ (decl max_shift (Type) u8)
3548
+ (rule (max_shift $F64) 63)
3549
+ (rule (max_shift $F32) 31)
3550
+
3551
+ ;; Helper for generating `fcopysign` instruction sequences.
3552
+
3553
+ (decl fcopy_sign (Reg Reg Type) Reg)
3554
+ (rule 1 (fcopy_sign x y (ty_scalar_float ty))
3555
+ (let ((dst WritableReg (temp_writable_reg $F64))
3556
+ (tmp Reg (fpu_rri (fpu_op_ri_ushr (ty_bits ty) (max_shift ty)) y))
3557
+ (_ Unit (emit (MInst.FpuRRIMod (fpu_op_ri_sli (ty_bits ty) (max_shift ty)) dst x tmp))))
3558
+ dst))
3559
+ (rule (fcopy_sign x y ty @ (multi_lane _ _))
3560
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
3561
+ (tmp Reg (ushr_vec_imm y (max_shift (lane_type ty)) (vector_size ty)))
3562
+ (_ Unit (emit (MInst.VecShiftImmMod (VecShiftImmModOp.Sli) dst x tmp (vector_size ty) (max_shift (lane_type ty))))))
3563
+ dst))
3564
+
3565
+ ;; Helpers for generating `MInst.FpuToInt` instructions.
3566
+
3567
+ (decl fpu_to_int_nan_check (ScalarSize Reg) Reg)
3568
+ (rule (fpu_to_int_nan_check size src)
3569
+ (let ((r ValueRegs
3570
+ (with_flags (fpu_cmp size src src)
3571
+ (ConsumesFlags.ConsumesFlagsReturnsReg
3572
+ (MInst.TrapIf (cond_br_cond (Cond.Vs))
3573
+ (trap_code_bad_conversion_to_integer))
3574
+ src))))
3575
+ (value_regs_get r 0)))
3576
+
3577
+ ;; Checks that the value is not less than the minimum bound,
3578
+ ;; accepting a boolean (whether the type is signed), input type,
3579
+ ;; output type, and registers containing the source and minimum bound.
3580
+ (decl fpu_to_int_underflow_check (bool Type Type Reg Reg) Reg)
3581
+ (rule (fpu_to_int_underflow_check $true $F32 (fits_in_16 out_ty) src min)
3582
+ (let ((r ValueRegs
3583
+ (with_flags (fpu_cmp (ScalarSize.Size32) src min)
3584
+ (ConsumesFlags.ConsumesFlagsReturnsReg
3585
+ (MInst.TrapIf (cond_br_cond (Cond.Le))
3586
+ (trap_code_integer_overflow))
3587
+ src))))
3588
+ (value_regs_get r 0)))
3589
+ (rule (fpu_to_int_underflow_check $true $F64 (fits_in_32 out_ty) src min)
3590
+ (let ((r ValueRegs
3591
+ (with_flags (fpu_cmp (ScalarSize.Size64) src min)
3592
+ (ConsumesFlags.ConsumesFlagsReturnsReg
3593
+ (MInst.TrapIf (cond_br_cond (Cond.Le))
3594
+ (trap_code_integer_overflow))
3595
+ src))))
3596
+ (value_regs_get r 0)))
3597
+ (rule -1 (fpu_to_int_underflow_check $true in_ty _out_ty src min)
3598
+ (let ((r ValueRegs
3599
+ (with_flags (fpu_cmp (scalar_size in_ty) src min)
3600
+ (ConsumesFlags.ConsumesFlagsReturnsReg
3601
+ (MInst.TrapIf (cond_br_cond (Cond.Lt))
3602
+ (trap_code_integer_overflow))
3603
+ src))))
3604
+ (value_regs_get r 0)))
3605
+ (rule (fpu_to_int_underflow_check $false in_ty _out_ty src min)
3606
+ (let ((r ValueRegs
3607
+ (with_flags (fpu_cmp (scalar_size in_ty) src min)
3608
+ (ConsumesFlags.ConsumesFlagsReturnsReg
3609
+ (MInst.TrapIf (cond_br_cond (Cond.Le))
3610
+ (trap_code_integer_overflow))
3611
+ src))))
3612
+ (value_regs_get r 0)))
3613
+
3614
+ (decl fpu_to_int_overflow_check (ScalarSize Reg Reg) Reg)
3615
+ (rule (fpu_to_int_overflow_check size src max)
3616
+ (let ((r ValueRegs
3617
+ (with_flags (fpu_cmp size src max)
3618
+ (ConsumesFlags.ConsumesFlagsReturnsReg
3619
+ (MInst.TrapIf (cond_br_cond (Cond.Ge))
3620
+ (trap_code_integer_overflow))
3621
+ src))))
3622
+ (value_regs_get r 0)))
3623
+
3624
+ ;; Emits the appropriate instruction sequence to convert a
3625
+ ;; floating-point value to an integer, trapping if the value
3626
+ ;; is a NaN or does not fit in the target type.
3627
+ ;; Accepts the specific conversion op, the source register,
3628
+ ;; whether the input is signed, and finally the input and output
3629
+ ;; types.
3630
+ (decl fpu_to_int_cvt (FpuToIntOp Reg bool Type Type) Reg)
3631
+ (rule (fpu_to_int_cvt op src signed in_ty out_ty)
3632
+ (let ((size ScalarSize (scalar_size in_ty))
3633
+ (in_bits u8 (ty_bits in_ty))
3634
+ (out_bits u8 (ty_bits out_ty))
3635
+ (src Reg (fpu_to_int_nan_check size src))
3636
+ (min Reg (min_fp_value signed in_bits out_bits))
3637
+ (src Reg (fpu_to_int_underflow_check signed in_ty out_ty src min))
3638
+ (max Reg (max_fp_value signed in_bits out_bits))
3639
+ (src Reg (fpu_to_int_overflow_check size src max)))
3640
+ (fpu_to_int op src)))
3641
+
3642
+ ;; Emits the appropriate instruction sequence to convert a
3643
+ ;; floating-point value to an integer, saturating if the value
3644
+ ;; does not fit in the target type.
3645
+ ;; Accepts the specific conversion op, the source register,
3646
+ ;; whether the input is signed, and finally the output type.
3647
+ (decl fpu_to_int_cvt_sat (FpuToIntOp Reg bool Type) Reg)
3648
+ (rule 1 (fpu_to_int_cvt_sat op src _ $I64)
3649
+ (fpu_to_int op src))
3650
+ (rule 1 (fpu_to_int_cvt_sat op src _ $I32)
3651
+ (fpu_to_int op src))
3652
+ (rule (fpu_to_int_cvt_sat op src $false (fits_in_16 out_ty))
3653
+ (let ((result Reg (fpu_to_int op src))
3654
+ (max Reg (imm out_ty (ImmExtend.Zero) (ty_mask out_ty))))
3655
+ (with_flags_reg
3656
+ (cmp (OperandSize.Size32) result max)
3657
+ (csel (Cond.Hi) max result))))
3658
+ (rule (fpu_to_int_cvt_sat op src $true (fits_in_16 out_ty))
3659
+ (let ((result Reg (fpu_to_int op src))
3660
+ (max Reg (signed_max out_ty))
3661
+ (min Reg (signed_min out_ty))
3662
+ (result Reg (with_flags_reg
3663
+ (cmp (operand_size out_ty) result max)
3664
+ (csel (Cond.Gt) max result)))
3665
+ (result Reg (with_flags_reg
3666
+ (cmp (operand_size out_ty) result min)
3667
+ (csel (Cond.Lt) min result))))
3668
+ result))
3669
+
3670
+ (decl signed_min (Type) Reg)
3671
+ (rule (signed_min $I8) (imm $I8 (ImmExtend.Sign) 0x80))
3672
+ (rule (signed_min $I16) (imm $I16 (ImmExtend.Sign) 0x8000))
3673
+
3674
+ (decl signed_max (Type) Reg)
3675
+ (rule (signed_max $I8) (imm $I8 (ImmExtend.Sign) 0x7F))
3676
+ (rule (signed_max $I16) (imm $I16 (ImmExtend.Sign) 0x7FFF))
3677
+
3678
+ (decl fpu_to_int (FpuToIntOp Reg) Reg)
3679
+ (rule (fpu_to_int op src)
3680
+ (let ((dst WritableReg (temp_writable_reg $I64))
3681
+ (_ Unit (emit (MInst.FpuToInt op dst src))))
3682
+ dst))
3683
+
3684
+ ;; Helper for generating `MInst.IntToFpu` instructions.
3685
+
3686
+ (decl int_to_fpu (IntToFpuOp Reg) Reg)
3687
+ (rule (int_to_fpu op src)
3688
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
3689
+ (_ Unit (emit (MInst.IntToFpu op dst src))))
3690
+ dst))
3691
+
3692
+ ;;;; Helpers for Emitting Calls ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3693
+
3694
+ (decl gen_call (SigRef ExternalName RelocDistance ValueSlice) InstOutput)
3695
+ (extern constructor gen_call gen_call)
3696
+
3697
+ (decl gen_call_indirect (SigRef Value ValueSlice) InstOutput)
3698
+ (extern constructor gen_call_indirect gen_call_indirect)
3699
+
3700
+ ;; Helpers for pinned register manipulation.
3701
+
3702
+ (decl write_pinned_reg (Reg) SideEffectNoResult)
3703
+ (rule (write_pinned_reg val)
3704
+ (mov_to_preg (preg_pinned) val))
3705
+
3706
+ ;; Helpers for stackslot effective address generation.
3707
+
3708
+ (decl compute_stack_addr (StackSlot Offset32) Reg)
3709
+ (rule (compute_stack_addr stack_slot offset)
3710
+ (let ((dst WritableReg (temp_writable_reg $I64))
3711
+ (_ Unit (emit (abi_stackslot_addr dst stack_slot offset))))
3712
+ dst))
3713
+
3714
+ ;; Helper for emitting instruction sequences to perform a vector comparison.
3715
+
3716
+ (decl vec_cmp_vc (Reg Reg VectorSize) Reg)
3717
+ (rule (vec_cmp_vc rn rm size)
3718
+ (let ((dst Reg (vec_rrr (VecALUOp.Fcmeq) rn rn size))
3719
+ (tmp Reg (vec_rrr (VecALUOp.Fcmeq) rm rm size))
3720
+ (dst Reg (vec_rrr (VecALUOp.And) dst tmp size)))
3721
+ dst))
3722
+
3723
+ (decl vec_cmp (Reg Reg Type Cond) Reg)
3724
+
3725
+ ;; Floating point Vs / Vc
3726
+ (rule (vec_cmp rn rm ty (Cond.Vc))
3727
+ (if (ty_vector_float ty))
3728
+ (vec_cmp_vc rn rm (vector_size ty)))
3729
+ (rule (vec_cmp rn rm ty (Cond.Vs))
3730
+ (if (ty_vector_float ty))
3731
+ (let ((tmp Reg (vec_cmp_vc rn rm (vector_size ty))))
3732
+ (vec_misc (VecMisc2.Not) tmp (vector_size ty))))
3733
+
3734
+ ;; 'Less than' operations are implemented by swapping the order of
3735
+ ;; operands and using the 'greater than' instructions.
3736
+ ;; 'Not equal' is implemented with 'equal' and inverting the result.
3737
+
3738
+ ;; Floating-point
3739
+ (rule (vec_cmp rn rm ty (Cond.Eq))
3740
+ (if (ty_vector_float ty))
3741
+ (vec_rrr (VecALUOp.Fcmeq) rn rm (vector_size ty)))
3742
+ (rule (vec_cmp rn rm ty (Cond.Ne))
3743
+ (if (ty_vector_float ty))
3744
+ (let ((tmp Reg (vec_rrr (VecALUOp.Fcmeq) rn rm (vector_size ty))))
3745
+ (vec_misc (VecMisc2.Not) tmp (vector_size ty))))
3746
+ (rule (vec_cmp rn rm ty (Cond.Ge))
3747
+ (if (ty_vector_float ty))
3748
+ (vec_rrr (VecALUOp.Fcmge) rn rm (vector_size ty)))
3749
+ (rule (vec_cmp rn rm ty (Cond.Gt))
3750
+ (if (ty_vector_float ty))
3751
+ (vec_rrr (VecALUOp.Fcmgt) rn rm (vector_size ty)))
3752
+ ;; Floating-point swapped-operands
3753
+ (rule (vec_cmp rn rm ty (Cond.Mi))
3754
+ (if (ty_vector_float ty))
3755
+ (vec_rrr (VecALUOp.Fcmgt) rm rn (vector_size ty)))
3756
+ (rule (vec_cmp rn rm ty (Cond.Ls))
3757
+ (if (ty_vector_float ty))
3758
+ (vec_rrr (VecALUOp.Fcmge) rm rn (vector_size ty)))
3759
+
3760
+ ;; Integer
3761
+ (rule 1 (vec_cmp rn rm ty (Cond.Eq))
3762
+ (if (ty_vector_not_float ty))
3763
+ (vec_rrr (VecALUOp.Cmeq) rn rm (vector_size ty)))
3764
+ (rule 1 (vec_cmp rn rm ty (Cond.Ne))
3765
+ (if (ty_vector_not_float ty))
3766
+ (let ((tmp Reg (vec_rrr (VecALUOp.Cmeq) rn rm (vector_size ty))))
3767
+ (vec_misc (VecMisc2.Not) tmp (vector_size ty))))
3768
+ (rule 1 (vec_cmp rn rm ty (Cond.Ge))
3769
+ (if (ty_vector_not_float ty))
3770
+ (vec_rrr (VecALUOp.Cmge) rn rm (vector_size ty)))
3771
+ (rule 1 (vec_cmp rn rm ty (Cond.Gt))
3772
+ (if (ty_vector_not_float ty))
3773
+ (vec_rrr (VecALUOp.Cmgt) rn rm (vector_size ty)))
3774
+ (rule (vec_cmp rn rm ty (Cond.Hs))
3775
+ (if (ty_vector_not_float ty))
3776
+ (vec_rrr (VecALUOp.Cmhs) rn rm (vector_size ty)))
3777
+ (rule (vec_cmp rn rm ty (Cond.Hi))
3778
+ (if (ty_vector_not_float ty))
3779
+ (vec_rrr (VecALUOp.Cmhi) rn rm (vector_size ty)))
3780
+ ;; Integer swapped-operands
3781
+ (rule (vec_cmp rn rm ty (Cond.Le))
3782
+ (if (ty_vector_not_float ty))
3783
+ (vec_rrr (VecALUOp.Cmge) rm rn (vector_size ty)))
3784
+ (rule (vec_cmp rn rm ty (Cond.Lt))
3785
+ (if (ty_vector_not_float ty))
3786
+ (vec_rrr (VecALUOp.Cmgt) rm rn (vector_size ty)))
3787
+ (rule 1 (vec_cmp rn rm ty (Cond.Ls))
3788
+ (if (ty_vector_not_float ty))
3789
+ (vec_rrr (VecALUOp.Cmhs) rm rn (vector_size ty)))
3790
+ (rule (vec_cmp rn rm ty (Cond.Lo))
3791
+ (if (ty_vector_not_float ty))
3792
+ (vec_rrr (VecALUOp.Cmhi) rm rn (vector_size ty)))
3793
+
3794
+ ;; Helper for determining if any value in a vector is true.
3795
+ ;; This operation is implemented by using umaxp to create a scalar value, which
3796
+ ;; is then compared against zero.
3797
+ ;;
3798
+ ;; umaxp vn.4s, vm.4s, vm.4s
3799
+ ;; mov xm, vn.d[0]
3800
+ ;; cmp xm, #0
3801
+ (decl vanytrue (Reg Type) ProducesFlags)
3802
+ (rule 1 (vanytrue src (ty_vec128 ty))
3803
+ (let ((src Reg (vec_rrr (VecALUOp.Umaxp) src src (VectorSize.Size32x4)))
3804
+ (src Reg (mov_from_vec src 0 (ScalarSize.Size64))))
3805
+ (cmp_imm (OperandSize.Size64) src (u8_into_imm12 0))))
3806
+ (rule (vanytrue src ty)
3807
+ (if (ty_vec64 ty))
3808
+ (let ((src Reg (mov_from_vec src 0 (ScalarSize.Size64))))
3809
+ (cmp_imm (OperandSize.Size64) src (u8_into_imm12 0))))
3810
+
3811
+ ;;;; TLS Values ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3812
+
3813
+ ;; Helper for emitting ElfTlsGetAddr.
3814
+ (decl elf_tls_get_addr (ExternalName) Reg)
3815
+ (rule (elf_tls_get_addr name)
3816
+ (let ((dst WritableReg (temp_writable_reg $I64))
3817
+ (tmp WritableReg (temp_writable_reg $I64))
3818
+ (_ Unit (emit (MInst.ElfTlsGetAddr (box_external_name name) dst tmp))))
3819
+ dst))
3820
+
3821
+ (decl macho_tls_get_addr (ExternalName) Reg)
3822
+ (rule (macho_tls_get_addr name)
3823
+ (let ((dst WritableReg (temp_writable_reg $I64))
3824
+ (_ Unit (emit (MInst.MachOTlsGetAddr name dst))))
3825
+ dst))
3826
+
3827
+ ;; A tuple of `ProducesFlags` and `IntCC`.
3828
+ (type FlagsAndCC (enum (FlagsAndCC (flags ProducesFlags)
3829
+ (cc IntCC))))
3830
+
3831
+ ;; Helper constructor for `FlagsAndCC`.
3832
+ (decl flags_and_cc (ProducesFlags IntCC) FlagsAndCC)
3833
+ (rule (flags_and_cc flags cc) (FlagsAndCC.FlagsAndCC flags cc))
3834
+
3835
+ ;; Materialize a `FlagsAndCC` into a boolean `ValueRegs`.
3836
+ (decl flags_and_cc_to_bool (FlagsAndCC) ValueRegs)
3837
+ (rule (flags_and_cc_to_bool (FlagsAndCC.FlagsAndCC flags cc))
3838
+ (with_flags flags (materialize_bool_result (cond_code cc))))
3839
+
3840
+ ;; Get the `ProducesFlags` out of a `FlagsAndCC`.
3841
+ (decl flags_and_cc_flags (FlagsAndCC) ProducesFlags)
3842
+ (rule (flags_and_cc_flags (FlagsAndCC.FlagsAndCC flags _cc)) flags)
3843
+
3844
+ ;; Get the `IntCC` out of a `FlagsAndCC`.
3845
+ (decl flags_and_cc_cc (FlagsAndCC) IntCC)
3846
+ (rule (flags_and_cc_cc (FlagsAndCC.FlagsAndCC _flags cc)) cc)
3847
+
3848
+ ;; Helpers for lowering `icmp` sequences.
3849
+ ;; `lower_icmp` contains shared functionality for lowering `icmp`
3850
+ ;; sequences, which `lower_icmp_into_{reg,flags}` extend from.
3851
+ (decl lower_icmp (IntCC Value Value Type) FlagsAndCC)
3852
+ (decl lower_icmp_into_reg (IntCC Value Value Type Type) ValueRegs)
3853
+ (decl lower_icmp_into_flags (IntCC Value Value Type) FlagsAndCC)
3854
+ (decl lower_icmp_const (IntCC Value u64 Type) FlagsAndCC)
3855
+ ;; For most cases, `lower_icmp_into_flags` is the same as `lower_icmp`,
3856
+ ;; except for some I128 cases (see below).
3857
+ (rule -1 (lower_icmp_into_flags cond x y ty) (lower_icmp cond x y ty))
3858
+
3859
+ ;; Vectors.
3860
+ ;; `icmp` into flags for vectors is invalid.
3861
+ (rule 1 (lower_icmp_into_reg cond x y in_ty @ (multi_lane _ _) _out_ty)
3862
+ (let ((cond Cond (cond_code cond))
3863
+ (rn Reg (put_in_reg x))
3864
+ (rm Reg (put_in_reg y)))
3865
+ (vec_cmp rn rm in_ty cond)))
3866
+
3867
+ ;; Determines the appropriate extend op given the value type and the given ArgumentExtension.
3868
+ (decl lower_extend_op (Type ArgumentExtension) ExtendOp)
3869
+ (rule (lower_extend_op $I8 (ArgumentExtension.Sext)) (ExtendOp.SXTB))
3870
+ (rule (lower_extend_op $I16 (ArgumentExtension.Sext)) (ExtendOp.SXTH))
3871
+ (rule (lower_extend_op $I8 (ArgumentExtension.Uext)) (ExtendOp.UXTB))
3872
+ (rule (lower_extend_op $I16 (ArgumentExtension.Uext)) (ExtendOp.UXTH))
3873
+
3874
+ ;; Integers <= 64-bits.
3875
+ (rule -2 (lower_icmp_into_reg cond rn rm in_ty out_ty)
3876
+ (if (ty_int_ref_scalar_64 in_ty))
3877
+ (let ((cc Cond (cond_code cond)))
3878
+ (flags_and_cc_to_bool (lower_icmp cond rn rm in_ty))))
3879
+
3880
+ (rule 1 (lower_icmp cond rn rm (fits_in_16 ty))
3881
+ (if (signed_cond_code cond))
3882
+ (let ((rn Reg (put_in_reg_sext32 rn)))
3883
+ (flags_and_cc (cmp_extend (operand_size ty) rn rm (lower_extend_op ty (ArgumentExtension.Sext))) cond)))
3884
+ (rule -1 (lower_icmp cond rn (imm12_from_value rm) (fits_in_16 ty))
3885
+ (let ((rn Reg (put_in_reg_zext32 rn)))
3886
+ (flags_and_cc (cmp_imm (operand_size ty) rn rm) cond)))
3887
+ (rule -2 (lower_icmp cond rn rm (fits_in_16 ty))
3888
+ (let ((rn Reg (put_in_reg_zext32 rn)))
3889
+ (flags_and_cc (cmp_extend (operand_size ty) rn rm (lower_extend_op ty (ArgumentExtension.Uext))) cond)))
3890
+ (rule -3 (lower_icmp cond rn (u64_from_iconst c) ty)
3891
+ (if (ty_int_ref_scalar_64 ty))
3892
+ (lower_icmp_const cond rn c ty))
3893
+ (rule -4 (lower_icmp cond rn rm ty)
3894
+ (if (ty_int_ref_scalar_64 ty))
3895
+ (flags_and_cc (cmp (operand_size ty) rn rm) cond))
3896
+
3897
+ ;; We get better encodings when testing against an immediate that's even instead
3898
+ ;; of odd, so rewrite comparisons to use even immediates:
3899
+ ;;
3900
+ ;; A >= B + 1
3901
+ ;; ==> A - 1 >= B
3902
+ ;; ==> A > B
3903
+ (rule (lower_icmp_const (IntCC.UnsignedGreaterThanOrEqual) a b ty)
3904
+ (if (ty_int_ref_scalar_64 ty))
3905
+ (if-let $true (u64_is_odd b))
3906
+ (if-let (imm12_from_u64 imm) (u64_sub b 1))
3907
+ (flags_and_cc (cmp_imm (operand_size ty) a imm) (IntCC.UnsignedGreaterThan)))
3908
+ (rule (lower_icmp_const (IntCC.SignedGreaterThanOrEqual) a b ty)
3909
+ (if (ty_int_ref_scalar_64 ty))
3910
+ (if-let $true (u64_is_odd b))
3911
+ (if-let (imm12_from_u64 imm) (u64_sub b 1))
3912
+ (flags_and_cc (cmp_imm (operand_size ty) a imm) (IntCC.SignedGreaterThan)))
3913
+
3914
+ (rule -1 (lower_icmp_const cond rn (imm12_from_u64 c) ty)
3915
+ (if (ty_int_ref_scalar_64 ty))
3916
+ (flags_and_cc (cmp_imm (operand_size ty) rn c) cond))
3917
+ (rule -2 (lower_icmp_const cond rn c ty)
3918
+ (if (ty_int_ref_scalar_64 ty))
3919
+ (flags_and_cc (cmp (operand_size ty) rn (imm ty (ImmExtend.Zero) c)) cond))
3920
+
3921
+
3922
+ ;; 128-bit integers.
3923
+ (rule (lower_icmp_into_reg cond @ (IntCC.Equal) rn rm $I128 $I8)
3924
+ (let ((cc Cond (cond_code cond)))
3925
+ (flags_and_cc_to_bool
3926
+ (lower_icmp cond rn rm $I128))))
3927
+ (rule (lower_icmp_into_reg cond @ (IntCC.NotEqual) rn rm $I128 $I8)
3928
+ (let ((cc Cond (cond_code cond)))
3929
+ (flags_and_cc_to_bool
3930
+ (lower_icmp cond rn rm $I128))))
3931
+
3932
+ ;; cmp lhs_lo, rhs_lo
3933
+ ;; ccmp lhs_hi, rhs_hi, #0, eq
3934
+ (decl lower_icmp_i128_eq_ne (Value Value) ProducesFlags)
3935
+ (rule (lower_icmp_i128_eq_ne lhs rhs)
3936
+ (let ((lhs ValueRegs (put_in_regs lhs))
3937
+ (rhs ValueRegs (put_in_regs rhs))
3938
+ (lhs_lo Reg (value_regs_get lhs 0))
3939
+ (lhs_hi Reg (value_regs_get lhs 1))
3940
+ (rhs_lo Reg (value_regs_get rhs 0))
3941
+ (rhs_hi Reg (value_regs_get rhs 1))
3942
+ (cmp_inst ProducesFlags (cmp (OperandSize.Size64) lhs_lo rhs_lo)))
3943
+ (ccmp (OperandSize.Size64) lhs_hi rhs_hi
3944
+ (nzcv $false $false $false $false) (Cond.Eq) cmp_inst)))
3945
+
3946
+ (rule (lower_icmp (IntCC.Equal) lhs rhs $I128)
3947
+ (flags_and_cc (lower_icmp_i128_eq_ne lhs rhs) (IntCC.Equal)))
3948
+ (rule (lower_icmp (IntCC.NotEqual) lhs rhs $I128)
3949
+ (flags_and_cc (lower_icmp_i128_eq_ne lhs rhs) (IntCC.NotEqual)))
3950
+
3951
+ ;; cmp lhs_lo, rhs_lo
3952
+ ;; cset tmp1, unsigned_cond
3953
+ ;; cmp lhs_hi, rhs_hi
3954
+ ;; cset tmp2, cond
3955
+ ;; csel dst, tmp1, tmp2, eq
3956
+ (rule -1 (lower_icmp_into_reg cond lhs rhs $I128 $I8)
3957
+ (let ((unsigned_cond Cond (cond_code (intcc_unsigned cond)))
3958
+ (cond Cond (cond_code cond))
3959
+ (lhs ValueRegs (put_in_regs lhs))
3960
+ (rhs ValueRegs (put_in_regs rhs))
3961
+ (lhs_lo Reg (value_regs_get lhs 0))
3962
+ (lhs_hi Reg (value_regs_get lhs 1))
3963
+ (rhs_lo Reg (value_regs_get rhs 0))
3964
+ (rhs_hi Reg (value_regs_get rhs 1))
3965
+ (tmp1 Reg (with_flags_reg (cmp (OperandSize.Size64) lhs_lo rhs_lo)
3966
+ (materialize_bool_result unsigned_cond))))
3967
+ (with_flags (cmp (OperandSize.Size64) lhs_hi rhs_hi)
3968
+ (lower_icmp_i128_consumer cond tmp1))))
3969
+
3970
+ (decl lower_icmp_i128_consumer (Cond Reg) ConsumesFlags)
3971
+ (rule (lower_icmp_i128_consumer cond tmp1)
3972
+ (let ((tmp2 WritableReg (temp_writable_reg $I64))
3973
+ (dst WritableReg (temp_writable_reg $I64)))
3974
+ (ConsumesFlags.ConsumesFlagsTwiceReturnsValueRegs
3975
+ (MInst.CSet tmp2 cond)
3976
+ (MInst.CSel dst (Cond.Eq) tmp1 tmp2)
3977
+ (value_reg dst))))
3978
+
3979
+ (decl lower_bmask (Type Type ValueRegs) ValueRegs)
3980
+
3981
+
3982
+ ;; For conversions that exactly fit a register, we can use csetm.
3983
+ ;;
3984
+ ;; cmp val, #0
3985
+ ;; csetm res, ne
3986
+ (rule 0
3987
+ (lower_bmask (fits_in_64 _) (ty_32_or_64 in_ty) val)
3988
+ (with_flags_reg
3989
+ (cmp_imm (operand_size in_ty) (value_regs_get val 0) (u8_into_imm12 0))
3990
+ (csetm (Cond.Ne))))
3991
+
3992
+ ;; For conversions from a 128-bit value into a 64-bit or smaller one, we or the
3993
+ ;; two registers of the 128-bit value together, and then recurse with the
3994
+ ;; combined value as a 64-bit test.
3995
+ ;;
3996
+ ;; orr val, lo, hi
3997
+ ;; cmp val, #0
3998
+ ;; csetm res, ne
3999
+ (rule 1
4000
+ (lower_bmask (fits_in_64 ty) $I128 val)
4001
+ (let ((lo Reg (value_regs_get val 0))
4002
+ (hi Reg (value_regs_get val 1))
4003
+ (combined Reg (orr $I64 lo hi)))
4004
+ (lower_bmask ty $I64 (value_reg combined))))
4005
+
4006
+ ;; For converting from any type into i128, duplicate the result of
4007
+ ;; converting to i64.
4008
+ (rule 2
4009
+ (lower_bmask $I128 in_ty val)
4010
+ (let ((res ValueRegs (lower_bmask $I64 in_ty val))
4011
+ (res Reg (value_regs_get res 0)))
4012
+ (value_regs res res)))
4013
+
4014
+ ;; For conversions smaller than a register, we need to mask off the high bits, and then
4015
+ ;; we can recurse into the general case.
4016
+ ;;
4017
+ ;; and tmp, val, #ty_mask
4018
+ ;; cmp tmp, #0
4019
+ ;; csetm res, ne
4020
+ (rule 3
4021
+ (lower_bmask out_ty (fits_in_16 in_ty) val)
4022
+ ; This if-let can't fail due to ty_mask always producing 8/16 consecutive 1s.
4023
+ (if-let mask_bits (imm_logic_from_u64 $I32 (ty_mask in_ty)))
4024
+ (let ((masked Reg (and_imm $I32 (value_regs_get val 0) mask_bits)))
4025
+ (lower_bmask out_ty $I32 masked)))
4026
+
4027
+ ;; Exceptional `lower_icmp_into_flags` rules.
4028
+ ;; We need to guarantee that the flags for `cond` are correct, so we
4029
+ ;; compare `dst` with 1.
4030
+ (rule (lower_icmp_into_flags cond @ (IntCC.SignedGreaterThanOrEqual) lhs rhs $I128)
4031
+ (let ((dst ValueRegs (lower_icmp_into_reg cond lhs rhs $I128 $I8))
4032
+ (dst Reg (value_regs_get dst 0))
4033
+ (tmp Reg (imm $I64 (ImmExtend.Sign) 1))) ;; mov tmp, #1
4034
+ (flags_and_cc (cmp (OperandSize.Size64) dst tmp) cond)))
4035
+ (rule (lower_icmp_into_flags cond @ (IntCC.UnsignedGreaterThanOrEqual) lhs rhs $I128)
4036
+ (let ((dst ValueRegs (lower_icmp_into_reg cond lhs rhs $I128 $I8))
4037
+ (dst Reg (value_regs_get dst 0))
4038
+ (tmp Reg (imm $I64 (ImmExtend.Zero) 1)))
4039
+ (flags_and_cc (cmp (OperandSize.Size64) dst tmp) cond)))
4040
+ (rule (lower_icmp_into_flags cond @ (IntCC.SignedLessThanOrEqual) lhs rhs $I128)
4041
+ (let ((dst ValueRegs (lower_icmp_into_reg cond lhs rhs $I128 $I8))
4042
+ (dst Reg (value_regs_get dst 0))
4043
+ (tmp Reg (imm $I64 (ImmExtend.Sign) 1)))
4044
+ (flags_and_cc (cmp (OperandSize.Size64) tmp dst) cond)))
4045
+ (rule (lower_icmp_into_flags cond @ (IntCC.UnsignedLessThanOrEqual) lhs rhs $I128)
4046
+ (let ((dst ValueRegs (lower_icmp_into_reg cond lhs rhs $I128 $I8))
4047
+ (dst Reg (value_regs_get dst 0))
4048
+ (tmp Reg (imm $I64 (ImmExtend.Zero) 1)))
4049
+ (flags_and_cc (cmp (OperandSize.Size64) tmp dst) cond)))
4050
+ ;; For strict comparisons, we compare with 0.
4051
+ (rule (lower_icmp_into_flags cond @ (IntCC.SignedGreaterThan) lhs rhs $I128)
4052
+ (let ((dst ValueRegs (lower_icmp_into_reg cond lhs rhs $I128 $I8))
4053
+ (dst Reg (value_regs_get dst 0)))
4054
+ (flags_and_cc (cmp (OperandSize.Size64) dst (zero_reg)) cond)))
4055
+ (rule (lower_icmp_into_flags cond @ (IntCC.UnsignedGreaterThan) lhs rhs $I128)
4056
+ (let ((dst ValueRegs (lower_icmp_into_reg cond lhs rhs $I128 $I8))
4057
+ (dst Reg (value_regs_get dst 0)))
4058
+ (flags_and_cc (cmp (OperandSize.Size64) dst (zero_reg)) cond)))
4059
+ (rule (lower_icmp_into_flags cond @ (IntCC.SignedLessThan) lhs rhs $I128)
4060
+ (let ((dst ValueRegs (lower_icmp_into_reg cond lhs rhs $I128 $I8))
4061
+ (dst Reg (value_regs_get dst 0)))
4062
+ (flags_and_cc (cmp (OperandSize.Size64) (zero_reg) dst) cond)))
4063
+ (rule (lower_icmp_into_flags cond @ (IntCC.UnsignedLessThan) lhs rhs $I128)
4064
+ (let ((dst ValueRegs (lower_icmp_into_reg cond lhs rhs $I128 $I8))
4065
+ (dst Reg (value_regs_get dst 0)))
4066
+ (flags_and_cc (cmp (OperandSize.Size64) (zero_reg) dst) cond)))
4067
+
4068
+ ;; Helpers for generating select instruction sequences.
4069
+ (decl lower_select (ProducesFlags Cond Type Value Value) ValueRegs)
4070
+ (rule 2 (lower_select flags cond (ty_scalar_float ty) rn rm)
4071
+ (with_flags flags (fpu_csel ty cond rn rm)))
4072
+ (rule 3 (lower_select flags cond (ty_vec128 ty) rn rm)
4073
+ (with_flags flags (vec_csel cond rn rm)))
4074
+ (rule (lower_select flags cond ty rn rm)
4075
+ (if (ty_vec64 ty))
4076
+ (with_flags flags (fpu_csel $F64 cond rn rm)))
4077
+ (rule 4 (lower_select flags cond $I128 rn rm)
4078
+ (let ((dst_lo WritableReg (temp_writable_reg $I64))
4079
+ (dst_hi WritableReg (temp_writable_reg $I64))
4080
+ (rn ValueRegs (put_in_regs rn))
4081
+ (rm ValueRegs (put_in_regs rm))
4082
+ (rn_lo Reg (value_regs_get rn 0))
4083
+ (rn_hi Reg (value_regs_get rn 1))
4084
+ (rm_lo Reg (value_regs_get rm 0))
4085
+ (rm_hi Reg (value_regs_get rm 1)))
4086
+ (with_flags flags
4087
+ (ConsumesFlags.ConsumesFlagsTwiceReturnsValueRegs
4088
+ (MInst.CSel dst_lo cond rn_lo rm_lo)
4089
+ (MInst.CSel dst_hi cond rn_hi rm_hi)
4090
+ (value_regs dst_lo dst_hi)))))
4091
+ (rule 1 (lower_select flags cond ty rn rm)
4092
+ (if (ty_int_ref_scalar_64 ty))
4093
+ (with_flags flags (csel cond rn rm)))
4094
+
4095
+ ;; Helper for emitting `MInst.Jump` instructions.
4096
+ (decl aarch64_jump (BranchTarget) SideEffectNoResult)
4097
+ (rule (aarch64_jump target)
4098
+ (SideEffectNoResult.Inst (MInst.Jump target)))
4099
+
4100
+ ;; Helper for emitting `MInst.JTSequence` instructions.
4101
+ ;; Emit the compound instruction that does:
4102
+ ;;
4103
+ ;; b.hs default
4104
+ ;; csel rB, xzr, rIndex, hs
4105
+ ;; csdb
4106
+ ;; adr rA, jt
4107
+ ;; ldrsw rB, [rA, rB, uxtw #2]
4108
+ ;; add rA, rA, rB
4109
+ ;; br rA
4110
+ ;; [jt entries]
4111
+ ;;
4112
+ ;; This must be *one* instruction in the vcode because
4113
+ ;; we cannot allow regalloc to insert any spills/fills
4114
+ ;; in the middle of the sequence; otherwise, the ADR's
4115
+ ;; PC-rel offset to the jumptable would be incorrect.
4116
+ ;; (The alternative is to introduce a relocation pass
4117
+ ;; for inlined jumptables, which is much worse, IMHO.)
4118
+ (decl jt_sequence (Reg MachLabel BoxVecMachLabel) ConsumesFlags)
4119
+ (rule (jt_sequence ridx default targets)
4120
+ (let ((rtmp1 WritableReg (temp_writable_reg $I64))
4121
+ (rtmp2 WritableReg (temp_writable_reg $I64)))
4122
+ (ConsumesFlags.ConsumesFlagsSideEffect
4123
+ (MInst.JTSequence default targets ridx rtmp1 rtmp2))))
4124
+
4125
+ ;; Helper for emitting `MInst.CondBr` instructions.
4126
+ (decl cond_br (BranchTarget BranchTarget CondBrKind) ConsumesFlags)
4127
+ (rule (cond_br taken not_taken kind)
4128
+ (ConsumesFlags.ConsumesFlagsSideEffect
4129
+ (MInst.CondBr taken not_taken kind)))
4130
+
4131
+ ;; Helper for emitting `MInst.TestBitAndBranch` instructions.
4132
+ (decl test_branch (TestBitAndBranchKind BranchTarget BranchTarget Reg u8) SideEffectNoResult)
4133
+ (rule (test_branch kind taken not_taken rn bit)
4134
+ (SideEffectNoResult.Inst (MInst.TestBitAndBranch kind taken not_taken rn bit)))
4135
+
4136
+ ;; Helper for emitting `tbnz` instructions.
4137
+ (decl tbnz (BranchTarget BranchTarget Reg u8) SideEffectNoResult)
4138
+ (rule (tbnz taken not_taken rn bit)
4139
+ (test_branch (TestBitAndBranchKind.NZ) taken not_taken rn bit))
4140
+
4141
+ ;; Helper for emitting `tbz` instructions.
4142
+ (decl tbz (BranchTarget BranchTarget Reg u8) SideEffectNoResult)
4143
+ (rule (tbz taken not_taken rn bit)
4144
+ (test_branch (TestBitAndBranchKind.Z) taken not_taken rn bit))
4145
+
4146
+ ;; Helper for emitting `MInst.MovToNZCV` instructions.
4147
+ (decl mov_to_nzcv (Reg) ProducesFlags)
4148
+ (rule (mov_to_nzcv rn)
4149
+ (ProducesFlags.ProducesFlagsSideEffect
4150
+ (MInst.MovToNZCV rn)))
4151
+
4152
+ ;; Helper for emitting `MInst.EmitIsland` instructions.
4153
+ (decl emit_island (CodeOffset) SideEffectNoResult)
4154
+ (rule (emit_island needed_space)
4155
+ (SideEffectNoResult.Inst
4156
+ (MInst.EmitIsland needed_space)))
4157
+
4158
+ ;; Helper for emitting `br_table` sequences.
4159
+ (decl br_table_impl (u64 Reg MachLabel BoxVecMachLabel) Unit)
4160
+ (rule (br_table_impl (imm12_from_u64 jt_size) ridx default targets)
4161
+ (emit_side_effect (with_flags_side_effect
4162
+ (cmp_imm (OperandSize.Size32) ridx jt_size)
4163
+ (jt_sequence ridx default targets))))
4164
+ (rule -1 (br_table_impl jt_size ridx default targets)
4165
+ (let ((jt_size Reg (imm $I64 (ImmExtend.Zero) jt_size)))
4166
+ (emit_side_effect (with_flags_side_effect
4167
+ (cmp (OperandSize.Size32) ridx jt_size)
4168
+ (jt_sequence ridx default targets)))))
4169
+
4170
+ ;; Helper for emitting the `uzp1` instruction
4171
+ (decl vec_uzp1 (Reg Reg VectorSize) Reg)
4172
+ (rule (vec_uzp1 rn rm size) (vec_rrr (VecALUOp.Uzp1) rn rm size))
4173
+
4174
+ ;; Helper for emitting the `uzp2` instruction
4175
+ (decl vec_uzp2 (Reg Reg VectorSize) Reg)
4176
+ (rule (vec_uzp2 rn rm size) (vec_rrr (VecALUOp.Uzp2) rn rm size))
4177
+
4178
+ ;; Helper for emitting the `zip1` instruction
4179
+ (decl vec_zip1 (Reg Reg VectorSize) Reg)
4180
+ (rule (vec_zip1 rn rm size) (vec_rrr (VecALUOp.Zip1) rn rm size))
4181
+
4182
+ ;; Helper for emitting the `zip2` instruction
4183
+ (decl vec_zip2 (Reg Reg VectorSize) Reg)
4184
+ (rule (vec_zip2 rn rm size) (vec_rrr (VecALUOp.Zip2) rn rm size))
4185
+
4186
+ ;; Helper for emitting the `trn1` instruction
4187
+ (decl vec_trn1 (Reg Reg VectorSize) Reg)
4188
+ (rule (vec_trn1 rn rm size) (vec_rrr (VecALUOp.Trn1) rn rm size))
4189
+
4190
+ ;; Helper for emitting the `trn2` instruction
4191
+ (decl vec_trn2 (Reg Reg VectorSize) Reg)
4192
+ (rule (vec_trn2 rn rm size) (vec_rrr (VecALUOp.Trn2) rn rm size))
4193
+
4194
+ ;; Helper for creating a zero value `ASIMDMovModImm` immediate.
4195
+ (decl asimd_mov_mod_imm_zero (ScalarSize) ASIMDMovModImm)
4196
+ (extern constructor asimd_mov_mod_imm_zero asimd_mov_mod_imm_zero)
4197
+
4198
+ ;; Helper for fallibly creating an `ASIMDMovModImm` immediate from its parts.
4199
+ (decl pure partial asimd_mov_mod_imm_from_u64 (u64 ScalarSize) ASIMDMovModImm)
4200
+ (extern constructor asimd_mov_mod_imm_from_u64 asimd_mov_mod_imm_from_u64)
4201
+
4202
+ ;; Helper for fallibly creating an `ASIMDFPModImm` immediate from its parts.
4203
+ (decl pure partial asimd_fp_mod_imm_from_u64 (u64 ScalarSize) ASIMDFPModImm)
4204
+ (extern constructor asimd_fp_mod_imm_from_u64 asimd_fp_mod_imm_from_u64)
4205
+
4206
+ ;; Helper for creating a `VecDupFPImm` instruction
4207
+ (decl vec_dup_fp_imm (ASIMDFPModImm VectorSize) Reg)
4208
+ (rule (vec_dup_fp_imm imm size)
4209
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
4210
+ (_ Unit (emit (MInst.VecDupFPImm dst imm size))))
4211
+ dst))
4212
+
4213
+ ;; Helper for creating a `FpuLoad64` instruction
4214
+ (decl fpu_load64 (AMode MemFlags) Reg)
4215
+ (rule (fpu_load64 amode flags)
4216
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
4217
+ (_ Unit (emit (MInst.FpuLoad64 dst amode flags))))
4218
+ dst))
4219
+
4220
+ ;; Helper for creating a `FpuLoad128` instruction
4221
+ (decl fpu_load128 (AMode MemFlags) Reg)
4222
+ (rule (fpu_load128 amode flags)
4223
+ (let ((dst WritableReg (temp_writable_reg $I8X16))
4224
+ (_ Unit (emit (MInst.FpuLoad128 dst amode flags))))
4225
+ dst))