wasmtime 22.0.0 → 23.0.2

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 (2164) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +127 -90
  3. data/ext/Cargo.toml +5 -5
  4. data/ext/cargo-vendor/cranelift-bforest-0.110.2/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cranelift-bforest-0.110.2/Cargo.toml +50 -0
  6. data/ext/cargo-vendor/cranelift-bitset-0.110.2/.cargo-checksum.json +1 -0
  7. data/ext/cargo-vendor/cranelift-bitset-0.110.2/Cargo.toml +60 -0
  8. data/ext/cargo-vendor/cranelift-bitset-0.110.2/src/compound.rs +508 -0
  9. data/ext/cargo-vendor/cranelift-bitset-0.110.2/src/lib.rs +19 -0
  10. data/ext/cargo-vendor/cranelift-bitset-0.110.2/src/scalar.rs +575 -0
  11. data/ext/cargo-vendor/cranelift-bitset-0.110.2/tests/bitset.rs +78 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.110.2/.cargo-checksum.json +1 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.110.2/Cargo.toml +206 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/binemit/stack_map.rs +141 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/context.rs +390 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/data_value.rs +410 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/ir/dfg.rs +1806 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/ir/globalvalue.rs +147 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/ir/immediates.rs +2109 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/ir/instructions.rs +1015 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/ir/jumptable.rs +168 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/ir/mod.rs +110 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/ir/trapcode.rs +148 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/ir/types.rs +643 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/ir/user_stack_maps.rs +101 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/aarch64/inst/emit.rs +3605 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/aarch64/inst/emit_tests.rs +7927 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/aarch64/inst/mod.rs +3058 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/aarch64/inst.isle +4221 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/aarch64/lower.isle +2969 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/aarch64/mod.rs +259 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/mod.rs +462 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/riscv64/inst/emit.rs +2741 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/riscv64/inst/emit_tests.rs +2219 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/riscv64/inst/mod.rs +1935 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/riscv64/inst.isle +3153 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/riscv64/lower/isle.rs +654 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/riscv64/lower.isle +2953 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/riscv64/mod.rs +265 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/s390x/inst/emit.rs +3421 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/s390x/inst/mod.rs +3395 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/s390x/lower.isle +3983 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/s390x/mod.rs +220 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/x64/inst/emit.rs +4297 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/x64/inst/emit_state.rs +65 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/x64/inst/mod.rs +2818 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/x64/inst.isle +5299 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/x64/lower.isle +4819 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isa/x64/mod.rs +239 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/isle_prelude.rs +965 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/legalizer/mod.rs +343 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/lib.rs +106 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/machinst/abi.rs +2427 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/machinst/buffer.rs +2544 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/machinst/helpers.rs +23 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/machinst/isle.rs +908 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/machinst/lower.rs +1462 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/machinst/mod.rs +564 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/machinst/vcode.rs +1840 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/prelude.isle +654 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/prelude_lower.isle +1070 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.110.2/src/write.rs +660 -0
  63. data/ext/cargo-vendor/cranelift-codegen-meta-0.110.2/.cargo-checksum.json +1 -0
  64. data/ext/cargo-vendor/cranelift-codegen-meta-0.110.2/Cargo.toml +45 -0
  65. data/ext/cargo-vendor/cranelift-codegen-meta-0.110.2/src/cdsl/types.rs +512 -0
  66. data/ext/cargo-vendor/cranelift-codegen-meta-0.110.2/src/cdsl/typevar.rs +980 -0
  67. data/ext/cargo-vendor/cranelift-codegen-meta-0.110.2/src/gen_inst.rs +1278 -0
  68. data/ext/cargo-vendor/cranelift-codegen-meta-0.110.2/src/shared/instructions.rs +3760 -0
  69. data/ext/cargo-vendor/cranelift-codegen-meta-0.110.2/src/shared/types.rs +143 -0
  70. data/ext/cargo-vendor/cranelift-codegen-shared-0.110.2/.cargo-checksum.json +1 -0
  71. data/ext/cargo-vendor/cranelift-codegen-shared-0.110.2/Cargo.toml +31 -0
  72. data/ext/cargo-vendor/cranelift-control-0.110.2/.cargo-checksum.json +1 -0
  73. data/ext/cargo-vendor/cranelift-control-0.110.2/Cargo.toml +39 -0
  74. data/ext/cargo-vendor/cranelift-entity-0.110.2/.cargo-checksum.json +1 -0
  75. data/ext/cargo-vendor/cranelift-entity-0.110.2/Cargo.toml +66 -0
  76. data/ext/cargo-vendor/cranelift-entity-0.110.2/src/set.rs +193 -0
  77. data/ext/cargo-vendor/cranelift-frontend-0.110.2/.cargo-checksum.json +1 -0
  78. data/ext/cargo-vendor/cranelift-frontend-0.110.2/Cargo.toml +87 -0
  79. data/ext/cargo-vendor/cranelift-frontend-0.110.2/src/frontend.rs +2867 -0
  80. data/ext/cargo-vendor/cranelift-isle-0.110.2/.cargo-checksum.json +1 -0
  81. data/ext/cargo-vendor/cranelift-isle-0.110.2/Cargo.toml +60 -0
  82. data/ext/cargo-vendor/cranelift-isle-0.110.2/src/codegen.rs +920 -0
  83. data/ext/cargo-vendor/cranelift-isle-0.110.2/src/parser.rs +562 -0
  84. data/ext/cargo-vendor/cranelift-isle-0.110.2/src/sema.rs +2503 -0
  85. data/ext/cargo-vendor/cranelift-isle-0.110.2/src/trie_again.rs +695 -0
  86. data/ext/cargo-vendor/cranelift-native-0.110.2/.cargo-checksum.json +1 -0
  87. data/ext/cargo-vendor/cranelift-native-0.110.2/Cargo.toml +52 -0
  88. data/ext/cargo-vendor/cranelift-native-0.110.2/src/lib.rs +188 -0
  89. data/ext/cargo-vendor/cranelift-wasm-0.110.2/.cargo-checksum.json +1 -0
  90. data/ext/cargo-vendor/cranelift-wasm-0.110.2/Cargo.toml +119 -0
  91. data/ext/cargo-vendor/cranelift-wasm-0.110.2/src/code_translator/bounds_checks.rs +731 -0
  92. data/ext/cargo-vendor/cranelift-wasm-0.110.2/src/code_translator.rs +3694 -0
  93. data/ext/cargo-vendor/cranelift-wasm-0.110.2/src/heap.rs +119 -0
  94. data/ext/cargo-vendor/cranelift-wasm-0.110.2/src/sections_translator.rs +333 -0
  95. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.23/.cargo-checksum.json +1 -0
  96. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.23/Cargo.toml +69 -0
  97. data/ext/cargo-vendor/termcolor-1.4.1/.cargo-checksum.json +1 -0
  98. data/ext/cargo-vendor/termcolor-1.4.1/COPYING +3 -0
  99. data/ext/cargo-vendor/termcolor-1.4.1/Cargo.toml +40 -0
  100. data/ext/cargo-vendor/termcolor-1.4.1/LICENSE-MIT +21 -0
  101. data/ext/cargo-vendor/termcolor-1.4.1/README.md +110 -0
  102. data/ext/cargo-vendor/termcolor-1.4.1/UNLICENSE +24 -0
  103. data/ext/cargo-vendor/termcolor-1.4.1/rustfmt.toml +2 -0
  104. data/ext/cargo-vendor/termcolor-1.4.1/src/lib.rs +2572 -0
  105. data/ext/cargo-vendor/wasi-common-23.0.2/.cargo-checksum.json +1 -0
  106. data/ext/cargo-vendor/wasi-common-23.0.2/Cargo.toml +234 -0
  107. data/ext/cargo-vendor/wasi-common-23.0.2/src/tokio/mod.rs +135 -0
  108. data/ext/cargo-vendor/wasi-common-23.0.2/tests/all/async_.rs +295 -0
  109. data/ext/cargo-vendor/wasi-common-23.0.2/tests/all/sync.rs +284 -0
  110. data/ext/cargo-vendor/wasm-encoder-0.212.0/.cargo-checksum.json +1 -0
  111. data/ext/cargo-vendor/wasm-encoder-0.212.0/Cargo.toml +49 -0
  112. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/component/types.rs +771 -0
  113. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/core/code.rs +3571 -0
  114. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/core/exports.rs +85 -0
  115. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/core/globals.rs +100 -0
  116. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/core/imports.rs +143 -0
  117. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/core/memories.rs +115 -0
  118. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/core/tables.rs +121 -0
  119. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/core/tags.rs +85 -0
  120. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/core/types.rs +663 -0
  121. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/lib.rs +218 -0
  122. data/ext/cargo-vendor/wasm-encoder-0.212.0/src/reencode.rs +1804 -0
  123. data/ext/cargo-vendor/wasm-encoder-0.215.0/.cargo-checksum.json +1 -0
  124. data/ext/cargo-vendor/wasm-encoder-0.215.0/Cargo.toml +65 -0
  125. data/ext/cargo-vendor/wasm-encoder-0.215.0/README.md +80 -0
  126. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/aliases.rs +160 -0
  127. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/builder.rs +455 -0
  128. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/canonicals.rs +159 -0
  129. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/components.rs +29 -0
  130. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/exports.rs +124 -0
  131. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/imports.rs +175 -0
  132. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/instances.rs +200 -0
  133. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/modules.rs +29 -0
  134. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/names.rs +149 -0
  135. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/start.rs +52 -0
  136. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/types.rs +802 -0
  137. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component.rs +168 -0
  138. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/code.rs +3947 -0
  139. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/custom.rs +73 -0
  140. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/data.rs +186 -0
  141. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/dump.rs +627 -0
  142. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/elements.rs +222 -0
  143. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/exports.rs +85 -0
  144. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/functions.rs +63 -0
  145. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/globals.rs +100 -0
  146. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/imports.rs +143 -0
  147. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/linking.rs +263 -0
  148. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/memories.rs +115 -0
  149. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/names.rs +298 -0
  150. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/producers.rs +181 -0
  151. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/start.rs +39 -0
  152. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/tables.rs +129 -0
  153. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/tags.rs +85 -0
  154. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/types.rs +678 -0
  155. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core.rs +168 -0
  156. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/lib.rs +218 -0
  157. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/raw.rs +30 -0
  158. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/reencode.rs +2002 -0
  159. data/ext/cargo-vendor/wasmparser-0.212.0/.cargo-checksum.json +1 -0
  160. data/ext/cargo-vendor/wasmparser-0.212.0/Cargo.lock +669 -0
  161. data/ext/cargo-vendor/wasmparser-0.212.0/Cargo.toml +112 -0
  162. data/ext/cargo-vendor/wasmparser-0.212.0/src/binary_reader.rs +1968 -0
  163. data/ext/cargo-vendor/wasmparser-0.212.0/src/features.rs +166 -0
  164. data/ext/cargo-vendor/wasmparser-0.212.0/src/lib.rs +814 -0
  165. data/ext/cargo-vendor/wasmparser-0.212.0/src/parser.rs +1682 -0
  166. data/ext/cargo-vendor/wasmparser-0.212.0/src/readers/core/operators.rs +453 -0
  167. data/ext/cargo-vendor/wasmparser-0.212.0/src/readers/core/tables.rs +93 -0
  168. data/ext/cargo-vendor/wasmparser-0.212.0/src/readers/core/types.rs +1941 -0
  169. data/ext/cargo-vendor/wasmparser-0.212.0/src/resources.rs +234 -0
  170. data/ext/cargo-vendor/wasmparser-0.212.0/src/validator/component.rs +3252 -0
  171. data/ext/cargo-vendor/wasmparser-0.212.0/src/validator/core.rs +1454 -0
  172. data/ext/cargo-vendor/wasmparser-0.212.0/src/validator/operators.rs +4230 -0
  173. data/ext/cargo-vendor/wasmparser-0.212.0/src/validator/types.rs +4598 -0
  174. data/ext/cargo-vendor/wasmparser-0.212.0/src/validator.rs +1632 -0
  175. data/ext/cargo-vendor/wasmprinter-0.212.0/.cargo-checksum.json +1 -0
  176. data/ext/cargo-vendor/wasmprinter-0.212.0/Cargo.toml +54 -0
  177. data/ext/cargo-vendor/wasmprinter-0.212.0/src/lib.rs +3221 -0
  178. data/ext/cargo-vendor/wasmprinter-0.212.0/src/operator.rs +1189 -0
  179. data/ext/cargo-vendor/wasmprinter-0.212.0/src/print.rs +190 -0
  180. data/ext/cargo-vendor/wasmprinter-0.212.0/tests/all.rs +48 -0
  181. data/ext/cargo-vendor/wasmtime-23.0.2/.cargo-checksum.json +1 -0
  182. data/ext/cargo-vendor/wasmtime-23.0.2/Cargo.toml +399 -0
  183. data/ext/cargo-vendor/wasmtime-23.0.2/build.rs +38 -0
  184. data/ext/cargo-vendor/wasmtime-23.0.2/src/compile/code_builder.rs +274 -0
  185. data/ext/cargo-vendor/wasmtime-23.0.2/src/compile/runtime.rs +167 -0
  186. data/ext/cargo-vendor/wasmtime-23.0.2/src/compile.rs +881 -0
  187. data/ext/cargo-vendor/wasmtime-23.0.2/src/config.rs +2902 -0
  188. data/ext/cargo-vendor/wasmtime-23.0.2/src/engine/serialization.rs +893 -0
  189. data/ext/cargo-vendor/wasmtime-23.0.2/src/engine.rs +719 -0
  190. data/ext/cargo-vendor/wasmtime-23.0.2/src/lib.rs +406 -0
  191. data/ext/cargo-vendor/wasmtime-23.0.2/src/profiling_agent/jitdump.rs +65 -0
  192. data/ext/cargo-vendor/wasmtime-23.0.2/src/profiling_agent/perfmap.rs +47 -0
  193. data/ext/cargo-vendor/wasmtime-23.0.2/src/profiling_agent/vtune.rs +80 -0
  194. data/ext/cargo-vendor/wasmtime-23.0.2/src/profiling_agent.rs +104 -0
  195. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/code_memory.rs +337 -0
  196. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/bindgen_examples/mod.rs +488 -0
  197. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/component.rs +811 -0
  198. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/func/host.rs +439 -0
  199. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/func/options.rs +552 -0
  200. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/func/typed.rs +2497 -0
  201. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/func.rs +688 -0
  202. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/instance.rs +846 -0
  203. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/linker.rs +673 -0
  204. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/matching.rs +216 -0
  205. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/mod.rs +663 -0
  206. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/resources.rs +1132 -0
  207. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/component/values.rs +979 -0
  208. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/coredump.rs +339 -0
  209. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/debug.rs +165 -0
  210. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/externals/global.rs +310 -0
  211. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/externals/table.rs +480 -0
  212. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/func/typed.rs +788 -0
  213. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/func.rs +2593 -0
  214. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/gc/disabled/rooting.rs +224 -0
  215. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/gc/enabled/externref.rs +591 -0
  216. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/gc/enabled/rooting.rs +1590 -0
  217. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/instance.rs +989 -0
  218. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/instantiate.rs +332 -0
  219. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/limits.rs +398 -0
  220. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/linker.rs +1498 -0
  221. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/memory.rs +1101 -0
  222. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/module/registry.rs +353 -0
  223. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/module.rs +1179 -0
  224. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/profiling.rs +280 -0
  225. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/stack.rs +72 -0
  226. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/store/data.rs +301 -0
  227. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/store.rs +2873 -0
  228. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/trampoline/func.rs +93 -0
  229. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/trampoline/memory.rs +295 -0
  230. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/trampoline/table.rs +28 -0
  231. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/trampoline.rs +75 -0
  232. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/trap.rs +642 -0
  233. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/types/matching.rs +428 -0
  234. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/types.rs +2771 -0
  235. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/values.rs +966 -0
  236. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/arch/riscv64.rs +41 -0
  237. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/component/libcalls.rs +571 -0
  238. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/component/resources.rs +351 -0
  239. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/component.rs +857 -0
  240. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/const_expr.rs +102 -0
  241. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/cow.rs +988 -0
  242. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/gc/disabled.rs +23 -0
  243. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/gc/enabled/drc.rs +964 -0
  244. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/gc/enabled/free_list.rs +770 -0
  245. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/gc/gc_ref.rs +490 -0
  246. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/gc/gc_runtime.rs +505 -0
  247. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/gc.rs +244 -0
  248. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator/on_demand.rs +219 -0
  249. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator/pooling/decommit_queue.rs +199 -0
  250. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +93 -0
  251. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +78 -0
  252. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +703 -0
  253. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +990 -0
  254. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator/pooling/table_pool.rs +245 -0
  255. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +279 -0
  256. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator/pooling.rs +793 -0
  257. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance/allocator.rs +808 -0
  258. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/instance.rs +1518 -0
  259. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/libcalls.rs +832 -0
  260. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/memory.rs +815 -0
  261. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/mmap.rs +217 -0
  262. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/mmap_vec.rs +159 -0
  263. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/module_id.rs +19 -0
  264. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/mpk/disabled.rs +43 -0
  265. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/mpk/enabled.rs +213 -0
  266. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/mpk/mod.rs +59 -0
  267. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/mpk/sys.rs +113 -0
  268. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/custom/mmap.rs +112 -0
  269. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/custom/mod.rs +34 -0
  270. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/custom/unwind.rs +17 -0
  271. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/custom/vm.rs +105 -0
  272. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/miri/mmap.rs +98 -0
  273. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/miri/unwind.rs +17 -0
  274. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/unix/mmap.rs +159 -0
  275. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/unix/signals.rs +407 -0
  276. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/unix/unwind.rs +149 -0
  277. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/windows/mmap.rs +220 -0
  278. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/sys/windows/unwind.rs +46 -0
  279. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/table.rs +898 -0
  280. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/threads/shared_memory.rs +235 -0
  281. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/threads/shared_memory_disabled.rs +104 -0
  282. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/traphandlers.rs +767 -0
  283. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/vmcontext/vm_host_func_context.rs +79 -0
  284. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm/vmcontext.rs +1246 -0
  285. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime/vm.rs +403 -0
  286. data/ext/cargo-vendor/wasmtime-23.0.2/src/runtime.rs +113 -0
  287. data/ext/cargo-vendor/wasmtime-asm-macros-23.0.2/.cargo-checksum.json +1 -0
  288. data/ext/cargo-vendor/wasmtime-asm-macros-23.0.2/Cargo.toml +32 -0
  289. data/ext/cargo-vendor/wasmtime-cache-23.0.2/.cargo-checksum.json +1 -0
  290. data/ext/cargo-vendor/wasmtime-cache-23.0.2/Cargo.toml +103 -0
  291. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/.cargo-checksum.json +1 -0
  292. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/Cargo.toml +106 -0
  293. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/src/bindgen.rs +500 -0
  294. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/codegen.rs +698 -0
  295. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/char.rs +268 -0
  296. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/char_async.rs +291 -0
  297. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/conventions.rs +706 -0
  298. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/conventions_async.rs +757 -0
  299. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/dead-code.rs +194 -0
  300. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/dead-code_async.rs +213 -0
  301. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/direct-import.rs +120 -0
  302. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/direct-import_async.rs +132 -0
  303. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/empty.rs +74 -0
  304. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/empty_async.rs +80 -0
  305. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/flags.rs +743 -0
  306. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/flags_async.rs +791 -0
  307. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/floats.rs +343 -0
  308. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/floats_async.rs +376 -0
  309. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/function-new.rs +94 -0
  310. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/function-new_async.rs +103 -0
  311. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/integers.rs +873 -0
  312. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/integers_async.rs +976 -0
  313. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/lists.rs +1924 -0
  314. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/lists_async.rs +2114 -0
  315. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/many-arguments.rs +614 -0
  316. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/many-arguments_async.rs +638 -0
  317. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/multi-return.rs +357 -0
  318. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/multi-return_async.rs +391 -0
  319. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/multiversion.rs +354 -0
  320. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/multiversion_async.rs +379 -0
  321. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/records.rs +940 -0
  322. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/records_async.rs +1008 -0
  323. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/rename.rs +183 -0
  324. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/rename_async.rs +202 -0
  325. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/resources-export.rs +657 -0
  326. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/resources-export_async.rs +712 -0
  327. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/resources-import.rs +1088 -0
  328. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/resources-import_async.rs +1166 -0
  329. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/share-types.rs +315 -0
  330. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/share-types_async.rs +337 -0
  331. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/simple-functions.rs +399 -0
  332. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/simple-functions_async.rs +439 -0
  333. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/simple-lists.rs +427 -0
  334. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/simple-lists_async.rs +464 -0
  335. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/simple-wasi.rs +245 -0
  336. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/simple-wasi_async.rs +264 -0
  337. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/small-anonymous.rs +338 -0
  338. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/small-anonymous_async.rs +356 -0
  339. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/smoke-default.rs +94 -0
  340. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/smoke-default_async.rs +103 -0
  341. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/smoke-export.rs +149 -0
  342. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/smoke-export_async.rs +158 -0
  343. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/smoke.rs +133 -0
  344. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/smoke_async.rs +146 -0
  345. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/strings.rs +316 -0
  346. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/strings_async.rs +344 -0
  347. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/unversioned-foo.rs +165 -0
  348. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/unversioned-foo_async.rs +178 -0
  349. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/use-paths.rs +317 -0
  350. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/use-paths_async.rs +349 -0
  351. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/variants.rs +1896 -0
  352. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/variants_async.rs +2019 -0
  353. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/wat.rs +145 -0
  354. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/wat_async.rs +151 -0
  355. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/worlds-with-types.rs +175 -0
  356. data/ext/cargo-vendor/wasmtime-component-macro-23.0.2/tests/expanded/worlds-with-types_async.rs +191 -0
  357. data/ext/cargo-vendor/wasmtime-component-util-23.0.2/.cargo-checksum.json +1 -0
  358. data/ext/cargo-vendor/wasmtime-component-util-23.0.2/Cargo.toml +35 -0
  359. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/.cargo-checksum.json +1 -0
  360. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/Cargo.toml +125 -0
  361. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/compiler.rs +1029 -0
  362. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/gc.rs +257 -0
  363. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/transform/address_transform.rs +841 -0
  364. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/transform/attr.rs +328 -0
  365. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/transform/expression.rs +1264 -0
  366. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/transform/line_program.rs +287 -0
  367. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/transform/mod.rs +273 -0
  368. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/transform/range_info_builder.rs +234 -0
  369. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/transform/simulate.rs +423 -0
  370. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/transform/unit.rs +520 -0
  371. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/transform/utils.rs +165 -0
  372. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug/write_debuginfo.rs +176 -0
  373. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/debug.rs +178 -0
  374. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/func_environ.rs +2721 -0
  375. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/gc/enabled.rs +648 -0
  376. data/ext/cargo-vendor/wasmtime-cranelift-23.0.2/src/lib.rs +458 -0
  377. data/ext/cargo-vendor/wasmtime-environ-23.0.2/.cargo-checksum.json +1 -0
  378. data/ext/cargo-vendor/wasmtime-environ-23.0.2/Cargo.lock +792 -0
  379. data/ext/cargo-vendor/wasmtime-environ-23.0.2/Cargo.toml +185 -0
  380. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/compile/mod.rs +379 -0
  381. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/compile/module_environ.rs +1264 -0
  382. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/component/dfg.rs +718 -0
  383. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/component/info.rs +683 -0
  384. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/component/names.rs +275 -0
  385. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/component/translate/inline.rs +1333 -0
  386. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/component/translate.rs +993 -0
  387. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/component/types.rs +1041 -0
  388. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/component/types_builder.rs +976 -0
  389. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/component.rs +109 -0
  390. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/lib.rs +64 -0
  391. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/module.rs +702 -0
  392. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/stack_map.rs +31 -0
  393. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/tunables.rs +165 -0
  394. data/ext/cargo-vendor/wasmtime-environ-23.0.2/src/vmoffsets.rs +897 -0
  395. data/ext/cargo-vendor/wasmtime-fiber-23.0.2/.cargo-checksum.json +1 -0
  396. data/ext/cargo-vendor/wasmtime-fiber-23.0.2/Cargo.toml +75 -0
  397. data/ext/cargo-vendor/wasmtime-jit-debug-23.0.2/.cargo-checksum.json +1 -0
  398. data/ext/cargo-vendor/wasmtime-jit-debug-23.0.2/Cargo.toml +77 -0
  399. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-23.0.2/.cargo-checksum.json +1 -0
  400. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-23.0.2/Cargo.toml +62 -0
  401. data/ext/cargo-vendor/wasmtime-slab-23.0.2/.cargo-checksum.json +1 -0
  402. data/ext/cargo-vendor/wasmtime-slab-23.0.2/Cargo.toml +31 -0
  403. data/ext/cargo-vendor/wasmtime-types-23.0.2/.cargo-checksum.json +1 -0
  404. data/ext/cargo-vendor/wasmtime-types-23.0.2/Cargo.toml +71 -0
  405. data/ext/cargo-vendor/wasmtime-types-23.0.2/src/lib.rs +1760 -0
  406. data/ext/cargo-vendor/wasmtime-types-23.0.2/src/prelude.rs +86 -0
  407. data/ext/cargo-vendor/wasmtime-versioned-export-macros-23.0.2/.cargo-checksum.json +1 -0
  408. data/ext/cargo-vendor/wasmtime-versioned-export-macros-23.0.2/Cargo.toml +40 -0
  409. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/.cargo-checksum.json +1 -0
  410. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/Cargo.toml +215 -0
  411. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/src/bindings.rs +561 -0
  412. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/src/filesystem.rs +448 -0
  413. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/src/host/filesystem.rs +1091 -0
  414. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/src/host/io.rs +391 -0
  415. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/src/lib.rs +419 -0
  416. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/src/preview1.rs +2801 -0
  417. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/src/stdio.rs +596 -0
  418. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/tests/all/api.rs +197 -0
  419. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/tests/all/async_.rs +397 -0
  420. data/ext/cargo-vendor/wasmtime-wasi-23.0.2/tests/all/sync.rs +331 -0
  421. data/ext/cargo-vendor/wasmtime-winch-23.0.2/.cargo-checksum.json +1 -0
  422. data/ext/cargo-vendor/wasmtime-winch-23.0.2/Cargo.toml +92 -0
  423. data/ext/cargo-vendor/wasmtime-winch-23.0.2/src/compiler.rs +242 -0
  424. data/ext/cargo-vendor/wasmtime-wit-bindgen-23.0.2/.cargo-checksum.json +1 -0
  425. data/ext/cargo-vendor/wasmtime-wit-bindgen-23.0.2/Cargo.toml +57 -0
  426. data/ext/cargo-vendor/wasmtime-wit-bindgen-23.0.2/src/lib.rs +2777 -0
  427. data/ext/cargo-vendor/wast-215.0.0/.cargo-checksum.json +1 -0
  428. data/ext/cargo-vendor/wast-215.0.0/Cargo.toml +101 -0
  429. data/ext/cargo-vendor/wast-215.0.0/src/component/binary.rs +1014 -0
  430. data/ext/cargo-vendor/wast-215.0.0/src/component/component.rs +320 -0
  431. data/ext/cargo-vendor/wast-215.0.0/src/component/expand.rs +875 -0
  432. data/ext/cargo-vendor/wast-215.0.0/src/component/resolve.rs +988 -0
  433. data/ext/cargo-vendor/wast-215.0.0/src/component.rs +28 -0
  434. data/ext/cargo-vendor/wast-215.0.0/src/core/binary/dwarf.rs +610 -0
  435. data/ext/cargo-vendor/wast-215.0.0/src/core/binary/dwarf_disabled.rs +41 -0
  436. data/ext/cargo-vendor/wast-215.0.0/src/core/binary.rs +1542 -0
  437. data/ext/cargo-vendor/wast-215.0.0/src/core/expr.rs +2110 -0
  438. data/ext/cargo-vendor/wast-215.0.0/src/core/memory.rs +279 -0
  439. data/ext/cargo-vendor/wast-215.0.0/src/core/module.rs +215 -0
  440. data/ext/cargo-vendor/wast-215.0.0/src/core/resolve/deinline_import_export.rs +232 -0
  441. data/ext/cargo-vendor/wast-215.0.0/src/core/resolve/names.rs +791 -0
  442. data/ext/cargo-vendor/wast-215.0.0/src/core/resolve/types.rs +270 -0
  443. data/ext/cargo-vendor/wast-215.0.0/src/core/table.rs +308 -0
  444. data/ext/cargo-vendor/wast-215.0.0/src/core/types.rs +1057 -0
  445. data/ext/cargo-vendor/wast-215.0.0/src/core.rs +30 -0
  446. data/ext/cargo-vendor/wast-215.0.0/src/lib.rs +556 -0
  447. data/ext/cargo-vendor/wast-215.0.0/src/parser.rs +1434 -0
  448. data/ext/cargo-vendor/wast-215.0.0/src/wat.rs +68 -0
  449. data/ext/cargo-vendor/wat-1.215.0/.cargo-checksum.json +1 -0
  450. data/ext/cargo-vendor/wat-1.215.0/Cargo.toml +56 -0
  451. data/ext/cargo-vendor/wat-1.215.0/src/lib.rs +469 -0
  452. data/ext/cargo-vendor/wiggle-23.0.2/.cargo-checksum.json +1 -0
  453. data/ext/cargo-vendor/wiggle-23.0.2/Cargo.toml +110 -0
  454. data/ext/cargo-vendor/wiggle-generate-23.0.2/.cargo-checksum.json +1 -0
  455. data/ext/cargo-vendor/wiggle-generate-23.0.2/Cargo.toml +76 -0
  456. data/ext/cargo-vendor/wiggle-macro-23.0.2/.cargo-checksum.json +1 -0
  457. data/ext/cargo-vendor/wiggle-macro-23.0.2/Cargo.toml +59 -0
  458. data/ext/cargo-vendor/winapi-util-0.1.9/.cargo-checksum.json +1 -0
  459. data/ext/cargo-vendor/winapi-util-0.1.9/COPYING +3 -0
  460. data/ext/cargo-vendor/winapi-util-0.1.9/Cargo.toml +53 -0
  461. data/ext/cargo-vendor/winapi-util-0.1.9/LICENSE-MIT +21 -0
  462. data/ext/cargo-vendor/winapi-util-0.1.9/README.md +64 -0
  463. data/ext/cargo-vendor/winapi-util-0.1.9/UNLICENSE +24 -0
  464. data/ext/cargo-vendor/winapi-util-0.1.9/rustfmt.toml +2 -0
  465. data/ext/cargo-vendor/winapi-util-0.1.9/src/console.rs +407 -0
  466. data/ext/cargo-vendor/winapi-util-0.1.9/src/file.rs +166 -0
  467. data/ext/cargo-vendor/winapi-util-0.1.9/src/lib.rs +35 -0
  468. data/ext/cargo-vendor/winapi-util-0.1.9/src/sysinfo.rs +161 -0
  469. data/ext/cargo-vendor/winapi-util-0.1.9/src/win.rs +246 -0
  470. data/ext/cargo-vendor/winch-codegen-0.21.2/.cargo-checksum.json +1 -0
  471. data/ext/cargo-vendor/winch-codegen-0.21.2/Cargo.toml +87 -0
  472. data/ext/cargo-vendor/winch-codegen-0.21.2/src/codegen/env.rs +449 -0
  473. data/ext/cargo-vendor/winch-codegen-0.21.2/src/codegen/mod.rs +878 -0
  474. data/ext/cargo-vendor/winch-codegen-0.21.2/src/visitor.rs +2154 -0
  475. data/ext/cargo-vendor/wit-parser-0.212.0/.cargo-checksum.json +1 -0
  476. data/ext/cargo-vendor/wit-parser-0.212.0/Cargo.toml +112 -0
  477. data/ext/cargo-vendor/wit-parser-0.212.0/src/ast/lex.rs +751 -0
  478. data/ext/cargo-vendor/wit-parser-0.212.0/src/ast/resolve.rs +1539 -0
  479. data/ext/cargo-vendor/wit-parser-0.212.0/src/ast.rs +1851 -0
  480. data/ext/cargo-vendor/wit-parser-0.212.0/src/decoding.rs +1798 -0
  481. data/ext/cargo-vendor/wit-parser-0.212.0/src/lib.rs +888 -0
  482. data/ext/cargo-vendor/wit-parser-0.212.0/src/resolve.rs +2740 -0
  483. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/feature-gates.wit.json +308 -0
  484. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-file-multi-package/a.wit +23 -0
  485. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-file-multi-package/b.wit +23 -0
  486. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-file-multi-package.wit.json +250 -0
  487. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-package-shared-deps/deps/dep1/types.wit +2 -0
  488. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-package-shared-deps/deps/dep2/types.wit +2 -0
  489. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-package-shared-deps/packages.wit +13 -0
  490. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-package-shared-deps.wit.json +83 -0
  491. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-package-transitive-deps/deps/dep1/types.wit +9 -0
  492. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-package-transitive-deps/deps/dep2/types.wit +5 -0
  493. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-package-transitive-deps/packages.wit +11 -0
  494. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/multi-package-transitive-deps.wit.json +116 -0
  495. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-explicit-colliding-decl-names.wit +23 -0
  496. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-explicit-colliding-decl-names.wit.json +130 -0
  497. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-explicit-internal-references.wit +15 -0
  498. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-explicit-internal-references.wit.json +87 -0
  499. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-explicit-with-semver.wit +23 -0
  500. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-explicit-with-semver.wit.json +130 -0
  501. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-multiple-explicit.wit +23 -0
  502. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-multiple-explicit.wit.json +130 -0
  503. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-single-explicit.wit +11 -0
  504. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/packages-single-explicit.wit.json +70 -0
  505. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/explicit-packages-colliding-names.wit +3 -0
  506. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/explicit-packages-colliding-names.wit.result +1 -0
  507. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/explicit-packages-with-error.wit +13 -0
  508. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/explicit-packages-with-error.wit.result +8 -0
  509. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/mix-explicit-then-implicit-package.wit +23 -0
  510. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/mix-explicit-then-implicit-package.wit.result +1 -0
  511. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/mix-implicit-then-explicit-package.wit +23 -0
  512. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/mix-implicit-then-explicit-package.wit.result +5 -0
  513. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/multi-file-missing-delimiter/observe.wit +5 -0
  514. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/multi-file-missing-delimiter/world.wit +5 -0
  515. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/multi-file-missing-delimiter.wit.result +9 -0
  516. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/multiple-package-inline-cycle.wit +11 -0
  517. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/multiple-package-inline-cycle.wit.result +5 -0
  518. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/multiple-packages-no-scope-blocks.wit +15 -0
  519. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/parse-fail/multiple-packages-no-scope-blocks.wit.result +5 -0
  520. data/ext/cargo-vendor/wit-parser-0.212.0/tests/ui/since-and-unstable.wit.json +583 -0
  521. data/ext/src/ruby_api/memory.rs +2 -1
  522. data/lib/wasmtime/version.rb +1 -1
  523. metadata +1736 -1643
  524. data/ext/cargo-vendor/cranelift-bforest-0.109.0/.cargo-checksum.json +0 -1
  525. data/ext/cargo-vendor/cranelift-bforest-0.109.0/Cargo.toml +0 -41
  526. data/ext/cargo-vendor/cranelift-codegen-0.109.0/.cargo-checksum.json +0 -1
  527. data/ext/cargo-vendor/cranelift-codegen-0.109.0/Cargo.toml +0 -193
  528. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/binemit/stack_map.rs +0 -155
  529. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/bitset.rs +0 -187
  530. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/context.rs +0 -384
  531. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/data_value.rs +0 -385
  532. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/dfg.rs +0 -1777
  533. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/globalvalue.rs +0 -147
  534. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/immediates.rs +0 -1612
  535. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/instructions.rs +0 -1020
  536. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/jumptable.rs +0 -168
  537. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/mod.rs +0 -108
  538. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/trapcode.rs +0 -149
  539. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/types.rs +0 -627
  540. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/emit.rs +0 -3584
  541. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/emit_tests.rs +0 -7901
  542. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/mod.rs +0 -3060
  543. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst.isle +0 -4218
  544. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/lower.isle +0 -2933
  545. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/mod.rs +0 -242
  546. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/mod.rs +0 -449
  547. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/emit.rs +0 -2682
  548. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/emit_tests.rs +0 -2215
  549. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/mod.rs +0 -1938
  550. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst.isle +0 -3127
  551. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/lower/isle.rs +0 -649
  552. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/lower.isle +0 -2923
  553. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/mod.rs +0 -260
  554. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/emit.rs +0 -3401
  555. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/mod.rs +0 -3401
  556. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/lower.isle +0 -3995
  557. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/mod.rs +0 -215
  558. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit.rs +0 -4287
  559. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit_state.rs +0 -52
  560. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/mod.rs +0 -2821
  561. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst.isle +0 -5289
  562. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/lower.isle +0 -4810
  563. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/mod.rs +0 -234
  564. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isle_prelude.rs +0 -986
  565. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/legalizer/mod.rs +0 -348
  566. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/lib.rs +0 -106
  567. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/abi.rs +0 -2419
  568. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/buffer.rs +0 -2508
  569. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/helpers.rs +0 -33
  570. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/isle.rs +0 -909
  571. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/lower.rs +0 -1432
  572. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/mod.rs +0 -551
  573. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/vcode.rs +0 -1741
  574. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/prelude.isle +0 -664
  575. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/prelude_lower.isle +0 -1073
  576. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/write.rs +0 -638
  577. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/.cargo-checksum.json +0 -1
  578. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/Cargo.toml +0 -36
  579. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/cdsl/types.rs +0 -496
  580. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/cdsl/typevar.rs +0 -980
  581. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/gen_inst.rs +0 -1278
  582. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/shared/instructions.rs +0 -3791
  583. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/shared/types.rs +0 -137
  584. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/.cargo-checksum.json +0 -1
  585. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/Cargo.toml +0 -22
  586. data/ext/cargo-vendor/cranelift-control-0.109.0/.cargo-checksum.json +0 -1
  587. data/ext/cargo-vendor/cranelift-control-0.109.0/Cargo.toml +0 -30
  588. data/ext/cargo-vendor/cranelift-entity-0.109.0/.cargo-checksum.json +0 -1
  589. data/ext/cargo-vendor/cranelift-entity-0.109.0/Cargo.toml +0 -53
  590. data/ext/cargo-vendor/cranelift-entity-0.109.0/src/set.rs +0 -290
  591. data/ext/cargo-vendor/cranelift-frontend-0.109.0/.cargo-checksum.json +0 -1
  592. data/ext/cargo-vendor/cranelift-frontend-0.109.0/Cargo.toml +0 -68
  593. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/frontend.rs +0 -1857
  594. data/ext/cargo-vendor/cranelift-isle-0.109.0/.cargo-checksum.json +0 -1
  595. data/ext/cargo-vendor/cranelift-isle-0.109.0/Cargo.toml +0 -47
  596. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/codegen.rs +0 -886
  597. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/parser.rs +0 -562
  598. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/sema.rs +0 -2492
  599. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/trie_again.rs +0 -684
  600. data/ext/cargo-vendor/cranelift-native-0.109.0/.cargo-checksum.json +0 -1
  601. data/ext/cargo-vendor/cranelift-native-0.109.0/Cargo.toml +0 -43
  602. data/ext/cargo-vendor/cranelift-native-0.109.0/src/lib.rs +0 -188
  603. data/ext/cargo-vendor/cranelift-wasm-0.109.0/.cargo-checksum.json +0 -1
  604. data/ext/cargo-vendor/cranelift-wasm-0.109.0/Cargo.toml +0 -110
  605. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/code_translator/bounds_checks.rs +0 -713
  606. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/code_translator.rs +0 -3695
  607. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/heap.rs +0 -116
  608. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/sections_translator.rs +0 -343
  609. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/.cargo-checksum.json +0 -1
  610. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/Cargo.toml +0 -48
  611. data/ext/cargo-vendor/memoffset-0.9.0/.cargo-checksum.json +0 -1
  612. data/ext/cargo-vendor/memoffset-0.9.0/Cargo.toml +0 -37
  613. data/ext/cargo-vendor/memoffset-0.9.0/LICENSE +0 -19
  614. data/ext/cargo-vendor/memoffset-0.9.0/README.md +0 -85
  615. data/ext/cargo-vendor/memoffset-0.9.0/build.rs +0 -25
  616. data/ext/cargo-vendor/memoffset-0.9.0/src/lib.rs +0 -94
  617. data/ext/cargo-vendor/memoffset-0.9.0/src/offset_of.rs +0 -400
  618. data/ext/cargo-vendor/memoffset-0.9.0/src/raw_field.rs +0 -226
  619. data/ext/cargo-vendor/memoffset-0.9.0/src/span_of.rs +0 -263
  620. data/ext/cargo-vendor/wasi-common-22.0.0/.cargo-checksum.json +0 -1
  621. data/ext/cargo-vendor/wasi-common-22.0.0/Cargo.toml +0 -224
  622. data/ext/cargo-vendor/wasi-common-22.0.0/src/tokio/mod.rs +0 -137
  623. data/ext/cargo-vendor/wasi-common-22.0.0/tests/all/async_.rs +0 -293
  624. data/ext/cargo-vendor/wasi-common-22.0.0/tests/all/sync.rs +0 -279
  625. data/ext/cargo-vendor/wasm-encoder-0.209.1/.cargo-checksum.json +0 -1
  626. data/ext/cargo-vendor/wasm-encoder-0.209.1/Cargo.toml +0 -46
  627. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/component/types.rs +0 -792
  628. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/core/code.rs +0 -3595
  629. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/core/exports.rs +0 -98
  630. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/core/globals.rs +0 -112
  631. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/core/imports.rs +0 -157
  632. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/core/memories.rs +0 -128
  633. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/core/tables.rs +0 -134
  634. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/core/tags.rs +0 -104
  635. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/core/types.rs +0 -678
  636. data/ext/cargo-vendor/wasm-encoder-0.209.1/src/lib.rs +0 -215
  637. data/ext/cargo-vendor/wasmparser-0.209.1/.cargo-checksum.json +0 -1
  638. data/ext/cargo-vendor/wasmparser-0.209.1/Cargo.lock +0 -662
  639. data/ext/cargo-vendor/wasmparser-0.209.1/Cargo.toml +0 -109
  640. data/ext/cargo-vendor/wasmparser-0.209.1/src/binary_reader.rs +0 -1929
  641. data/ext/cargo-vendor/wasmparser-0.209.1/src/features.rs +0 -164
  642. data/ext/cargo-vendor/wasmparser-0.209.1/src/lib.rs +0 -814
  643. data/ext/cargo-vendor/wasmparser-0.209.1/src/parser.rs +0 -1682
  644. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/operators.rs +0 -423
  645. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/tables.rs +0 -93
  646. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/types.rs +0 -1788
  647. data/ext/cargo-vendor/wasmparser-0.209.1/src/resources.rs +0 -235
  648. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/component.rs +0 -3236
  649. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/core.rs +0 -1464
  650. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/operators.rs +0 -4231
  651. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/types.rs +0 -4550
  652. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator.rs +0 -1633
  653. data/ext/cargo-vendor/wasmprinter-0.209.1/.cargo-checksum.json +0 -1
  654. data/ext/cargo-vendor/wasmprinter-0.209.1/Cargo.toml +0 -51
  655. data/ext/cargo-vendor/wasmprinter-0.209.1/src/lib.rs +0 -3225
  656. data/ext/cargo-vendor/wasmprinter-0.209.1/src/operator.rs +0 -1171
  657. data/ext/cargo-vendor/wasmprinter-0.209.1/tests/all.rs +0 -293
  658. data/ext/cargo-vendor/wasmtime-22.0.0/.cargo-checksum.json +0 -1
  659. data/ext/cargo-vendor/wasmtime-22.0.0/Cargo.toml +0 -387
  660. data/ext/cargo-vendor/wasmtime-22.0.0/build.rs +0 -42
  661. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile/code_builder.rs +0 -275
  662. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile/runtime.rs +0 -167
  663. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile.rs +0 -917
  664. data/ext/cargo-vendor/wasmtime-22.0.0/src/config.rs +0 -2943
  665. data/ext/cargo-vendor/wasmtime-22.0.0/src/engine/serialization.rs +0 -890
  666. data/ext/cargo-vendor/wasmtime-22.0.0/src/engine.rs +0 -728
  667. data/ext/cargo-vendor/wasmtime-22.0.0/src/lib.rs +0 -389
  668. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/jitdump.rs +0 -67
  669. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/perfmap.rs +0 -48
  670. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/vtune.rs +0 -81
  671. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent.rs +0 -106
  672. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/code_memory.rs +0 -338
  673. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/mod.rs +0 -489
  674. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/component.rs +0 -656
  675. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/host.rs +0 -440
  676. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/options.rs +0 -555
  677. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/typed.rs +0 -2498
  678. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func.rs +0 -689
  679. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/instance.rs +0 -810
  680. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/linker.rs +0 -854
  681. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/matching.rs +0 -217
  682. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/mod.rs +0 -657
  683. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/resources.rs +0 -1133
  684. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/values.rs +0 -980
  685. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/coredump.rs +0 -342
  686. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/debug.rs +0 -166
  687. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals/global.rs +0 -310
  688. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals/table.rs +0 -481
  689. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/func/typed.rs +0 -780
  690. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/func.rs +0 -2564
  691. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/disabled/rooting.rs +0 -224
  692. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/externref.rs +0 -592
  693. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/rooting.rs +0 -1588
  694. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/instance.rs +0 -992
  695. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/instantiate.rs +0 -337
  696. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/limits.rs +0 -399
  697. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/linker.rs +0 -1499
  698. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/memory.rs +0 -998
  699. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/module/registry.rs +0 -353
  700. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/module.rs +0 -1322
  701. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/profiling.rs +0 -221
  702. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/stack.rs +0 -73
  703. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store/data.rs +0 -301
  704. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store.rs +0 -2824
  705. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/func.rs +0 -94
  706. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/memory.rs +0 -287
  707. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/table.rs +0 -29
  708. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline.rs +0 -78
  709. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trap.rs +0 -642
  710. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/types/matching.rs +0 -421
  711. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/types.rs +0 -2580
  712. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/values.rs +0 -966
  713. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/arch/riscv64.rs +0 -41
  714. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component/libcalls.rs +0 -571
  715. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component/resources.rs +0 -352
  716. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component.rs +0 -857
  717. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/const_expr.rs +0 -102
  718. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/cow.rs +0 -972
  719. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/disabled.rs +0 -24
  720. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled/drc.rs +0 -968
  721. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled/free_list.rs +0 -771
  722. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/gc_ref.rs +0 -491
  723. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/gc_runtime.rs +0 -506
  724. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc.rs +0 -245
  725. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/on_demand.rs +0 -220
  726. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/decommit_queue.rs +0 -194
  727. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +0 -94
  728. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +0 -78
  729. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +0 -707
  730. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +0 -975
  731. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/table_pool.rs +0 -245
  732. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +0 -278
  733. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling.rs +0 -794
  734. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator.rs +0 -801
  735. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance.rs +0 -1514
  736. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/libcalls.rs +0 -834
  737. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/memory.rs +0 -736
  738. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mmap.rs +0 -220
  739. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mmap_vec.rs +0 -162
  740. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/module_id.rs +0 -43
  741. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/disabled.rs +0 -43
  742. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/enabled.rs +0 -214
  743. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/mod.rs +0 -54
  744. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/sys.rs +0 -114
  745. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/mmap.rs +0 -112
  746. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/mod.rs +0 -34
  747. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/unwind.rs +0 -17
  748. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/vm.rs +0 -105
  749. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/mmap.rs +0 -95
  750. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/unwind.rs +0 -17
  751. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/mmap.rs +0 -162
  752. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/signals.rs +0 -407
  753. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/unwind.rs +0 -150
  754. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/mmap.rs +0 -221
  755. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/unwind.rs +0 -46
  756. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/table.rs +0 -899
  757. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/threads/shared_memory.rs +0 -233
  758. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/threads/shared_memory_disabled.rs +0 -101
  759. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers.rs +0 -768
  760. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/vmcontext/vm_host_func_context.rs +0 -79
  761. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/vmcontext.rs +0 -1302
  762. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm.rs +0 -277
  763. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime.rs +0 -113
  764. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/.cargo-checksum.json +0 -1
  765. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/Cargo.toml +0 -22
  766. data/ext/cargo-vendor/wasmtime-cache-22.0.0/.cargo-checksum.json +0 -1
  767. data/ext/cargo-vendor/wasmtime-cache-22.0.0/Cargo.toml +0 -89
  768. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/.cargo-checksum.json +0 -1
  769. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/Cargo.toml +0 -86
  770. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/src/bindgen.rs +0 -493
  771. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/codegen.rs +0 -651
  772. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/char.rs +0 -198
  773. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/char_async.rs +0 -215
  774. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/conventions.rs +0 -586
  775. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/conventions_async.rs +0 -631
  776. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/dead-code.rs +0 -165
  777. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/dead-code_async.rs +0 -178
  778. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/direct-import.rs +0 -91
  779. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/direct-import_async.rs +0 -97
  780. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/empty.rs +0 -45
  781. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/empty_async.rs +0 -45
  782. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/flags.rs +0 -637
  783. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/flags_async.rs +0 -679
  784. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/floats.rs +0 -255
  785. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/floats_async.rs +0 -282
  786. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/function-new.rs +0 -59
  787. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/function-new_async.rs +0 -62
  788. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/integers.rs +0 -722
  789. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/integers_async.rs +0 -819
  790. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/lists.rs +0 -1743
  791. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/lists_async.rs +0 -1927
  792. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/many-arguments.rs +0 -543
  793. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/many-arguments_async.rs +0 -561
  794. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multi-return.rs +0 -270
  795. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multi-return_async.rs +0 -298
  796. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multiversion.rs +0 -251
  797. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multiversion_async.rs +0 -270
  798. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/records.rs +0 -815
  799. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/records_async.rs +0 -877
  800. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/rename.rs +0 -154
  801. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/rename_async.rs +0 -167
  802. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-export.rs +0 -467
  803. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-export_async.rs +0 -516
  804. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-import.rs +0 -1014
  805. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-import_async.rs +0 -1086
  806. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/share-types.rs +0 -249
  807. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/share-types_async.rs +0 -265
  808. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-functions.rs +0 -313
  809. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-functions_async.rs +0 -347
  810. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-lists.rs +0 -350
  811. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-lists_async.rs +0 -381
  812. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-wasi.rs +0 -216
  813. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-wasi_async.rs +0 -229
  814. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/small-anonymous.rs +0 -275
  815. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/small-anonymous_async.rs +0 -287
  816. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-default.rs +0 -59
  817. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-default_async.rs +0 -62
  818. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-export.rs +0 -86
  819. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-export_async.rs +0 -89
  820. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke.rs +0 -104
  821. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke_async.rs +0 -111
  822. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/strings.rs +0 -247
  823. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/strings_async.rs +0 -269
  824. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/unversioned-foo.rs +0 -136
  825. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/unversioned-foo_async.rs +0 -143
  826. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/use-paths.rs +0 -288
  827. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/use-paths_async.rs +0 -314
  828. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/variants.rs +0 -1750
  829. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/variants_async.rs +0 -1867
  830. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/wat.rs +0 -84
  831. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/wat_async.rs +0 -84
  832. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/worlds-with-types.rs +0 -138
  833. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/worlds-with-types_async.rs +0 -148
  834. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/.cargo-checksum.json +0 -1
  835. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/Cargo.toml +0 -25
  836. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/.cargo-checksum.json +0 -1
  837. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/Cargo.toml +0 -115
  838. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/compiler.rs +0 -1067
  839. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/gc.rs +0 -252
  840. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/address_transform.rs +0 -783
  841. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/attr.rs +0 -320
  842. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/expression.rs +0 -1248
  843. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/line_program.rs +0 -287
  844. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/mod.rs +0 -256
  845. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/range_info_builder.rs +0 -221
  846. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/simulate.rs +0 -411
  847. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/unit.rs +0 -529
  848. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/utils.rs +0 -186
  849. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/write_debuginfo.rs +0 -196
  850. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug.rs +0 -18
  851. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/func_environ.rs +0 -2910
  852. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/gc/enabled.rs +0 -648
  853. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/lib.rs +0 -462
  854. data/ext/cargo-vendor/wasmtime-environ-22.0.0/.cargo-checksum.json +0 -1
  855. data/ext/cargo-vendor/wasmtime-environ-22.0.0/Cargo.lock +0 -774
  856. data/ext/cargo-vendor/wasmtime-environ-22.0.0/Cargo.toml +0 -161
  857. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/mod.rs +0 -374
  858. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_environ.rs +0 -1348
  859. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/dfg.rs +0 -691
  860. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/info.rs +0 -672
  861. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/translate/inline.rs +0 -1332
  862. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/translate.rs +0 -985
  863. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types.rs +0 -1038
  864. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types_builder.rs +0 -1004
  865. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component.rs +0 -107
  866. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/lib.rs +0 -151
  867. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module.rs +0 -704
  868. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/stack_map.rs +0 -37
  869. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/tunables.rs +0 -175
  870. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/vmoffsets.rs +0 -989
  871. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/.cargo-checksum.json +0 -1
  872. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/Cargo.toml +0 -65
  873. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/.cargo-checksum.json +0 -1
  874. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/Cargo.toml +0 -68
  875. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/.cargo-checksum.json +0 -1
  876. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/Cargo.toml +0 -52
  877. data/ext/cargo-vendor/wasmtime-slab-22.0.0/.cargo-checksum.json +0 -1
  878. data/ext/cargo-vendor/wasmtime-slab-22.0.0/Cargo.toml +0 -21
  879. data/ext/cargo-vendor/wasmtime-types-22.0.0/.cargo-checksum.json +0 -1
  880. data/ext/cargo-vendor/wasmtime-types-22.0.0/Cargo.toml +0 -56
  881. data/ext/cargo-vendor/wasmtime-types-22.0.0/src/lib.rs +0 -1737
  882. data/ext/cargo-vendor/wasmtime-versioned-export-macros-22.0.0/.cargo-checksum.json +0 -1
  883. data/ext/cargo-vendor/wasmtime-versioned-export-macros-22.0.0/Cargo.toml +0 -32
  884. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/.cargo-checksum.json +0 -1
  885. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/Cargo.toml +0 -201
  886. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/bindings.rs +0 -289
  887. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/filesystem.rs +0 -446
  888. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/filesystem.rs +0 -1091
  889. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/io.rs +0 -388
  890. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/lib.rs +0 -417
  891. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/preview1.rs +0 -2801
  892. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/stdio.rs +0 -533
  893. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/api.rs +0 -198
  894. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/async_.rs +0 -397
  895. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/sync.rs +0 -331
  896. data/ext/cargo-vendor/wasmtime-winch-22.0.0/.cargo-checksum.json +0 -1
  897. data/ext/cargo-vendor/wasmtime-winch-22.0.0/Cargo.toml +0 -82
  898. data/ext/cargo-vendor/wasmtime-winch-22.0.0/src/compiler.rs +0 -239
  899. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/.cargo-checksum.json +0 -1
  900. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/Cargo.toml +0 -47
  901. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/lib.rs +0 -2639
  902. data/ext/cargo-vendor/wast-209.0.1/.cargo-checksum.json +0 -1
  903. data/ext/cargo-vendor/wast-209.0.1/Cargo.toml +0 -60
  904. data/ext/cargo-vendor/wast-209.0.1/src/component/binary.rs +0 -1000
  905. data/ext/cargo-vendor/wast-209.0.1/src/component/component.rs +0 -321
  906. data/ext/cargo-vendor/wast-209.0.1/src/component/expand.rs +0 -875
  907. data/ext/cargo-vendor/wast-209.0.1/src/component/resolve.rs +0 -999
  908. data/ext/cargo-vendor/wast-209.0.1/src/component.rs +0 -28
  909. data/ext/cargo-vendor/wast-209.0.1/src/core/binary.rs +0 -1396
  910. data/ext/cargo-vendor/wast-209.0.1/src/core/expr.rs +0 -2016
  911. data/ext/cargo-vendor/wast-209.0.1/src/core/memory.rs +0 -284
  912. data/ext/cargo-vendor/wast-209.0.1/src/core/module.rs +0 -218
  913. data/ext/cargo-vendor/wast-209.0.1/src/core/resolve/deinline_import_export.rs +0 -235
  914. data/ext/cargo-vendor/wast-209.0.1/src/core/resolve/names.rs +0 -751
  915. data/ext/cargo-vendor/wast-209.0.1/src/core/resolve/types.rs +0 -267
  916. data/ext/cargo-vendor/wast-209.0.1/src/core/table.rs +0 -302
  917. data/ext/cargo-vendor/wast-209.0.1/src/core/types.rs +0 -901
  918. data/ext/cargo-vendor/wast-209.0.1/src/core.rs +0 -29
  919. data/ext/cargo-vendor/wast-209.0.1/src/lib.rs +0 -551
  920. data/ext/cargo-vendor/wast-209.0.1/src/parser.rs +0 -1414
  921. data/ext/cargo-vendor/wast-209.0.1/src/wat.rs +0 -71
  922. data/ext/cargo-vendor/wat-1.209.1/.cargo-checksum.json +0 -1
  923. data/ext/cargo-vendor/wat-1.209.1/Cargo.toml +0 -34
  924. data/ext/cargo-vendor/wat-1.209.1/src/lib.rs +0 -401
  925. data/ext/cargo-vendor/wiggle-22.0.0/.cargo-checksum.json +0 -1
  926. data/ext/cargo-vendor/wiggle-22.0.0/Cargo.toml +0 -124
  927. data/ext/cargo-vendor/wiggle-generate-22.0.0/.cargo-checksum.json +0 -1
  928. data/ext/cargo-vendor/wiggle-generate-22.0.0/Cargo.toml +0 -67
  929. data/ext/cargo-vendor/wiggle-generate-22.0.0/LICENSE +0 -220
  930. data/ext/cargo-vendor/wiggle-macro-22.0.0/.cargo-checksum.json +0 -1
  931. data/ext/cargo-vendor/wiggle-macro-22.0.0/Cargo.toml +0 -51
  932. data/ext/cargo-vendor/wiggle-macro-22.0.0/LICENSE +0 -220
  933. data/ext/cargo-vendor/winch-codegen-0.20.0/.cargo-checksum.json +0 -1
  934. data/ext/cargo-vendor/winch-codegen-0.20.0/Cargo.toml +0 -77
  935. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/env.rs +0 -448
  936. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/mod.rs +0 -882
  937. data/ext/cargo-vendor/winch-codegen-0.20.0/src/visitor.rs +0 -2149
  938. data/ext/cargo-vendor/wit-parser-0.209.1/.cargo-checksum.json +0 -1
  939. data/ext/cargo-vendor/wit-parser-0.209.1/Cargo.toml +0 -112
  940. data/ext/cargo-vendor/wit-parser-0.209.1/src/ast/lex.rs +0 -747
  941. data/ext/cargo-vendor/wit-parser-0.209.1/src/ast/resolve.rs +0 -1524
  942. data/ext/cargo-vendor/wit-parser-0.209.1/src/ast.rs +0 -1668
  943. data/ext/cargo-vendor/wit-parser-0.209.1/src/decoding.rs +0 -1795
  944. data/ext/cargo-vendor/wit-parser-0.209.1/src/lib.rs +0 -873
  945. data/ext/cargo-vendor/wit-parser-0.209.1/src/resolve.rs +0 -2498
  946. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/feature-gates.wit.json +0 -288
  947. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/since-and-unstable.wit.json +0 -549
  948. /data/ext/cargo-vendor/{cranelift-bforest-0.109.0 → cranelift-bforest-0.110.2}/LICENSE +0 -0
  949. /data/ext/cargo-vendor/{cranelift-bforest-0.109.0 → cranelift-bforest-0.110.2}/README.md +0 -0
  950. /data/ext/cargo-vendor/{cranelift-bforest-0.109.0 → cranelift-bforest-0.110.2}/src/lib.rs +0 -0
  951. /data/ext/cargo-vendor/{cranelift-bforest-0.109.0 → cranelift-bforest-0.110.2}/src/map.rs +0 -0
  952. /data/ext/cargo-vendor/{cranelift-bforest-0.109.0 → cranelift-bforest-0.110.2}/src/node.rs +0 -0
  953. /data/ext/cargo-vendor/{cranelift-bforest-0.109.0 → cranelift-bforest-0.110.2}/src/path.rs +0 -0
  954. /data/ext/cargo-vendor/{cranelift-bforest-0.109.0 → cranelift-bforest-0.110.2}/src/pool.rs +0 -0
  955. /data/ext/cargo-vendor/{cranelift-bforest-0.109.0 → cranelift-bforest-0.110.2}/src/set.rs +0 -0
  956. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/LICENSE +0 -0
  957. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/README.md +0 -0
  958. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/benches/x64-evex-encoding.rs +0 -0
  959. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/build.rs +0 -0
  960. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/alias_analysis.rs +0 -0
  961. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/binemit/mod.rs +0 -0
  962. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/cfg_printer.rs +0 -0
  963. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/constant_hash.rs +0 -0
  964. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ctxhash.rs +0 -0
  965. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/cursor.rs +0 -0
  966. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/dbg.rs +0 -0
  967. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/dominator_tree.rs +0 -0
  968. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/egraph/cost.rs +0 -0
  969. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/egraph/elaborate.rs +0 -0
  970. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/egraph.rs +0 -0
  971. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/flowgraph.rs +0 -0
  972. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/incremental_cache.rs +0 -0
  973. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/inst_predicates.rs +0 -0
  974. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/atomic_rmw_op.rs +0 -0
  975. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/builder.rs +0 -0
  976. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/condcodes.rs +0 -0
  977. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/constant.rs +0 -0
  978. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/dynamic_type.rs +0 -0
  979. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/entities.rs +0 -0
  980. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/extfunc.rs +0 -0
  981. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/extname.rs +0 -0
  982. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/function.rs +0 -0
  983. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/known_symbol.rs +0 -0
  984. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/layout.rs +0 -0
  985. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/libcall.rs +0 -0
  986. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/memflags.rs +0 -0
  987. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/memtype.rs +0 -0
  988. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/pcc.rs +0 -0
  989. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/progpoint.rs +0 -0
  990. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/sourceloc.rs +0 -0
  991. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ir/stackslot.rs +0 -0
  992. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/abi.rs +0 -0
  993. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/inst/args.rs +0 -0
  994. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/inst/imms.rs +0 -0
  995. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/inst/regs.rs +0 -0
  996. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  997. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/inst/unwind.rs +0 -0
  998. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/inst_neon.isle +0 -0
  999. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1000. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/lower/isle.rs +0 -0
  1001. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/lower.rs +0 -0
  1002. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1003. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/pcc.rs +0 -0
  1004. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/aarch64/settings.rs +0 -0
  1005. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/call_conv.rs +0 -0
  1006. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/abi.rs +0 -0
  1007. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/inst/args.rs +0 -0
  1008. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/inst/encode.rs +0 -0
  1009. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/inst/imms.rs +0 -0
  1010. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/inst/regs.rs +0 -0
  1011. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  1012. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/inst/unwind.rs +0 -0
  1013. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/inst/vector.rs +0 -0
  1014. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/inst_vector.isle +0 -0
  1015. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1016. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/lower.rs +0 -0
  1017. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/riscv64/settings.rs +0 -0
  1018. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/abi.rs +0 -0
  1019. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/inst/args.rs +0 -0
  1020. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/inst/emit_tests.rs +0 -0
  1021. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/inst/imms.rs +0 -0
  1022. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/inst/regs.rs +0 -0
  1023. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  1024. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/inst/unwind.rs +0 -0
  1025. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/inst.isle +0 -0
  1026. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1027. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/lower/isle.rs +0 -0
  1028. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/lower.rs +0 -0
  1029. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/s390x/settings.rs +0 -0
  1030. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/unwind/systemv.rs +0 -0
  1031. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/unwind/winx64.rs +0 -0
  1032. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/unwind.rs +0 -0
  1033. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/abi.rs +0 -0
  1034. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/encoding/evex.rs +0 -0
  1035. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/encoding/mod.rs +0 -0
  1036. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/encoding/rex.rs +0 -0
  1037. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/encoding/vex.rs +0 -0
  1038. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/inst/args.rs +0 -0
  1039. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/inst/emit_tests.rs +0 -0
  1040. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/inst/regs.rs +0 -0
  1041. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  1042. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1043. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/inst/unwind.rs +0 -0
  1044. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1045. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/lower/isle.rs +0 -0
  1046. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/lower.rs +0 -0
  1047. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/pcc.rs +0 -0
  1048. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/isa/x64/settings.rs +0 -0
  1049. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/iterators.rs +0 -0
  1050. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/legalizer/globalvalue.rs +0 -0
  1051. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/loop_analysis.rs +0 -0
  1052. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/machinst/blockorder.rs +0 -0
  1053. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/machinst/compile.rs +0 -0
  1054. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/machinst/inst_common.rs +0 -0
  1055. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/machinst/pcc.rs +0 -0
  1056. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/machinst/reg.rs +0 -0
  1057. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/machinst/valueregs.rs +0 -0
  1058. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/nan_canonicalization.rs +0 -0
  1059. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/README.md +0 -0
  1060. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/arithmetic.isle +0 -0
  1061. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/bitops.isle +0 -0
  1062. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/cprop.isle +0 -0
  1063. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/extends.isle +0 -0
  1064. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/generated_code.rs +0 -0
  1065. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/icmp.isle +0 -0
  1066. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/remat.isle +0 -0
  1067. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/selects.isle +0 -0
  1068. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/shifts.isle +0 -0
  1069. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/spaceship.isle +0 -0
  1070. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/spectre.isle +0 -0
  1071. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts/vector.isle +0 -0
  1072. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/opts.rs +0 -0
  1073. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/prelude_opt.isle +0 -0
  1074. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/print_errors.rs +0 -0
  1075. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/ranges.rs +0 -0
  1076. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/remove_constant_phis.rs +0 -0
  1077. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/result.rs +0 -0
  1078. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/scoped_hash_map.rs +0 -0
  1079. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/settings.rs +0 -0
  1080. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/souper_harvest.rs +0 -0
  1081. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/timing.rs +0 -0
  1082. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/traversals.rs +0 -0
  1083. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/unionfind.rs +0 -0
  1084. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/unreachable_code.rs +0 -0
  1085. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/value_label.rs +0 -0
  1086. /data/ext/cargo-vendor/{cranelift-codegen-0.109.0 → cranelift-codegen-0.110.2}/src/verifier/mod.rs +0 -0
  1087. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/LICENSE +0 -0
  1088. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/README.md +0 -0
  1089. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/cdsl/formats.rs +0 -0
  1090. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/cdsl/instructions.rs +0 -0
  1091. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/cdsl/isa.rs +0 -0
  1092. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/cdsl/mod.rs +0 -0
  1093. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/cdsl/operands.rs +0 -0
  1094. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/cdsl/settings.rs +0 -0
  1095. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/constant_hash.rs +0 -0
  1096. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/error.rs +0 -0
  1097. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/gen_isle.rs +0 -0
  1098. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/gen_settings.rs +0 -0
  1099. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/gen_types.rs +0 -0
  1100. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/isa/arm64.rs +0 -0
  1101. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/isa/mod.rs +0 -0
  1102. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/isa/riscv64.rs +0 -0
  1103. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/isa/s390x.rs +0 -0
  1104. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/isa/x86.rs +0 -0
  1105. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/isle.rs +0 -0
  1106. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/lib.rs +0 -0
  1107. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/shared/entities.rs +0 -0
  1108. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/shared/formats.rs +0 -0
  1109. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/shared/immediates.rs +0 -0
  1110. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/shared/mod.rs +0 -0
  1111. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/shared/settings.rs +0 -0
  1112. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/srcgen.rs +0 -0
  1113. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.109.0 → cranelift-codegen-meta-0.110.2}/src/unique_table.rs +0 -0
  1114. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.109.0 → cranelift-codegen-shared-0.110.2}/LICENSE +0 -0
  1115. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.109.0 → cranelift-codegen-shared-0.110.2}/README.md +0 -0
  1116. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.109.0 → cranelift-codegen-shared-0.110.2}/src/constant_hash.rs +0 -0
  1117. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.109.0 → cranelift-codegen-shared-0.110.2}/src/constants.rs +0 -0
  1118. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.109.0 → cranelift-codegen-shared-0.110.2}/src/lib.rs +0 -0
  1119. /data/ext/cargo-vendor/{cranelift-control-0.109.0 → cranelift-control-0.110.2}/LICENSE +0 -0
  1120. /data/ext/cargo-vendor/{cranelift-control-0.109.0 → cranelift-control-0.110.2}/README.md +0 -0
  1121. /data/ext/cargo-vendor/{cranelift-control-0.109.0 → cranelift-control-0.110.2}/src/chaos.rs +0 -0
  1122. /data/ext/cargo-vendor/{cranelift-control-0.109.0 → cranelift-control-0.110.2}/src/lib.rs +0 -0
  1123. /data/ext/cargo-vendor/{cranelift-control-0.109.0 → cranelift-control-0.110.2}/src/zero_sized.rs +0 -0
  1124. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/LICENSE +0 -0
  1125. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/README.md +0 -0
  1126. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/boxed_slice.rs +0 -0
  1127. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/iter.rs +0 -0
  1128. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/keys.rs +0 -0
  1129. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/lib.rs +0 -0
  1130. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/list.rs +0 -0
  1131. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/map.rs +0 -0
  1132. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/packed_option.rs +0 -0
  1133. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/primary.rs +0 -0
  1134. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/sparse.rs +0 -0
  1135. /data/ext/cargo-vendor/{cranelift-entity-0.109.0 → cranelift-entity-0.110.2}/src/unsigned.rs +0 -0
  1136. /data/ext/cargo-vendor/{cranelift-frontend-0.109.0 → cranelift-frontend-0.110.2}/LICENSE +0 -0
  1137. /data/ext/cargo-vendor/{cranelift-frontend-0.109.0 → cranelift-frontend-0.110.2}/README.md +0 -0
  1138. /data/ext/cargo-vendor/{cranelift-frontend-0.109.0 → cranelift-frontend-0.110.2}/src/lib.rs +0 -0
  1139. /data/ext/cargo-vendor/{cranelift-frontend-0.109.0 → cranelift-frontend-0.110.2}/src/ssa.rs +0 -0
  1140. /data/ext/cargo-vendor/{cranelift-frontend-0.109.0 → cranelift-frontend-0.110.2}/src/switch.rs +0 -0
  1141. /data/ext/cargo-vendor/{cranelift-frontend-0.109.0 → cranelift-frontend-0.110.2}/src/variable.rs +0 -0
  1142. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/README.md +0 -0
  1143. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/build.rs +0 -0
  1144. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/fail/bad_converters.isle +0 -0
  1145. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1146. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1147. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/fail/error1.isle +0 -0
  1148. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/fail/extra_parens.isle +0 -0
  1149. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/fail/impure_expression.isle +0 -0
  1150. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/fail/impure_rhs.isle +0 -0
  1151. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1152. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/fail/multi_prio.isle +0 -0
  1153. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/borrows.isle +0 -0
  1154. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/borrows_main.rs +0 -0
  1155. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/iflets.isle +0 -0
  1156. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/iflets_main.rs +0 -0
  1157. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/multi_constructor.isle +0 -0
  1158. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/multi_constructor_main.rs +0 -0
  1159. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/multi_extractor.isle +0 -0
  1160. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/multi_extractor_main.rs +0 -0
  1161. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/test.isle +0 -0
  1162. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/link/test_main.rs +0 -0
  1163. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/bound_var.isle +0 -0
  1164. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/construct_and_extract.isle +0 -0
  1165. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/conversions.isle +0 -0
  1166. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/conversions_extern.isle +0 -0
  1167. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/let.isle +0 -0
  1168. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/nodebug.isle +0 -0
  1169. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1170. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/test2.isle +0 -0
  1171. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/test3.isle +0 -0
  1172. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/test4.isle +0 -0
  1173. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/pass/tutorial.isle +0 -0
  1174. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/run/iconst.isle +0 -0
  1175. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/run/iconst_main.rs +0 -0
  1176. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/run/let_shadowing.isle +0 -0
  1177. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/isle_examples/run/let_shadowing_main.rs +0 -0
  1178. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/ast.rs +0 -0
  1179. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/compile.rs +0 -0
  1180. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/disjointsets.rs +0 -0
  1181. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/error.rs +0 -0
  1182. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/lexer.rs +0 -0
  1183. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/lib.rs +0 -0
  1184. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/log.rs +0 -0
  1185. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/overlap.rs +0 -0
  1186. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/serialize.rs +0 -0
  1187. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/src/stablemapset.rs +0 -0
  1188. /data/ext/cargo-vendor/{cranelift-isle-0.109.0 → cranelift-isle-0.110.2}/tests/run_tests.rs +0 -0
  1189. /data/ext/cargo-vendor/{cranelift-native-0.109.0 → cranelift-native-0.110.2}/LICENSE +0 -0
  1190. /data/ext/cargo-vendor/{cranelift-native-0.109.0 → cranelift-native-0.110.2}/README.md +0 -0
  1191. /data/ext/cargo-vendor/{cranelift-native-0.109.0 → cranelift-native-0.110.2}/src/riscv.rs +0 -0
  1192. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/LICENSE +0 -0
  1193. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/README.md +0 -0
  1194. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/src/environ/dummy.rs +0 -0
  1195. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/src/environ/mod.rs +0 -0
  1196. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/src/environ/spec.rs +0 -0
  1197. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/src/func_translator.rs +0 -0
  1198. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/src/lib.rs +0 -0
  1199. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/src/module_translator.rs +0 -0
  1200. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/src/state.rs +0 -0
  1201. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/src/table.rs +0 -0
  1202. /data/ext/cargo-vendor/{cranelift-wasm-0.109.0 → cranelift-wasm-0.110.2}/src/translation_utils.rs +0 -0
  1203. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.22 → deterministic-wasi-ctx-0.1.23}/README.md +0 -0
  1204. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.22 → deterministic-wasi-ctx-0.1.23}/src/clocks.rs +0 -0
  1205. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.22 → deterministic-wasi-ctx-0.1.23}/src/lib.rs +0 -0
  1206. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.22 → deterministic-wasi-ctx-0.1.23}/src/noop_scheduler.rs +0 -0
  1207. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.22 → deterministic-wasi-ctx-0.1.23}/tests/clocks.rs +0 -0
  1208. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.22 → deterministic-wasi-ctx-0.1.23}/tests/common/mod.rs +0 -0
  1209. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.22 → deterministic-wasi-ctx-0.1.23}/tests/random.rs +0 -0
  1210. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.22 → deterministic-wasi-ctx-0.1.23}/tests/scheduler.rs +0 -0
  1211. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/LICENSE +0 -0
  1212. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/README.md +0 -0
  1213. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/clocks.rs +0 -0
  1214. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/ctx.rs +0 -0
  1215. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/dir.rs +0 -0
  1216. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/error.rs +0 -0
  1217. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/file.rs +0 -0
  1218. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/lib.rs +0 -0
  1219. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/pipe.rs +0 -0
  1220. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/random.rs +0 -0
  1221. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sched/subscription.rs +0 -0
  1222. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sched.rs +0 -0
  1223. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/snapshots/mod.rs +0 -0
  1224. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/snapshots/preview_0.rs +0 -0
  1225. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/snapshots/preview_1/error.rs +0 -0
  1226. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/snapshots/preview_1.rs +0 -0
  1227. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/string_array.rs +0 -0
  1228. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sync/clocks.rs +0 -0
  1229. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sync/dir.rs +0 -0
  1230. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sync/file.rs +0 -0
  1231. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sync/mod.rs +0 -0
  1232. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sync/net.rs +0 -0
  1233. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sync/sched/unix.rs +0 -0
  1234. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sync/sched/windows.rs +0 -0
  1235. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sync/sched.rs +0 -0
  1236. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/sync/stdio.rs +0 -0
  1237. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/table.rs +0 -0
  1238. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/tokio/dir.rs +0 -0
  1239. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/tokio/file.rs +0 -0
  1240. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/tokio/net.rs +0 -0
  1241. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/tokio/sched/unix.rs +0 -0
  1242. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/tokio/sched/windows.rs +0 -0
  1243. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/tokio/sched.rs +0 -0
  1244. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/src/tokio/stdio.rs +0 -0
  1245. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/tests/all/main.rs +0 -0
  1246. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/witx/preview0/typenames.witx +0 -0
  1247. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/witx/preview0/wasi_unstable.witx +0 -0
  1248. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/witx/preview1/typenames.witx +0 -0
  1249. /data/ext/cargo-vendor/{wasi-common-22.0.0 → wasi-common-23.0.2}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1250. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/LICENSE +0 -0
  1251. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/README.md +0 -0
  1252. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/aliases.rs +0 -0
  1253. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/builder.rs +0 -0
  1254. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/canonicals.rs +0 -0
  1255. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/components.rs +0 -0
  1256. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/exports.rs +0 -0
  1257. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/imports.rs +0 -0
  1258. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/instances.rs +0 -0
  1259. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/modules.rs +0 -0
  1260. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/names.rs +0 -0
  1261. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component/start.rs +0 -0
  1262. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/component.rs +0 -0
  1263. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core/custom.rs +0 -0
  1264. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core/data.rs +0 -0
  1265. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core/dump.rs +0 -0
  1266. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core/elements.rs +0 -0
  1267. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core/functions.rs +0 -0
  1268. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core/linking.rs +0 -0
  1269. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core/names.rs +0 -0
  1270. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core/producers.rs +0 -0
  1271. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core/start.rs +0 -0
  1272. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/core.rs +0 -0
  1273. /data/ext/cargo-vendor/{wasm-encoder-0.209.1 → wasm-encoder-0.212.0}/src/raw.rs +0 -0
  1274. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/README.md +0 -0
  1275. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/benches/benchmark.rs +0 -0
  1276. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/examples/simple.rs +0 -0
  1277. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/collections/hash.rs +0 -0
  1278. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/collections/index_map/detail.rs +0 -0
  1279. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/collections/index_map/tests.rs +0 -0
  1280. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/collections/index_map.rs +0 -0
  1281. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/collections/index_set.rs +0 -0
  1282. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/collections/map.rs +0 -0
  1283. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/collections/mod.rs +0 -0
  1284. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/collections/set.rs +0 -0
  1285. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/limits.rs +0 -0
  1286. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/component/aliases.rs +0 -0
  1287. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/component/canonicals.rs +0 -0
  1288. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/component/exports.rs +0 -0
  1289. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/component/imports.rs +0 -0
  1290. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/component/instances.rs +0 -0
  1291. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/component/names.rs +0 -0
  1292. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/component/start.rs +0 -0
  1293. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/component/types.rs +0 -0
  1294. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/component.rs +0 -0
  1295. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/branch_hinting.rs +0 -0
  1296. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/code.rs +0 -0
  1297. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/coredumps.rs +0 -0
  1298. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/custom.rs +0 -0
  1299. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/data.rs +0 -0
  1300. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/dylink0.rs +0 -0
  1301. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/elements.rs +0 -0
  1302. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/exports.rs +0 -0
  1303. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/functions.rs +0 -0
  1304. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/globals.rs +0 -0
  1305. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/imports.rs +0 -0
  1306. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/init.rs +0 -0
  1307. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/linking.rs +0 -0
  1308. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/memories.rs +0 -0
  1309. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/names.rs +0 -0
  1310. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/producers.rs +0 -0
  1311. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/reloc.rs +0 -0
  1312. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/tags.rs +0 -0
  1313. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core/types/matches.rs +0 -0
  1314. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers/core.rs +0 -0
  1315. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/readers.rs +0 -0
  1316. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/validator/core/canonical.rs +0 -0
  1317. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/validator/func.rs +0 -0
  1318. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/src/validator/names.rs +0 -0
  1319. /data/ext/cargo-vendor/{wasmparser-0.209.1 → wasmparser-0.212.0}/tests/big-module.rs +0 -0
  1320. /data/ext/cargo-vendor/{wasmprinter-0.209.1 → wasmprinter-0.212.0}/LICENSE +0 -0
  1321. /data/ext/cargo-vendor/{wasmprinter-0.209.1 → wasmprinter-0.212.0}/README.md +0 -0
  1322. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/LICENSE +0 -0
  1323. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/README.md +0 -0
  1324. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/proptest-regressions/runtime/vm/instance/allocator/pooling/memory_pool.txt +0 -0
  1325. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/code.rs +0 -0
  1326. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/bindgen_examples/_0_hello_world.rs +0 -0
  1327. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/bindgen_examples/_1_world_imports.rs +0 -0
  1328. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/bindgen_examples/_2_world_exports.rs +0 -0
  1329. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/bindgen_examples/_3_interface_imports.rs +0 -0
  1330. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/bindgen_examples/_4_imported_resources.rs +0 -0
  1331. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/bindgen_examples/_5_all_world_export_kinds.rs +0 -0
  1332. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/bindgen_examples/_6_exported_resources.rs +0 -0
  1333. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/resource_table.rs +0 -0
  1334. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/storage.rs +0 -0
  1335. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/store.rs +0 -0
  1336. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/component/types.rs +0 -0
  1337. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/externals.rs +0 -0
  1338. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/gc/disabled/anyref.rs +0 -0
  1339. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/gc/disabled/externref.rs +0 -0
  1340. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/gc/disabled/i31.rs +0 -0
  1341. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/gc/disabled.rs +0 -0
  1342. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/gc/enabled/anyref.rs +0 -0
  1343. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/gc/enabled/i31.rs +0 -0
  1344. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/gc/enabled.rs +0 -0
  1345. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/gc/noextern.rs +0 -0
  1346. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/gc.rs +0 -0
  1347. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/resources.rs +0 -0
  1348. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/signatures.rs +0 -0
  1349. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/store/context.rs +0 -0
  1350. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/store/func_refs.rs +0 -0
  1351. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/trampoline/global.rs +0 -0
  1352. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/type_registry.rs +0 -0
  1353. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/uninhabited.rs +0 -0
  1354. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/unix.rs +0 -0
  1355. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/v128.rs +0 -0
  1356. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/arch/aarch64.rs +0 -0
  1357. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/arch/mod.rs +0 -0
  1358. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/arch/s390x.S +0 -0
  1359. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/arch/s390x.rs +0 -0
  1360. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/arch/x86_64.rs +0 -0
  1361. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/async_yield.rs +0 -0
  1362. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/debug_builtins.rs +0 -0
  1363. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/export.rs +0 -0
  1364. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/gc/enabled/externref.rs +0 -0
  1365. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/gc/enabled.rs +0 -0
  1366. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/gc/host_data.rs +0 -0
  1367. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/gc/i31.rs +0 -0
  1368. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/helpers.c +0 -0
  1369. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/imports.rs +0 -0
  1370. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/mpk/pkru.rs +0 -0
  1371. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/send_sync_ptr.rs +0 -0
  1372. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/store_box.rs +0 -0
  1373. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/custom/capi.rs +0 -0
  1374. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/custom/traphandlers.rs +0 -0
  1375. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/miri/mod.rs +0 -0
  1376. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/miri/traphandlers.rs +0 -0
  1377. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/miri/vm.rs +0 -0
  1378. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/mod.rs +0 -0
  1379. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/unix/machports.rs +0 -0
  1380. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/unix/macos_traphandlers.rs +0 -0
  1381. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/unix/mod.rs +0 -0
  1382. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/unix/vm.rs +0 -0
  1383. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/windows/mod.rs +0 -0
  1384. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/windows/traphandlers.rs +0 -0
  1385. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/sys/windows/vm.rs +0 -0
  1386. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/threads/mod.rs +0 -0
  1387. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/threads/parking_spot.rs +0 -0
  1388. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/traphandlers/backtrace.rs +0 -0
  1389. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/traphandlers/coredump_disabled.rs +0 -0
  1390. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/vm/traphandlers/coredump_enabled.rs +0 -0
  1391. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/runtime/windows.rs +0 -0
  1392. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/sync_nostd.rs +0 -0
  1393. /data/ext/cargo-vendor/{wasmtime-22.0.0 → wasmtime-23.0.2}/src/sync_std.rs +0 -0
  1394. /data/ext/cargo-vendor/{wasmtime-asm-macros-22.0.0 → wasmtime-asm-macros-23.0.2}/src/lib.rs +0 -0
  1395. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/LICENSE +0 -0
  1396. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/build.rs +0 -0
  1397. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/src/config/tests.rs +0 -0
  1398. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/src/config.rs +0 -0
  1399. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/src/lib.rs +0 -0
  1400. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/src/tests.rs +0 -0
  1401. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/src/worker/tests/system_time_stub.rs +0 -0
  1402. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/src/worker/tests.rs +0 -0
  1403. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/src/worker.rs +0 -0
  1404. /data/ext/cargo-vendor/{wasmtime-cache-22.0.0 → wasmtime-cache-23.0.2}/tests/cache_write_default_config.rs +0 -0
  1405. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/build.rs +0 -0
  1406. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/src/component.rs +0 -0
  1407. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/src/lib.rs +0 -0
  1408. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/char.wit +0 -0
  1409. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/conventions.wit +0 -0
  1410. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/dead-code.wit +0 -0
  1411. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/direct-import.wit +0 -0
  1412. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/empty.wit +0 -0
  1413. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/flags.wit +0 -0
  1414. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/floats.wit +0 -0
  1415. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/function-new.wit +0 -0
  1416. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/integers.wit +0 -0
  1417. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/lists.wit +0 -0
  1418. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/many-arguments.wit +0 -0
  1419. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/multi-return.wit +0 -0
  1420. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  1421. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  1422. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/multiversion/root.wit +0 -0
  1423. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/records.wit +0 -0
  1424. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/rename.wit +0 -0
  1425. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/resources-export.wit +0 -0
  1426. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/resources-import.wit +0 -0
  1427. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/share-types.wit +0 -0
  1428. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/simple-functions.wit +0 -0
  1429. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/simple-lists.wit +0 -0
  1430. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/simple-wasi.wit +0 -0
  1431. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/small-anonymous.wit +0 -0
  1432. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/smoke-default.wit +0 -0
  1433. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/smoke-export.wit +0 -0
  1434. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/smoke.wit +0 -0
  1435. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/strings.wit +0 -0
  1436. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/unversioned-foo.wit +0 -0
  1437. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/use-paths.wit +0 -0
  1438. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/variants.wit +0 -0
  1439. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/wat.wit +0 -0
  1440. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen/worlds-with-types.wit +0 -0
  1441. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/codegen_no_std.rs +0 -0
  1442. /data/ext/cargo-vendor/{wasmtime-component-macro-22.0.0 → wasmtime-component-macro-23.0.2}/tests/expanded.rs +0 -0
  1443. /data/ext/cargo-vendor/{wasmtime-component-util-22.0.0 → wasmtime-component-util-23.0.2}/src/lib.rs +0 -0
  1444. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/LICENSE +0 -0
  1445. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/SECURITY.md +0 -0
  1446. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/src/builder.rs +0 -0
  1447. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/src/compiled_function.rs +0 -0
  1448. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/src/compiler/component.rs +0 -0
  1449. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/src/debug/transform/refs.rs +0 -0
  1450. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/src/gc/disabled.rs +0 -0
  1451. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/src/gc.rs +0 -0
  1452. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/src/isa_builder.rs +0 -0
  1453. /data/ext/cargo-vendor/{wasmtime-cranelift-22.0.0 → wasmtime-cranelift-23.0.2}/src/obj.rs +0 -0
  1454. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/LICENSE +0 -0
  1455. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/examples/factc.rs +0 -0
  1456. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/address_map.rs +0 -0
  1457. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/builtin.rs +0 -0
  1458. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/compile/address_map.rs +0 -0
  1459. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/compile/module_artifacts.rs +0 -0
  1460. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/compile/module_types.rs +0 -0
  1461. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/compile/trap_encoding.rs +0 -0
  1462. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/component/artifacts.rs +0 -0
  1463. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/component/compiler.rs +0 -0
  1464. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/component/translate/adapt.rs +0 -0
  1465. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/component/types_builder/resources.rs +0 -0
  1466. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/component/vmcomponent_offsets.rs +0 -0
  1467. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/demangling.rs +0 -0
  1468. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/fact/core_types.rs +0 -0
  1469. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/fact/signature.rs +0 -0
  1470. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/fact/trampoline.rs +0 -0
  1471. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/fact/transcode.rs +0 -0
  1472. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/fact/traps.rs +0 -0
  1473. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/fact.rs +0 -0
  1474. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/gc.rs +0 -0
  1475. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/module_artifacts.rs +0 -0
  1476. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/module_types.rs +0 -0
  1477. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/obj.rs +0 -0
  1478. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/ref_bits.rs +0 -0
  1479. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/scopevec.rs +0 -0
  1480. /data/ext/cargo-vendor/{wasmtime-environ-22.0.0 → wasmtime-environ-23.0.2}/src/trap_encoding.rs +0 -0
  1481. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/LICENSE +0 -0
  1482. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/build.rs +0 -0
  1483. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/lib.rs +0 -0
  1484. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/unix/aarch64.rs +0 -0
  1485. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/unix/arm.rs +0 -0
  1486. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/unix/riscv64.rs +0 -0
  1487. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/unix/s390x.S +0 -0
  1488. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/unix/x86.rs +0 -0
  1489. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/unix/x86_64.rs +0 -0
  1490. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/unix.rs +0 -0
  1491. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/windows.c +0 -0
  1492. /data/ext/cargo-vendor/{wasmtime-fiber-22.0.0 → wasmtime-fiber-23.0.2}/src/windows.rs +0 -0
  1493. /data/ext/cargo-vendor/{wasmtime-jit-debug-22.0.0 → wasmtime-jit-debug-23.0.2}/README.md +0 -0
  1494. /data/ext/cargo-vendor/{wasmtime-jit-debug-22.0.0 → wasmtime-jit-debug-23.0.2}/src/gdb_jit_int.rs +0 -0
  1495. /data/ext/cargo-vendor/{wasmtime-jit-debug-22.0.0 → wasmtime-jit-debug-23.0.2}/src/lib.rs +0 -0
  1496. /data/ext/cargo-vendor/{wasmtime-jit-debug-22.0.0 → wasmtime-jit-debug-23.0.2}/src/perf_jitdump.rs +0 -0
  1497. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-22.0.0 → wasmtime-jit-icache-coherence-23.0.2}/src/lib.rs +0 -0
  1498. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-22.0.0 → wasmtime-jit-icache-coherence-23.0.2}/src/libc.rs +0 -0
  1499. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-22.0.0 → wasmtime-jit-icache-coherence-23.0.2}/src/miri.rs +0 -0
  1500. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-22.0.0 → wasmtime-jit-icache-coherence-23.0.2}/src/win.rs +0 -0
  1501. /data/ext/cargo-vendor/{wasmtime-slab-22.0.0 → wasmtime-slab-23.0.2}/src/lib.rs +0 -0
  1502. /data/ext/cargo-vendor/{wasmtime-types-22.0.0 → wasmtime-types-23.0.2}/LICENSE +0 -0
  1503. /data/ext/cargo-vendor/{wasmtime-types-22.0.0 → wasmtime-types-23.0.2}/src/error.rs +0 -0
  1504. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-22.0.0 → wasmtime-versioned-export-macros-23.0.2}/src/lib.rs +0 -0
  1505. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/LICENSE +0 -0
  1506. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/README.md +0 -0
  1507. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/clocks/host.rs +0 -0
  1508. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/clocks.rs +0 -0
  1509. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/ctx.rs +0 -0
  1510. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/error.rs +0 -0
  1511. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/clocks.rs +0 -0
  1512. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/env.rs +0 -0
  1513. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/exit.rs +0 -0
  1514. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/filesystem/sync.rs +0 -0
  1515. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/instance_network.rs +0 -0
  1516. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/mod.rs +0 -0
  1517. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/network.rs +0 -0
  1518. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/random.rs +0 -0
  1519. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/tcp.rs +0 -0
  1520. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/tcp_create_socket.rs +0 -0
  1521. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/udp.rs +0 -0
  1522. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/host/udp_create_socket.rs +0 -0
  1523. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/ip_name_lookup.rs +0 -0
  1524. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/network.rs +0 -0
  1525. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/pipe.rs +0 -0
  1526. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/poll.rs +0 -0
  1527. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/preview0.rs +0 -0
  1528. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/random.rs +0 -0
  1529. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/runtime.rs +0 -0
  1530. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/stdio/worker_thread_stdin.rs +0 -0
  1531. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/stream.rs +0 -0
  1532. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/tcp.rs +0 -0
  1533. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/udp.rs +0 -0
  1534. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/src/write_stream.rs +0 -0
  1535. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/tests/all/main.rs +0 -0
  1536. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/tests/all/preview1.rs +0 -0
  1537. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/tests/process_stdin.rs +0 -0
  1538. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/command-extended.wit +0 -0
  1539. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/cli/command.wit +0 -0
  1540. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/cli/environment.wit +0 -0
  1541. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/cli/exit.wit +0 -0
  1542. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/cli/imports.wit +0 -0
  1543. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/cli/run.wit +0 -0
  1544. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/cli/stdio.wit +0 -0
  1545. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/cli/terminal.wit +0 -0
  1546. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1547. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/clocks/wall-clock.wit +0 -0
  1548. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/clocks/world.wit +0 -0
  1549. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/filesystem/preopens.wit +0 -0
  1550. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/filesystem/types.wit +0 -0
  1551. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/filesystem/world.wit +0 -0
  1552. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/http/handler.wit +0 -0
  1553. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/http/proxy.wit +0 -0
  1554. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/http/types.wit +0 -0
  1555. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/io/error.wit +0 -0
  1556. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/io/poll.wit +0 -0
  1557. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/io/streams.wit +0 -0
  1558. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/io/world.wit +0 -0
  1559. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/random/insecure-seed.wit +0 -0
  1560. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/random/insecure.wit +0 -0
  1561. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/random/random.wit +0 -0
  1562. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/random/world.wit +0 -0
  1563. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/sockets/instance-network.wit +0 -0
  1564. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1565. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/sockets/network.wit +0 -0
  1566. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1567. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/sockets/tcp.wit +0 -0
  1568. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1569. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/sockets/udp.wit +0 -0
  1570. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/deps/sockets/world.wit +0 -0
  1571. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/wit/test.wit +0 -0
  1572. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/witx/preview0/typenames.witx +0 -0
  1573. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/witx/preview0/wasi_unstable.witx +0 -0
  1574. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/witx/preview1/typenames.witx +0 -0
  1575. /data/ext/cargo-vendor/{wasmtime-wasi-22.0.0 → wasmtime-wasi-23.0.2}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1576. /data/ext/cargo-vendor/{wasmtime-winch-22.0.0 → wasmtime-winch-23.0.2}/LICENSE +0 -0
  1577. /data/ext/cargo-vendor/{wasmtime-winch-22.0.0 → wasmtime-winch-23.0.2}/src/builder.rs +0 -0
  1578. /data/ext/cargo-vendor/{wasmtime-winch-22.0.0 → wasmtime-winch-23.0.2}/src/lib.rs +0 -0
  1579. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-22.0.0 → wasmtime-wit-bindgen-23.0.2}/src/rust.rs +0 -0
  1580. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-22.0.0 → wasmtime-wit-bindgen-23.0.2}/src/source.rs +0 -0
  1581. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-22.0.0 → wasmtime-wit-bindgen-23.0.2}/src/types.rs +0 -0
  1582. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/README.md +0 -0
  1583. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/alias.rs +0 -0
  1584. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/custom.rs +0 -0
  1585. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/export.rs +0 -0
  1586. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/func.rs +0 -0
  1587. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/import.rs +0 -0
  1588. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/instance.rs +0 -0
  1589. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/item_ref.rs +0 -0
  1590. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/module.rs +0 -0
  1591. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/types.rs +0 -0
  1592. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/component/wast.rs +0 -0
  1593. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/core/custom.rs +0 -0
  1594. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/core/export.rs +0 -0
  1595. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/core/func.rs +0 -0
  1596. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/core/global.rs +0 -0
  1597. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/core/import.rs +0 -0
  1598. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/core/resolve/mod.rs +0 -0
  1599. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/core/tag.rs +0 -0
  1600. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/core/wast.rs +0 -0
  1601. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/encode.rs +0 -0
  1602. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/error.rs +0 -0
  1603. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/gensym.rs +0 -0
  1604. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/lexer.rs +0 -0
  1605. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/names.rs +0 -0
  1606. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/token.rs +0 -0
  1607. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/src/wast.rs +0 -0
  1608. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/annotations.rs +0 -0
  1609. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/comments.rs +0 -0
  1610. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-core-func-alias.wat +0 -0
  1611. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-core-func-alias.wat.err +0 -0
  1612. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-func-alias.wat +0 -0
  1613. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-func-alias.wat.err +0 -0
  1614. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-index.wat +0 -0
  1615. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-index.wat.err +0 -0
  1616. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-name.wat +0 -0
  1617. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-name.wat.err +0 -0
  1618. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-name2.wat +0 -0
  1619. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-name2.wat.err +0 -0
  1620. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-name3.wat +0 -0
  1621. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/bad-name3.wat.err +0 -0
  1622. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/block1.wat +0 -0
  1623. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/block1.wat.err +0 -0
  1624. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/block2.wat +0 -0
  1625. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/block2.wat.err +0 -0
  1626. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/block3.wat +0 -0
  1627. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/block3.wat.err +0 -0
  1628. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment0.wat +0 -0
  1629. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment0.wat.err +0 -0
  1630. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment1.wat +0 -0
  1631. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment1.wat.err +0 -0
  1632. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment2.wat +0 -0
  1633. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment2.wat.err +0 -0
  1634. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment3.wat +0 -0
  1635. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment3.wat.err +0 -0
  1636. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment4.wat +0 -0
  1637. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment4.wat.err +0 -0
  1638. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment5.wat +0 -0
  1639. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment5.wat.err +0 -0
  1640. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment6.wat +0 -0
  1641. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment6.wat.err +0 -0
  1642. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment7.wat +0 -0
  1643. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment7.wat.err +0 -0
  1644. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment8.wat +0 -0
  1645. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-block-comment8.wat.err +0 -0
  1646. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment0.wat +0 -0
  1647. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment0.wat.err +0 -0
  1648. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment1.wat +0 -0
  1649. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment1.wat.err +0 -0
  1650. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment2.wat +0 -0
  1651. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment2.wat.err +0 -0
  1652. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment3.wat +0 -0
  1653. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment3.wat.err +0 -0
  1654. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment4.wat +0 -0
  1655. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment4.wat.err +0 -0
  1656. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment5.wat +0 -0
  1657. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment5.wat.err +0 -0
  1658. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment6.wat +0 -0
  1659. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment6.wat.err +0 -0
  1660. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment7.wat +0 -0
  1661. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment7.wat.err +0 -0
  1662. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment8.wat +0 -0
  1663. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-line-comment8.wat.err +0 -0
  1664. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string0.wat +0 -0
  1665. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string0.wat.err +0 -0
  1666. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string1.wat +0 -0
  1667. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string1.wat.err +0 -0
  1668. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string2.wat +0 -0
  1669. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string2.wat.err +0 -0
  1670. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string3.wat +0 -0
  1671. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string3.wat.err +0 -0
  1672. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string4.wat +0 -0
  1673. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string4.wat.err +0 -0
  1674. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string5.wat +0 -0
  1675. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string5.wat.err +0 -0
  1676. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string6.wat +0 -0
  1677. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string6.wat.err +0 -0
  1678. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string7.wat +0 -0
  1679. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string7.wat.err +0 -0
  1680. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string8.wat +0 -0
  1681. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/confusing-string8.wat.err +0 -0
  1682. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/inline1.wat +0 -0
  1683. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/inline1.wat.err +0 -0
  1684. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/newline-in-string.wat +0 -0
  1685. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/newline-in-string.wat.err +0 -0
  1686. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string1.wat +0 -0
  1687. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string1.wat.err +0 -0
  1688. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string10.wat +0 -0
  1689. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string10.wat.err +0 -0
  1690. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string11.wat +0 -0
  1691. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string11.wat.err +0 -0
  1692. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string12.wat +0 -0
  1693. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string12.wat.err +0 -0
  1694. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string13.wat +0 -0
  1695. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string13.wat.err +0 -0
  1696. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string14.wat +0 -0
  1697. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string14.wat.err +0 -0
  1698. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string15.wat +0 -0
  1699. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string15.wat.err +0 -0
  1700. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string16.wat +0 -0
  1701. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string16.wat.err +0 -0
  1702. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string2.wat +0 -0
  1703. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string2.wat.err +0 -0
  1704. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string3.wat +0 -0
  1705. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string3.wat.err +0 -0
  1706. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string4.wat +0 -0
  1707. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string4.wat.err +0 -0
  1708. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string5.wat +0 -0
  1709. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string5.wat.err +0 -0
  1710. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string6.wat +0 -0
  1711. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string6.wat.err +0 -0
  1712. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string7.wat +0 -0
  1713. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string7.wat.err +0 -0
  1714. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string8.wat +0 -0
  1715. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string8.wat.err +0 -0
  1716. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string9.wat +0 -0
  1717. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/string9.wat.err +0 -0
  1718. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/unbalanced.wat +0 -0
  1719. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail/unbalanced.wat.err +0 -0
  1720. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/parse-fail.rs +0 -0
  1721. /data/ext/cargo-vendor/{wast-209.0.1 → wast-215.0.0}/tests/recursive.rs +0 -0
  1722. /data/ext/cargo-vendor/{wat-1.209.1 → wat-1.215.0}/README.md +0 -0
  1723. /data/ext/cargo-vendor/{wast-209.0.1 → wiggle-23.0.2}/LICENSE +0 -0
  1724. /data/ext/cargo-vendor/{wiggle-22.0.0 → wiggle-23.0.2}/README.md +0 -0
  1725. /data/ext/cargo-vendor/{wiggle-22.0.0 → wiggle-23.0.2}/src/error.rs +0 -0
  1726. /data/ext/cargo-vendor/{wiggle-22.0.0 → wiggle-23.0.2}/src/guest_type.rs +0 -0
  1727. /data/ext/cargo-vendor/{wiggle-22.0.0 → wiggle-23.0.2}/src/lib.rs +0 -0
  1728. /data/ext/cargo-vendor/{wiggle-22.0.0 → wiggle-23.0.2}/src/region.rs +0 -0
  1729. /data/ext/cargo-vendor/{wat-1.209.1 → wiggle-generate-23.0.2}/LICENSE +0 -0
  1730. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/README.md +0 -0
  1731. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/codegen_settings.rs +0 -0
  1732. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/config.rs +0 -0
  1733. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/funcs.rs +0 -0
  1734. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/lib.rs +0 -0
  1735. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/lifetimes.rs +0 -0
  1736. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/module_trait.rs +0 -0
  1737. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/names.rs +0 -0
  1738. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/types/error.rs +0 -0
  1739. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/types/flags.rs +0 -0
  1740. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/types/handle.rs +0 -0
  1741. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/types/mod.rs +0 -0
  1742. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/types/record.rs +0 -0
  1743. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/types/variant.rs +0 -0
  1744. /data/ext/cargo-vendor/{wiggle-generate-22.0.0 → wiggle-generate-23.0.2}/src/wasmtime.rs +0 -0
  1745. /data/ext/cargo-vendor/{wiggle-22.0.0 → wiggle-macro-23.0.2}/LICENSE +0 -0
  1746. /data/ext/cargo-vendor/{wiggle-macro-22.0.0 → wiggle-macro-23.0.2}/build.rs +0 -0
  1747. /data/ext/cargo-vendor/{wiggle-macro-22.0.0 → wiggle-macro-23.0.2}/src/lib.rs +0 -0
  1748. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/LICENSE +0 -0
  1749. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/build.rs +0 -0
  1750. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/abi/local.rs +0 -0
  1751. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/abi/mod.rs +0 -0
  1752. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/codegen/bounds.rs +0 -0
  1753. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/codegen/builtin.rs +0 -0
  1754. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/codegen/call.rs +0 -0
  1755. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/codegen/context.rs +0 -0
  1756. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/codegen/control.rs +0 -0
  1757. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/frame/mod.rs +0 -0
  1758. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/aarch64/abi.rs +0 -0
  1759. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/aarch64/address.rs +0 -0
  1760. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/aarch64/asm.rs +0 -0
  1761. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/aarch64/masm.rs +0 -0
  1762. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/aarch64/mod.rs +0 -0
  1763. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/aarch64/regs.rs +0 -0
  1764. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/mod.rs +0 -0
  1765. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/reg.rs +0 -0
  1766. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/x64/abi.rs +0 -0
  1767. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/x64/address.rs +0 -0
  1768. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/x64/asm.rs +0 -0
  1769. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/x64/masm.rs +0 -0
  1770. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/x64/mod.rs +0 -0
  1771. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/isa/x64/regs.rs +0 -0
  1772. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/lib.rs +0 -0
  1773. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/masm.rs +0 -0
  1774. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/regalloc.rs +0 -0
  1775. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/regset.rs +0 -0
  1776. /data/ext/cargo-vendor/{winch-codegen-0.20.0 → winch-codegen-0.21.2}/src/stack.rs +0 -0
  1777. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/README.md +0 -0
  1778. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/src/abi.rs +0 -0
  1779. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/src/ast/toposort.rs +0 -0
  1780. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/src/live.rs +0 -0
  1781. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/src/metadata.rs +0 -0
  1782. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/src/serde_.rs +0 -0
  1783. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/src/sizealign.rs +0 -0
  1784. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/all.rs +0 -0
  1785. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/comments.wit +0 -0
  1786. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/comments.wit.json +0 -0
  1787. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/complex-include/deps/bar/root.wit +0 -0
  1788. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/complex-include/deps/baz/root.wit +0 -0
  1789. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/complex-include/root.wit +0 -0
  1790. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/complex-include.wit.json +0 -0
  1791. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/cross-package-resource/deps/foo/foo.wit +0 -0
  1792. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/cross-package-resource/foo.wit +0 -0
  1793. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/cross-package-resource.wit.json +0 -0
  1794. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/diamond1/deps/dep1/types.wit +0 -0
  1795. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/diamond1/deps/dep2/types.wit +0 -0
  1796. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/diamond1/join.wit +0 -0
  1797. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/diamond1.wit.json +0 -0
  1798. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/disambiguate-diamond/shared1.wit +0 -0
  1799. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/disambiguate-diamond/shared2.wit +0 -0
  1800. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/disambiguate-diamond/world.wit +0 -0
  1801. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/disambiguate-diamond.wit.json +0 -0
  1802. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/empty.wit +0 -0
  1803. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/empty.wit.json +0 -0
  1804. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/feature-gates.wit +0 -0
  1805. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -0
  1806. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps/deps/corp/saas.wit +0 -0
  1807. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -0
  1808. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -0
  1809. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -0
  1810. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -0
  1811. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -0
  1812. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps/root.wit +0 -0
  1813. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit +0 -0
  1814. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union/deps/corp/saas.wit +0 -0
  1815. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit +0 -0
  1816. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit +0 -0
  1817. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit +0 -0
  1818. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union/deps/wasi/clocks.wit +0 -0
  1819. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit +0 -0
  1820. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union/deps/wasi/wasi.wit +0 -0
  1821. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union/root.wit +0 -0
  1822. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps-union.wit.json +0 -0
  1823. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/foreign-deps.wit.json +0 -0
  1824. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/functions.wit +0 -0
  1825. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/functions.wit.json +0 -0
  1826. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/ignore-files-deps/deps/bar/types.wit +0 -0
  1827. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/ignore-files-deps/deps/ignore-me.txt +0 -0
  1828. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/ignore-files-deps/world.wit +0 -0
  1829. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/ignore-files-deps.wit.json +0 -0
  1830. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/import-export-overlap1.wit +0 -0
  1831. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/import-export-overlap1.wit.json +0 -0
  1832. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/import-export-overlap2.wit +0 -0
  1833. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/import-export-overlap2.wit.json +0 -0
  1834. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/include-reps.wit +0 -0
  1835. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/include-reps.wit.json +0 -0
  1836. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/kebab-name-include-with.wit +0 -0
  1837. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/kebab-name-include-with.wit.json +0 -0
  1838. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/kinds-of-deps/a.wit +0 -0
  1839. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/kinds-of-deps/deps/b/root.wit +0 -0
  1840. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/kinds-of-deps/deps/c.wit +0 -0
  1841. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/kinds-of-deps/deps/d.wat +0 -0
  1842. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/kinds-of-deps/deps/e.wasm +0 -0
  1843. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/kinds-of-deps.wit.json +0 -0
  1844. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/many-names/a.wit +0 -0
  1845. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/many-names/b.wit +0 -0
  1846. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/many-names.wit.json +0 -0
  1847. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/multi-file/bar.wit +0 -0
  1848. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/multi-file/cycle-a.wit +0 -0
  1849. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/multi-file/cycle-b.wit +0 -0
  1850. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/multi-file/foo.wit +0 -0
  1851. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/multi-file.wit.json +0 -0
  1852. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/name-both-resource-and-type/deps/dep/foo.wit +0 -0
  1853. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/name-both-resource-and-type/foo.wit +0 -0
  1854. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/name-both-resource-and-type.wit.json +0 -0
  1855. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/package-syntax1.wit +0 -0
  1856. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/package-syntax1.wit.json +0 -0
  1857. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/package-syntax3.wit +0 -0
  1858. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/package-syntax3.wit.json +0 -0
  1859. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/package-syntax4.wit +0 -0
  1860. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/package-syntax4.wit.json +0 -0
  1861. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  1862. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/alias-no-type.wit.result +0 -0
  1863. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/async.wit.result +0 -0
  1864. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/async1.wit.result +0 -0
  1865. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-function.wit +0 -0
  1866. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-function.wit.result +0 -0
  1867. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-function2.wit +0 -0
  1868. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-function2.wit.result +0 -0
  1869. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate1.wit +0 -0
  1870. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate1.wit.result +0 -0
  1871. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate2.wit +0 -0
  1872. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate2.wit.result +0 -0
  1873. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate3.wit +0 -0
  1874. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate3.wit.result +0 -0
  1875. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate4.wit +0 -0
  1876. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate4.wit.result +0 -0
  1877. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate5.wit +0 -0
  1878. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-gate5.wit.result +0 -0
  1879. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-include1.wit +0 -0
  1880. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-include1.wit.result +0 -0
  1881. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-include2.wit +0 -0
  1882. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-include2.wit.result +0 -0
  1883. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-include3.wit +0 -0
  1884. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-include3.wit.result +0 -0
  1885. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-list.wit +0 -0
  1886. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  1887. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg1/root.wit +0 -0
  1888. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg1.wit.result +0 -0
  1889. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +0 -0
  1890. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg2/root.wit +0 -0
  1891. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg2.wit.result +0 -0
  1892. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  1893. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg3/root.wit +0 -0
  1894. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg3.wit.result +0 -0
  1895. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -0
  1896. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg4/root.wit +0 -0
  1897. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg4.wit.result +0 -0
  1898. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -0
  1899. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg5/root.wit +0 -0
  1900. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg5.wit.result +0 -0
  1901. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  1902. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg6/root.wit +0 -0
  1903. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-pkg6.wit.result +0 -0
  1904. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource1.wit +0 -0
  1905. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource1.wit.result +0 -0
  1906. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource10.wit +0 -0
  1907. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource10.wit.result +0 -0
  1908. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource11.wit +0 -0
  1909. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource11.wit.result +0 -0
  1910. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource12.wit +0 -0
  1911. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource12.wit.result +0 -0
  1912. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource13.wit +0 -0
  1913. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource13.wit.result +0 -0
  1914. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource14.wit +0 -0
  1915. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource14.wit.result +0 -0
  1916. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit +0 -0
  1917. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource15/foo.wit +0 -0
  1918. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource15.wit.result +0 -0
  1919. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource2.wit +0 -0
  1920. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource2.wit.result +0 -0
  1921. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource3.wit +0 -0
  1922. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource3.wit.result +0 -0
  1923. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource4.wit +0 -0
  1924. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource4.wit.result +0 -0
  1925. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource5.wit +0 -0
  1926. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource5.wit.result +0 -0
  1927. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource6.wit +0 -0
  1928. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource6.wit.result +0 -0
  1929. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource7.wit +0 -0
  1930. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource7.wit.result +0 -0
  1931. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource8.wit +0 -0
  1932. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource8.wit.result +0 -0
  1933. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource9.wit +0 -0
  1934. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-resource9.wit.result +0 -0
  1935. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-since1.wit +0 -0
  1936. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-since1.wit.result +0 -0
  1937. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-since3.wit +0 -0
  1938. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-since3.wit.result +0 -0
  1939. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-world-type1.wit +0 -0
  1940. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/bad-world-type1.wit.result +0 -0
  1941. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/conflicting-package/a.wit +0 -0
  1942. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/conflicting-package/b.wit +0 -0
  1943. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/conflicting-package.wit.result +0 -0
  1944. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle.wit +0 -0
  1945. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle.wit.result +0 -0
  1946. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle2.wit +0 -0
  1947. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle2.wit.result +0 -0
  1948. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle3.wit +0 -0
  1949. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle3.wit.result +0 -0
  1950. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle4.wit +0 -0
  1951. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle4.wit.result +0 -0
  1952. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle5.wit +0 -0
  1953. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/cycle5.wit.result +0 -0
  1954. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/dangling-type.wit +0 -0
  1955. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  1956. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-function-params.wit +0 -0
  1957. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-function-params.wit.result +0 -0
  1958. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-functions.wit +0 -0
  1959. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-functions.wit.result +0 -0
  1960. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-interface.wit +0 -0
  1961. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-interface.wit.result +0 -0
  1962. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-interface2/foo.wit +0 -0
  1963. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-interface2/foo2.wit +0 -0
  1964. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-interface2.wit.result +0 -0
  1965. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-type.wit +0 -0
  1966. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/duplicate-type.wit.result +0 -0
  1967. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/empty-enum.wit +0 -0
  1968. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/empty-enum.wit.result +0 -0
  1969. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/empty-variant1.wit +0 -0
  1970. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/empty-variant1.wit.result +0 -0
  1971. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/export-twice.wit +0 -0
  1972. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/export-twice.wit.result +0 -0
  1973. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export1.wit +0 -0
  1974. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export1.wit.result +0 -0
  1975. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export2.wit +0 -0
  1976. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export2.wit.result +0 -0
  1977. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export3.wit +0 -0
  1978. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export3.wit.result +0 -0
  1979. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export4.wit +0 -0
  1980. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export4.wit.result +0 -0
  1981. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export5.wit +0 -0
  1982. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-and-export5.wit.result +0 -0
  1983. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-twice.wit +0 -0
  1984. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/import-twice.wit.result +0 -0
  1985. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/include-cycle.wit +0 -0
  1986. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/include-cycle.wit.result +0 -0
  1987. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit +0 -0
  1988. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/include-foreign/root.wit +0 -0
  1989. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/include-foreign.wit.result +0 -0
  1990. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/include-with-id.wit +0 -0
  1991. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/include-with-id.wit.result +0 -0
  1992. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/include-with-on-id.wit +0 -0
  1993. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/include-with-on-id.wit.result +0 -0
  1994. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  1995. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  1996. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/invalid-type-reference.wit +0 -0
  1997. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -0
  1998. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/invalid-type-reference2.wit +0 -0
  1999. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -0
  2000. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit +0 -0
  2001. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit.result +0 -0
  2002. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/kebab-name-include.wit +0 -0
  2003. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/kebab-name-include.wit.result +0 -0
  2004. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/keyword.wit +0 -0
  2005. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/keyword.wit.result +0 -0
  2006. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/missing-package.wit +0 -0
  2007. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/missing-package.wit.result +0 -0
  2008. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/multiple-package-docs/a.wit +0 -0
  2009. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/multiple-package-docs/b.wit +0 -0
  2010. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/multiple-package-docs.wit.result +0 -0
  2011. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +0 -0
  2012. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +0 -0
  2013. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +0 -0
  2014. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit +0 -0
  2015. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/non-existance-world-include/root.wit +0 -0
  2016. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/non-existance-world-include.wit.result +0 -0
  2017. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -0
  2018. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/pkg-cycle/root.wit +0 -0
  2019. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/pkg-cycle.wit.result +0 -0
  2020. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -0
  2021. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -0
  2022. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -0
  2023. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -0
  2024. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/resources-multiple-returns-borrow.wit +0 -0
  2025. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +0 -0
  2026. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/resources-return-borrow.wit +0 -0
  2027. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/resources-return-borrow.wit.result +0 -0
  2028. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow1.wit +0 -0
  2029. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow1.wit.result +0 -0
  2030. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow2.wit +0 -0
  2031. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow2.wit.result +0 -0
  2032. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow3.wit +0 -0
  2033. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow3.wit.result +0 -0
  2034. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow4.wit +0 -0
  2035. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow4.wit.result +0 -0
  2036. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow5.wit +0 -0
  2037. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow5.wit.result +0 -0
  2038. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow6.wit +0 -0
  2039. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow6.wit.result +0 -0
  2040. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow7.wit +0 -0
  2041. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow7.wit.result +0 -0
  2042. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow8/deps/baz.wit +0 -0
  2043. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow8/foo.wit +0 -0
  2044. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/return-borrow8.wit.result +0 -0
  2045. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit +0 -0
  2046. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/type-and-resource-same-name/foo.wit +0 -0
  2047. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/type-and-resource-same-name.wit.result +0 -0
  2048. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/undefined-typed.wit +0 -0
  2049. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/undefined-typed.wit.result +0 -0
  2050. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unknown-interface.wit +0 -0
  2051. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unknown-interface.wit.result +0 -0
  2052. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-interface1.wit +0 -0
  2053. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -0
  2054. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-interface2.wit +0 -0
  2055. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -0
  2056. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-interface3.wit +0 -0
  2057. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -0
  2058. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-interface4.wit +0 -0
  2059. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -0
  2060. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use1.wit +0 -0
  2061. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use1.wit.result +0 -0
  2062. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -0
  2063. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  2064. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use10.wit.result +0 -0
  2065. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use2.wit +0 -0
  2066. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use2.wit.result +0 -0
  2067. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use3.wit +0 -0
  2068. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use3.wit.result +0 -0
  2069. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use7.wit +0 -0
  2070. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use7.wit.result +0 -0
  2071. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use8.wit +0 -0
  2072. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use8.wit.result +0 -0
  2073. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use9.wit +0 -0
  2074. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unresolved-use9.wit.result +0 -0
  2075. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
  2076. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit +0 -0
  2077. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-and-include-world/root.wit +0 -0
  2078. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-and-include-world.wit.result +0 -0
  2079. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-conflict.wit +0 -0
  2080. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-conflict.wit.result +0 -0
  2081. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-conflict2.wit +0 -0
  2082. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-conflict2.wit.result +0 -0
  2083. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-conflict3.wit +0 -0
  2084. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-conflict3.wit.result +0 -0
  2085. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-cycle1.wit +0 -0
  2086. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-cycle1.wit.result +0 -0
  2087. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-cycle4.wit +0 -0
  2088. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-cycle4.wit.result +0 -0
  2089. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-shadow1.wit +0 -0
  2090. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-shadow1.wit.result +0 -0
  2091. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-world/deps/bar/baz.wit +0 -0
  2092. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-world/root.wit +0 -0
  2093. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/use-world.wit.result +0 -0
  2094. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-interface-clash.wit +0 -0
  2095. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-interface-clash.wit.result +0 -0
  2096. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-same-fields2.wit +0 -0
  2097. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-same-fields2.wit.result +0 -0
  2098. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-same-fields3.wit +0 -0
  2099. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-same-fields3.wit.result +0 -0
  2100. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-top-level-func.wit +0 -0
  2101. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-top-level-func.wit.result +0 -0
  2102. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-top-level-func2.wit +0 -0
  2103. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -0
  2104. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/random.wit +0 -0
  2105. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/random.wit.json +0 -0
  2106. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources-empty.wit +0 -0
  2107. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources-empty.wit.json +0 -0
  2108. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources-multiple-returns-own.wit +0 -0
  2109. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources-multiple-returns-own.wit.json +0 -0
  2110. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources-multiple.wit +0 -0
  2111. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources-multiple.wit.json +0 -0
  2112. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources-return-own.wit +0 -0
  2113. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources-return-own.wit.json +0 -0
  2114. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources.wit +0 -0
  2115. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources.wit.json +0 -0
  2116. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources1.wit +0 -0
  2117. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/resources1.wit.json +0 -0
  2118. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/same-name-import-export.wit +0 -0
  2119. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/same-name-import-export.wit.json +0 -0
  2120. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/shared-types.wit +0 -0
  2121. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/shared-types.wit.json +0 -0
  2122. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/simple-wasm-text.wat +0 -0
  2123. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/simple-wasm-text.wit.json +0 -0
  2124. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/since-and-unstable.wit +0 -0
  2125. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/stress-export-elaborate.wit +0 -0
  2126. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/stress-export-elaborate.wit.json +0 -0
  2127. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/type-then-eof.wit +0 -0
  2128. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/type-then-eof.wit.json +0 -0
  2129. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/types.wit +0 -0
  2130. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/types.wit.json +0 -0
  2131. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/union-fuzz-1.wit +0 -0
  2132. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/union-fuzz-1.wit.json +0 -0
  2133. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/union-fuzz-2.wit +0 -0
  2134. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/union-fuzz-2.wit.json +0 -0
  2135. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/use-chain.wit +0 -0
  2136. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/use-chain.wit.json +0 -0
  2137. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/use.wit +0 -0
  2138. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/use.wit.json +0 -0
  2139. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/versions/deps/a1/foo.wit +0 -0
  2140. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/versions/deps/a2/foo.wit +0 -0
  2141. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/versions/foo.wit +0 -0
  2142. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/versions.wit.json +0 -0
  2143. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/wasi.wit +0 -0
  2144. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/wasi.wit.json +0 -0
  2145. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-diamond.wit +0 -0
  2146. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-diamond.wit.json +0 -0
  2147. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-iface-no-collide.wit +0 -0
  2148. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-iface-no-collide.wit.json +0 -0
  2149. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-implicit-import1.wit +0 -0
  2150. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-implicit-import1.wit.json +0 -0
  2151. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-implicit-import2.wit +0 -0
  2152. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-implicit-import2.wit.json +0 -0
  2153. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-implicit-import3.wit +0 -0
  2154. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-implicit-import3.wit.json +0 -0
  2155. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-same-fields4.wit +0 -0
  2156. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-same-fields4.wit.json +0 -0
  2157. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-top-level-funcs.wit +0 -0
  2158. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-top-level-funcs.wit.json +0 -0
  2159. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-top-level-resources.wit +0 -0
  2160. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/world-top-level-resources.wit.json +0 -0
  2161. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/worlds-union-dedup.wit +0 -0
  2162. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/worlds-union-dedup.wit.json +0 -0
  2163. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/worlds-with-types.wit +0 -0
  2164. /data/ext/cargo-vendor/{wit-parser-0.209.1 → wit-parser-0.212.0}/tests/ui/worlds-with-types.wit.json +0 -0
@@ -1,3995 +0,0 @@
1
- ;; s390x instruction selection and CLIF-to-MachInst lowering.
2
-
3
- ;; The main lowering constructor term: takes a clif `Inst` and returns the
4
- ;; register(s) within which the lowered instruction's result values live.
5
- (decl partial lower (Inst) InstOutput)
6
-
7
- ;; A variant of the main lowering constructor term, used for branches.
8
- ;; The only difference is that it gets an extra argument holding a vector
9
- ;; of branch targets to be used.
10
- (decl partial lower_branch (Inst MachLabelSlice) Unit)
11
-
12
-
13
- ;;;; Rules for `iconst` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14
-
15
- (rule (lower (has_type ty (iconst (u64_from_imm64 n))))
16
- (imm ty n))
17
-
18
-
19
- ;;;; Rules for `f32const` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
20
-
21
- (rule (lower (f32const (u32_from_ieee32 x)))
22
- (imm $F32 x))
23
-
24
-
25
- ;;;; Rules for `f64const` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
26
-
27
- (rule (lower (f64const (u64_from_ieee64 x)))
28
- (imm $F64 x))
29
-
30
-
31
- ;;;; Rules for `vconst` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32
-
33
- (rule (lower (has_type ty (vconst (u128_from_constant x))))
34
- (vec_imm ty (be_vec_const ty x)))
35
-
36
-
37
- ;;;; Rules for `null` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38
-
39
- (rule (lower (has_type ty (null)))
40
- (imm ty 0))
41
-
42
-
43
- ;;;; Rules for `nop` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44
-
45
- (rule (lower (nop))
46
- (invalid_reg))
47
-
48
-
49
- ;;;; Rules for `iconcat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
50
-
51
- (rule (lower (has_type (vr128_ty ty) (iconcat x y)))
52
- (mov_to_vec128 ty y x))
53
-
54
-
55
- ;;;; Rules for `isplit` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
56
-
57
- (rule (lower (isplit x @ (value_type $I128)))
58
- (let ((x_reg Reg x)
59
- (x_hi Reg (vec_extract_lane $I64X2 x_reg 0 (zero_reg)))
60
- (x_lo Reg (vec_extract_lane $I64X2 x_reg 1 (zero_reg))))
61
- (output_pair x_lo x_hi)))
62
-
63
-
64
- ;;;; Rules for `iadd` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
65
-
66
- ;; Add two registers.
67
- (rule 0 (lower (has_type (fits_in_64 ty) (iadd x y)))
68
- (add_reg ty x y))
69
-
70
- ;; Add a register and a sign-extended register.
71
- (rule 8 (lower (has_type (fits_in_64 ty) (iadd x (sext32_value y))))
72
- (add_reg_sext32 ty x y))
73
- (rule 15 (lower (has_type (fits_in_64 ty) (iadd (sext32_value x) y)))
74
- (add_reg_sext32 ty y x))
75
-
76
- ;; Add a register and an immediate.
77
- (rule 7 (lower (has_type (fits_in_64 ty) (iadd x (i16_from_value y))))
78
- (add_simm16 ty x y))
79
- (rule 14 (lower (has_type (fits_in_64 ty) (iadd (i16_from_value x) y)))
80
- (add_simm16 ty y x))
81
- (rule 6 (lower (has_type (fits_in_64 ty) (iadd x (i32_from_value y))))
82
- (add_simm32 ty x y))
83
- (rule 13 (lower (has_type (fits_in_64 ty) (iadd (i32_from_value x) y)))
84
- (add_simm32 ty y x))
85
-
86
- ;; Add a register and memory (32/64-bit types).
87
- (rule 5 (lower (has_type (fits_in_64 ty) (iadd x (sinkable_load_32_64 y))))
88
- (add_mem ty x (sink_load y)))
89
- (rule 12 (lower (has_type (fits_in_64 ty) (iadd (sinkable_load_32_64 x) y)))
90
- (add_mem ty y (sink_load x)))
91
-
92
- ;; Add a register and memory (16-bit types).
93
- (rule 4 (lower (has_type (fits_in_64 ty) (iadd x (sinkable_load_16 y))))
94
- (add_mem_sext16 ty x (sink_load y)))
95
- (rule 11 (lower (has_type (fits_in_64 ty) (iadd (sinkable_load_16 x) y)))
96
- (add_mem_sext16 ty y (sink_load x)))
97
-
98
- ;; Add a register and sign-extended memory.
99
- (rule 3 (lower (has_type (fits_in_64 ty) (iadd x (sinkable_sload16 y))))
100
- (add_mem_sext16 ty x (sink_sload16 y)))
101
- (rule 10 (lower (has_type (fits_in_64 ty) (iadd (sinkable_sload16 x) y)))
102
- (add_mem_sext16 ty y (sink_sload16 x)))
103
- (rule 2 (lower (has_type (fits_in_64 ty) (iadd x (sinkable_sload32 y))))
104
- (add_mem_sext32 ty x (sink_sload32 y)))
105
- (rule 9 (lower (has_type (fits_in_64 ty) (iadd (sinkable_sload32 x) y)))
106
- (add_mem_sext32 ty y (sink_sload32 x)))
107
-
108
- ;; Add two vector registers.
109
- (rule 1 (lower (has_type (vr128_ty ty) (iadd x y)))
110
- (vec_add ty x y))
111
-
112
-
113
- ;;;; Rules for `uadd_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
114
-
115
- ;; Add (saturate unsigned) two vector registers.
116
- (rule (lower (has_type (ty_vec128 ty) (uadd_sat x y)))
117
- (let ((sum Reg (vec_add ty x y)))
118
- (vec_or ty sum (vec_cmphl ty x sum))))
119
-
120
-
121
- ;;;; Rules for `sadd_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
122
-
123
- ;; Add (saturate signed) two vector registers. $I64X2 not supported.
124
- (rule (lower (has_type (ty_vec128 ty) (sadd_sat x y)))
125
- (vec_pack_ssat (vec_widen_type ty)
126
- (vec_add (vec_widen_type ty) (vec_unpacks_high ty x)
127
- (vec_unpacks_high ty y))
128
- (vec_add (vec_widen_type ty) (vec_unpacks_low ty x)
129
- (vec_unpacks_low ty y))))
130
-
131
-
132
- ;;;; Rules for `iadd_pairwise` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
133
-
134
- ;; Lane-wise integer pairwise addition for 8-/16/32-bit vector registers.
135
- (rule (lower (has_type ty @ (multi_lane bits _) (iadd_pairwise x y)))
136
- (let ((size Reg (vec_imm_splat $I8X16 (u32_as_u64 bits))))
137
- (vec_pack_lane_order (vec_widen_type ty)
138
- (vec_add ty x (vec_lshr_by_byte x size))
139
- (vec_add ty y (vec_lshr_by_byte y size)))))
140
-
141
- ;; special case for the `i32x4.dot_i16x8_s` wasm instruction
142
- (rule 1 (lower
143
- (has_type dst_ty (iadd_pairwise
144
- (imul (swiden_low x @ (value_type src_ty)) (swiden_low y))
145
- (imul (swiden_high x) (swiden_high y)))))
146
- (vec_add dst_ty (vec_smul_even src_ty x y)
147
- (vec_smul_odd src_ty x y)))
148
-
149
-
150
- ;;;; Rules for `isub` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
151
-
152
- ;; Sub two registers.
153
- (rule 0 (lower (has_type (fits_in_64 ty) (isub x y)))
154
- (sub_reg ty x y))
155
-
156
- ;; Sub a register and a sign-extended register.
157
- (rule 8 (lower (has_type (fits_in_64 ty) (isub x (sext32_value y))))
158
- (sub_reg_sext32 ty x y))
159
-
160
- ;; Sub a register and an immediate (using add of the negated value).
161
- (rule 7 (lower (has_type (fits_in_64 ty) (isub x (i16_from_negated_value y))))
162
- (add_simm16 ty x y))
163
- (rule 6 (lower (has_type (fits_in_64 ty) (isub x (i32_from_negated_value y))))
164
- (add_simm32 ty x y))
165
-
166
- ;; Sub a register and memory (32/64-bit types).
167
- (rule 5 (lower (has_type (fits_in_64 ty) (isub x (sinkable_load_32_64 y))))
168
- (sub_mem ty x (sink_load y)))
169
-
170
- ;; Sub a register and memory (16-bit types).
171
- (rule 4 (lower (has_type (fits_in_64 ty) (isub x (sinkable_load_16 y))))
172
- (sub_mem_sext16 ty x (sink_load y)))
173
-
174
- ;; Sub a register and sign-extended memory.
175
- (rule 3 (lower (has_type (fits_in_64 ty) (isub x (sinkable_sload16 y))))
176
- (sub_mem_sext16 ty x (sink_sload16 y)))
177
- (rule 2 (lower (has_type (fits_in_64 ty) (isub x (sinkable_sload32 y))))
178
- (sub_mem_sext32 ty x (sink_sload32 y)))
179
-
180
- ;; Sub two vector registers.
181
- (rule 1 (lower (has_type (vr128_ty ty) (isub x y)))
182
- (vec_sub ty x y))
183
-
184
-
185
- ;;;; Rules for `usub_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
186
-
187
- ;; Add (saturate unsigned) two vector registers.
188
- (rule (lower (has_type (ty_vec128 ty) (usub_sat x y)))
189
- (vec_and ty (vec_sub ty x y) (vec_cmphl ty x y)))
190
-
191
-
192
- ;;;; Rules for `ssub_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
193
-
194
- ;; Add (saturate signed) two vector registers. $I64X2 not supported.
195
- (rule (lower (has_type (ty_vec128 ty) (ssub_sat x y)))
196
- (vec_pack_ssat (vec_widen_type ty)
197
- (vec_sub (vec_widen_type ty) (vec_unpacks_high ty x)
198
- (vec_unpacks_high ty y))
199
- (vec_sub (vec_widen_type ty) (vec_unpacks_low ty x)
200
- (vec_unpacks_low ty y))))
201
-
202
-
203
- ;;;; Rules for `iabs` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
204
-
205
- ;; Absolute value of a register.
206
- ;; For types smaller than 32-bit, the input value must be sign-extended.
207
- (rule 2 (lower (has_type (fits_in_64 ty) (iabs x)))
208
- (abs_reg (ty_ext32 ty) (put_in_reg_sext32 x)))
209
-
210
- ;; Absolute value of a sign-extended register.
211
- (rule 3 (lower (has_type (fits_in_64 ty) (iabs (sext32_value x))))
212
- (abs_reg_sext32 ty x))
213
-
214
- ;; Absolute value of a vector register.
215
- (rule 1 (lower (has_type (ty_vec128 ty) (iabs x)))
216
- (vec_abs ty x))
217
-
218
- ;; Absolute value of a 128-bit integer.
219
- (rule 0 (lower (has_type $I128 (iabs x)))
220
- (let ((zero Reg (vec_imm $I128 0))
221
- (pos Reg x)
222
- (neg Reg (vec_sub $I128 zero pos))
223
- (rep Reg (vec_replicate_lane $I64X2 pos 0))
224
- (mask Reg (vec_cmph $I64X2 zero rep)))
225
- (vec_select $I128 neg pos mask)))
226
-
227
-
228
- ;;;; Rules for `ineg` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
229
-
230
- ;; Negate a register.
231
- (rule 2 (lower (has_type (fits_in_64 ty) (ineg x)))
232
- (neg_reg ty x))
233
-
234
- ;; Negate a sign-extended register.
235
- (rule 3 (lower (has_type (fits_in_64 ty) (ineg (sext32_value x))))
236
- (neg_reg_sext32 ty x))
237
-
238
- ;; Negate a vector register.
239
- (rule 1 (lower (has_type (ty_vec128 ty) (ineg x)))
240
- (vec_neg ty x))
241
-
242
- ;; Negate a 128-bit integer.
243
- (rule 0 (lower (has_type $I128 (ineg x)))
244
- (vec_sub $I128 (vec_imm $I128 0) x))
245
-
246
-
247
- ;;;; Rules for `umax` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
248
-
249
- ;; Unsigned maximum of two scalar integers - expand to icmp + select.
250
- (rule 2 (lower (has_type (fits_in_64 ty) (umax x y)))
251
- (let ((x_ext Reg (put_in_reg_zext32 x))
252
- (y_ext Reg (put_in_reg_zext32 y))
253
- (cond ProducesBool (bool (icmpu_reg (ty_ext32 ty) x_ext y_ext)
254
- (intcc_as_cond (IntCC.UnsignedLessThan)))))
255
- (select_bool_reg ty cond y_ext x_ext)))
256
-
257
- ;; Unsigned maximum of two 128-bit integers - expand to icmp + select.
258
- (rule 1 (lower (has_type $I128 (umax x y)))
259
- (let ((x_reg Reg (put_in_reg x))
260
- (y_reg Reg (put_in_reg y))
261
- (cond ProducesBool (vec_int128_ucmphi y_reg x_reg)))
262
- (select_bool_reg $I128 cond y_reg x_reg)))
263
-
264
- ;; Unsigned maximum of two vector registers.
265
- (rule 0 (lower (has_type (ty_vec128 ty) (umax x y)))
266
- (vec_umax ty x y))
267
-
268
-
269
- ;;;; Rules for `umin` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
270
-
271
- ;; Unsigned minimum of two scalar integers - expand to icmp + select.
272
- (rule 2 (lower (has_type (fits_in_64 ty) (umin x y)))
273
- (let ((x_ext Reg (put_in_reg_zext32 x))
274
- (y_ext Reg (put_in_reg_zext32 y))
275
- (cond ProducesBool (bool (icmpu_reg (ty_ext32 ty) x_ext y_ext)
276
- (intcc_as_cond (IntCC.UnsignedGreaterThan)))))
277
- (select_bool_reg ty cond y_ext x_ext)))
278
-
279
- ;; Unsigned maximum of two 128-bit integers - expand to icmp + select.
280
- (rule 1 (lower (has_type $I128 (umin x y)))
281
- (let ((x_reg Reg (put_in_reg x))
282
- (y_reg Reg (put_in_reg y))
283
- (cond ProducesBool (vec_int128_ucmphi x_reg y_reg)))
284
- (select_bool_reg $I128 cond y_reg x_reg)))
285
-
286
- ;; Unsigned minimum of two vector registers.
287
- (rule 0 (lower (has_type (ty_vec128 ty) (umin x y)))
288
- (vec_umin ty x y))
289
-
290
-
291
- ;;;; Rules for `smax` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
292
-
293
- ;; Signed maximum of two scalar integers - expand to icmp + select.
294
- (rule 2 (lower (has_type (fits_in_64 ty) (smax x y)))
295
- (let ((x_ext Reg (put_in_reg_sext32 x))
296
- (y_ext Reg (put_in_reg_sext32 y))
297
- (cond ProducesBool (bool (icmps_reg (ty_ext32 ty) x_ext y_ext)
298
- (intcc_as_cond (IntCC.SignedLessThan)))))
299
- (select_bool_reg ty cond y_ext x_ext)))
300
-
301
- ;; Signed maximum of two 128-bit integers - expand to icmp + select.
302
- (rule 1 (lower (has_type $I128 (smax x y)))
303
- (let ((x_reg Reg (put_in_reg x))
304
- (y_reg Reg (put_in_reg y))
305
- (cond ProducesBool (vec_int128_scmphi y_reg x_reg)))
306
- (select_bool_reg $I128 cond y_reg x_reg)))
307
-
308
- ;; Signed maximum of two vector registers.
309
- (rule (lower (has_type (ty_vec128 ty) (smax x y)))
310
- (vec_smax ty x y))
311
-
312
-
313
- ;;;; Rules for `smin` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
314
-
315
- ;; Signed minimum of two scalar integers - expand to icmp + select.
316
- (rule 2 (lower (has_type (fits_in_64 ty) (smin x y)))
317
- (let ((x_ext Reg (put_in_reg_sext32 x))
318
- (y_ext Reg (put_in_reg_sext32 y))
319
- (cond ProducesBool (bool (icmps_reg (ty_ext32 ty) x_ext y_ext)
320
- (intcc_as_cond (IntCC.SignedGreaterThan)))))
321
- (select_bool_reg ty cond y_ext x_ext)))
322
-
323
- ;; Signed maximum of two 128-bit integers - expand to icmp + select.
324
- (rule 1 (lower (has_type $I128 (smin x y)))
325
- (let ((x_reg Reg (put_in_reg x))
326
- (y_reg Reg (put_in_reg y))
327
- (cond ProducesBool (vec_int128_scmphi x_reg y_reg)))
328
- (select_bool_reg $I128 cond y_reg x_reg)))
329
-
330
- ;; Signed minimum of two vector registers.
331
- (rule (lower (has_type (ty_vec128 ty) (smin x y)))
332
- (vec_smin ty x y))
333
-
334
-
335
- ;;;; Rules for `avg_round` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
336
-
337
- ;; Unsigned average of two vector registers.
338
- (rule (lower (has_type (ty_vec128 ty) (avg_round x y)))
339
- (vec_uavg ty x y))
340
-
341
-
342
- ;;;; Rules for `imul` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
343
-
344
- ;; Multiply two registers.
345
- (rule 0 (lower (has_type (fits_in_64 ty) (imul x y)))
346
- (mul_reg ty x y))
347
-
348
- ;; Multiply a register and a sign-extended register.
349
- (rule 8 (lower (has_type (fits_in_64 ty) (imul x (sext32_value y))))
350
- (mul_reg_sext32 ty x y))
351
- (rule 15 (lower (has_type (fits_in_64 ty) (imul (sext32_value x) y)))
352
- (mul_reg_sext32 ty y x))
353
-
354
- ;; Multiply a register and an immediate.
355
- (rule 7 (lower (has_type (fits_in_64 ty) (imul x (i16_from_value y))))
356
- (mul_simm16 ty x y))
357
- (rule 14 (lower (has_type (fits_in_64 ty) (imul (i16_from_value x) y)))
358
- (mul_simm16 ty y x))
359
- (rule 6 (lower (has_type (fits_in_64 ty) (imul x (i32_from_value y))))
360
- (mul_simm32 ty x y))
361
- (rule 13 (lower (has_type (fits_in_64 ty) (imul (i32_from_value x) y)))
362
- (mul_simm32 ty y x))
363
-
364
- ;; Multiply a register and memory (32/64-bit types).
365
- (rule 5 (lower (has_type (fits_in_64 ty) (imul x (sinkable_load_32_64 y))))
366
- (mul_mem ty x (sink_load y)))
367
- (rule 12 (lower (has_type (fits_in_64 ty) (imul (sinkable_load_32_64 x) y)))
368
- (mul_mem ty y (sink_load x)))
369
-
370
- ;; Multiply a register and memory (16-bit types).
371
- (rule 4 (lower (has_type (fits_in_64 ty) (imul x (sinkable_load_16 y))))
372
- (mul_mem_sext16 ty x (sink_load y)))
373
- (rule 11 (lower (has_type (fits_in_64 ty) (imul (sinkable_load_16 x) y)))
374
- (mul_mem_sext16 ty y (sink_load x)))
375
-
376
- ;; Multiply a register and sign-extended memory.
377
- (rule 3 (lower (has_type (fits_in_64 ty) (imul x (sinkable_sload16 y))))
378
- (mul_mem_sext16 ty x (sink_sload16 y)))
379
- (rule 10 (lower (has_type (fits_in_64 ty) (imul (sinkable_sload16 x) y)))
380
- (mul_mem_sext16 ty y (sink_sload16 x)))
381
- (rule 2 (lower (has_type (fits_in_64 ty) (imul x (sinkable_sload32 y))))
382
- (mul_mem_sext32 ty x (sink_sload32 y)))
383
- (rule 9 (lower (has_type (fits_in_64 ty) (imul (sinkable_sload32 x) y)))
384
- (mul_mem_sext32 ty y (sink_sload32 x)))
385
-
386
- ;; Multiply two vector registers, using a helper.
387
- (decl vec_mul_impl (Type Reg Reg) Reg)
388
- (rule 1 (lower (has_type (vr128_ty ty) (imul x y)))
389
- (vec_mul_impl ty x y))
390
-
391
- ;; Multiply two vector registers - byte, halfword, and word.
392
- (rule (vec_mul_impl $I8X16 x y) (vec_mul $I8X16 x y))
393
- (rule (vec_mul_impl $I16X8 x y) (vec_mul $I16X8 x y))
394
- (rule (vec_mul_impl $I32X4 x y) (vec_mul $I32X4 x y))
395
-
396
- ;; Multiply two vector registers - doubleword. Has to be scalarized.
397
- (rule (vec_mul_impl $I64X2 x y)
398
- (mov_to_vec128 $I64X2
399
- (mul_reg $I64 (vec_extract_lane $I64X2 x 0 (zero_reg))
400
- (vec_extract_lane $I64X2 y 0 (zero_reg)))
401
- (mul_reg $I64 (vec_extract_lane $I64X2 x 1 (zero_reg))
402
- (vec_extract_lane $I64X2 y 1 (zero_reg)))))
403
-
404
- ;; Multiply two vector registers - quadword.
405
- (rule (vec_mul_impl $I128 x y)
406
- (let ((x_hi Reg (vec_extract_lane $I64X2 x 0 (zero_reg)))
407
- (x_lo Reg (vec_extract_lane $I64X2 x 1 (zero_reg)))
408
- (y_hi Reg (vec_extract_lane $I64X2 y 0 (zero_reg)))
409
- (y_lo Reg (vec_extract_lane $I64X2 y 1 (zero_reg)))
410
- (lo_pair RegPair (umul_wide x_lo y_lo))
411
- (res_lo Reg (regpair_lo lo_pair))
412
- (res_hi_1 Reg (regpair_hi lo_pair))
413
- (res_hi_2 Reg (mul_reg $I64 x_lo y_hi))
414
- (res_hi_3 Reg (mul_reg $I64 x_hi y_lo))
415
- (res_hi Reg (add_reg $I64 res_hi_3 (add_reg $I64 res_hi_2 res_hi_1))))
416
- (mov_to_vec128 $I64X2 res_hi res_lo)))
417
-
418
-
419
- ;;;; Rules for `umulhi` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
420
-
421
- ;; Multiply high part unsigned, 8-bit or 16-bit types. (Uses 32-bit multiply.)
422
- (rule -1 (lower (has_type (ty_8_or_16 ty) (umulhi x y)))
423
- (let ((ext_reg_x Reg (put_in_reg_zext32 x))
424
- (ext_reg_y Reg (put_in_reg_zext32 y))
425
- (ext_mul Reg (mul_reg $I32 ext_reg_x ext_reg_y)))
426
- (lshr_imm $I32 ext_mul (ty_bits ty))))
427
-
428
- ;; Multiply high part unsigned, 32-bit types. (Uses 64-bit multiply.)
429
- (rule (lower (has_type $I32 (umulhi x y)))
430
- (let ((ext_reg_x Reg (put_in_reg_zext64 x))
431
- (ext_reg_y Reg (put_in_reg_zext64 y))
432
- (ext_mul Reg (mul_reg $I64 ext_reg_x ext_reg_y)))
433
- (lshr_imm $I64 ext_mul 32)))
434
-
435
- ;; Multiply high part unsigned, 64-bit types. (Uses umul_wide.)
436
- (rule (lower (has_type $I64 (umulhi x y)))
437
- (let ((pair RegPair (umul_wide x y)))
438
- (regpair_hi pair)))
439
-
440
- ;; Multiply high part unsigned, vector types with 8-, 16-, or 32-bit elements.
441
- (rule (lower (has_type $I8X16 (umulhi x y))) (vec_umulhi $I8X16 x y))
442
- (rule (lower (has_type $I16X8 (umulhi x y))) (vec_umulhi $I16X8 x y))
443
- (rule (lower (has_type $I32X4 (umulhi x y))) (vec_umulhi $I32X4 x y))
444
-
445
- ;; Multiply high part unsigned, vector types with 64-bit elements.
446
- ;; Has to be scalarized.
447
- (rule (lower (has_type $I64X2 (umulhi x y)))
448
- (let ((pair_0 RegPair (umul_wide (vec_extract_lane $I64X2 x 0 (zero_reg))
449
- (vec_extract_lane $I64X2 y 0 (zero_reg))))
450
- (res_0 Reg (regpair_hi pair_0))
451
- (pair_1 RegPair (umul_wide (vec_extract_lane $I64X2 x 1 (zero_reg))
452
- (vec_extract_lane $I64X2 y 1 (zero_reg))))
453
- (res_1 Reg (regpair_hi pair_1)))
454
- (mov_to_vec128 $I64X2 res_0 res_1)))
455
-
456
-
457
- ;;;; Rules for `smulhi` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
458
-
459
- ;; Multiply high part signed, 8-bit or 16-bit types. (Uses 32-bit multiply.)
460
- (rule -1 (lower (has_type (ty_8_or_16 ty) (smulhi x y)))
461
- (let ((ext_reg_x Reg (put_in_reg_sext32 x))
462
- (ext_reg_y Reg (put_in_reg_sext32 y))
463
- (ext_mul Reg (mul_reg $I32 ext_reg_x ext_reg_y)))
464
- (ashr_imm $I32 ext_mul (ty_bits ty))))
465
-
466
- ;; Multiply high part signed, 32-bit types. (Uses 64-bit multiply.)
467
- (rule (lower (has_type $I32 (smulhi x y)))
468
- (let ((ext_reg_x Reg (put_in_reg_sext64 x))
469
- (ext_reg_y Reg (put_in_reg_sext64 y))
470
- (ext_mul Reg (mul_reg $I64 ext_reg_x ext_reg_y)))
471
- (ashr_imm $I64 ext_mul 32)))
472
-
473
- ;; Multiply high part signed, 64-bit types. (Uses smul_wide.)
474
- (rule (lower (has_type $I64 (smulhi x y)))
475
- (let ((pair RegPair (smul_wide x y)))
476
- (regpair_hi pair)))
477
-
478
- ;; Multiply high part signed, vector types with 8-, 16-, or 32-bit elements.
479
- (rule (lower (has_type $I8X16 (smulhi x y))) (vec_smulhi $I8X16 x y))
480
- (rule (lower (has_type $I16X8 (smulhi x y))) (vec_smulhi $I16X8 x y))
481
- (rule (lower (has_type $I32X4 (smulhi x y))) (vec_smulhi $I32X4 x y))
482
-
483
- ;; Multiply high part unsigned, vector types with 64-bit elements.
484
- ;; Has to be scalarized.
485
- (rule (lower (has_type $I64X2 (smulhi x y)))
486
- (let ((pair_0 RegPair (smul_wide (vec_extract_lane $I64X2 x 0 (zero_reg))
487
- (vec_extract_lane $I64X2 y 0 (zero_reg))))
488
- (res_0 Reg (copy_reg $I64 (regpair_hi pair_0)))
489
- (pair_1 RegPair (smul_wide (vec_extract_lane $I64X2 x 1 (zero_reg))
490
- (vec_extract_lane $I64X2 y 1 (zero_reg))))
491
- (res_1 Reg (regpair_hi pair_1)))
492
- (mov_to_vec128 $I64X2 res_0 res_1)))
493
-
494
-
495
- ;;;; Rules for `sqmul_round_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496
-
497
- ;; Fixed-point multiplication of two vector registers.
498
- (rule (lower (has_type (ty_vec128 ty) (sqmul_round_sat x y)))
499
- (vec_pack_ssat (vec_widen_type ty)
500
- (sqmul_impl (vec_widen_type ty)
501
- (vec_unpacks_high ty x)
502
- (vec_unpacks_high ty y))
503
- (sqmul_impl (vec_widen_type ty)
504
- (vec_unpacks_low ty x)
505
- (vec_unpacks_low ty y))))
506
-
507
- ;; Helper to perform the rounded multiply in the wider type.
508
- (decl sqmul_impl (Type Reg Reg) Reg)
509
- (rule (sqmul_impl $I32X4 x y)
510
- (vec_ashr_imm $I32X4 (vec_add $I32X4 (vec_mul_impl $I32X4 x y)
511
- (vec_imm_bit_mask $I32X4 17 17))
512
- 15))
513
- (rule (sqmul_impl $I64X2 x y)
514
- (vec_ashr_imm $I64X2 (vec_add $I64X2 (vec_mul_impl $I64X2 x y)
515
- (vec_imm_bit_mask $I64X2 33 33))
516
- 31))
517
-
518
-
519
- ;;;; Rules for `udiv` and `urem` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
520
-
521
- ;; Divide two registers. The architecture provides combined udiv / urem
522
- ;; instructions with the following combination of data types:
523
- ;;
524
- ;; - 64-bit dividend (split across a 2x32-bit register pair),
525
- ;; 32-bit divisor (in a single input register)
526
- ;; 32-bit quotient & remainder (in a 2x32-bit register pair)
527
- ;;
528
- ;; - 128-bit dividend (split across a 2x64-bit register pair),
529
- ;; 64-bit divisor (in a single input register)
530
- ;; 64-bit quotient & remainder (in a 2x64-bit register pair)
531
- ;;
532
- ;; We use the first variant for 32-bit and smaller input types,
533
- ;; and the second variant for 64-bit input types.
534
-
535
- ;; Implement `udiv`.
536
- (rule (lower (has_type (fits_in_64 ty) (udiv x y)))
537
- (let (;; Look at the divisor to determine whether we need to generate
538
- ;; an explicit division-by zero check.
539
- ;; Load up the dividend, by loading the input (possibly zero-
540
- ;; extended) input into the low half of the register pair,
541
- ;; and setting the high half to zero.
542
- (ext_x RegPair (regpair (imm (ty_ext32 ty) 0)
543
- (put_in_reg_zext32 x)))
544
- ;; Load up the divisor, zero-extended if necessary.
545
- (ext_y Reg (put_in_reg_zext32 y))
546
- (ext_ty Type (ty_ext32 ty))
547
- ;; Emit the actual divide instruction.
548
- (pair RegPair (udivmod ext_ty ext_x ext_y)))
549
- ;; The quotient can be found in the low half of the result.
550
- (regpair_lo pair)))
551
-
552
- ;; Implement `urem`. Same as `udiv`, but finds the remainder in
553
- ;; the high half of the result register pair instead.
554
- (rule (lower (has_type (fits_in_64 ty) (urem x y)))
555
- (let ((ext_x RegPair (regpair (imm (ty_ext32 ty) 0)
556
- (put_in_reg_zext32 x)))
557
- (ext_y Reg (put_in_reg_zext32 y))
558
- (ext_ty Type (ty_ext32 ty))
559
- (pair RegPair (udivmod ext_ty ext_x ext_y)))
560
- (regpair_hi pair)))
561
-
562
-
563
- ;;;; Rules for `sdiv` and `srem` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
564
-
565
- ;; Divide two registers. The architecture provides combined sdiv / srem
566
- ;; instructions with the following combination of data types:
567
- ;;
568
- ;; - 64-bit dividend (in the low half of a 2x64-bit register pair),
569
- ;; 32-bit divisor (in a single input register)
570
- ;; 64-bit quotient & remainder (in a 2x64-bit register pair)
571
- ;;
572
- ;; - 64-bit dividend (in the low half of a 2x64-bit register pair),
573
- ;; 64-bit divisor (in a single input register)
574
- ;; 64-bit quotient & remainder (in a 2x64-bit register pair)
575
- ;;
576
- ;; We use the first variant for 32-bit and smaller input types,
577
- ;; and the second variant for 64-bit input types.
578
-
579
- ;; Implement `sdiv`.
580
- (rule (lower (has_type (fits_in_64 ty) (sdiv x y)))
581
- (let (;; Look at the divisor to determine whether we need to generate
582
- ;; explicit division-by-zero and/or integer-overflow checks.
583
- (OFcheck bool (div_overflow_check_needed y))
584
- ;; Load up the dividend (sign-extended to 64-bit)
585
- (ext_x Reg (put_in_reg_sext64 x))
586
- ;; Load up the divisor (sign-extended if necessary).
587
- (ext_y Reg (put_in_reg_sext32 y))
588
- (ext_ty Type (ty_ext32 ty))
589
- ;; Perform integer-overflow check if necessary.
590
- (_ Reg (maybe_trap_if_sdiv_overflow OFcheck ext_ty ty ext_x ext_y))
591
- ;; Emit the actual divide instruction.
592
- (pair RegPair (sdivmod ext_ty ext_x ext_y)))
593
- ;; The quotient can be found in the low half of the result.
594
- (regpair_lo pair)))
595
-
596
- ;; Implement `srem`. Same as `sdiv`, but finds the remainder in
597
- ;; the high half of the result register pair instead. Also, handle
598
- ;; the integer overflow case differently, see below.
599
- (rule (lower (has_type (fits_in_64 ty) (srem x y)))
600
- (let ((OFcheck bool (div_overflow_check_needed y))
601
- (ext_x Reg (put_in_reg_sext64 x))
602
- (ext_y Reg (put_in_reg_sext32 y))
603
- (ext_ty Type (ty_ext32 ty))
604
- (checked_x Reg (maybe_avoid_srem_overflow OFcheck ext_ty ext_x ext_y))
605
- (pair RegPair (sdivmod ext_ty checked_x ext_y)))
606
- (regpair_hi pair)))
607
-
608
- ;; Determine whether we need to perform an integer-overflow check.
609
- ;;
610
- ;; We never rely on the divide instruction itself to trap; while that trap
611
- ;; would indeed happen, we have no way of signalling two different trap
612
- ;; conditions from the same instruction. By explicitly checking for the
613
- ;; integer-overflow case ahead of time, any hardware trap in the divide
614
- ;; instruction is guaranteed to indicate divison-by-zero.
615
- ;;
616
- ;; In addition, for types smaller than 64 bits we would have to perform
617
- ;; the check explicitly anyway, since the instruction provides a 64-bit
618
- ;; quotient and only traps if *that* overflows.
619
- ;;
620
- ;; However, the only case where integer overflow can occur is if the
621
- ;; minimum (signed) integer value is divided by -1, so if the divisor
622
- ;; is any immediate different from -1, the check can be omitted.
623
- (decl div_overflow_check_needed (Value) bool)
624
- (rule 1 (div_overflow_check_needed (i64_from_value x))
625
- (if (i64_not_neg1 x))
626
- $false)
627
- (rule (div_overflow_check_needed _) $true)
628
-
629
- ;; Perform the integer-overflow check if necessary. This implements:
630
- ;;
631
- ;; if divisor == INT_MIN && dividend == -1 { trap }
632
- ;;
633
- ;; but to avoid introducing control flow, it is actually done as:
634
- ;;
635
- ;; if ((divisor ^ INT_MAX) & dividend) == -1 { trap }
636
- ;;
637
- ;; instead, using a single conditional trap instruction.
638
- (decl maybe_trap_if_sdiv_overflow (bool Type Type Reg Reg) Reg)
639
- (rule (maybe_trap_if_sdiv_overflow $false ext_ty _ _ _) (invalid_reg))
640
- (rule (maybe_trap_if_sdiv_overflow $true ext_ty ty x y)
641
- (let ((int_max Reg (imm ext_ty (int_max ty)))
642
- (reg Reg (and_reg ext_ty (xor_reg ext_ty int_max x) y)))
643
- (icmps_simm16_and_trap ext_ty reg -1
644
- (intcc_as_cond (IntCC.Equal))
645
- (trap_code_integer_overflow))))
646
- (decl int_max (Type) u64)
647
- (rule (int_max $I8) 0x7f)
648
- (rule (int_max $I16) 0x7fff)
649
- (rule (int_max $I32) 0x7fffffff)
650
- (rule (int_max $I64) 0x7fffffffffffffff)
651
-
652
- ;; When performing `srem`, we do not want to trap in the
653
- ;; integer-overflow scenario, because it is only the quotient
654
- ;; that overflows, not the remainder.
655
- ;;
656
- ;; For types smaller than 64 bits, we can simply let the
657
- ;; instruction execute, since (as above) it will never trap.
658
- ;;
659
- ;; For 64-bit inputs, we check whether the divisor is -1, and
660
- ;; if so simply replace the dividend by zero, which will give
661
- ;; the correct result, since any value modulo -1 is zero.
662
- ;;
663
- ;; (We could in fact avoid executing the divide instruction
664
- ;; at all in this case, but that would require introducing
665
- ;; control flow.)
666
- (decl maybe_avoid_srem_overflow (bool Type Reg Reg) Reg)
667
- (rule (maybe_avoid_srem_overflow $false _ x _) x)
668
- (rule (maybe_avoid_srem_overflow $true $I32 x _) x)
669
- (rule (maybe_avoid_srem_overflow $true $I64 x y)
670
- (with_flags_reg (icmps_simm16 $I64 y -1)
671
- (cmov_imm $I64 (intcc_as_cond (IntCC.Equal)) 0 x)))
672
-
673
-
674
- ;;;; Rules for `ishl` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
675
-
676
- ;; Shift left, shift amount in register.
677
- (rule 0 (lower (has_type (fits_in_64 ty) (ishl x y)))
678
- (let ((masked_amt Reg (mask_amt_reg ty (amt_reg y))))
679
- (lshl_reg ty x masked_amt)))
680
-
681
- ;; Shift left, immediate shift amount.
682
- (rule 1 (lower (has_type (fits_in_64 ty) (ishl x (i64_from_value y))))
683
- (let ((masked_amt u8 (mask_amt_imm ty y)))
684
- (lshl_imm ty x masked_amt)))
685
-
686
- ;; Vector shift left, shift amount in register.
687
- (rule 2 (lower (has_type (ty_vec128 ty) (ishl x y)))
688
- (vec_lshl_reg ty x (amt_reg y)))
689
-
690
- ;; Vector shift left, immediate shift amount.
691
- (rule 3 (lower (has_type (ty_vec128 ty) (ishl x (i64_from_value y))))
692
- (let ((masked_amt u8 (mask_amt_imm ty y)))
693
- (vec_lshl_imm ty x masked_amt)))
694
-
695
- ;; 128-bit vector shift left.
696
- (rule 4 (lower (has_type $I128 (ishl x y)))
697
- (let ((amt Reg (amt_vr y)))
698
- (vec_lshl_by_bit (vec_lshl_by_byte x amt) amt)))
699
-
700
-
701
- ;;;; Rules for `ushr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
702
-
703
- ;; Shift right logical, shift amount in register.
704
- ;; For types smaller than 32-bit, the input value must be zero-extended.
705
- (rule 0 (lower (has_type (fits_in_64 ty) (ushr x y)))
706
- (let ((ext_reg Reg (put_in_reg_zext32 x))
707
- (masked_amt Reg (mask_amt_reg ty (amt_reg y))))
708
- (lshr_reg (ty_ext32 ty) ext_reg masked_amt)))
709
-
710
- ;; Shift right logical, immediate shift amount.
711
- ;; For types smaller than 32-bit, the input value must be zero-extended.
712
- (rule 1 (lower (has_type (fits_in_64 ty) (ushr x (i64_from_value y))))
713
- (let ((ext_reg Reg (put_in_reg_zext32 x))
714
- (masked_amt u8 (mask_amt_imm ty y)))
715
- (lshr_imm (ty_ext32 ty) ext_reg masked_amt)))
716
-
717
- ;; Vector shift right logical, shift amount in register.
718
- (rule 2 (lower (has_type (ty_vec128 ty) (ushr x y)))
719
- (vec_lshr_reg ty x (amt_reg y)))
720
-
721
- ;; Vector shift right logical, immediate shift amount.
722
- (rule 3 (lower (has_type (ty_vec128 ty) (ushr x (i64_from_value y))))
723
- (let ((masked_amt u8 (mask_amt_imm ty y)))
724
- (vec_lshr_imm ty x masked_amt)))
725
-
726
- ;; 128-bit vector shift right logical.
727
- (rule 4 (lower (has_type $I128 (ushr x y)))
728
- (let ((amt Reg (amt_vr y)))
729
- (vec_lshr_by_bit (vec_lshr_by_byte x amt) amt)))
730
-
731
-
732
- ;;;; Rules for `sshr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
733
-
734
- ;; Shift right arithmetic, shift amount in register.
735
- ;; For types smaller than 32-bit, the input value must be sign-extended.
736
- (rule 0 (lower (has_type (fits_in_64 ty) (sshr x y)))
737
- (let ((ext_reg Reg (put_in_reg_sext32 x))
738
- (masked_amt Reg (mask_amt_reg ty (amt_reg y))))
739
- (ashr_reg (ty_ext32 ty) ext_reg masked_amt)))
740
-
741
- ;; Shift right arithmetic, immediate shift amount.
742
- ;; For types smaller than 32-bit, the input value must be sign-extended.
743
- (rule 1 (lower (has_type (fits_in_64 ty) (sshr x (i64_from_value y))))
744
- (let ((ext_reg Reg (put_in_reg_sext32 x))
745
- (masked_amt u8 (mask_amt_imm ty y)))
746
- (ashr_imm (ty_ext32 ty) ext_reg masked_amt)))
747
-
748
- ;; Vector shift right arithmetic, shift amount in register.
749
- (rule 2 (lower (has_type (ty_vec128 ty) (sshr x y)))
750
- (vec_ashr_reg ty x (amt_reg y)))
751
-
752
- ;; Vector shift right arithmetic, immediate shift amount.
753
- (rule 3 (lower (has_type (ty_vec128 ty) (sshr x (i64_from_value y))))
754
- (let ((masked_amt u8 (mask_amt_imm ty y)))
755
- (vec_ashr_imm ty x masked_amt)))
756
-
757
- ;; 128-bit vector shift right arithmetic.
758
- (rule 4 (lower (has_type $I128 (sshr x y)))
759
- (let ((amt Reg (amt_vr y)))
760
- (vec_ashr_by_bit (vec_ashr_by_byte x amt) amt)))
761
-
762
-
763
- ;;;; Rules for `rotl` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
764
-
765
- ;; Rotate left, shift amount in register. 32-bit or 64-bit types.
766
- (rule 0 (lower (has_type (ty_32_or_64 ty) (rotl x y)))
767
- (rot_reg ty x (amt_reg y)))
768
-
769
- ;; Rotate left arithmetic, immediate shift amount. 32-bit or 64-bit types.
770
- (rule 1 (lower (has_type (ty_32_or_64 ty) (rotl x (i64_from_value y))))
771
- (let ((masked_amt u8 (mask_amt_imm ty y)))
772
- (rot_imm ty x masked_amt)))
773
-
774
- ;; Rotate left, shift amount in register. 8-bit or 16-bit types.
775
- ;; Implemented via a pair of 32-bit shifts on the zero-extended input.
776
- (rule 2 (lower (has_type (ty_8_or_16 ty) (rotl x y)))
777
- (let ((ext_reg Reg (put_in_reg_zext32 x))
778
- (ext_ty Type (ty_ext32 ty))
779
- (pos_amt Reg (amt_reg y))
780
- (neg_amt Reg (neg_reg $I32 pos_amt))
781
- (masked_pos_amt Reg (mask_amt_reg ty pos_amt))
782
- (masked_neg_amt Reg (mask_amt_reg ty neg_amt)))
783
- (or_reg ty (lshl_reg ext_ty ext_reg masked_pos_amt)
784
- (lshr_reg ext_ty ext_reg masked_neg_amt))))
785
-
786
- ;; Rotate left, immediate shift amount. 8-bit or 16-bit types.
787
- ;; Implemented via a pair of 32-bit shifts on the zero-extended input.
788
- (rule 3 (lower (has_type (ty_8_or_16 ty) (rotl x (and (i64_from_value pos_amt)
789
- (i64_from_negated_value neg_amt)))))
790
- (let ((ext_reg Reg (put_in_reg_zext32 x))
791
- (ext_ty Type (ty_ext32 ty))
792
- (masked_pos_amt u8 (mask_amt_imm ty pos_amt))
793
- (masked_neg_amt u8 (mask_amt_imm ty neg_amt)))
794
- (or_reg ty (lshl_imm ext_ty ext_reg masked_pos_amt)
795
- (lshr_imm ext_ty ext_reg masked_neg_amt))))
796
-
797
- ;; Vector rotate left, shift amount in register.
798
- (rule 4 (lower (has_type (ty_vec128 ty) (rotl x y)))
799
- (vec_rot_reg ty x (amt_reg y)))
800
-
801
- ;; Vector rotate left, immediate shift amount.
802
- (rule 5 (lower (has_type (ty_vec128 ty) (rotl x (i64_from_value y))))
803
- (let ((masked_amt u8 (mask_amt_imm ty y)))
804
- (vec_rot_imm ty x masked_amt)))
805
-
806
- ;; 128-bit full vector rotate left.
807
- ;; Implemented via a pair of 128-bit full vector shifts.
808
- (rule 6 (lower (has_type $I128 (rotl x y)))
809
- (let ((x_reg Reg x)
810
- (pos_amt Reg (amt_vr y))
811
- (neg_amt Reg (vec_neg $I8X16 pos_amt)))
812
- (vec_or $I128
813
- (vec_lshl_by_bit (vec_lshl_by_byte x_reg pos_amt) pos_amt)
814
- (vec_lshr_by_bit (vec_lshr_by_byte x_reg neg_amt) neg_amt))))
815
-
816
-
817
- ;;;; Rules for `rotr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
818
-
819
- ;; Rotate right, shift amount in register. 32-bit or 64-bit types.
820
- ;; Implemented as rotate left with negated rotate amount.
821
- (rule 0 (lower (has_type (ty_32_or_64 ty) (rotr x y)))
822
- (let ((negated_amt Reg (neg_reg $I32 (amt_reg y))))
823
- (rot_reg ty x negated_amt)))
824
-
825
- ;; Rotate right arithmetic, immediate shift amount. 32-bit or 64-bit types.
826
- ;; Implemented as rotate left with negated rotate amount.
827
- (rule 1 (lower (has_type (ty_32_or_64 ty) (rotr x (i64_from_negated_value y))))
828
- (let ((negated_amt u8 (mask_amt_imm ty y)))
829
- (rot_imm ty x negated_amt)))
830
-
831
- ;; Rotate right, shift amount in register. 8-bit or 16-bit types.
832
- ;; Implemented as rotate left with negated rotate amount.
833
- (rule 2 (lower (has_type (ty_8_or_16 ty) (rotr x y)))
834
- (let ((ext_reg Reg (put_in_reg_zext32 x))
835
- (ext_ty Type (ty_ext32 ty))
836
- (pos_amt Reg (amt_reg y))
837
- (neg_amt Reg (neg_reg $I32 pos_amt))
838
- (masked_pos_amt Reg (mask_amt_reg ty pos_amt))
839
- (masked_neg_amt Reg (mask_amt_reg ty neg_amt)))
840
- (or_reg ty (lshl_reg ext_ty ext_reg masked_neg_amt)
841
- (lshr_reg ext_ty ext_reg masked_pos_amt))))
842
-
843
- ;; Rotate right, immediate shift amount. 8-bit or 16-bit types.
844
- ;; Implemented as rotate left with negated rotate amount.
845
- (rule 3 (lower (has_type (ty_8_or_16 ty) (rotr x (and (i64_from_value pos_amt)
846
- (i64_from_negated_value neg_amt)))))
847
- (let ((ext_reg Reg (put_in_reg_zext32 x))
848
- (ext_ty Type (ty_ext32 ty))
849
- (masked_pos_amt u8 (mask_amt_imm ty pos_amt))
850
- (masked_neg_amt u8 (mask_amt_imm ty neg_amt)))
851
- (or_reg ty (lshl_imm ext_ty ext_reg masked_neg_amt)
852
- (lshr_imm ext_ty ext_reg masked_pos_amt))))
853
-
854
- ;; Vector rotate right, shift amount in register.
855
- ;; Implemented as rotate left with negated rotate amount.
856
- (rule 4 (lower (has_type (ty_vec128 ty) (rotr x y)))
857
- (let ((negated_amt Reg (neg_reg $I32 (amt_reg y))))
858
- (vec_rot_reg ty x negated_amt)))
859
-
860
- ;; Vector rotate right, immediate shift amount.
861
- ;; Implemented as rotate left with negated rotate amount.
862
- (rule 5 (lower (has_type (ty_vec128 ty) (rotr x (i64_from_negated_value y))))
863
- (let ((negated_amt u8 (mask_amt_imm ty y)))
864
- (vec_rot_imm ty x negated_amt)))
865
-
866
- ;; 128-bit full vector rotate right.
867
- ;; Implemented via a pair of 128-bit full vector shifts.
868
- (rule 6 (lower (has_type $I128 (rotr x y)))
869
- (let ((x_reg Reg x)
870
- (pos_amt Reg (amt_vr y))
871
- (neg_amt Reg (vec_neg $I8X16 pos_amt)))
872
- (vec_or $I128
873
- (vec_lshl_by_bit (vec_lshl_by_byte x_reg neg_amt) neg_amt)
874
- (vec_lshr_by_bit (vec_lshr_by_byte x_reg pos_amt) pos_amt))))
875
-
876
-
877
- ;;;; Rules for `ireduce` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
878
-
879
- ;; Up to 64-bit source type: Always a no-op.
880
- (rule 1 (lower (ireduce x @ (value_type (fits_in_64 _ty))))
881
- x)
882
-
883
- ;; 128-bit source type: Extract the low half.
884
- (rule (lower (ireduce x @ (value_type (vr128_ty _ty))))
885
- (vec_extract_lane $I64X2 x 1 (zero_reg)))
886
-
887
-
888
- ;;;; Rules for `uextend` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
889
-
890
- ;; 16- or 32-bit target types.
891
- (rule 1 (lower (has_type (gpr32_ty _ty) (uextend x)))
892
- (put_in_reg_zext32 x))
893
-
894
- ;; 64-bit target types.
895
- (rule 2 (lower (has_type (gpr64_ty _ty) (uextend x)))
896
- (put_in_reg_zext64 x))
897
-
898
- ;; 128-bit target types.
899
- (rule (lower (has_type $I128 (uextend x @ (value_type $I8))))
900
- (vec_insert_lane $I8X16 (vec_imm $I128 0) x 15 (zero_reg)))
901
- (rule (lower (has_type $I128 (uextend x @ (value_type $I16))))
902
- (vec_insert_lane $I16X8 (vec_imm $I128 0) x 7 (zero_reg)))
903
- (rule (lower (has_type $I128 (uextend x @ (value_type $I32))))
904
- (vec_insert_lane $I32X4 (vec_imm $I128 0) x 3 (zero_reg)))
905
- (rule (lower (has_type $I128 (uextend x @ (value_type $I64))))
906
- (vec_insert_lane $I64X2 (vec_imm $I128 0) x 1 (zero_reg)))
907
-
908
-
909
- ;;;; Rules for `sextend` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
910
-
911
- ;; 16- or 32-bit target types.
912
- (rule 1 (lower (has_type (gpr32_ty _ty) (sextend x)))
913
- (put_in_reg_sext32 x))
914
-
915
- ;; 64-bit target types.
916
- (rule 2 (lower (has_type (gpr64_ty _ty) (sextend x)))
917
- (put_in_reg_sext64 x))
918
-
919
- ;; 128-bit target types.
920
- (rule (lower (has_type $I128 (sextend x)))
921
- (let ((x_ext Reg (put_in_reg_sext64 x)))
922
- (mov_to_vec128 $I128 (ashr_imm $I64 x_ext 63) x_ext)))
923
-
924
-
925
- ;;;; Rules for `snarrow` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
926
-
927
- (rule (lower (snarrow x @ (value_type (ty_vec128 ty)) y))
928
- (vec_pack_ssat_lane_order ty x y))
929
-
930
-
931
- ;;;; Rules for `uunarrow` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
932
-
933
- (rule (lower (uunarrow x @ (value_type (ty_vec128 ty)) y))
934
- (vec_pack_usat_lane_order ty x y))
935
-
936
-
937
- ;;;; Rules for `unarrow` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
938
-
939
- (rule (lower (unarrow x @ (value_type (ty_vec128 ty)) y))
940
- (let ((zero Reg (vec_imm ty 0)))
941
- (vec_pack_usat_lane_order ty (vec_smax ty x zero) (vec_smax ty y zero))))
942
-
943
-
944
- ;;;; Rules for `swiden_low` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
945
-
946
- (rule (lower (swiden_low x @ (value_type (ty_vec128 ty))))
947
- (vec_unpacks_low_lane_order ty x))
948
-
949
-
950
- ;;;; Rules for `swiden_high` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
951
-
952
- (rule (lower (swiden_high x @ (value_type (ty_vec128 ty))))
953
- (vec_unpacks_high_lane_order ty x))
954
-
955
-
956
- ;;;; Rules for `uwiden_low` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
957
-
958
- (rule (lower (uwiden_low x @ (value_type (ty_vec128 ty))))
959
- (vec_unpacku_low_lane_order ty x))
960
-
961
-
962
- ;;;; Rules for `uwiden_high` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
963
-
964
- (rule (lower (uwiden_high x @ (value_type (ty_vec128 ty))))
965
- (vec_unpacku_high_lane_order ty x))
966
-
967
-
968
- ;;;; Rules for `bnot` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
969
-
970
- ;; z15 version using a single instruction (NOR).
971
- (rule 2 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bnot x)))
972
- (let ((rx Reg x))
973
- (not_or_reg ty rx rx)))
974
-
975
- ;; z14 version using XOR with -1.
976
- (rule 1 (lower (has_type (and (mie2_disabled) (fits_in_64 ty)) (bnot x)))
977
- (not_reg ty x))
978
-
979
- ;; Vector version using vector NOR.
980
- (rule (lower (has_type (vr128_ty ty) (bnot x)))
981
- (vec_not ty x))
982
-
983
- ;; With z15 (bnot (bxor ...)) can be a single instruction, similar to the
984
- ;; (bxor _ (bnot _)) lowering.
985
- (rule 3 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bnot (bxor x y))))
986
- (not_xor_reg ty x y))
987
-
988
- ;; Combine a not/xor operation of vector types into one.
989
- (rule 4 (lower (has_type (vr128_ty ty) (bnot (bxor x y))))
990
- (vec_not_xor ty x y))
991
-
992
-
993
- ;;;; Rules for `band` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
994
-
995
- ;; And two registers.
996
- (rule -1 (lower (has_type (fits_in_64 ty) (band x y)))
997
- (and_reg ty x y))
998
-
999
- ;; And a register and an immediate.
1000
- (rule 5 (lower (has_type (fits_in_64 ty) (band x (uimm16shifted_from_inverted_value y))))
1001
- (and_uimm16shifted ty x y))
1002
- (rule 6 (lower (has_type (fits_in_64 ty) (band (uimm16shifted_from_inverted_value x) y)))
1003
- (and_uimm16shifted ty y x))
1004
- (rule 3 (lower (has_type (fits_in_64 ty) (band x (uimm32shifted_from_inverted_value y))))
1005
- (and_uimm32shifted ty x y))
1006
- (rule 4 (lower (has_type (fits_in_64 ty) (band (uimm32shifted_from_inverted_value x) y)))
1007
- (and_uimm32shifted ty y x))
1008
-
1009
- ;; And a register and memory (32/64-bit types).
1010
- (rule 1 (lower (has_type (fits_in_64 ty) (band x (sinkable_load_32_64 y))))
1011
- (and_mem ty x (sink_load y)))
1012
- (rule 2 (lower (has_type (fits_in_64 ty) (band (sinkable_load_32_64 x) y)))
1013
- (and_mem ty y (sink_load x)))
1014
-
1015
- ;; And two vector registers.
1016
- (rule 0 (lower (has_type (vr128_ty ty) (band x y)))
1017
- (vec_and ty x y))
1018
-
1019
- ;; Specialized lowerings for `(band x (bnot y))` which is additionally produced
1020
- ;; by Cranelift's `band_not` instruction that is legalized into the simpler
1021
- ;; forms early on.
1022
-
1023
- ;; z15 version using a single instruction.
1024
- (rule 7 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (band x (bnot y))))
1025
- (and_not_reg ty x y))
1026
- (rule 8 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (band (bnot y) x)))
1027
- (and_not_reg ty x y))
1028
-
1029
- ;; And-not two vector registers.
1030
- (rule 9 (lower (has_type (vr128_ty ty) (band x (bnot y))))
1031
- (vec_and_not ty x y))
1032
- (rule 10 (lower (has_type (vr128_ty ty) (band (bnot y) x)))
1033
- (vec_and_not ty x y))
1034
-
1035
- ;;;; Rules for `bor` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1036
-
1037
- ;; Or two registers.
1038
- (rule -1 (lower (has_type (fits_in_64 ty) (bor x y)))
1039
- (or_reg ty x y))
1040
-
1041
- ;; Or a register and an immediate.
1042
- (rule 5 (lower (has_type (fits_in_64 ty) (bor x (uimm16shifted_from_value y))))
1043
- (or_uimm16shifted ty x y))
1044
- (rule 6 (lower (has_type (fits_in_64 ty) (bor (uimm16shifted_from_value x) y)))
1045
- (or_uimm16shifted ty y x))
1046
- (rule 3 (lower (has_type (fits_in_64 ty) (bor x (uimm32shifted_from_value y))))
1047
- (or_uimm32shifted ty x y))
1048
- (rule 4 (lower (has_type (fits_in_64 ty) (bor (uimm32shifted_from_value x) y)))
1049
- (or_uimm32shifted ty y x))
1050
-
1051
- ;; Or a register and memory (32/64-bit types).
1052
- (rule 1 (lower (has_type (fits_in_64 ty) (bor x (sinkable_load_32_64 y))))
1053
- (or_mem ty x (sink_load y)))
1054
- (rule 2 (lower (has_type (fits_in_64 ty) (bor (sinkable_load_32_64 x) y)))
1055
- (or_mem ty y (sink_load x)))
1056
-
1057
- ;; Or two vector registers.
1058
- (rule 0 (lower (has_type (vr128_ty ty) (bor x y)))
1059
- (vec_or ty x y))
1060
-
1061
- ;; Specialized lowerings for `(bor x (bnot y))` which is additionally produced
1062
- ;; by Cranelift's `bor_not` instruction that is legalized into the simpler
1063
- ;; forms early on.
1064
-
1065
- ;; z15 version using a single instruction.
1066
- (rule 7 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bor x (bnot y))))
1067
- (or_not_reg ty x y))
1068
- (rule 8 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bor (bnot y) x)))
1069
- (or_not_reg ty x y))
1070
-
1071
- ;; Or-not two vector registers.
1072
- (rule 9 (lower (has_type (vr128_ty ty) (bor x (bnot y))))
1073
- (vec_or_not ty x y))
1074
- (rule 10 (lower (has_type (vr128_ty ty) (bor (bnot y) x)))
1075
- (vec_or_not ty x y))
1076
-
1077
-
1078
- ;;;; Rules for `bxor` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1079
-
1080
- ;; Xor two registers.
1081
- (rule -1 (lower (has_type (fits_in_64 ty) (bxor x y)))
1082
- (xor_reg ty x y))
1083
-
1084
- ;; Xor a register and an immediate.
1085
- (rule 3 (lower (has_type (fits_in_64 ty) (bxor x (uimm32shifted_from_value y))))
1086
- (xor_uimm32shifted ty x y))
1087
- (rule 4 (lower (has_type (fits_in_64 ty) (bxor (uimm32shifted_from_value x) y)))
1088
- (xor_uimm32shifted ty y x))
1089
-
1090
- ;; Xor a register and memory (32/64-bit types).
1091
- (rule 1 (lower (has_type (fits_in_64 ty) (bxor x (sinkable_load_32_64 y))))
1092
- (xor_mem ty x (sink_load y)))
1093
- (rule 2 (lower (has_type (fits_in_64 ty) (bxor (sinkable_load_32_64 x) y)))
1094
- (xor_mem ty y (sink_load x)))
1095
-
1096
- ;; Xor two vector registers.
1097
- (rule 0 (lower (has_type (vr128_ty ty) (bxor x y)))
1098
- (vec_xor ty x y))
1099
-
1100
- ;; Specialized lowerings for `(bxor x (bnot y))` which is additionally produced
1101
- ;; by Cranelift's `bxor_not` instruction that is legalized into the simpler
1102
- ;; forms early on.
1103
-
1104
- ;; z15 version using a single instruction.
1105
- (rule 5 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bxor x (bnot y))))
1106
- (not_xor_reg ty x y))
1107
- (rule 6 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bxor (bnot y) x)))
1108
- (not_xor_reg ty x y))
1109
-
1110
- ;; Xor-not two vector registers.
1111
- (rule 7 (lower (has_type (vr128_ty ty) (bxor x (bnot y))))
1112
- (vec_not_xor ty x y))
1113
- (rule 8 (lower (has_type (vr128_ty ty) (bxor (bnot y) x)))
1114
- (vec_not_xor ty x y))
1115
-
1116
-
1117
- ;;;; Rules for `bitselect` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1118
-
1119
- ;; z15 version using a NAND instruction.
1120
- (rule 2 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (bitselect x y z)))
1121
- (let ((rx Reg x)
1122
- (if_true Reg (and_reg ty y rx))
1123
- (if_false Reg (and_not_reg ty z rx)))
1124
- (or_reg ty if_false if_true)))
1125
-
1126
- ;; z14 version using XOR with -1.
1127
- (rule 1 (lower (has_type (and (mie2_disabled) (fits_in_64 ty)) (bitselect x y z)))
1128
- (let ((rx Reg x)
1129
- (if_true Reg (and_reg ty y rx))
1130
- (if_false Reg (and_reg ty z (not_reg ty rx))))
1131
- (or_reg ty if_false if_true)))
1132
-
1133
- ;; Bitselect vector registers.
1134
- (rule (lower (has_type (vr128_ty ty) (bitselect x y z)))
1135
- (vec_select ty y z x))
1136
-
1137
- ;; Special-case some float-selection instructions for min/max
1138
- (rule 3 (lower (has_type (ty_vec128 ty) (bitselect (bitcast _ (fcmp (FloatCC.LessThan) x y)) x y)))
1139
- (fmin_pseudo_reg ty y x))
1140
- (rule 4 (lower (has_type (ty_vec128 ty) (bitselect (bitcast _ (fcmp (FloatCC.LessThan) y x)) x y)))
1141
- (fmax_pseudo_reg ty y x))
1142
-
1143
-
1144
-
1145
- ;;;; Rules for `bmask` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1146
-
1147
- (rule (lower (has_type ty (bmask x)))
1148
- (lower_bool_to_mask ty (value_nonzero x)))
1149
-
1150
-
1151
- ;;;; Rules for `bitrev` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1152
-
1153
- (rule (lower (has_type ty (bitrev x)))
1154
- (bitrev_bytes ty
1155
- (bitrev_bits 4 0xf0f0_f0f0_f0f0_f0f0 ty
1156
- (bitrev_bits 2 0xcccc_cccc_cccc_cccc ty
1157
- (bitrev_bits 1 0xaaaa_aaaa_aaaa_aaaa ty x)))))
1158
-
1159
- (decl bitrev_bits (u8 u64 Type Reg) Reg)
1160
- (rule 1 (bitrev_bits size bitmask (fits_in_64 ty) x)
1161
- (let ((mask Reg (imm ty bitmask))
1162
- (xh Reg (lshl_imm (ty_ext32 ty) x size))
1163
- (xl Reg (lshr_imm (ty_ext32 ty) x size))
1164
- (xh_masked Reg (and_reg ty xh mask))
1165
- (xl_masked Reg (and_reg ty xl (not_reg ty mask))))
1166
- (or_reg ty xh_masked xl_masked)))
1167
-
1168
- (rule (bitrev_bits size bitmask (vr128_ty ty) x)
1169
- (let ((mask Reg (vec_imm_splat $I64X2 bitmask))
1170
- (size_reg Reg (vec_imm_splat $I8X16 (u8_as_u64 size)))
1171
- (xh Reg (vec_lshl_by_bit x size_reg))
1172
- (xl Reg (vec_lshr_by_bit x size_reg)))
1173
- (vec_select ty xh xl mask)))
1174
-
1175
- (decl bitrev_bytes (Type Reg) Reg)
1176
- (rule (bitrev_bytes $I8 x) x)
1177
- (rule (bitrev_bytes $I16 x) (lshr_imm $I32 (bswap_reg $I32 x) 16))
1178
- (rule (bitrev_bytes $I32 x) (bswap_reg $I32 x))
1179
- (rule (bitrev_bytes $I64 x) (bswap_reg $I64 x))
1180
- (rule (bitrev_bytes $I128 x)
1181
- (vec_permute $I128 x x
1182
- (vec_imm $I8X16 (imm8x16 15 14 13 12 11 10 9 8
1183
- 7 6 5 4 3 2 1 0))))
1184
-
1185
-
1186
- ;;;; Rules for `bswap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1187
-
1188
- (rule (lower (has_type ty (bswap x)))
1189
- (bitrev_bytes ty x))
1190
-
1191
- ;;;; Rules for `clz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1192
-
1193
- ;; The FLOGR hardware instruction always operates on the full 64-bit register.
1194
- ;; We can zero-extend smaller types, but then we have to compensate for the
1195
- ;; additional leading zero bits the instruction will actually see.
1196
- (decl clz_offset (Type Reg) Reg)
1197
- (rule (clz_offset $I8 x) (add_simm16 $I8 x -56))
1198
- (rule (clz_offset $I16 x) (add_simm16 $I16 x -48))
1199
- (rule (clz_offset $I32 x) (add_simm16 $I32 x -32))
1200
- (rule (clz_offset $I64 x) x)
1201
-
1202
- ;; Count leading zeros, via FLOGR on an input zero-extended to 64 bits,
1203
- ;; with the result compensated for the extra bits.
1204
- (rule 1 (lower (has_type (fits_in_64 ty) (clz x)))
1205
- (let ((ext_reg Reg (put_in_reg_zext64 x))
1206
- ;; Ask for a value of 64 in the all-zero 64-bit input case.
1207
- ;; After compensation this will match the expected semantics.
1208
- (clz Reg (clz_reg 64 ext_reg)))
1209
- (clz_offset ty clz)))
1210
-
1211
- ;; Count leading zeros, 128-bit full vector.
1212
- (rule (lower (has_type $I128 (clz x)))
1213
- (let ((clz_vec Reg (vec_clz $I64X2 x))
1214
- (zero Reg (vec_imm $I64X2 0))
1215
- (clz_hi Reg (vec_permute_dw_imm $I64X2 zero 0 clz_vec 0))
1216
- (clz_lo Reg (vec_permute_dw_imm $I64X2 zero 0 clz_vec 1))
1217
- (clz_sum Reg (vec_add $I64X2 clz_hi clz_lo))
1218
- (mask Reg (vec_cmpeq $I64X2 clz_hi (vec_imm_splat $I64X2 64))))
1219
- (vec_select $I128 clz_sum clz_hi mask)))
1220
-
1221
-
1222
- ;;;; Rules for `cls` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1223
-
1224
- ;; The result of cls is not supposed to count the sign bit itself, just
1225
- ;; additional copies of it. Therefore, when computing cls in terms of clz,
1226
- ;; we need to subtract one. Fold this into the offset computation.
1227
- (decl cls_offset (Type Reg) Reg)
1228
- (rule (cls_offset $I8 x) (add_simm16 $I8 x -57))
1229
- (rule (cls_offset $I16 x) (add_simm16 $I16 x -49))
1230
- (rule (cls_offset $I32 x) (add_simm16 $I32 x -33))
1231
- (rule (cls_offset $I64 x) (add_simm16 $I64 x -1))
1232
-
1233
- ;; Count leading sign-bit copies. We don't have any instruction for that,
1234
- ;; so we instead count the leading zeros after inverting the input if negative,
1235
- ;; i.e. computing
1236
- ;; cls(x) == clz(x ^ (x >> 63)) - 1
1237
- ;; where x is the sign-extended input.
1238
- (rule 1 (lower (has_type (fits_in_64 ty) (cls x)))
1239
- (let ((ext_reg Reg (put_in_reg_sext64 x))
1240
- (signbit_copies Reg (ashr_imm $I64 ext_reg 63))
1241
- (inv_reg Reg (xor_reg $I64 ext_reg signbit_copies))
1242
- (clz Reg (clz_reg 64 inv_reg)))
1243
- (cls_offset ty clz)))
1244
-
1245
- ;; Count leading sign-bit copies, 128-bit full vector.
1246
- (rule (lower (has_type $I128 (cls x)))
1247
- (let ((x_reg Reg x)
1248
- (ones Reg (vec_imm_splat $I8X16 255))
1249
- (signbit_copies Reg (vec_ashr_by_bit (vec_ashr_by_byte x_reg ones) ones))
1250
- (inv_reg Reg (vec_xor $I128 x_reg signbit_copies))
1251
- (clz_vec Reg (vec_clz $I64X2 inv_reg))
1252
- (zero Reg (vec_imm $I64X2 0))
1253
- (clz_hi Reg (vec_permute_dw_imm $I64X2 zero 0 clz_vec 0))
1254
- (clz_lo Reg (vec_permute_dw_imm $I64X2 zero 0 clz_vec 1))
1255
- (clz_sum Reg (vec_add $I64X2 clz_hi clz_lo))
1256
- (mask Reg (vec_cmpeq $I64X2 clz_hi (vec_imm_splat $I64X2 64))))
1257
- (vec_add $I128 (vec_select $I128 clz_sum clz_hi mask) ones)))
1258
-
1259
-
1260
- ;;;; Rules for `ctz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1261
-
1262
- ;; To count trailing zeros, we find the last bit set in the input via (x & -x),
1263
- ;; count the leading zeros of that value, and subtract from 63:
1264
- ;;
1265
- ;; ctz(x) == 63 - clz(x & -x)
1266
- ;;
1267
- ;; This works for all cases except a zero input, where the above formula would
1268
- ;; return -1, but we are expected to return the type size. The compensation
1269
- ;; for this case is handled differently for 64-bit types vs. smaller types.
1270
-
1271
- ;; For smaller types, we simply ensure that the extended 64-bit input is
1272
- ;; never zero by setting a "guard bit" in the position corresponding to
1273
- ;; the input type size. This way the 64-bit algorithm above will handle
1274
- ;; that case correctly automatically.
1275
- (rule 2 (lower (has_type (gpr32_ty ty) (ctz x)))
1276
- (let ((rx Reg (or_uimm16shifted $I64 x (ctz_guardbit ty)))
1277
- (lastbit Reg (and_reg $I64 rx (neg_reg $I64 rx)))
1278
- (clz Reg (clz_reg 64 lastbit)))
1279
- (sub_reg ty (imm ty 63) clz)))
1280
-
1281
- (decl ctz_guardbit (Type) UImm16Shifted)
1282
- (rule (ctz_guardbit $I8) (uimm16shifted 256 0))
1283
- (rule (ctz_guardbit $I16) (uimm16shifted 1 16))
1284
- (rule (ctz_guardbit $I32) (uimm16shifted 1 32))
1285
-
1286
- ;; For 64-bit types, the FLOGR instruction will indicate the zero input case
1287
- ;; via its condition code. We check for that and replace the instruction
1288
- ;; result with the value -1 via a conditional move, which will then lead to
1289
- ;; the correct result after the final subtraction from 63.
1290
- (rule 1 (lower (has_type (gpr64_ty _ty) (ctz x)))
1291
- (let ((rx Reg x)
1292
- (lastbit Reg (and_reg $I64 rx (neg_reg $I64 rx)))
1293
- (clz Reg (clz_reg -1 lastbit)))
1294
- (sub_reg $I64 (imm $I64 63) clz)))
1295
-
1296
- ;; Count trailing zeros, 128-bit full vector.
1297
- (rule 0 (lower (has_type $I128 (ctz x)))
1298
- (let ((ctz_vec Reg (vec_ctz $I64X2 x))
1299
- (zero Reg (vec_imm $I64X2 0))
1300
- (ctz_hi Reg (vec_permute_dw_imm $I64X2 zero 0 ctz_vec 0))
1301
- (ctz_lo Reg (vec_permute_dw_imm $I64X2 zero 0 ctz_vec 1))
1302
- (ctz_sum Reg (vec_add $I64X2 ctz_hi ctz_lo))
1303
- (mask Reg (vec_cmpeq $I64X2 ctz_lo (vec_imm_splat $I64X2 64))))
1304
- (vec_select $I128 ctz_sum ctz_lo mask)))
1305
-
1306
-
1307
- ;;;; Rules for `popcnt` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1308
-
1309
- ;; Population count for 8-bit types is supported by the POPCNT instruction.
1310
- (rule (lower (has_type $I8 (popcnt x)))
1311
- (popcnt_byte x))
1312
-
1313
- ;; On z15, the POPCNT instruction has a variant to compute a full 64-bit
1314
- ;; population count, which we also use for 16- and 32-bit types.
1315
- (rule -1 (lower (has_type (and (mie2_enabled) (fits_in_64 ty)) (popcnt x)))
1316
- (popcnt_reg (put_in_reg_zext64 x)))
1317
-
1318
- ;; On z14, we use the regular POPCNT, which computes the population count
1319
- ;; of each input byte separately, so we need to accumulate those partial
1320
- ;; results via a series of log2(type size in bytes) - 1 additions. We
1321
- ;; accumulate in the high byte, so that a final right shift will zero out
1322
- ;; any unrelated bits to give a clean result. (This does not work with
1323
- ;; $I16, where we instead accumulate in the low byte and clear high bits
1324
- ;; via an explicit and operation.)
1325
-
1326
- (rule (lower (has_type (and (mie2_disabled) $I16) (popcnt x)))
1327
- (let ((cnt2 Reg (popcnt_byte x))
1328
- (cnt1 Reg (add_reg $I32 cnt2 (lshr_imm $I32 cnt2 8))))
1329
- (and_uimm16shifted $I32 cnt1 (uimm16shifted 255 0))))
1330
-
1331
- (rule (lower (has_type (and (mie2_disabled) $I32) (popcnt x)))
1332
- (let ((cnt4 Reg (popcnt_byte x))
1333
- (cnt2 Reg (add_reg $I32 cnt4 (lshl_imm $I32 cnt4 16)))
1334
- (cnt1 Reg (add_reg $I32 cnt2 (lshl_imm $I32 cnt2 8))))
1335
- (lshr_imm $I32 cnt1 24)))
1336
-
1337
- (rule (lower (has_type (and (mie2_disabled) $I64) (popcnt x)))
1338
- (let ((cnt8 Reg (popcnt_byte x))
1339
- (cnt4 Reg (add_reg $I64 cnt8 (lshl_imm $I64 cnt8 32)))
1340
- (cnt2 Reg (add_reg $I64 cnt4 (lshl_imm $I64 cnt4 16)))
1341
- (cnt1 Reg (add_reg $I64 cnt2 (lshl_imm $I64 cnt2 8))))
1342
- (lshr_imm $I64 cnt1 56)))
1343
-
1344
- ;; Population count for vector types.
1345
- (rule 1 (lower (has_type (ty_vec128 ty) (popcnt x)))
1346
- (vec_popcnt ty x))
1347
-
1348
- ;; Population count, 128-bit full vector.
1349
- (rule (lower (has_type $I128 (popcnt x)))
1350
- (let ((popcnt_vec Reg (vec_popcnt $I64X2 x))
1351
- (zero Reg (vec_imm $I64X2 0))
1352
- (popcnt_hi Reg (vec_permute_dw_imm $I64X2 zero 0 popcnt_vec 0))
1353
- (popcnt_lo Reg (vec_permute_dw_imm $I64X2 zero 0 popcnt_vec 1)))
1354
- (vec_add $I64X2 popcnt_hi popcnt_lo)))
1355
-
1356
-
1357
- ;;;; Rules for `fadd` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1358
-
1359
- ;; Add two registers.
1360
- (rule (lower (has_type ty (fadd x y)))
1361
- (fadd_reg ty x y))
1362
-
1363
-
1364
- ;;;; Rules for `fsub` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1365
-
1366
- ;; Subtract two registers.
1367
- (rule (lower (has_type ty (fsub x y)))
1368
- (fsub_reg ty x y))
1369
-
1370
-
1371
- ;;;; Rules for `fmul` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1372
-
1373
- ;; Multiply two registers.
1374
- (rule (lower (has_type ty (fmul x y)))
1375
- (fmul_reg ty x y))
1376
-
1377
-
1378
- ;;;; Rules for `fdiv` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1379
-
1380
- ;; Divide two registers.
1381
- (rule (lower (has_type ty (fdiv x y)))
1382
- (fdiv_reg ty x y))
1383
-
1384
-
1385
- ;;;; Rules for `fmin` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1386
-
1387
- ;; Minimum of two registers.
1388
- (rule (lower (has_type ty (fmin x y)))
1389
- (fmin_reg ty x y))
1390
-
1391
-
1392
- ;;;; Rules for `fmax` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1393
-
1394
- ;; Maximum of two registers.
1395
- (rule (lower (has_type ty (fmax x y)))
1396
- (fmax_reg ty x y))
1397
-
1398
-
1399
- ;;;; Rules for `fcopysign` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1400
-
1401
- ;; Copysign of two registers.
1402
- (rule (lower (has_type $F32 (fcopysign x y)))
1403
- (vec_select $F32 x y (imm $F32 2147483647)))
1404
- (rule (lower (has_type $F64 (fcopysign x y)))
1405
- (vec_select $F64 x y (imm $F64 9223372036854775807)))
1406
- (rule (lower (has_type $F32X4 (fcopysign x y)))
1407
- (vec_select $F32X4 x y (vec_imm_bit_mask $F32X4 1 31)))
1408
- (rule (lower (has_type $F64X2 (fcopysign x y)))
1409
- (vec_select $F64X2 x y (vec_imm_bit_mask $F64X2 1 63)))
1410
-
1411
-
1412
- ;;;; Rules for `fma` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1413
-
1414
- ;; Multiply-and-add of three registers.
1415
- (rule (lower (has_type ty (fma x y z)))
1416
- (fma_reg ty x y z))
1417
-
1418
-
1419
- ;;;; Rules for `sqrt` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1420
-
1421
- ;; Square root of a register.
1422
- (rule (lower (has_type ty (sqrt x)))
1423
- (sqrt_reg ty x))
1424
-
1425
-
1426
- ;;;; Rules for `fneg` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1427
-
1428
- ;; Negated value of a register.
1429
- (rule (lower (has_type ty (fneg x)))
1430
- (fneg_reg ty x))
1431
-
1432
-
1433
- ;;;; Rules for `fabs` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1434
-
1435
- ;; Absolute value of a register.
1436
- (rule (lower (has_type ty (fabs x)))
1437
- (fabs_reg ty x))
1438
-
1439
-
1440
- ;;;; Rules for `ceil` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1441
-
1442
- ;; Round value in a register towards positive infinity.
1443
- (rule (lower (has_type ty (ceil x)))
1444
- (ceil_reg ty x))
1445
-
1446
-
1447
- ;;;; Rules for `floor` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1448
-
1449
- ;; Round value in a register towards negative infinity.
1450
- (rule (lower (has_type ty (floor x)))
1451
- (floor_reg ty x))
1452
-
1453
-
1454
- ;;;; Rules for `trunc` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1455
-
1456
- ;; Round value in a register towards zero.
1457
- (rule (lower (has_type ty (trunc x)))
1458
- (trunc_reg ty x))
1459
-
1460
-
1461
- ;;;; Rules for `nearest` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1462
-
1463
- ;; Round value in a register towards nearest.
1464
- (rule (lower (has_type ty (nearest x)))
1465
- (nearest_reg ty x))
1466
-
1467
-
1468
- ;;;; Rules for `fpromote` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1469
-
1470
- ;; Promote a register.
1471
- (rule (lower (has_type (fits_in_64 dst_ty) (fpromote x @ (value_type src_ty))))
1472
- (fpromote_reg dst_ty src_ty x))
1473
-
1474
-
1475
- ;;;; Rules for `fvpromote_low` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1476
-
1477
- ;; Promote a register.
1478
- (rule (lower (has_type $F64X2 (fvpromote_low x @ (value_type $F32X4))))
1479
- (fpromote_reg $F64X2 $F32X4 (vec_merge_low_lane_order $I32X4 x x)))
1480
-
1481
-
1482
- ;;;; Rules for `fdemote` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1483
-
1484
- ;; Demote a register.
1485
- (rule (lower (has_type (fits_in_64 dst_ty) (fdemote x @ (value_type src_ty))))
1486
- (fdemote_reg dst_ty src_ty (FpuRoundMode.Current) x))
1487
-
1488
-
1489
- ;;;; Rules for `fvdemote` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1490
-
1491
- ;; Demote a register.
1492
- (rule (lower (has_type $F32X4 (fvdemote x @ (value_type $F64X2))))
1493
- (let ((dst Reg (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.Current) x)))
1494
- (vec_pack_lane_order $I64X2 (vec_lshr_imm $I64X2 dst 32)
1495
- (vec_imm $I64X2 0))))
1496
-
1497
-
1498
- ;;;; Rules for `fcvt_from_uint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1499
-
1500
- ;; Convert a 32-bit or smaller unsigned integer to $F32 (z15 instruction).
1501
- (rule 1 (lower (has_type $F32
1502
- (fcvt_from_uint x @ (value_type (and (vxrs_ext2_enabled) (fits_in_32 ty))))))
1503
- (fcvt_from_uint_reg $F32 (FpuRoundMode.ToNearestTiesToEven)
1504
- (put_in_reg_zext32 x)))
1505
-
1506
- ;; Convert a 64-bit or smaller unsigned integer to $F32, via an intermediate $F64.
1507
- (rule (lower (has_type $F32 (fcvt_from_uint x @ (value_type (fits_in_64 ty)))))
1508
- (fdemote_reg $F32 $F64 (FpuRoundMode.ToNearestTiesToEven)
1509
- (fcvt_from_uint_reg $F64 (FpuRoundMode.ShorterPrecision)
1510
- (put_in_reg_zext64 x))))
1511
-
1512
- ;; Convert a 64-bit or smaller unsigned integer to $F64.
1513
- (rule (lower (has_type $F64 (fcvt_from_uint x @ (value_type (fits_in_64 ty)))))
1514
- (fcvt_from_uint_reg $F64 (FpuRoundMode.ToNearestTiesToEven)
1515
- (put_in_reg_zext64 x)))
1516
-
1517
- ;; Convert $I32X4 to $F32X4 (z15 instruction).
1518
- (rule 1 (lower (has_type (and (vxrs_ext2_enabled) $F32X4)
1519
- (fcvt_from_uint x @ (value_type $I32X4))))
1520
- (fcvt_from_uint_reg $F32X4 (FpuRoundMode.ToNearestTiesToEven) x))
1521
-
1522
- ;; Convert $I32X4 to $F32X4 (via two $F64X2 on z14).
1523
- (rule (lower (has_type (and (vxrs_ext2_disabled) $F32X4)
1524
- (fcvt_from_uint x @ (value_type $I32X4))))
1525
- (vec_permute $F32X4
1526
- (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.ToNearestTiesToEven)
1527
- (fcvt_from_uint_reg $F64X2 (FpuRoundMode.ShorterPrecision)
1528
- (vec_unpacku_high $I32X4 x)))
1529
- (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.ToNearestTiesToEven)
1530
- (fcvt_from_uint_reg $F64X2 (FpuRoundMode.ShorterPrecision)
1531
- (vec_unpacku_low $I32X4 x)))
1532
- (vec_imm $I8X16 (imm8x16 0 1 2 3 8 9 10 11 16 17 18 19 24 25 26 27))))
1533
-
1534
- ;; Convert $I64X2 to $F64X2.
1535
- (rule (lower (has_type $F64X2 (fcvt_from_uint x @ (value_type $I64X2))))
1536
- (fcvt_from_uint_reg $F64X2 (FpuRoundMode.ToNearestTiesToEven) x))
1537
-
1538
-
1539
- ;;;; Rules for `fcvt_from_sint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1540
-
1541
- ;; Convert a 32-bit or smaller signed integer to $F32 (z15 instruction).
1542
- (rule 1 (lower (has_type $F32
1543
- (fcvt_from_sint x @ (value_type (and (vxrs_ext2_enabled) (fits_in_32 ty))))))
1544
- (fcvt_from_sint_reg $F32 (FpuRoundMode.ToNearestTiesToEven)
1545
- (put_in_reg_sext32 x)))
1546
-
1547
- ;; Convert a 64-bit or smaller signed integer to $F32, via an intermediate $F64.
1548
- (rule (lower (has_type $F32 (fcvt_from_sint x @ (value_type (fits_in_64 ty)))))
1549
- (fdemote_reg $F32 $F64 (FpuRoundMode.ToNearestTiesToEven)
1550
- (fcvt_from_sint_reg $F64 (FpuRoundMode.ShorterPrecision)
1551
- (put_in_reg_sext64 x))))
1552
-
1553
- ;; Convert a 64-bit or smaller signed integer to $F64.
1554
- (rule (lower (has_type $F64 (fcvt_from_sint x @ (value_type (fits_in_64 ty)))))
1555
- (fcvt_from_sint_reg $F64 (FpuRoundMode.ToNearestTiesToEven)
1556
- (put_in_reg_sext64 x)))
1557
-
1558
- ;; Convert $I32X4 to $F32X4 (z15 instruction).
1559
- (rule 1 (lower (has_type (and (vxrs_ext2_enabled) $F32X4)
1560
- (fcvt_from_sint x @ (value_type $I32X4))))
1561
- (fcvt_from_sint_reg $F32X4 (FpuRoundMode.ToNearestTiesToEven) x))
1562
-
1563
- ;; Convert $I32X4 to $F32X4 (via two $F64X2 on z14).
1564
- (rule (lower (has_type (and (vxrs_ext2_disabled) $F32X4)
1565
- (fcvt_from_sint x @ (value_type $I32X4))))
1566
- (vec_permute $F32X4
1567
- (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.ToNearestTiesToEven)
1568
- (fcvt_from_sint_reg $F64X2 (FpuRoundMode.ShorterPrecision)
1569
- (vec_unpacks_high $I32X4 x)))
1570
- (fdemote_reg $F32X4 $F64X2 (FpuRoundMode.ToNearestTiesToEven)
1571
- (fcvt_from_sint_reg $F64X2 (FpuRoundMode.ShorterPrecision)
1572
- (vec_unpacks_low $I32X4 x)))
1573
- (vec_imm $I8X16 (imm8x16 0 1 2 3 8 9 10 11 16 17 18 19 24 25 26 27))))
1574
-
1575
- ;; Convert $I64X2 to $F64X2.
1576
- (rule (lower (has_type $F64X2 (fcvt_from_sint x @ (value_type $I64X2))))
1577
- (fcvt_from_sint_reg $F64X2 (FpuRoundMode.ToNearestTiesToEven) x))
1578
-
1579
-
1580
- ;;;; Rules for `fcvt_to_uint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1581
-
1582
- ;; Convert a scalar floating-point value in a register to an unsigned integer.
1583
- ;; Traps if the input cannot be represented in the output type.
1584
- (rule (lower (has_type (fits_in_64 dst_ty)
1585
- (fcvt_to_uint x @ (value_type src_ty))))
1586
- (let ((src Reg (put_in_reg x))
1587
- ;; First, check whether the input is a NaN, and trap if so.
1588
- (_ Reg (trap_if (fcmp_reg src_ty src src)
1589
- (floatcc_as_cond (FloatCC.Unordered))
1590
- (trap_code_bad_conversion_to_integer)))
1591
- ;; Now check whether the input is out of range for the target type.
1592
- (_ Reg (trap_if (fcmp_reg src_ty src (fcvt_to_uint_ub src_ty dst_ty))
1593
- (floatcc_as_cond (FloatCC.GreaterThanOrEqual))
1594
- (trap_code_integer_overflow)))
1595
- (_ Reg (trap_if (fcmp_reg src_ty src (fcvt_to_uint_lb src_ty))
1596
- (floatcc_as_cond (FloatCC.LessThanOrEqual))
1597
- (trap_code_integer_overflow)))
1598
- ;; Perform the conversion using the larger type size.
1599
- (flt_ty Type (fcvt_flt_ty dst_ty src_ty))
1600
- (src_ext Reg (fpromote_reg flt_ty src_ty src)))
1601
- (fcvt_to_uint_reg flt_ty (FpuRoundMode.ToZero) src_ext)))
1602
-
1603
-
1604
- ;;;; Rules for `fcvt_to_sint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1605
-
1606
- ;; Convert a scalar floating-point value in a register to a signed integer.
1607
- ;; Traps if the input cannot be represented in the output type.
1608
- (rule (lower (has_type (fits_in_64 dst_ty)
1609
- (fcvt_to_sint x @ (value_type src_ty))))
1610
- (let ((src Reg (put_in_reg x))
1611
- ;; First, check whether the input is a NaN, and trap if so.
1612
- (_ Reg (trap_if (fcmp_reg src_ty src src)
1613
- (floatcc_as_cond (FloatCC.Unordered))
1614
- (trap_code_bad_conversion_to_integer)))
1615
- ;; Now check whether the input is out of range for the target type.
1616
- (_ Reg (trap_if (fcmp_reg src_ty src (fcvt_to_sint_ub src_ty dst_ty))
1617
- (floatcc_as_cond (FloatCC.GreaterThanOrEqual))
1618
- (trap_code_integer_overflow)))
1619
- (_ Reg (trap_if (fcmp_reg src_ty src (fcvt_to_sint_lb src_ty dst_ty))
1620
- (floatcc_as_cond (FloatCC.LessThanOrEqual))
1621
- (trap_code_integer_overflow)))
1622
- ;; Perform the conversion using the larger type size.
1623
- (flt_ty Type (fcvt_flt_ty dst_ty src_ty))
1624
- (src_ext Reg (fpromote_reg flt_ty src_ty src)))
1625
- ;; Perform the conversion.
1626
- (fcvt_to_sint_reg flt_ty (FpuRoundMode.ToZero) src_ext)))
1627
-
1628
-
1629
- ;;;; Rules for `fcvt_to_uint_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1630
-
1631
- ;; Convert a scalar floating-point value in a register to an unsigned integer.
1632
- (rule -1 (lower (has_type (fits_in_64 dst_ty)
1633
- (fcvt_to_uint_sat x @ (value_type src_ty))))
1634
- (let ((src Reg (put_in_reg x))
1635
- ;; Perform the conversion using the larger type size.
1636
- (flt_ty Type (fcvt_flt_ty dst_ty src_ty))
1637
- (int_ty Type (fcvt_int_ty dst_ty src_ty))
1638
- (src_ext Reg (fpromote_reg flt_ty src_ty src))
1639
- (dst Reg (fcvt_to_uint_reg flt_ty (FpuRoundMode.ToZero) src_ext)))
1640
- ;; Clamp the output to the destination type bounds.
1641
- (uint_sat_reg dst_ty int_ty dst)))
1642
-
1643
- ;; Convert $F32X4 to $I32X4 (z15 instruction).
1644
- (rule 1 (lower (has_type (and (vxrs_ext2_enabled) $I32X4)
1645
- (fcvt_to_uint_sat x @ (value_type $F32X4))))
1646
- (fcvt_to_uint_reg $F32X4 (FpuRoundMode.ToZero) x))
1647
-
1648
- ;; Convert $F32X4 to $I32X4 (via two $F64X2 on z14).
1649
- (rule (lower (has_type (and (vxrs_ext2_disabled) $I32X4)
1650
- (fcvt_to_uint_sat x @ (value_type $F32X4))))
1651
- (vec_pack_usat $I64X2
1652
- (fcvt_to_uint_reg $F64X2 (FpuRoundMode.ToZero)
1653
- (fpromote_reg $F64X2 $F32X4 (vec_merge_high $I32X4 x x)))
1654
- (fcvt_to_uint_reg $F64X2 (FpuRoundMode.ToZero)
1655
- (fpromote_reg $F64X2 $F32X4 (vec_merge_low $I32X4 x x)))))
1656
-
1657
- ;; Convert $F64X2 to $I64X2.
1658
- (rule (lower (has_type $I64X2 (fcvt_to_uint_sat x @ (value_type $F64X2))))
1659
- (fcvt_to_uint_reg $F64X2 (FpuRoundMode.ToZero) x))
1660
-
1661
-
1662
- ;;;; Rules for `fcvt_to_sint_sat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1663
-
1664
- ;; Convert a scalar floating-point value in a register to a signed integer.
1665
- (rule -1 (lower (has_type (fits_in_64 dst_ty)
1666
- (fcvt_to_sint_sat x @ (value_type src_ty))))
1667
- (let ((src Reg (put_in_reg x))
1668
- ;; Perform the conversion using the larger type size.
1669
- (flt_ty Type (fcvt_flt_ty dst_ty src_ty))
1670
- (int_ty Type (fcvt_int_ty dst_ty src_ty))
1671
- (src_ext Reg (fpromote_reg flt_ty src_ty src))
1672
- (dst Reg (fcvt_to_sint_reg flt_ty (FpuRoundMode.ToZero) src_ext))
1673
- ;; In most special cases, the Z instruction already yields the
1674
- ;; result expected by Cranelift semantics. The only exception
1675
- ;; it the case where the input was a NaN. We explicitly check
1676
- ;; for that and force the output to 0 in that case.
1677
- (sat Reg (with_flags_reg (fcmp_reg src_ty src src)
1678
- (cmov_imm int_ty
1679
- (floatcc_as_cond (FloatCC.Unordered)) 0 dst))))
1680
- ;; Clamp the output to the destination type bounds.
1681
- (sint_sat_reg dst_ty int_ty sat)))
1682
-
1683
- ;; Convert $F32X4 to $I32X4 (z15 instruction).
1684
- (rule 1 (lower (has_type (and (vxrs_ext2_enabled) $I32X4)
1685
- (fcvt_to_sint_sat src @ (value_type $F32X4))))
1686
- ;; See above for why we need to handle NaNs specially.
1687
- (vec_select $I32X4
1688
- (fcvt_to_sint_reg $F32X4 (FpuRoundMode.ToZero) src)
1689
- (vec_imm $I32X4 0) (vec_fcmpeq $F32X4 src src)))
1690
-
1691
- ;; Convert $F32X4 to $I32X4 (via two $F64X2 on z14).
1692
- (rule (lower (has_type (and (vxrs_ext2_disabled) $I32X4)
1693
- (fcvt_to_sint_sat src @ (value_type $F32X4))))
1694
- ;; See above for why we need to handle NaNs specially.
1695
- (vec_select $I32X4
1696
- (vec_pack_ssat $I64X2
1697
- (fcvt_to_sint_reg $F64X2 (FpuRoundMode.ToZero)
1698
- (fpromote_reg $F64X2 $F32X4 (vec_merge_high $I32X4 src src)))
1699
- (fcvt_to_sint_reg $F64X2 (FpuRoundMode.ToZero)
1700
- (fpromote_reg $F64X2 $F32X4 (vec_merge_low $I32X4 src src))))
1701
- (vec_imm $I32X4 0) (vec_fcmpeq $F32X4 src src)))
1702
-
1703
- ;; Convert $F64X2 to $I64X2.
1704
- (rule (lower (has_type $I64X2 (fcvt_to_sint_sat src @ (value_type $F64X2))))
1705
- ;; See above for why we need to handle NaNs specially.
1706
- (vec_select $I64X2
1707
- (fcvt_to_sint_reg $F64X2 (FpuRoundMode.ToZero) src)
1708
- (vec_imm $I64X2 0) (vec_fcmpeq $F64X2 src src)))
1709
-
1710
-
1711
- ;;;; Rules for `bitcast` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1712
-
1713
- ;; Reinterpret a 64-bit integer value as floating-point.
1714
- (rule (lower (has_type $F64 (bitcast _ x @ (value_type $I64))))
1715
- (vec_insert_lane_undef $F64X2 x 0 (zero_reg)))
1716
-
1717
- ;; Reinterpret a 64-bit floating-point value as integer.
1718
- (rule (lower (has_type $I64 (bitcast _ x @ (value_type $F64))))
1719
- (vec_extract_lane $F64X2 x 0 (zero_reg)))
1720
-
1721
- ;; Reinterpret a 32-bit integer value as floating-point.
1722
- (rule (lower (has_type $F32 (bitcast _ x @ (value_type $I32))))
1723
- (vec_insert_lane_undef $F32X4 x 0 (zero_reg)))
1724
-
1725
- ;; Reinterpret a 32-bit floating-point value as integer.
1726
- (rule (lower (has_type $I32 (bitcast _ x @ (value_type $F32))))
1727
- (vec_extract_lane $F32X4 x 0 (zero_reg)))
1728
-
1729
- ;; Bitcasts between `r{32,64}` and `i{32,64}` need to be a copy to avoid
1730
- ;; conflicting regalloc constraints on reference type values that both need to
1731
- ;; be in some register but also some safepoint stack slot at the same time.
1732
- (rule 6 (lower (has_type $R32 (bitcast _ x @ (value_type $I32))))
1733
- (copy_reg $I32 x))
1734
- (rule 6 (lower (has_type $R64 (bitcast _ x @ (value_type $I64))))
1735
- (copy_reg $I64 x))
1736
- (rule 6 (lower (has_type $I32 (bitcast _ x @ (value_type $R32))))
1737
- (copy_reg $I32 x))
1738
- (rule 6 (lower (has_type $I64 (bitcast _ x @ (value_type $R64))))
1739
- (copy_reg $I64 x))
1740
-
1741
- ;; Bitcast between types residing in GPRs is a no-op.
1742
- (rule 1 (lower (has_type (gpr32_ty _)
1743
- (bitcast _ x @ (value_type (gpr32_ty _)))))
1744
- x)
1745
- (rule 2 (lower (has_type (gpr64_ty _)
1746
- (bitcast _ x @ (value_type (gpr64_ty _)))))
1747
- x)
1748
-
1749
- ;; Bitcast between types residing in FPRs is a no-op.
1750
- (rule 3 (lower (has_type (ty_scalar_float _)
1751
- (bitcast _ x @ (value_type (ty_scalar_float _)))))
1752
- x)
1753
-
1754
- ;; Bitcast between types residing in VRs is a no-op if lane count is unchanged.
1755
- (rule 5 (lower (has_type (multi_lane bits count)
1756
- (bitcast _ x @ (value_type (multi_lane bits count)))))
1757
- x)
1758
-
1759
- ;; Bitcast between types residing in VRs with different lane counts is a
1760
- ;; no-op if the operation's MemFlags indicate a byte order compatible with
1761
- ;; the current lane order. Otherwise, lane elements need to be swapped,
1762
- ;; first in the input type, and then again in the output type. This could
1763
- ;; be optimized further, but we don't bother at the moment since due to our
1764
- ;; choice of lane order depending on the current function ABI, this case will
1765
- ;; currently never arise in practice.
1766
- (rule 4 (lower (has_type (vr128_ty out_ty)
1767
- (bitcast flags x @ (value_type (vr128_ty in_ty)))))
1768
- (abi_vec_elt_rev (lane_order_from_memflags flags) out_ty
1769
- (abi_vec_elt_rev (lane_order_from_memflags flags) in_ty x)))
1770
-
1771
-
1772
- ;;;; Rules for `insertlane` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1773
-
1774
- ;; Insert vector lane from general-purpose register.
1775
- (rule 1 (lower (insertlane x @ (value_type ty)
1776
- y @ (value_type in_ty)
1777
- (u8_from_uimm8 idx)))
1778
- (if (ty_int_ref_scalar_64 in_ty))
1779
- (vec_insert_lane ty x y (be_lane_idx ty idx) (zero_reg)))
1780
-
1781
- ;; Insert vector lane from floating-point register.
1782
- (rule 0 (lower (insertlane x @ (value_type ty)
1783
- y @ (value_type (ty_scalar_float _))
1784
- (u8_from_uimm8 idx)))
1785
- (vec_move_lane_and_insert ty x (be_lane_idx ty idx) y 0))
1786
-
1787
- ;; Insert vector lane from another vector lane.
1788
- (rule 2 (lower (insertlane x @ (value_type ty)
1789
- (extractlane y (u8_from_uimm8 src_idx))
1790
- (u8_from_uimm8 dst_idx)))
1791
- (vec_move_lane_and_insert ty x (be_lane_idx ty dst_idx)
1792
- y (be_lane_idx ty src_idx)))
1793
-
1794
- ;; Insert vector lane from signed 16-bit immediate.
1795
- (rule 3 (lower (insertlane x @ (value_type ty) (i16_from_value y)
1796
- (u8_from_uimm8 idx)))
1797
- (vec_insert_lane_imm ty x y (be_lane_idx ty idx)))
1798
-
1799
- ;; Insert vector lane from big-endian memory.
1800
- (rule 4 (lower (insertlane x @ (value_type ty) (sinkable_load y)
1801
- (u8_from_uimm8 idx)))
1802
- (vec_load_lane ty x (sink_load y) (be_lane_idx ty idx)))
1803
-
1804
- ;; Insert vector lane from little-endian memory.
1805
- (rule 5 (lower (insertlane x @ (value_type ty) (sinkable_load_little y)
1806
- (u8_from_uimm8 idx)))
1807
- (vec_load_lane_little ty x (sink_load y) (be_lane_idx ty idx)))
1808
-
1809
-
1810
- ;; Helper to extract one lane from a vector and insert it into another.
1811
- (decl vec_move_lane_and_insert (Type Reg u8 Reg u8) Reg)
1812
-
1813
- ;; For 64-bit elements we always use VPDI.
1814
- (rule (vec_move_lane_and_insert ty @ (multi_lane 64 _) dst 0 src src_idx)
1815
- (vec_permute_dw_imm ty src src_idx dst 1))
1816
- (rule (vec_move_lane_and_insert ty @ (multi_lane 64 _) dst 1 src src_idx)
1817
- (vec_permute_dw_imm ty dst 0 src src_idx))
1818
-
1819
- ;; If source and destination index are the same, use vec_select.
1820
- (rule -1 (vec_move_lane_and_insert ty dst idx src idx)
1821
- (vec_select ty src
1822
- dst (vec_imm_byte_mask ty (lane_byte_mask ty idx))))
1823
-
1824
- ;; Otherwise replicate source first and then use vec_select.
1825
- (rule -2 (vec_move_lane_and_insert ty dst dst_idx src src_idx)
1826
- (vec_select ty (vec_replicate_lane ty src src_idx)
1827
- dst (vec_imm_byte_mask ty (lane_byte_mask ty dst_idx))))
1828
-
1829
-
1830
- ;; Helper to implement a generic little-endian variant of vec_load_lane.
1831
- (decl vec_load_lane_little (Type Reg MemArg u8) Reg)
1832
-
1833
- ;; 8-byte little-endian loads can be performed via a normal load.
1834
- (rule (vec_load_lane_little ty @ (multi_lane 8 _) dst addr lane_imm)
1835
- (vec_load_lane ty dst addr lane_imm))
1836
-
1837
- ;; On z15, we have instructions to perform little-endian loads.
1838
- (rule 1 (vec_load_lane_little (and (vxrs_ext2_enabled)
1839
- ty @ (multi_lane 16 _)) dst addr lane_imm)
1840
- (vec_load_lane_rev ty dst addr lane_imm))
1841
- (rule 1 (vec_load_lane_little (and (vxrs_ext2_enabled)
1842
- ty @ (multi_lane 32 _)) dst addr lane_imm)
1843
- (vec_load_lane_rev ty dst addr lane_imm))
1844
- (rule 1 (vec_load_lane_little (and (vxrs_ext2_enabled)
1845
- ty @ (multi_lane 64 _)) dst addr lane_imm)
1846
- (vec_load_lane_rev ty dst addr lane_imm))
1847
-
1848
- ;; On z14, use a little-endian load to GPR followed by vec_insert_lane.
1849
- (rule (vec_load_lane_little (and (vxrs_ext2_disabled)
1850
- ty @ (multi_lane 16 _)) dst addr lane_imm)
1851
- (vec_insert_lane ty dst (loadrev16 addr) lane_imm (zero_reg)))
1852
- (rule (vec_load_lane_little (and (vxrs_ext2_disabled)
1853
- ty @ (multi_lane 32 _)) dst addr lane_imm)
1854
- (vec_insert_lane ty dst (loadrev32 addr) lane_imm (zero_reg)))
1855
- (rule (vec_load_lane_little (and (vxrs_ext2_disabled)
1856
- ty @ (multi_lane 64 _)) dst addr lane_imm)
1857
- (vec_insert_lane ty dst (loadrev64 addr) lane_imm (zero_reg)))
1858
-
1859
- ;; Helper to implement a generic little-endian variant of vec_load_lane_undef.
1860
- (decl vec_load_lane_little_undef (Type MemArg u8) Reg)
1861
-
1862
- ;; 8-byte little-endian loads can be performed via a normal load.
1863
- (rule (vec_load_lane_little_undef ty @ (multi_lane 8 _) addr lane_imm)
1864
- (vec_load_lane_undef ty addr lane_imm))
1865
-
1866
- ;; On z15, we have instructions to perform little-endian loads.
1867
- (rule 1 (vec_load_lane_little_undef (and (vxrs_ext2_enabled)
1868
- ty @ (multi_lane 16 _)) addr lane_imm)
1869
- (vec_load_lane_rev_undef ty addr lane_imm))
1870
- (rule 1 (vec_load_lane_little_undef (and (vxrs_ext2_enabled)
1871
- ty @ (multi_lane 32 _)) addr lane_imm)
1872
- (vec_load_lane_rev_undef ty addr lane_imm))
1873
- (rule 1 (vec_load_lane_little_undef (and (vxrs_ext2_enabled)
1874
- ty @ (multi_lane 64 _)) addr lane_imm)
1875
- (vec_load_lane_rev_undef ty addr lane_imm))
1876
-
1877
- ;; On z14, use a little-endian load to GPR followed by vec_insert_lane_undef.
1878
- (rule (vec_load_lane_little_undef (and (vxrs_ext2_disabled)
1879
- ty @ (multi_lane 16 _)) addr lane_imm)
1880
- (vec_insert_lane_undef ty (loadrev16 addr) lane_imm (zero_reg)))
1881
- (rule (vec_load_lane_little_undef (and (vxrs_ext2_disabled)
1882
- ty @ (multi_lane 32 _)) addr lane_imm)
1883
- (vec_insert_lane_undef ty (loadrev32 addr) lane_imm (zero_reg)))
1884
- (rule (vec_load_lane_little_undef (and (vxrs_ext2_disabled)
1885
- ty @ (multi_lane 64 _)) addr lane_imm)
1886
- (vec_insert_lane_undef ty (loadrev64 addr) lane_imm (zero_reg)))
1887
-
1888
-
1889
- ;;;; Rules for `extractlane` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1890
-
1891
- ;; Extract vector lane to general-purpose register.
1892
- (rule 1 (lower (has_type out_ty
1893
- (extractlane x @ (value_type ty) (u8_from_uimm8 idx))))
1894
- (if (ty_int_ref_scalar_64 out_ty))
1895
- (vec_extract_lane ty x (be_lane_idx ty idx) (zero_reg)))
1896
-
1897
- ;; Extract vector lane to floating-point register.
1898
- (rule 0 (lower (has_type (ty_scalar_float _)
1899
- (extractlane x @ (value_type ty) (u8_from_uimm8 idx))))
1900
- (vec_replicate_lane ty x (be_lane_idx ty idx)))
1901
-
1902
- ;; Extract vector lane and store to big-endian memory.
1903
- (rule 6 (lower (store flags @ (bigendian)
1904
- (extractlane x @ (value_type ty) (u8_from_uimm8 idx))
1905
- addr offset))
1906
- (side_effect (vec_store_lane ty x
1907
- (lower_address flags addr offset) (be_lane_idx ty idx))))
1908
-
1909
- ;; Extract vector lane and store to little-endian memory.
1910
- (rule 5 (lower (store flags @ (littleendian)
1911
- (extractlane x @ (value_type ty) (u8_from_uimm8 idx))
1912
- addr offset))
1913
- (side_effect (vec_store_lane_little ty x
1914
- (lower_address flags addr offset) (be_lane_idx ty idx))))
1915
-
1916
-
1917
- ;; Helper to implement a generic little-endian variant of vec_store_lane.
1918
- (decl vec_store_lane_little (Type Reg MemArg u8) SideEffectNoResult)
1919
-
1920
- ;; 8-byte little-endian stores can be performed via a normal store.
1921
- (rule (vec_store_lane_little ty @ (multi_lane 8 _) src addr lane_imm)
1922
- (vec_store_lane ty src addr lane_imm))
1923
-
1924
- ;; On z15, we have instructions to perform little-endian stores.
1925
- (rule 1 (vec_store_lane_little (and (vxrs_ext2_enabled)
1926
- ty @ (multi_lane 16 _)) src addr lane_imm)
1927
- (vec_store_lane_rev ty src addr lane_imm))
1928
- (rule 1 (vec_store_lane_little (and (vxrs_ext2_enabled)
1929
- ty @ (multi_lane 32 _)) src addr lane_imm)
1930
- (vec_store_lane_rev ty src addr lane_imm))
1931
- (rule 1 (vec_store_lane_little (and (vxrs_ext2_enabled)
1932
- ty @ (multi_lane 64 _)) src addr lane_imm)
1933
- (vec_store_lane_rev ty src addr lane_imm))
1934
-
1935
- ;; On z14, use vec_extract_lane followed by a little-endian store from GPR.
1936
- (rule (vec_store_lane_little (and (vxrs_ext2_disabled)
1937
- ty @ (multi_lane 16 _)) src addr lane_imm)
1938
- (storerev16 (vec_extract_lane ty src lane_imm (zero_reg)) addr))
1939
- (rule (vec_store_lane_little (and (vxrs_ext2_disabled)
1940
- ty @ (multi_lane 32 _)) src addr lane_imm)
1941
- (storerev32 (vec_extract_lane ty src lane_imm (zero_reg)) addr))
1942
- (rule (vec_store_lane_little (and (vxrs_ext2_disabled)
1943
- ty @ (multi_lane 64 _)) src addr lane_imm)
1944
- (storerev64 (vec_extract_lane ty src lane_imm (zero_reg)) addr))
1945
-
1946
-
1947
- ;;;; Rules for `splat` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1948
-
1949
- ;; Load replicated value from general-purpose register.
1950
- (rule 1 (lower (has_type ty (splat x @ (value_type in_ty))))
1951
- (if (ty_int_ref_scalar_64 in_ty))
1952
- (vec_replicate_lane ty (vec_insert_lane_undef ty x 0 (zero_reg)) 0))
1953
-
1954
- ;; Load replicated value from floating-point register.
1955
- (rule 0 (lower (has_type ty (splat
1956
- x @ (value_type (ty_scalar_float _)))))
1957
- (vec_replicate_lane ty x 0))
1958
-
1959
- ;; Load replicated value from vector lane.
1960
- (rule 2 (lower (has_type ty (splat (extractlane x (u8_from_uimm8 idx)))))
1961
- (vec_replicate_lane ty x (be_lane_idx ty idx)))
1962
-
1963
- ;; Load replicated 16-bit immediate value.
1964
- (rule 3 (lower (has_type ty (splat (i16_from_value x))))
1965
- (vec_imm_replicate ty x))
1966
-
1967
- ;; Load replicated value from big-endian memory.
1968
- (rule 4 (lower (has_type ty (splat (sinkable_load x))))
1969
- (vec_load_replicate ty (sink_load x)))
1970
-
1971
- ;; Load replicated value from little-endian memory.
1972
- (rule 5 (lower (has_type ty (splat (sinkable_load_little x))))
1973
- (vec_load_replicate_little ty (sink_load x)))
1974
-
1975
-
1976
- ;; Helper to implement a generic little-endian variant of vec_load_replicate
1977
- (decl vec_load_replicate_little (Type MemArg) Reg)
1978
-
1979
- ;; 8-byte little-endian loads can be performed via a normal load.
1980
- (rule (vec_load_replicate_little ty @ (multi_lane 8 _) addr)
1981
- (vec_load_replicate ty addr))
1982
-
1983
- ;; On z15, we have instructions to perform little-endian loads.
1984
- (rule 1 (vec_load_replicate_little (and (vxrs_ext2_enabled)
1985
- ty @ (multi_lane 16 _)) addr)
1986
- (vec_load_replicate_rev ty addr))
1987
- (rule 1 (vec_load_replicate_little (and (vxrs_ext2_enabled)
1988
- ty @ (multi_lane 32 _)) addr)
1989
- (vec_load_replicate_rev ty addr))
1990
- (rule 1 (vec_load_replicate_little (and (vxrs_ext2_enabled)
1991
- ty @ (multi_lane 64 _)) addr)
1992
- (vec_load_replicate_rev ty addr))
1993
-
1994
- ;; On z14, use a little-endian load (via GPR) and replicate.
1995
- (rule (vec_load_replicate_little (and (vxrs_ext2_disabled)
1996
- ty @ (multi_lane 16 _)) addr)
1997
- (vec_replicate_lane ty (vec_load_lane_little_undef ty addr 0) 0))
1998
- (rule (vec_load_replicate_little (and (vxrs_ext2_disabled)
1999
- ty @ (multi_lane 32 _)) addr)
2000
- (vec_replicate_lane ty (vec_load_lane_little_undef ty addr 0) 0))
2001
- (rule (vec_load_replicate_little (and (vxrs_ext2_disabled)
2002
- ty @ (multi_lane 64 _)) addr)
2003
- (vec_replicate_lane ty (vec_load_lane_little_undef ty addr 0) 0))
2004
-
2005
-
2006
- ;;;; Rules for `scalar_to_vector` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2007
-
2008
- ;; Load scalar value from general-purpose register.
2009
- (rule 1 (lower (has_type ty (scalar_to_vector
2010
- x @ (value_type in_ty))))
2011
- (if (ty_int_ref_scalar_64 in_ty))
2012
- (vec_insert_lane ty (vec_imm ty 0) x (be_lane_idx ty 0) (zero_reg)))
2013
-
2014
- ;; Load scalar value from floating-point register.
2015
- (rule 0 (lower (has_type ty (scalar_to_vector
2016
- x @ (value_type (ty_scalar_float _)))))
2017
- (vec_move_lane_and_zero ty (be_lane_idx ty 0) x 0))
2018
-
2019
- ;; Load scalar value from vector lane.
2020
- (rule 2 (lower (has_type ty (scalar_to_vector
2021
- (extractlane x (u8_from_uimm8 idx)))))
2022
- (vec_move_lane_and_zero ty (be_lane_idx ty 0) x (be_lane_idx ty idx)))
2023
-
2024
- ;; Load scalar 16-bit immediate value.
2025
- (rule 3 (lower (has_type ty (scalar_to_vector (i16_from_value x))))
2026
- (vec_insert_lane_imm ty (vec_imm ty 0) x (be_lane_idx ty 0)))
2027
-
2028
- ;; Load scalar value from big-endian memory.
2029
- (rule 4 (lower (has_type ty (scalar_to_vector (sinkable_load x))))
2030
- (vec_load_lane ty (vec_imm ty 0) (sink_load x) (be_lane_idx ty 0)))
2031
-
2032
- ;; Load scalar value lane from little-endian memory.
2033
- (rule 5 (lower (has_type ty (scalar_to_vector (sinkable_load_little x))))
2034
- (vec_load_lane_little ty (vec_imm ty 0) (sink_load x) (be_lane_idx ty 0)))
2035
-
2036
-
2037
- ;; Helper to extract one lane from a vector and insert it into a zero vector.
2038
- (decl vec_move_lane_and_zero (Type u8 Reg u8) Reg)
2039
-
2040
- ;; For 64-bit elements we always use VPDI.
2041
- (rule (vec_move_lane_and_zero ty @ (multi_lane 64 _) 0 src src_idx)
2042
- (vec_permute_dw_imm ty src src_idx (vec_imm ty 0) 0))
2043
- (rule (vec_move_lane_and_zero ty @ (multi_lane 64 _) 1 src src_idx)
2044
- (vec_permute_dw_imm ty (vec_imm ty 0) 0 src src_idx))
2045
-
2046
- ;; If source and destination index are the same, simply mask to this lane.
2047
- (rule -1 (vec_move_lane_and_zero ty idx src idx)
2048
- (vec_and ty src
2049
- (vec_imm_byte_mask ty (lane_byte_mask ty idx))))
2050
-
2051
- ;; Otherwise replicate source first and then mask to the lane.
2052
- (rule -2 (vec_move_lane_and_zero ty dst_idx src src_idx)
2053
- (vec_and ty (vec_replicate_lane ty src src_idx)
2054
- (vec_imm_byte_mask ty (lane_byte_mask ty dst_idx))))
2055
-
2056
-
2057
- ;;;; Rules for `shuffle` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2058
-
2059
- ;; General case: use vec_permute and then mask off zero lanes.
2060
- (rule -2 (lower (shuffle x y (shuffle_mask permute_mask and_mask)))
2061
- (vec_and $I8X16 (vec_imm_byte_mask $I8X16 and_mask)
2062
- (vec_permute $I8X16 x y (vec_imm $I8X16 permute_mask))))
2063
-
2064
- ;; If the pattern has no zero lanes, just a vec_permute suffices.
2065
- (rule -1 (lower (shuffle x y (shuffle_mask permute_mask 65535)))
2066
- (vec_permute $I8X16 x y (vec_imm $I8X16 permute_mask)))
2067
-
2068
- ;; Special patterns that can be implemented via MERGE HIGH.
2069
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23) 65535)))
2070
- (vec_merge_high $I64X2 x y))
2071
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 16 17 18 19 4 5 6 7 20 21 22 23) 65535)))
2072
- (vec_merge_high $I32X4 x y))
2073
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 16 17 2 3 18 19 4 5 20 21 6 7 22 23) 65535)))
2074
- (vec_merge_high $I16X8 x y))
2075
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 16 1 17 2 18 3 19 4 20 5 21 6 22 7 23) 65535)))
2076
- (vec_merge_high $I8X16 x y))
2077
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7) 65535)))
2078
- (vec_merge_high $I64X2 y x))
2079
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 0 1 2 3 20 21 22 23 4 5 6 7) 65535)))
2080
- (vec_merge_high $I32X4 y x))
2081
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 0 1 18 19 2 3 20 21 4 5 22 23 6 7) 65535)))
2082
- (vec_merge_high $I16X8 y x))
2083
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 0 17 1 18 2 19 3 20 4 21 5 22 6 23 7) 65535)))
2084
- (vec_merge_high $I8X16 y x))
2085
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7) 65535)))
2086
- (vec_merge_high $I64X2 x x))
2087
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 0 1 2 3 4 5 6 7 4 5 6 7) 65535)))
2088
- (vec_merge_high $I32X4 x x))
2089
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 0 1 2 3 2 3 4 5 4 5 6 7 6 7) 65535)))
2090
- (vec_merge_high $I16X8 x x))
2091
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7) 65535)))
2092
- (vec_merge_high $I8X16 x x))
2093
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 20 21 22 23 16 17 18 19 20 21 22 23) 65535)))
2094
- (vec_merge_high $I64X2 y y))
2095
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 16 17 18 19 20 21 22 23 20 21 22 23) 65535)))
2096
- (vec_merge_high $I32X4 y y))
2097
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 16 17 18 19 18 19 20 21 20 21 22 23 22 23) 65535)))
2098
- (vec_merge_high $I16X8 y y))
2099
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23) 65535)))
2100
- (vec_merge_high $I8X16 y y))
2101
-
2102
- ;; Special patterns that can be implemented via MERGE LOW.
2103
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31) 65535)))
2104
- (vec_merge_low $I64X2 x y))
2105
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 24 25 26 27 12 13 14 15 28 29 30 31) 65535)))
2106
- (vec_merge_low $I32X4 x y))
2107
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 24 25 10 11 26 27 12 13 28 29 14 15 30 31) 65535)))
2108
- (vec_merge_low $I16X8 x y))
2109
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 24 9 25 10 26 11 27 12 28 13 29 14 30 15 31) 65535)))
2110
- (vec_merge_low $I8X16 x y))
2111
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 28 29 30 31 8 9 10 11 12 13 14 15) 65535)))
2112
- (vec_merge_low $I64X2 y x))
2113
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 8 9 10 11 28 29 30 31 12 13 14 15) 65535)))
2114
- (vec_merge_low $I32X4 y x))
2115
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 8 9 26 27 10 11 28 29 12 13 30 31 14 15) 65535)))
2116
- (vec_merge_low $I16X8 y x))
2117
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 8 25 9 26 10 27 11 28 12 29 13 30 14 31 15) 65535)))
2118
- (vec_merge_low $I8X16 y x))
2119
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15) 65535)))
2120
- (vec_merge_low $I64X2 x x))
2121
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 8 9 10 11 12 13 14 15 12 13 14 15) 65535)))
2122
- (vec_merge_low $I32X4 x x))
2123
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 8 9 10 11 10 11 12 13 12 13 14 15 14 15) 65535)))
2124
- (vec_merge_low $I16X8 x x))
2125
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15) 65535)))
2126
- (vec_merge_low $I8X16 x x))
2127
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 28 29 30 31 24 25 26 27 28 29 30 31) 65535)))
2128
- (vec_merge_low $I64X2 y y))
2129
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 24 25 26 27 28 29 30 31 28 29 30 31) 65535)))
2130
- (vec_merge_low $I32X4 y y))
2131
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 24 25 26 27 26 27 28 29 28 29 30 31 30 31) 65535)))
2132
- (vec_merge_low $I16X8 y y))
2133
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31) 65535)))
2134
- (vec_merge_low $I8X16 y y))
2135
-
2136
- ;; Special patterns that can be implemented via PACK.
2137
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31) 65535)))
2138
- (vec_pack $I64X2 x y))
2139
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31) 65535)))
2140
- (vec_pack $I32X4 x y))
2141
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31) 65535)))
2142
- (vec_pack $I16X8 x y))
2143
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 20 21 22 23 28 29 30 31 4 5 6 7 12 13 14 15) 65535)))
2144
- (vec_pack $I64X2 y x))
2145
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 18 19 22 23 26 27 30 31 2 3 6 7 10 11 14 15) 65535)))
2146
- (vec_pack $I32X4 y x))
2147
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 17 19 21 23 25 27 29 31 1 3 5 7 9 11 13 15) 65535)))
2148
- (vec_pack $I16X8 y x))
2149
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 4 5 6 7 12 13 14 15 4 5 6 7 12 13 14 15) 65535)))
2150
- (vec_pack $I64X2 x x))
2151
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 2 3 6 7 10 11 14 15 2 3 6 7 10 11 14 15) 65535)))
2152
- (vec_pack $I32X4 x x))
2153
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 1 3 5 7 9 11 13 15 1 3 5 7 9 11 13 15) 65535)))
2154
- (vec_pack $I16X8 x x))
2155
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 20 21 22 23 28 29 30 31 20 21 22 23 28 29 30 31) 65535)))
2156
- (vec_pack $I64X2 y y))
2157
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 18 19 22 23 26 27 30 31 18 19 22 23 26 27 30 31) 65535)))
2158
- (vec_pack $I32X4 y y))
2159
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 17 19 21 23 25 27 29 31 17 19 21 23 25 27 29 31) 65535)))
2160
- (vec_pack $I16X8 y y))
2161
-
2162
- ;; Special patterns that can be implemented via UNPACK HIGH.
2163
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ _ _ 0 1 2 3 _ _ _ _ 4 5 6 7) 3855)))
2164
- (vec_unpacku_high $I32X4 x))
2165
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ 0 1 _ _ 2 3 _ _ 4 5 _ _ 6 7) 13107)))
2166
- (vec_unpacku_high $I16X8 x))
2167
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ 0 _ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7) 21845)))
2168
- (vec_unpacku_high $I8X16 x))
2169
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ _ _ 16 17 18 19 _ _ _ _ 20 21 22 23) 3855)))
2170
- (vec_unpacku_high $I32X4 y))
2171
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ 16 17 _ _ 18 19 _ _ 20 21 _ _ 22 23) 13107)))
2172
- (vec_unpacku_high $I16X8 y))
2173
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ 16 _ 17 _ 18 _ 19 _ 20 _ 21 _ 22 _ 23) 21845)))
2174
- (vec_unpacku_high $I8X16 y))
2175
-
2176
- ;; Special patterns that can be implemented via UNPACK LOW.
2177
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ _ _ 8 9 10 11 _ _ _ _ 12 13 14 15) 3855)))
2178
- (vec_unpacku_low $I32X4 x))
2179
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ 8 9 _ _ 10 11 _ _ 12 13 _ _ 14 15) 13107)))
2180
- (vec_unpacku_low $I16X8 x))
2181
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ 8 _ 9 _ 10 _ 11 _ 12 _ 13 _ 14 _ 15) 21845)))
2182
- (vec_unpacku_low $I8X16 x))
2183
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ _ _ 24 25 26 27 _ _ _ _ 28 29 30 31) 3855)))
2184
- (vec_unpacku_low $I32X4 y))
2185
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ _ 24 25 _ _ 26 27 _ _ 28 29 _ _ 30 31) 13107)))
2186
- (vec_unpacku_low $I16X8 y))
2187
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 _ 24 _ 25 _ 26 _ 27 _ 28 _ 29 _ 30 _ 31) 21845)))
2188
- (vec_unpacku_low $I8X16 y))
2189
-
2190
- ;; Special patterns that can be implemented via PERMUTE DOUBLEWORD IMMEDIATE.
2191
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31) 65535)))
2192
- (vec_permute_dw_imm $I8X16 x 0 y 1))
2193
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23) 65535)))
2194
- (vec_permute_dw_imm $I8X16 x 1 y 0))
2195
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 20 21 22 23 8 9 10 11 12 13 14 15) 65535)))
2196
- (vec_permute_dw_imm $I8X16 y 0 x 1))
2197
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7) 65535)))
2198
- (vec_permute_dw_imm $I8X16 y 1 x 0))
2199
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) 65535)))
2200
- (vec_permute_dw_imm $I8X16 x 0 x 1))
2201
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7) 65535)))
2202
- (vec_permute_dw_imm $I8X16 x 1 x 0))
2203
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) 65535)))
2204
- (vec_permute_dw_imm $I8X16 y 0 y 1))
2205
- (rule (lower (shuffle x y (shuffle_mask (imm8x16 24 25 26 27 28 29 30 31 16 17 18 19 20 21 22 23) 65535)))
2206
- (vec_permute_dw_imm $I8X16 y 1 y 0))
2207
-
2208
-
2209
- ;;;; Rules for `swizzle` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2210
-
2211
- ;; When using big-endian lane order, the lane mask is mostly correct, but we
2212
- ;; need to handle mask elements outside the range 0..15 by zeroing the lane.
2213
- ;;
2214
- ;; To do so efficiently, we compute:
2215
- ;; permute-lane-element := umin (16, swizzle-lane-element)
2216
- ;; and pass a zero vector as second operand to the permute instruction.
2217
-
2218
- (rule 1 (lower (has_type (ty_vec128 ty) (swizzle x y)))
2219
- (if-let (LaneOrder.BigEndian) (lane_order))
2220
- (vec_permute ty x (vec_imm ty 0)
2221
- (vec_umin $I8X16 (vec_imm_splat $I8X16 16) y)))
2222
-
2223
- ;; When using little-endian lane order, in addition to zeroing (as above),
2224
- ;; we need to convert from little-endian to big-endian lane numbering.
2225
- ;;
2226
- ;; To do so efficiently, we compute:
2227
- ;; permute-lane-element := umax (239, ~ swizzle-lane-element)
2228
- ;; which has the following effect:
2229
- ;; elements 0 .. 15 --> 255 .. 240 (i.e. 31 .. 16 mod 32)
2230
- ;; everything else --> 239 (i.e. 15 mod 32)
2231
- ;;
2232
- ;; Then, we can use a single permute instruction with
2233
- ;; a zero vector as first operand (covering lane 15)
2234
- ;; the input vector as second operand (covering lanes 16 .. 31)
2235
- ;; to implement the required swizzle semantics.
2236
-
2237
- (rule (lower (has_type (ty_vec128 ty) (swizzle x y)))
2238
- (if-let (LaneOrder.LittleEndian) (lane_order))
2239
- (vec_permute ty (vec_imm ty 0) x
2240
- (vec_umax $I8X16 (vec_imm_splat $I8X16 239)
2241
- (vec_not $I8X16 y))))
2242
-
2243
-
2244
- ;;;; Rules for `stack_addr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2245
-
2246
- ;; Load the address of a stack slot.
2247
- (rule (lower (has_type ty (stack_addr stack_slot offset)))
2248
- (stack_addr_impl ty stack_slot offset))
2249
-
2250
-
2251
- ;;;; Rules for `func_addr` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2252
-
2253
- ;; Load the address of a function, target reachable via PC-relative instruction.
2254
- (rule 1 (lower (func_addr (func_ref_data _ name (reloc_distance_near))))
2255
- (load_addr (memarg_symbol name 0 (memflags_trusted))))
2256
-
2257
- ;; Load the address of a function, general case.
2258
- (rule (lower (func_addr (func_ref_data _ name _)))
2259
- (load_symbol_reloc (SymbolReloc.Absolute name 0)))
2260
-
2261
-
2262
- ;;;; Rules for `symbol_value` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2263
-
2264
- ;; Load the address of a symbol, target reachable via PC-relative instruction.
2265
- (rule 1 (lower (symbol_value (symbol_value_data name (reloc_distance_near)
2266
- off)))
2267
- (if-let offset (memarg_symbol_offset off))
2268
- (load_addr (memarg_symbol name offset (memflags_trusted))))
2269
-
2270
- ;; Load the address of a symbol, general case.
2271
- (rule (lower (symbol_value (symbol_value_data name _ offset)))
2272
- (load_symbol_reloc (SymbolReloc.Absolute name offset)))
2273
-
2274
-
2275
- ;;;; Rules for `tls_value` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2276
-
2277
- ;; Load the address of a TLS symbol (ELF general-dynamic model).
2278
- (rule (lower (tls_value (symbol_value_data name _ 0)))
2279
- (if (tls_model_is_elf_gd))
2280
- (let ((symbol SymbolReloc (SymbolReloc.TlsGd name))
2281
- (got Reg (load_addr (memarg_got)))
2282
- (got_offset Reg (load_symbol_reloc symbol))
2283
- (tls_offset Reg (lib_call_tls_get_offset got got_offset symbol)))
2284
- (add_reg $I64 tls_offset (thread_pointer))))
2285
-
2286
- ;; Helper to perform a call to the __tls_get_offset library routine.
2287
- (decl lib_call_tls_get_offset (Reg Reg SymbolReloc) Reg)
2288
- (rule (lib_call_tls_get_offset got got_offset symbol)
2289
- (let ((tls_offset WritableReg (temp_writable_reg $I64))
2290
- (libcall LibCallInfo (lib_call_info_tls_get_offset tls_offset got got_offset symbol))
2291
- (_ Unit (lib_accumulate_outgoing_args_size libcall))
2292
- (_ InstOutput (side_effect (lib_call libcall))))
2293
- tls_offset))
2294
-
2295
- ;; Helper to extract the current thread pointer from %a0/%a1.
2296
- (decl thread_pointer () Reg)
2297
- (rule (thread_pointer)
2298
- (insert_ar (lshl_imm $I64 (load_ar 0) 32) 1))
2299
-
2300
-
2301
- ;;;; Rules for `load` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2302
-
2303
- ;; Load 8-bit integers.
2304
- (rule (lower (has_type $I8 (load flags addr offset)))
2305
- (zext32_mem $I8 (lower_address flags addr offset)))
2306
-
2307
- ;; Load 16-bit big-endian integers.
2308
- (rule (lower (has_type $I16 (load flags @ (bigendian) addr offset)))
2309
- (zext32_mem $I16 (lower_address flags addr offset)))
2310
-
2311
- ;; Load 16-bit little-endian integers.
2312
- (rule -1 (lower (has_type $I16 (load flags @ (littleendian) addr offset)))
2313
- (loadrev16 (lower_address flags addr offset)))
2314
-
2315
- ;; Load 32-bit big-endian integers.
2316
- (rule (lower (has_type $I32 (load flags @ (bigendian) addr offset)))
2317
- (load32 (lower_address flags addr offset)))
2318
-
2319
- ;; Load 32-bit little-endian integers.
2320
- (rule -1 (lower (has_type $I32 (load flags @ (littleendian) addr offset)))
2321
- (loadrev32 (lower_address flags addr offset)))
2322
-
2323
- ;; Load 64-bit big-endian integers.
2324
- (rule (lower (has_type $I64 (load flags @ (bigendian) addr offset)))
2325
- (load64 (lower_address flags addr offset)))
2326
-
2327
- ;; Load 64-bit little-endian integers.
2328
- (rule -1 (lower (has_type $I64 (load flags @ (littleendian) addr offset)))
2329
- (loadrev64 (lower_address flags addr offset)))
2330
-
2331
- ;; Load 64-bit big-endian references.
2332
- (rule (lower (has_type $R64 (load flags @ (bigendian) addr offset)))
2333
- (load64 (lower_address flags addr offset)))
2334
-
2335
- ;; Load 64-bit little-endian references.
2336
- (rule -1 (lower (has_type $R64 (load flags @ (littleendian) addr offset)))
2337
- (loadrev64 (lower_address flags addr offset)))
2338
-
2339
- ;; Load 32-bit big-endian floating-point values (as vector lane).
2340
- (rule (lower (has_type $F32 (load flags @ (bigendian) addr offset)))
2341
- (vec_load_lane_undef $F32X4 (lower_address flags addr offset) 0))
2342
-
2343
- ;; Load 32-bit little-endian floating-point values (as vector lane).
2344
- (rule -1 (lower (has_type $F32 (load flags @ (littleendian) addr offset)))
2345
- (vec_load_lane_little_undef $F32X4 (lower_address flags addr offset) 0))
2346
-
2347
- ;; Load 64-bit big-endian floating-point values (as vector lane).
2348
- (rule (lower (has_type $F64 (load flags @ (bigendian) addr offset)))
2349
- (vec_load_lane_undef $F64X2 (lower_address flags addr offset) 0))
2350
-
2351
- ;; Load 64-bit little-endian floating-point values (as vector lane).
2352
- (rule -1 (lower (has_type $F64 (load flags @ (littleendian) addr offset)))
2353
- (vec_load_lane_little_undef $F64X2 (lower_address flags addr offset) 0))
2354
-
2355
- ;; Load 128-bit big-endian vector values, BE lane order - direct load.
2356
- (rule 4 (lower (has_type (vr128_ty ty) (load flags @ (bigendian) addr offset)))
2357
- (if-let (LaneOrder.BigEndian) (lane_order))
2358
- (vec_load ty (lower_address flags addr offset)))
2359
-
2360
- ;; Load 128-bit little-endian vector values, BE lane order - byte-reversed load.
2361
- (rule 3 (lower (has_type (vr128_ty ty) (load flags @ (littleendian) addr offset)))
2362
- (if-let (LaneOrder.BigEndian) (lane_order))
2363
- (vec_load_byte_rev ty flags addr offset))
2364
-
2365
- ;; Load 128-bit big-endian vector values, LE lane order - element-reversed load.
2366
- (rule 2 (lower (has_type (vr128_ty ty) (load flags @ (bigendian) addr offset)))
2367
- (if-let (LaneOrder.LittleEndian) (lane_order))
2368
- (vec_load_elt_rev ty flags addr offset))
2369
-
2370
- ;; Load 128-bit little-endian vector values, LE lane order - fully-reversed load.
2371
- (rule 1 (lower (has_type (vr128_ty ty) (load flags @ (littleendian) addr offset)))
2372
- (if-let (LaneOrder.LittleEndian) (lane_order))
2373
- (vec_load_full_rev ty flags addr offset))
2374
-
2375
-
2376
- ;; Helper to perform a 128-bit full-vector byte-reversed load.
2377
- (decl vec_load_full_rev (Type MemFlags Value Offset32) Reg)
2378
-
2379
- ;; Full-vector byte-reversed load via single instruction on z15.
2380
- (rule 1 (vec_load_full_rev (and (vxrs_ext2_enabled) (vr128_ty ty)) flags addr offset)
2381
- (vec_loadrev ty (lower_address flags addr offset)))
2382
-
2383
- ;; Full-vector byte-reversed load via GPRs on z14.
2384
- (rule (vec_load_full_rev (and (vxrs_ext2_disabled) (vr128_ty ty)) flags addr offset)
2385
- (let ((lo_addr MemArg (lower_address_bias flags addr offset 0))
2386
- (hi_addr MemArg (lower_address_bias flags addr offset 8))
2387
- (lo_val Reg (loadrev64 lo_addr))
2388
- (hi_val Reg (loadrev64 hi_addr)))
2389
- (mov_to_vec128 ty hi_val lo_val)))
2390
-
2391
-
2392
- ;; Helper to perform an element-wise byte-reversed load.
2393
- (decl vec_load_byte_rev (Type MemFlags Value Offset32) Reg)
2394
-
2395
- ;; Element-wise byte-reversed 1x128-bit load is a full byte-reversed load.
2396
- (rule -1 (vec_load_byte_rev $I128 flags addr offset)
2397
- (vec_load_full_rev $I128 flags addr offset))
2398
-
2399
- ;; Element-wise byte-reversed 16x8-bit load is a direct load.
2400
- (rule (vec_load_byte_rev ty @ (multi_lane 8 16) flags addr offset)
2401
- (vec_load ty (lower_address flags addr offset)))
2402
-
2403
- ;; Element-wise byte-reversed load via single instruction on z15.
2404
- (rule 1 (vec_load_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 64 2))
2405
- flags addr offset)
2406
- (vec_load_byte64rev ty (lower_address flags addr offset)))
2407
- (rule 1 (vec_load_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 32 4))
2408
- flags addr offset)
2409
- (vec_load_byte32rev ty (lower_address flags addr offset)))
2410
- (rule 1 (vec_load_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 16 8))
2411
- flags addr offset)
2412
- (vec_load_byte16rev ty (lower_address flags addr offset)))
2413
-
2414
- ;; Element-wise byte-reversed load as element-swapped byte-reversed load on z14.
2415
- (rule (vec_load_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 64 2))
2416
- flags addr offset)
2417
- (vec_elt_rev ty (vec_load_full_rev ty flags addr offset)))
2418
- (rule (vec_load_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 32 4))
2419
- flags addr offset)
2420
- (vec_elt_rev ty (vec_load_full_rev ty flags addr offset)))
2421
- (rule (vec_load_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 16 8))
2422
- flags addr offset)
2423
- (vec_elt_rev ty (vec_load_full_rev ty flags addr offset)))
2424
-
2425
-
2426
- ;; Helper to perform an element-reversed load.
2427
- (decl vec_load_elt_rev (Type MemFlags Value Offset32) Reg)
2428
-
2429
- ;; Element-reversed 1x128-bit load is a direct load.
2430
- ;; For 1x128-bit types, this is a direct load.
2431
- (rule -1 (vec_load_elt_rev $I128 flags addr offset)
2432
- (vec_load $I128 (lower_address flags addr offset)))
2433
-
2434
- ;; Element-reversed 16x8-bit load is a full byte-reversed load.
2435
- (rule (vec_load_elt_rev ty @ (multi_lane 8 16) flags addr offset)
2436
- (vec_load_full_rev ty flags addr offset))
2437
-
2438
- ;; Element-reversed load via single instruction on z15.
2439
- (rule 1 (vec_load_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 64 2))
2440
- flags addr offset)
2441
- (vec_load_elt64rev ty (lower_address flags addr offset)))
2442
- (rule 1 (vec_load_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 32 4))
2443
- flags addr offset)
2444
- (vec_load_elt32rev ty (lower_address flags addr offset)))
2445
- (rule 1 (vec_load_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 16 8))
2446
- flags addr offset)
2447
- (vec_load_elt16rev ty (lower_address flags addr offset)))
2448
-
2449
- ;; Element-reversed load as element-swapped direct load on z14.
2450
- (rule (vec_load_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 64 2))
2451
- flags addr offset)
2452
- (vec_elt_rev ty (vec_load ty (lower_address flags addr offset))))
2453
- (rule (vec_load_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 32 4))
2454
- flags addr offset)
2455
- (vec_elt_rev ty (vec_load ty (lower_address flags addr offset))))
2456
- (rule (vec_load_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 16 8))
2457
- flags addr offset)
2458
- (vec_elt_rev ty (vec_load ty (lower_address flags addr offset))))
2459
-
2460
-
2461
- ;;;; Rules for `uload8` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2462
-
2463
- ;; 16- or 32-bit target types.
2464
- (rule (lower (has_type (gpr32_ty _ty) (uload8 flags addr offset)))
2465
- (zext32_mem $I8 (lower_address flags addr offset)))
2466
-
2467
- ;; 64-bit target types.
2468
- (rule 1 (lower (has_type (gpr64_ty _ty) (uload8 flags addr offset)))
2469
- (zext64_mem $I8 (lower_address flags addr offset)))
2470
-
2471
-
2472
- ;;;; Rules for `sload8` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2473
-
2474
- ;; 16- or 32-bit target types.
2475
- (rule (lower (has_type (gpr32_ty _ty) (sload8 flags addr offset)))
2476
- (sext32_mem $I8 (lower_address flags addr offset)))
2477
-
2478
- ;; 64-bit target types.
2479
- (rule 1 (lower (has_type (gpr64_ty _ty) (sload8 flags addr offset)))
2480
- (sext64_mem $I8 (lower_address flags addr offset)))
2481
-
2482
-
2483
- ;;;; Rules for `uload16` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2484
-
2485
- ;; 32-bit target type, big-endian source value.
2486
- (rule 3 (lower (has_type (gpr32_ty _ty)
2487
- (uload16 flags @ (bigendian) addr offset)))
2488
- (zext32_mem $I16 (lower_address flags addr offset)))
2489
-
2490
- ;; 32-bit target type, little-endian source value (via explicit extension).
2491
- (rule 1 (lower (has_type (gpr32_ty _ty)
2492
- (uload16 flags @ (littleendian) addr offset)))
2493
- (let ((reg16 Reg (loadrev16 (lower_address flags addr offset))))
2494
- (zext32_reg $I16 reg16)))
2495
-
2496
- ;; 64-bit target type, big-endian source value.
2497
- (rule 4 (lower (has_type (gpr64_ty _ty)
2498
- (uload16 flags @ (bigendian) addr offset)))
2499
- (zext64_mem $I16 (lower_address flags addr offset)))
2500
-
2501
- ;; 64-bit target type, little-endian source value (via explicit extension).
2502
- (rule 2 (lower (has_type (gpr64_ty _ty)
2503
- (uload16 flags @ (littleendian) addr offset)))
2504
- (let ((reg16 Reg (loadrev16 (lower_address flags addr offset))))
2505
- (zext64_reg $I16 reg16)))
2506
-
2507
-
2508
- ;;;; Rules for `sload16` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2509
-
2510
- ;; 32-bit target type, big-endian source value.
2511
- (rule 2 (lower (has_type (gpr32_ty _ty)
2512
- (sload16 flags @ (bigendian) addr offset)))
2513
- (sext32_mem $I16 (lower_address flags addr offset)))
2514
-
2515
- ;; 32-bit target type, little-endian source value (via explicit extension).
2516
- (rule 0 (lower (has_type (gpr32_ty _ty)
2517
- (sload16 flags @ (littleendian) addr offset)))
2518
- (let ((reg16 Reg (loadrev16 (lower_address flags addr offset))))
2519
- (sext32_reg $I16 reg16)))
2520
-
2521
- ;; 64-bit target type, big-endian source value.
2522
- (rule 3 (lower (has_type (gpr64_ty _ty)
2523
- (sload16 flags @ (bigendian) addr offset)))
2524
- (sext64_mem $I16 (lower_address flags addr offset)))
2525
-
2526
- ;; 64-bit target type, little-endian source value (via explicit extension).
2527
- (rule 1 (lower (has_type (gpr64_ty _ty)
2528
- (sload16 flags @ (littleendian) addr offset)))
2529
- (let ((reg16 Reg (loadrev16 (lower_address flags addr offset))))
2530
- (sext64_reg $I16 reg16)))
2531
-
2532
-
2533
- ;;;; Rules for `uload32` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2534
-
2535
- ;; 64-bit target type, big-endian source value.
2536
- (rule 1 (lower (has_type (gpr64_ty _ty)
2537
- (uload32 flags @ (bigendian) addr offset)))
2538
- (zext64_mem $I32 (lower_address flags addr offset)))
2539
-
2540
- ;; 64-bit target type, little-endian source value (via explicit extension).
2541
- (rule (lower (has_type (gpr64_ty _ty)
2542
- (uload32 flags @ (littleendian) addr offset)))
2543
- (let ((reg32 Reg (loadrev32 (lower_address flags addr offset))))
2544
- (zext64_reg $I32 reg32)))
2545
-
2546
-
2547
- ;;;; Rules for `sload32` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2548
-
2549
- ;; 64-bit target type, big-endian source value.
2550
- (rule 1 (lower (has_type (gpr64_ty _ty)
2551
- (sload32 flags @ (bigendian) addr offset)))
2552
- (sext64_mem $I32 (lower_address flags addr offset)))
2553
-
2554
- ;; 64-bit target type, little-endian source value (via explicit extension).
2555
- (rule (lower (has_type (gpr64_ty _ty)
2556
- (sload32 flags @ (littleendian) addr offset)))
2557
- (let ((reg32 Reg (loadrev32 (lower_address flags addr offset))))
2558
- (sext64_reg $I32 reg32)))
2559
-
2560
-
2561
- ;;;; Rules for `uloadNxM` and `sloadNxM` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2562
-
2563
- ;; Unsigned 8->16 bit extension.
2564
- (rule (lower (has_type $I16X8 (uload8x8 flags addr offset)))
2565
- (vec_unpacku_high $I8X16 (load_v64 $I8X16 flags addr offset)))
2566
-
2567
- ;; Signed 8->16 bit extension.
2568
- (rule (lower (has_type $I16X8 (sload8x8 flags addr offset)))
2569
- (vec_unpacks_high $I8X16 (load_v64 $I8X16 flags addr offset)))
2570
-
2571
- ;; Unsigned 16->32 bit extension.
2572
- (rule (lower (has_type $I32X4 (uload16x4 flags addr offset)))
2573
- (vec_unpacku_high $I16X8 (load_v64 $I16X8 flags addr offset)))
2574
-
2575
- ;; Signed 16->32 bit extension.
2576
- (rule (lower (has_type $I32X4 (sload16x4 flags addr offset)))
2577
- (vec_unpacks_high $I16X8 (load_v64 $I16X8 flags addr offset)))
2578
-
2579
- ;; Unsigned 32->64 bit extension.
2580
- (rule (lower (has_type $I64X2 (uload32x2 flags addr offset)))
2581
- (vec_unpacku_high $I32X4 (load_v64 $I32X4 flags addr offset)))
2582
-
2583
- ;; Signed 32->64 bit extension.
2584
- (rule (lower (has_type $I64X2 (sload32x2 flags addr offset)))
2585
- (vec_unpacks_high $I32X4 (load_v64 $I32X4 flags addr offset)))
2586
-
2587
-
2588
- ;; Helper to load a 64-bit half-size vector from memory.
2589
- (decl load_v64 (Type MemFlags Value Offset32) Reg)
2590
-
2591
- ;; Any big-endian source value, BE lane order.
2592
- (rule -1 (load_v64 _ flags @ (bigendian) addr offset)
2593
- (if-let (LaneOrder.BigEndian) (lane_order))
2594
- (vec_load_lane_undef $I64X2 (lower_address flags addr offset) 0))
2595
-
2596
- ;; Any little-endian source value, LE lane order.
2597
- (rule -2 (load_v64 _ flags @ (littleendian) addr offset)
2598
- (if-let (LaneOrder.LittleEndian) (lane_order))
2599
- (vec_load_lane_little_undef $I64X2 (lower_address flags addr offset) 0))
2600
-
2601
- ;; Big-endian or little-endian 8x8-bit source value, BE lane order.
2602
- (rule (load_v64 (multi_lane 8 16) flags addr offset)
2603
- (if-let (LaneOrder.BigEndian) (lane_order))
2604
- (vec_load_lane_undef $I64X2 (lower_address flags addr offset) 0))
2605
-
2606
- ;; Big-endian or little-endian 8x8-bit source value, LE lane order.
2607
- (rule 1 (load_v64 (multi_lane 8 16) flags addr offset)
2608
- (if-let (LaneOrder.LittleEndian) (lane_order))
2609
- (vec_load_lane_little_undef $I64X2 (lower_address flags addr offset) 0))
2610
-
2611
- ;; Little-endian 4x16-bit source value, BE lane order.
2612
- (rule (load_v64 (multi_lane 16 8) flags @ (littleendian) addr offset)
2613
- (if-let (LaneOrder.BigEndian) (lane_order))
2614
- (vec_rot_imm $I16X8
2615
- (vec_load_lane_undef $I64X2 (lower_address flags addr offset) 0) 8))
2616
-
2617
- ;; Big-endian 4x16-bit source value, LE lane order.
2618
- (rule 1 (load_v64 (multi_lane 16 8) flags @ (bigendian) addr offset)
2619
- (if-let (LaneOrder.LittleEndian) (lane_order))
2620
- (vec_rot_imm $I16X8
2621
- (vec_load_lane_little_undef $I64X2 (lower_address flags addr offset) 0) 8))
2622
-
2623
- ;; Little-endian 2x32-bit source value, BE lane order.
2624
- (rule (load_v64 (multi_lane 32 4) flags @ (littleendian) addr offset)
2625
- (if-let (LaneOrder.BigEndian) (lane_order))
2626
- (vec_rot_imm $I64X2
2627
- (vec_load_lane_little_undef $I64X2 (lower_address flags addr offset) 0) 32))
2628
-
2629
- ;; Big-endian 2x32-bit source value, LE lane order.
2630
- (rule 1 (load_v64 (multi_lane 32 4) flags @ (bigendian) addr offset)
2631
- (if-let (LaneOrder.LittleEndian) (lane_order))
2632
- (vec_rot_imm $I64X2
2633
- (vec_load_lane_undef $I64X2 (lower_address flags addr offset) 0) 32))
2634
-
2635
-
2636
- ;;;; Rules for `store` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2637
-
2638
- ;; The actual store logic for integer types is identical for the `store`,
2639
- ;; `istoreNN`, and `atomic_store` instructions, so we share common helpers.
2640
-
2641
- ;; Store 8-bit integer type, main lowering entry point.
2642
- (rule (lower (store flags val @ (value_type $I8) addr offset))
2643
- (side_effect (istore8_impl flags val addr offset)))
2644
-
2645
- ;; Store 16-bit integer type, main lowering entry point.
2646
- (rule (lower (store flags val @ (value_type $I16) addr offset))
2647
- (side_effect (istore16_impl flags val addr offset)))
2648
-
2649
- ;; Store 32-bit integer type, main lowering entry point.
2650
- (rule (lower (store flags val @ (value_type $I32) addr offset))
2651
- (side_effect (istore32_impl flags val addr offset)))
2652
-
2653
- ;; Store 64-bit integer type, main lowering entry point.
2654
- (rule (lower (store flags val @ (value_type $I64) addr offset))
2655
- (side_effect (istore64_impl flags val addr offset)))
2656
-
2657
- ;; Store 64-bit reference type, main lowering entry point.
2658
- (rule (lower (store flags val @ (value_type $R64) addr offset))
2659
- (side_effect (istore64_impl flags val addr offset)))
2660
-
2661
- ;; Store 32-bit big-endian floating-point type (as vector lane).
2662
- (rule -1 (lower (store flags @ (bigendian)
2663
- val @ (value_type $F32) addr offset))
2664
- (side_effect (vec_store_lane $F32X4 val
2665
- (lower_address flags addr offset) 0)))
2666
-
2667
- ;; Store 32-bit little-endian floating-point type (as vector lane).
2668
- (rule (lower (store flags @ (littleendian)
2669
- val @ (value_type $F32) addr offset))
2670
- (side_effect (vec_store_lane_little $F32X4 val
2671
- (lower_address flags addr offset) 0)))
2672
-
2673
- ;; Store 64-bit big-endian floating-point type (as vector lane).
2674
- (rule -1 (lower (store flags @ (bigendian)
2675
- val @ (value_type $F64) addr offset))
2676
- (side_effect (vec_store_lane $F64X2 val
2677
- (lower_address flags addr offset) 0)))
2678
-
2679
- ;; Store 64-bit little-endian floating-point type (as vector lane).
2680
- (rule (lower (store flags @ (littleendian)
2681
- val @ (value_type $F64) addr offset))
2682
- (side_effect (vec_store_lane_little $F64X2 val
2683
- (lower_address flags addr offset) 0)))
2684
-
2685
- ;; Store 128-bit big-endian vector type, BE lane order - direct store.
2686
- (rule 4 (lower (store flags @ (bigendian)
2687
- val @ (value_type (vr128_ty ty)) addr offset))
2688
- (if-let (LaneOrder.BigEndian) (lane_order))
2689
- (side_effect (vec_store val (lower_address flags addr offset))))
2690
-
2691
- ;; Store 128-bit little-endian vector type, BE lane order - byte-reversed store.
2692
- (rule 3 (lower (store flags @ (littleendian)
2693
- val @ (value_type (vr128_ty ty)) addr offset))
2694
- (if-let (LaneOrder.BigEndian) (lane_order))
2695
- (side_effect (vec_store_byte_rev ty val flags addr offset)))
2696
-
2697
- ;; Store 128-bit big-endian vector type, LE lane order - element-reversed store.
2698
- (rule 2 (lower (store flags @ (bigendian)
2699
- val @ (value_type (vr128_ty ty)) addr offset))
2700
- (if-let (LaneOrder.LittleEndian) (lane_order))
2701
- (side_effect (vec_store_elt_rev ty val flags addr offset)))
2702
-
2703
- ;; Store 128-bit little-endian vector type, LE lane order - fully-reversed store.
2704
- (rule 1 (lower (store flags @ (littleendian)
2705
- val @ (value_type (vr128_ty ty)) addr offset))
2706
- (if-let (LaneOrder.LittleEndian) (lane_order))
2707
- (side_effect (vec_store_full_rev ty val flags addr offset)))
2708
-
2709
-
2710
- ;; Helper to perform a 128-bit full-vector byte-reversed store.
2711
- (decl vec_store_full_rev (Type Reg MemFlags Value Offset32) SideEffectNoResult)
2712
-
2713
- ;; Full-vector byte-reversed store via single instruction on z15.
2714
- (rule 1 (vec_store_full_rev (vxrs_ext2_enabled) val flags addr offset)
2715
- (vec_storerev val (lower_address flags addr offset)))
2716
-
2717
- ;; Full-vector byte-reversed store via GPRs on z14.
2718
- (rule (vec_store_full_rev (vxrs_ext2_disabled) val flags addr offset)
2719
- (let ((lo_addr MemArg (lower_address_bias flags addr offset 0))
2720
- (hi_addr MemArg (lower_address_bias flags addr offset 8))
2721
- (lo_val Reg (vec_extract_lane $I64X2 val 1 (zero_reg)))
2722
- (hi_val Reg (vec_extract_lane $I64X2 val 0 (zero_reg))))
2723
- (side_effect_concat (storerev64 lo_val lo_addr)
2724
- (storerev64 hi_val hi_addr))))
2725
-
2726
-
2727
- ;; Helper to perform an element-wise byte-reversed store.
2728
- (decl vec_store_byte_rev (Type Reg MemFlags Value Offset32) SideEffectNoResult)
2729
-
2730
- ;; Element-wise byte-reversed 1x128-bit store is a full byte-reversed store.
2731
- (rule -1 (vec_store_byte_rev $I128 val flags addr offset)
2732
- (vec_store_full_rev $I128 val flags addr offset))
2733
-
2734
- ;; Element-wise byte-reversed 16x8-bit store is a direct store.
2735
- (rule (vec_store_byte_rev (multi_lane 8 16) val flags addr offset)
2736
- (vec_store val (lower_address flags addr offset)))
2737
-
2738
- ;; Element-wise byte-reversed store via single instruction on z15.
2739
- (rule 1 (vec_store_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 64 2))
2740
- val flags addr offset)
2741
- (vec_store_byte64rev val (lower_address flags addr offset)))
2742
- (rule 1 (vec_store_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 32 4))
2743
- val flags addr offset)
2744
- (vec_store_byte32rev val (lower_address flags addr offset)))
2745
- (rule 1 (vec_store_byte_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 16 8))
2746
- val flags addr offset)
2747
- (vec_store_byte16rev val (lower_address flags addr offset)))
2748
-
2749
- ;; Element-wise byte-reversed load as element-swapped byte-reversed store on z14.
2750
- (rule (vec_store_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 64 2))
2751
- val flags addr offset)
2752
- (vec_store_full_rev ty (vec_elt_rev ty val) flags addr offset))
2753
- (rule (vec_store_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 32 4))
2754
- val flags addr offset)
2755
- (vec_store_full_rev ty (vec_elt_rev ty val) flags addr offset))
2756
- (rule (vec_store_byte_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 16 8))
2757
- val flags addr offset)
2758
- (vec_store_full_rev ty (vec_elt_rev ty val) flags addr offset))
2759
-
2760
-
2761
- ;; Helper to perform an element-reversed store.
2762
- (decl vec_store_elt_rev (Type Reg MemFlags Value Offset32) SideEffectNoResult)
2763
-
2764
- ;; Element-reversed 1x128-bit store is a direct store.
2765
- (rule -1 (vec_store_elt_rev $I128 val flags addr offset)
2766
- (vec_store val (lower_address flags addr offset)))
2767
-
2768
- ;; Element-reversed 16x8-bit store is a full byte-reversed store.
2769
- (rule (vec_store_elt_rev ty @ (multi_lane 8 16) val flags addr offset)
2770
- (vec_store_full_rev ty val flags addr offset))
2771
-
2772
- ;; Element-reversed store via single instruction on z15.
2773
- (rule 1 (vec_store_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 64 2))
2774
- val flags addr offset)
2775
- (vec_store_elt64rev val (lower_address flags addr offset)))
2776
- (rule 1 (vec_store_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 32 4))
2777
- val flags addr offset)
2778
- (vec_store_elt32rev val (lower_address flags addr offset)))
2779
- (rule 1 (vec_store_elt_rev (and (vxrs_ext2_enabled) ty @ (multi_lane 16 8))
2780
- val flags addr offset)
2781
- (vec_store_elt16rev val (lower_address flags addr offset)))
2782
-
2783
- ;; Element-reversed store as element-swapped direct store on z14.
2784
- (rule (vec_store_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 64 2))
2785
- val flags addr offset)
2786
- (vec_store (vec_elt_rev ty val) (lower_address flags addr offset)))
2787
- (rule (vec_store_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 32 4))
2788
- val flags addr offset)
2789
- (vec_store (vec_elt_rev ty val) (lower_address flags addr offset)))
2790
- (rule (vec_store_elt_rev (and (vxrs_ext2_disabled) ty @ (multi_lane 16 8))
2791
- val flags addr offset)
2792
- (vec_store (vec_elt_rev ty val) (lower_address flags addr offset)))
2793
-
2794
-
2795
- ;;;; Rules for 8-bit integer stores ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2796
-
2797
- ;; Main `istore8` lowering entry point, dispatching to the helper.
2798
- (rule (lower (istore8 flags val addr offset))
2799
- (side_effect (istore8_impl flags val addr offset)))
2800
-
2801
- ;; Helper to store 8-bit integer types.
2802
- (decl istore8_impl (MemFlags Value Value Offset32) SideEffectNoResult)
2803
-
2804
- ;; Store 8-bit integer types, register input.
2805
- (rule (istore8_impl flags val addr offset)
2806
- (store8 (put_in_reg val) (lower_address flags addr offset)))
2807
-
2808
- ;; Store 8-bit integer types, immediate input.
2809
- (rule 1 (istore8_impl flags (u8_from_value imm) addr offset)
2810
- (store8_imm imm (lower_address flags addr offset)))
2811
-
2812
-
2813
- ;;;; Rules for 16-bit integer stores ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2814
-
2815
- ;; Main `istore16` lowering entry point, dispatching to the helper.
2816
- (rule (lower (istore16 flags val addr offset))
2817
- (side_effect (istore16_impl flags val addr offset)))
2818
-
2819
- ;; Helper to store 16-bit integer types.
2820
- (decl istore16_impl (MemFlags Value Value Offset32) SideEffectNoResult)
2821
-
2822
- ;; Store 16-bit big-endian integer types, register input.
2823
- (rule 2 (istore16_impl flags @ (bigendian) val addr offset)
2824
- (store16 (put_in_reg val) (lower_address flags addr offset)))
2825
-
2826
- ;; Store 16-bit little-endian integer types, register input.
2827
- (rule 0 (istore16_impl flags @ (littleendian) val addr offset)
2828
- (storerev16 (put_in_reg val) (lower_address flags addr offset)))
2829
-
2830
- ;; Store 16-bit big-endian integer types, immediate input.
2831
- (rule 3 (istore16_impl flags @ (bigendian) (i16_from_value imm) addr offset)
2832
- (store16_imm imm (lower_address flags addr offset)))
2833
-
2834
- ;; Store 16-bit little-endian integer types, immediate input.
2835
- (rule 1 (istore16_impl flags @ (littleendian) (i16_from_swapped_value imm) addr offset)
2836
- (store16_imm imm (lower_address flags addr offset)))
2837
-
2838
-
2839
- ;;;; Rules for 32-bit integer stores ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2840
-
2841
- ;; Main `istore32` lowering entry point, dispatching to the helper.
2842
- (rule (lower (istore32 flags val addr offset))
2843
- (side_effect (istore32_impl flags val addr offset)))
2844
-
2845
- ;; Helper to store 32-bit integer types.
2846
- (decl istore32_impl (MemFlags Value Value Offset32) SideEffectNoResult)
2847
-
2848
- ;; Store 32-bit big-endian integer types, register input.
2849
- (rule 1 (istore32_impl flags @ (bigendian) val addr offset)
2850
- (store32 (put_in_reg val) (lower_address flags addr offset)))
2851
-
2852
- ;; Store 32-bit big-endian integer types, immediate input.
2853
- (rule 2 (istore32_impl flags @ (bigendian) (i16_from_value imm) addr offset)
2854
- (store32_simm16 imm (lower_address flags addr offset)))
2855
-
2856
- ;; Store 32-bit little-endian integer types.
2857
- (rule 0 (istore32_impl flags @ (littleendian) val addr offset)
2858
- (storerev32 (put_in_reg val) (lower_address flags addr offset)))
2859
-
2860
-
2861
- ;;;; Rules for 64-bit integer stores ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2862
-
2863
- ;; Helper to store 64-bit integer types.
2864
- (decl istore64_impl (MemFlags Value Value Offset32) SideEffectNoResult)
2865
-
2866
- ;; Store 64-bit big-endian integer types, register input.
2867
- (rule 1 (istore64_impl flags @ (bigendian) val addr offset)
2868
- (store64 (put_in_reg val) (lower_address flags addr offset)))
2869
-
2870
- ;; Store 64-bit big-endian integer types, immediate input.
2871
- (rule 2 (istore64_impl flags @ (bigendian) (i16_from_value imm) addr offset)
2872
- (store64_simm16 imm (lower_address flags addr offset)))
2873
-
2874
- ;; Store 64-bit little-endian integer types.
2875
- (rule 0 (istore64_impl flags @ (littleendian) val addr offset)
2876
- (storerev64 (put_in_reg val) (lower_address flags addr offset)))
2877
-
2878
-
2879
- ;;;; Rules for `atomic_rmw` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2880
-
2881
- ;; Atomic operations that do not require a compare-and-swap loop.
2882
-
2883
- ;; Atomic AND for 32/64-bit big-endian types, using a single instruction.
2884
- (rule 1 (lower (has_type (ty_32_or_64 ty)
2885
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.And) addr src)))
2886
- (atomic_rmw_and ty (put_in_reg src)
2887
- (lower_address flags addr (zero_offset))))
2888
-
2889
- ;; Atomic AND for 32/64-bit big-endian types, using byte-swapped input/output.
2890
- (rule (lower (has_type (ty_32_or_64 ty)
2891
- (atomic_rmw flags @ (littleendian) (AtomicRmwOp.And) addr src)))
2892
- (bswap_reg ty (atomic_rmw_and ty (bswap_reg ty (put_in_reg src))
2893
- (lower_address flags addr (zero_offset)))))
2894
-
2895
- ;; Atomic OR for 32/64-bit big-endian types, using a single instruction.
2896
- (rule 1 (lower (has_type (ty_32_or_64 ty)
2897
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.Or) addr src)))
2898
- (atomic_rmw_or ty (put_in_reg src)
2899
- (lower_address flags addr (zero_offset))))
2900
-
2901
- ;; Atomic OR for 32/64-bit little-endian types, using byte-swapped input/output.
2902
- (rule (lower (has_type (ty_32_or_64 ty)
2903
- (atomic_rmw flags @ (littleendian) (AtomicRmwOp.Or) addr src)))
2904
- (bswap_reg ty (atomic_rmw_or ty (bswap_reg ty (put_in_reg src))
2905
- (lower_address flags addr (zero_offset)))))
2906
-
2907
- ;; Atomic XOR for 32/64-bit big-endian types, using a single instruction.
2908
- (rule 1 (lower (has_type (ty_32_or_64 ty)
2909
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.Xor) addr src)))
2910
- (atomic_rmw_xor ty (put_in_reg src)
2911
- (lower_address flags addr (zero_offset))))
2912
-
2913
- ;; Atomic XOR for 32/64-bit little-endian types, using byte-swapped input/output.
2914
- (rule (lower (has_type (ty_32_or_64 ty)
2915
- (atomic_rmw flags @ (littleendian) (AtomicRmwOp.Xor) addr src)))
2916
- (bswap_reg ty (atomic_rmw_xor ty (bswap_reg ty (put_in_reg src))
2917
- (lower_address flags addr (zero_offset)))))
2918
-
2919
- ;; Atomic ADD for 32/64-bit big-endian types, using a single instruction.
2920
- (rule (lower (has_type (ty_32_or_64 ty)
2921
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.Add) addr src)))
2922
- (atomic_rmw_add ty (put_in_reg src)
2923
- (lower_address flags addr (zero_offset))))
2924
-
2925
- ;; Atomic SUB for 32/64-bit big-endian types, using atomic ADD with negated input.
2926
- (rule (lower (has_type (ty_32_or_64 ty)
2927
- (atomic_rmw flags @ (bigendian) (AtomicRmwOp.Sub) addr src)))
2928
- (atomic_rmw_add ty (neg_reg ty (put_in_reg src))
2929
- (lower_address flags addr (zero_offset))))
2930
-
2931
-
2932
- ;; Atomic operations that require a compare-and-swap loop.
2933
-
2934
- ;; Operations for 32/64-bit types can use a fullword compare-and-swap loop.
2935
- (rule -1 (lower (has_type (ty_32_or_64 ty) (atomic_rmw flags op addr src)))
2936
- (let ((src_reg Reg (put_in_reg src))
2937
- (addr_reg Reg (put_in_reg addr))
2938
- ;; Create body of compare-and-swap loop.
2939
- (ib VecMInstBuilder (inst_builder_new))
2940
- (val0 Reg (writable_reg_to_reg (casloop_val_reg)))
2941
- (val1 Reg (atomic_rmw_body ib ty flags op
2942
- (casloop_tmp_reg) val0 src_reg)))
2943
- ;; Emit compare-and-swap loop and extract final result.
2944
- (casloop ib ty flags addr_reg val1)))
2945
-
2946
- ;; Operations for 8/16-bit types must operate on the surrounding aligned word.
2947
- (rule -2 (lower (has_type (ty_8_or_16 ty) (atomic_rmw flags op addr src)))
2948
- (let ((src_reg Reg (put_in_reg src))
2949
- (addr_reg Reg (put_in_reg addr))
2950
- ;; Prepare access to surrounding aligned word.
2951
- (bitshift Reg (casloop_bitshift addr_reg))
2952
- (aligned_addr Reg (casloop_aligned_addr addr_reg))
2953
- ;; Create body of compare-and-swap loop.
2954
- (ib VecMInstBuilder (inst_builder_new))
2955
- (val0 Reg (writable_reg_to_reg (casloop_val_reg)))
2956
- (val1 Reg (casloop_rotate_in ib ty flags bitshift val0))
2957
- (val2 Reg (atomic_rmw_body ib ty flags op
2958
- (casloop_tmp_reg) val1 src_reg))
2959
- (val3 Reg (casloop_rotate_out ib ty flags bitshift val2)))
2960
- ;; Emit compare-and-swap loop and extract final result.
2961
- (casloop_subword ib ty flags aligned_addr bitshift val3)))
2962
-
2963
- ;; Loop bodies for atomic read-modify-write operations.
2964
- (decl atomic_rmw_body (VecMInstBuilder Type MemFlags AtomicRmwOp
2965
- WritableReg Reg Reg) Reg)
2966
-
2967
- ;; Loop bodies for 32-/64-bit atomic XCHG operations.
2968
- ;; Simply use the source (possibly byte-swapped) as new target value.
2969
- (rule 2 (atomic_rmw_body ib (ty_32_or_64 ty) (bigendian)
2970
- (AtomicRmwOp.Xchg) tmp val src)
2971
- src)
2972
- (rule 1 (atomic_rmw_body ib (ty_32_or_64 ty) (littleendian)
2973
- (AtomicRmwOp.Xchg) tmp val src)
2974
- (bswap_reg ty src))
2975
-
2976
- ;; Loop bodies for 32-/64-bit atomic NAND operations.
2977
- ;; On z15 this can use the NN(G)RK instruction. On z14, perform an And
2978
- ;; operation and invert the result. In the little-endian case, we can
2979
- ;; simply byte-swap the source operand.
2980
- (rule 4 (atomic_rmw_body ib (and (mie2_enabled) (ty_32_or_64 ty)) (bigendian)
2981
- (AtomicRmwOp.Nand) tmp val src)
2982
- (push_alu_reg ib (aluop_not_and ty) tmp val src))
2983
- (rule 3 (atomic_rmw_body ib (and (mie2_enabled) (ty_32_or_64 ty)) (littleendian)
2984
- (AtomicRmwOp.Nand) tmp val src)
2985
- (push_alu_reg ib (aluop_not_and ty) tmp val (bswap_reg ty src)))
2986
- (rule 2 (atomic_rmw_body ib (and (mie2_disabled) (ty_32_or_64 ty)) (bigendian)
2987
- (AtomicRmwOp.Nand) tmp val src)
2988
- (push_not_reg ib ty tmp
2989
- (push_alu_reg ib (aluop_and ty) tmp val src)))
2990
- (rule 1 (atomic_rmw_body ib (and (mie2_disabled) (ty_32_or_64 ty)) (littleendian)
2991
- (AtomicRmwOp.Nand) tmp val src)
2992
- (push_not_reg ib ty tmp
2993
- (push_alu_reg ib (aluop_and ty) tmp val (bswap_reg ty src))))
2994
-
2995
- ;; Loop bodies for 8-/16-bit atomic bit operations.
2996
- ;; These use the "rotate-then-<op>-selected bits" family of instructions.
2997
- ;; For the Nand operation, we again perform And and invert the result.
2998
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.Xchg) tmp val src)
2999
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.Insert) tmp val src))
3000
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.And) tmp val src)
3001
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.And) tmp val src))
3002
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.Or) tmp val src)
3003
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.Or) tmp val src))
3004
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.Xor) tmp val src)
3005
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.Xor) tmp val src))
3006
- (rule (atomic_rmw_body ib (ty_8_or_16 ty) flags (AtomicRmwOp.Nand) tmp val src)
3007
- (atomic_rmw_body_invert ib ty flags tmp
3008
- (atomic_rmw_body_rxsbg ib ty flags (RxSBGOp.And) tmp val src)))
3009
-
3010
- ;; RxSBG subword operation.
3011
- (decl atomic_rmw_body_rxsbg (VecMInstBuilder Type MemFlags RxSBGOp
3012
- WritableReg Reg Reg) Reg)
3013
- ;; 8-bit case: use the low byte of "src" and the high byte of "val".
3014
- (rule (atomic_rmw_body_rxsbg ib $I8 _ op tmp val src)
3015
- (push_rxsbg ib op tmp val src 32 40 24))
3016
- ;; 16-bit big-endian case: use the low two bytes of "src" and the
3017
- ;; high two bytes of "val".
3018
- (rule 1 (atomic_rmw_body_rxsbg ib $I16 (bigendian) op tmp val src)
3019
- (push_rxsbg ib op tmp val src 32 48 16))
3020
- ;; 16-bit little-endian case: use the low two bytes of "src", byte-swapped
3021
- ;; so they end up in the high two bytes, and the low two bytes of "val".
3022
- (rule (atomic_rmw_body_rxsbg ib $I16 (littleendian) op tmp val src)
3023
- (push_rxsbg ib op tmp val (bswap_reg $I32 src) 48 64 -16))
3024
-
3025
- ;; Invert a subword.
3026
- (decl atomic_rmw_body_invert (VecMInstBuilder Type MemFlags WritableReg Reg) Reg)
3027
- ;; 8-bit case: invert the high byte.
3028
- (rule (atomic_rmw_body_invert ib $I8 _ tmp val)
3029
- (push_xor_uimm32shifted ib $I32 tmp val (uimm32shifted 0xff000000 0)))
3030
- ;; 16-bit big-endian case: invert the two high bytes.
3031
- (rule 1 (atomic_rmw_body_invert ib $I16 (bigendian) tmp val)
3032
- (push_xor_uimm32shifted ib $I32 tmp val (uimm32shifted 0xffff0000 0)))
3033
- ;; 16-bit little-endian case: invert the two low bytes.
3034
- (rule (atomic_rmw_body_invert ib $I16 (littleendian) tmp val)
3035
- (push_xor_uimm32shifted ib $I32 tmp val (uimm32shifted 0xffff 0)))
3036
-
3037
- ;; Loop bodies for atomic ADD/SUB operations.
3038
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Add) tmp val src)
3039
- (atomic_rmw_body_addsub ib ty flags (aluop_add (ty_ext32 ty)) tmp val src))
3040
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Sub) tmp val src)
3041
- (atomic_rmw_body_addsub ib ty flags (aluop_sub (ty_ext32 ty)) tmp val src))
3042
-
3043
- ;; Addition or subtraction operation.
3044
- (decl atomic_rmw_body_addsub (VecMInstBuilder Type MemFlags ALUOp
3045
- WritableReg Reg Reg) Reg)
3046
- ;; 32/64-bit big-endian case: just a regular add/sub operation.
3047
- (rule 2 (atomic_rmw_body_addsub ib (ty_32_or_64 ty) (bigendian) op tmp val src)
3048
- (push_alu_reg ib op tmp val src))
3049
- ;; 32/64-bit little-endian case: byte-swap the value loaded from memory before
3050
- ;; and after performing the operation in native endianness.
3051
- (rule 1 (atomic_rmw_body_addsub ib (ty_32_or_64 ty) (littleendian) op tmp val src)
3052
- (let ((val_swapped Reg (push_bswap_reg ib ty tmp val))
3053
- (res_swapped Reg (push_alu_reg ib op tmp val_swapped src)))
3054
- (push_bswap_reg ib ty tmp res_swapped)))
3055
- ;; 8-bit case: perform a 32-bit addition of the source value shifted by 24 bits
3056
- ;; to the memory value, which contains the target in its high byte.
3057
- (rule (atomic_rmw_body_addsub ib $I8 _ op tmp val src)
3058
- (let ((src_shifted Reg (lshl_imm $I32 src 24)))
3059
- (push_alu_reg ib op tmp val src_shifted)))
3060
- ;; 16-bit big-endian case: similar, just shift the source by 16 bits.
3061
- (rule 3 (atomic_rmw_body_addsub ib $I16 (bigendian) op tmp val src)
3062
- (let ((src_shifted Reg (lshl_imm $I32 src 16)))
3063
- (push_alu_reg ib op tmp val src_shifted)))
3064
- ;; 16-bit little-endian case: the same, but in addition we need to byte-swap
3065
- ;; the memory value before and after the operation. Since the value was placed
3066
- ;; in the low two bytes by our standard rotation, we can use a 32-bit byte-swap
3067
- ;; and the native-endian value will end up in the high bytes where we need it
3068
- ;; to perform the operation.
3069
- (rule (atomic_rmw_body_addsub ib $I16 (littleendian) op tmp val src)
3070
- (let ((src_shifted Reg (lshl_imm $I32 src 16))
3071
- (val_swapped Reg (push_bswap_reg ib $I32 tmp val))
3072
- (res_swapped Reg (push_alu_reg ib op tmp val_swapped src_shifted)))
3073
- (push_bswap_reg ib $I32 tmp res_swapped)))
3074
-
3075
- ;; Loop bodies for atomic MIN/MAX operations.
3076
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Smin) tmp val src)
3077
- (atomic_rmw_body_minmax ib ty flags (cmpop_cmps (ty_ext32 ty))
3078
- (intcc_as_cond (IntCC.SignedLessThan)) tmp val src))
3079
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Smax) tmp val src)
3080
- (atomic_rmw_body_minmax ib ty flags (cmpop_cmps (ty_ext32 ty))
3081
- (intcc_as_cond (IntCC.SignedGreaterThan)) tmp val src))
3082
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Umin) tmp val src)
3083
- (atomic_rmw_body_minmax ib ty flags (cmpop_cmpu (ty_ext32 ty))
3084
- (intcc_as_cond (IntCC.UnsignedLessThan)) tmp val src))
3085
- (rule (atomic_rmw_body ib ty flags (AtomicRmwOp.Umax) tmp val src)
3086
- (atomic_rmw_body_minmax ib ty flags (cmpop_cmpu (ty_ext32 ty))
3087
- (intcc_as_cond (IntCC.UnsignedGreaterThan)) tmp val src))
3088
-
3089
- ;; Minimum or maximum operation.
3090
- (decl atomic_rmw_body_minmax (VecMInstBuilder Type MemFlags CmpOp Cond
3091
- WritableReg Reg Reg) Reg)
3092
- ;; 32/64-bit big-endian case: just a comparison followed by a conditional
3093
- ;; break out of the loop if the memory value does not need to change.
3094
- ;; If it does need to change, the new value is simply the source operand.
3095
- (rule 2 (atomic_rmw_body_minmax ib (ty_32_or_64 ty) (bigendian)
3096
- op cond tmp val src)
3097
- (let ((_ Reg (push_break_if ib (cmp_rr op src val) (invert_cond cond))))
3098
- src))
3099
- ;; 32/64-bit little-endian case: similar, but we need to byte-swap the
3100
- ;; memory value before the comparison. If we need to store the new value,
3101
- ;; it also needs to be byte-swapped.
3102
- (rule 1 (atomic_rmw_body_minmax ib (ty_32_or_64 ty) (littleendian)
3103
- op cond tmp val src)
3104
- (let ((val_swapped Reg (push_bswap_reg ib ty tmp val))
3105
- (_ Reg (push_break_if ib (cmp_rr op src val_swapped)
3106
- (invert_cond cond))))
3107
- (push_bswap_reg ib ty tmp src)))
3108
- ;; 8-bit case: compare the memory value (which contains the target in the
3109
- ;; high byte) with the source operand shifted by 24 bits. Note that in
3110
- ;; the case where the high bytes are equal, the comparison may succeed
3111
- ;; or fail depending on the unrelated low bits of the memory value, and
3112
- ;; so we either may or may not perform the update. But it would be an
3113
- ;; update with the same value in any case, so this does not matter.
3114
- (rule (atomic_rmw_body_minmax ib $I8 _ op cond tmp val src)
3115
- (let ((src_shifted Reg (lshl_imm $I32 src 24))
3116
- (_ Reg (push_break_if ib (cmp_rr op src_shifted val)
3117
- (invert_cond cond))))
3118
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src_shifted 32 40 0)))
3119
- ;; 16-bit big-endian case: similar, just shift the source by 16 bits.
3120
- (rule 3 (atomic_rmw_body_minmax ib $I16 (bigendian) op cond tmp val src)
3121
- (let ((src_shifted Reg (lshl_imm $I32 src 16))
3122
- (_ Reg (push_break_if ib (cmp_rr op src_shifted val)
3123
- (invert_cond cond))))
3124
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src_shifted 32 48 0)))
3125
- ;; 16-bit little-endian case: similar, but in addition byte-swap the
3126
- ;; memory value before and after the operation, like for _addsub_.
3127
- (rule (atomic_rmw_body_minmax ib $I16 (littleendian) op cond tmp val src)
3128
- (let ((src_shifted Reg (lshl_imm $I32 src 16))
3129
- (val_swapped Reg (push_bswap_reg ib $I32 tmp val))
3130
- (_ Reg (push_break_if ib (cmp_rr op src_shifted val_swapped)
3131
- (invert_cond cond)))
3132
- (res_swapped Reg (push_rxsbg ib (RxSBGOp.Insert)
3133
- tmp val_swapped src_shifted 32 48 0)))
3134
- (push_bswap_reg ib $I32 tmp res_swapped)))
3135
-
3136
-
3137
- ;;;; Rules for `atomic_cas` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3138
-
3139
- ;; 32/64-bit big-endian atomic compare-and-swap instruction.
3140
- (rule 2 (lower (has_type (ty_32_or_64 ty)
3141
- (atomic_cas flags @ (bigendian) addr src1 src2)))
3142
- (atomic_cas_impl ty (put_in_reg src1) (put_in_reg src2)
3143
- (lower_address flags addr (zero_offset))))
3144
-
3145
- ;; 32/64-bit little-endian atomic compare-and-swap instruction.
3146
- ;; Implemented by byte-swapping old/new inputs and the output.
3147
- (rule 1 (lower (has_type (ty_32_or_64 ty)
3148
- (atomic_cas flags @ (littleendian) addr src1 src2)))
3149
- (bswap_reg ty (atomic_cas_impl ty (bswap_reg ty (put_in_reg src1))
3150
- (bswap_reg ty (put_in_reg src2))
3151
- (lower_address flags addr (zero_offset)))))
3152
-
3153
- ;; 8/16-bit atomic compare-and-swap implemented via loop.
3154
- (rule (lower (has_type (ty_8_or_16 ty) (atomic_cas flags addr src1 src2)))
3155
- (let ((src1_reg Reg (put_in_reg src1))
3156
- (src2_reg Reg (put_in_reg src2))
3157
- (addr_reg Reg (put_in_reg addr))
3158
- ;; Prepare access to the surrounding aligned word.
3159
- (bitshift Reg (casloop_bitshift addr_reg))
3160
- (aligned_addr Reg (casloop_aligned_addr addr_reg))
3161
- ;; Create body of compare-and-swap loop.
3162
- (ib VecMInstBuilder (inst_builder_new))
3163
- (val0 Reg (writable_reg_to_reg (casloop_val_reg)))
3164
- (val1 Reg (casloop_rotate_in ib ty flags bitshift val0))
3165
- (val2 Reg (atomic_cas_body ib ty flags
3166
- (casloop_tmp_reg) val1 src1_reg src2_reg))
3167
- (val3 Reg (casloop_rotate_out ib ty flags bitshift val2)))
3168
- ;; Emit compare-and-swap loop and extract final result.
3169
- (casloop_subword ib ty flags aligned_addr bitshift val3)))
3170
-
3171
- ;; Emit loop body instructions to perform a subword compare-and-swap.
3172
- (decl atomic_cas_body (VecMInstBuilder Type MemFlags
3173
- WritableReg Reg Reg Reg) Reg)
3174
-
3175
- ;; 8-bit case: "val" contains the value loaded from memory in the high byte.
3176
- ;; Compare with the comparison value in the low byte of "src1". If unequal,
3177
- ;; break out of the loop, otherwise replace the target byte in "val" with
3178
- ;; the low byte of "src2".
3179
- (rule (atomic_cas_body ib $I8 _ tmp val src1 src2)
3180
- (let ((_ Reg (push_break_if ib (rxsbg_test (RxSBGOp.Xor) val src1 32 40 24)
3181
- (intcc_as_cond (IntCC.NotEqual)))))
3182
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src2 32 40 24)))
3183
-
3184
- ;; 16-bit big-endian case: Same as above, except with values in the high
3185
- ;; two bytes of "val" and low two bytes of "src1" and "src2".
3186
- (rule 1 (atomic_cas_body ib $I16 (bigendian) tmp val src1 src2)
3187
- (let ((_ Reg (push_break_if ib (rxsbg_test (RxSBGOp.Xor) val src1 32 48 16)
3188
- (intcc_as_cond (IntCC.NotEqual)))))
3189
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src2 32 48 16)))
3190
-
3191
- ;; 16-bit little-endian case: "val" here contains a little-endian value in the
3192
- ;; *low* two bytes. "src1" and "src2" contain native (i.e. big-endian) values
3193
- ;; in their low two bytes. Perform the operation in little-endian mode by
3194
- ;; byte-swapping "src1" and "src" ahead of the loop. Note that this is a
3195
- ;; 32-bit operation so the little-endian 16-bit values end up in the *high*
3196
- ;; two bytes of the swapped values.
3197
- (rule (atomic_cas_body ib $I16 (littleendian) tmp val src1 src2)
3198
- (let ((src1_swapped Reg (bswap_reg $I32 src1))
3199
- (src2_swapped Reg (bswap_reg $I32 src2))
3200
- (_ Reg (push_break_if ib
3201
- (rxsbg_test (RxSBGOp.Xor) val src1_swapped 48 64 -16)
3202
- (intcc_as_cond (IntCC.NotEqual)))))
3203
- (push_rxsbg ib (RxSBGOp.Insert) tmp val src2_swapped 48 64 -16)))
3204
-
3205
-
3206
- ;;;; Rules for `atomic_load` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3207
-
3208
- ;; Atomic loads can be implemented via regular loads on this platform.
3209
-
3210
- ;; 8-bit atomic load.
3211
- (rule (lower (has_type $I8 (atomic_load flags addr)))
3212
- (zext32_mem $I8 (lower_address flags addr (zero_offset))))
3213
-
3214
- ;; 16-bit big-endian atomic load.
3215
- (rule 1 (lower (has_type $I16 (atomic_load flags @ (bigendian) addr)))
3216
- (zext32_mem $I16 (lower_address flags addr (zero_offset))))
3217
-
3218
- ;; 16-bit little-endian atomic load.
3219
- (rule (lower (has_type $I16 (atomic_load flags @ (littleendian) addr)))
3220
- (loadrev16 (lower_address flags addr (zero_offset))))
3221
-
3222
- ;; 32-bit big-endian atomic load.
3223
- (rule 1 (lower (has_type $I32 (atomic_load flags @ (bigendian) addr)))
3224
- (load32 (lower_address flags addr (zero_offset))))
3225
-
3226
- ;; 32-bit little-endian atomic load.
3227
- (rule (lower (has_type $I32 (atomic_load flags @ (littleendian) addr)))
3228
- (loadrev32 (lower_address flags addr (zero_offset))))
3229
-
3230
- ;; 64-bit big-endian atomic load.
3231
- (rule 1 (lower (has_type $I64 (atomic_load flags @ (bigendian) addr)))
3232
- (load64 (lower_address flags addr (zero_offset))))
3233
-
3234
- ;; 64-bit little-endian atomic load.
3235
- (rule (lower (has_type $I64 (atomic_load flags @ (littleendian) addr)))
3236
- (loadrev64 (lower_address flags addr (zero_offset))))
3237
-
3238
-
3239
- ;;;; Rules for `atomic_store` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3240
-
3241
- ;; Atomic stores can be implemented via regular stores followed by a fence.
3242
- (decl atomic_store_impl (SideEffectNoResult) InstOutput)
3243
- (rule (atomic_store_impl store)
3244
- (let ((_ InstOutput (side_effect store)))
3245
- (side_effect (fence_impl))))
3246
-
3247
- ;; 8-bit atomic store.
3248
- (rule (lower (atomic_store flags val @ (value_type $I8) addr))
3249
- (atomic_store_impl (istore8_impl flags val addr (zero_offset))))
3250
-
3251
- ;; 16-bit atomic store.
3252
- (rule (lower (atomic_store flags val @ (value_type $I16) addr))
3253
- (atomic_store_impl (istore16_impl flags val addr (zero_offset))))
3254
-
3255
- ;; 32-bit atomic store.
3256
- (rule (lower (atomic_store flags val @ (value_type $I32) addr))
3257
- (atomic_store_impl (istore32_impl flags val addr (zero_offset))))
3258
-
3259
- ;; 64-bit atomic store.
3260
- (rule (lower (atomic_store flags val @ (value_type $I64) addr))
3261
- (atomic_store_impl (istore64_impl flags val addr (zero_offset))))
3262
-
3263
-
3264
- ;;;; Rules for `fence` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3265
-
3266
- ;; Fence to ensure sequential consistency.
3267
- (rule (lower (fence))
3268
- (side_effect (fence_impl)))
3269
-
3270
-
3271
- ;;;; Rules for `icmp` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3272
-
3273
- ;; We want to optimize the typical use of `icmp` (generating an integer 0/1
3274
- ;; result) followed by some user, like a `select` or a conditional branch.
3275
- ;; Instead of first generating the integer result and later testing it again,
3276
- ;; we want to sink the comparison to be performed at the site of use.
3277
- ;;
3278
- ;; To enable this, we provide generic helpers that return a `ProducesBool`
3279
- ;; encapsulating the comparison in question, which can be used by all the
3280
- ;; above scenarios.
3281
- ;;
3282
- ;; N.B. There are specific considerations when sinking a memory load into a
3283
- ;; comparison. When emitting an `icmp` directly, this can of course be done
3284
- ;; as usual. However, when we use the `ProducesBool` elsewhere, we need to
3285
- ;; consider *three* instructions: the load, the `icmp`, and the final user
3286
- ;; (e.g. a conditional branch). The only way to safely sink the load would
3287
- ;; be to sink it direct into the final user, which is only possible if there
3288
- ;; is no *other* user of the `icmp` result. This is not currently being
3289
- ;; verified by the `SinkableInst` logic, so to be safe we do not perform this
3290
- ;; optimization at all.
3291
- ;;
3292
- ;; The generic `icmp_val` helper therefore has a flag indicating whether
3293
- ;; it is being invoked in a context where it is safe to sink memory loads
3294
- ;; (e.g. when directly emitting an `icmp`), or whether it is not (e.g. when
3295
- ;; sinking the `icmp` result into a conditional branch or select).
3296
-
3297
- ;; Main `icmp` entry point. Generate a `ProducesBool` capturing the
3298
- ;; integer comparison and immediately lower it to a 0/1 integer result.
3299
- ;; In this case, it is safe to sink memory loads.
3300
- (rule -1 (lower (has_type (fits_in_64 ty) (icmp int_cc x y)))
3301
- (lower_bool ty (icmp_val $true int_cc x y)))
3302
-
3303
-
3304
- ;; Return a `ProducesBool` to implement any integer comparison.
3305
- ;; The first argument is a flag to indicate whether it is safe to sink
3306
- ;; memory loads as discussed above.
3307
- (decl icmp_val (bool IntCC Value Value) ProducesBool)
3308
-
3309
- ;; Dispatch for signed comparisons.
3310
- (rule -1 (icmp_val allow_mem int_cc @ (signed) x @ (value_type (fits_in_64 _)) y)
3311
- (bool (icmps_val allow_mem x y) (intcc_as_cond int_cc)))
3312
- ;; Dispatch for unsigned comparisons.
3313
- (rule -2 (icmp_val allow_mem int_cc @ (unsigned) x @ (value_type (fits_in_64 _)) y)
3314
- (bool (icmpu_val allow_mem x y) (intcc_as_cond int_cc)))
3315
-
3316
-
3317
- ;; Return a `ProducesBool` to implement signed integer comparisons.
3318
- (decl icmps_val (bool Value Value) ProducesFlags)
3319
-
3320
- ;; Compare (signed) two registers.
3321
- (rule 0 (icmps_val _ x @ (value_type (fits_in_64 ty)) y)
3322
- (icmps_reg (ty_ext32 ty) (put_in_reg_sext32 x) (put_in_reg_sext32 y)))
3323
-
3324
- ;; Compare (signed) a register and a sign-extended register.
3325
- (rule 3 (icmps_val _ x @ (value_type (fits_in_64 ty)) (sext32_value y))
3326
- (icmps_reg_sext32 ty x y))
3327
-
3328
- ;; Compare (signed) a register and an immediate.
3329
- (rule 2 (icmps_val _ x @ (value_type (fits_in_64 ty)) (i16_from_value y))
3330
- (icmps_simm16 (ty_ext32 ty) (put_in_reg_sext32 x) y))
3331
- (rule 1 (icmps_val _ x @ (value_type (fits_in_64 ty)) (i32_from_value y))
3332
- (icmps_simm32 (ty_ext32 ty) (put_in_reg_sext32 x) y))
3333
-
3334
- ;; Compare (signed) a register and memory (32/64-bit types).
3335
- (rule 4 (icmps_val $true x @ (value_type (fits_in_64 ty)) (sinkable_load_32_64 y))
3336
- (icmps_mem ty x (sink_load y)))
3337
-
3338
- ;; Compare (signed) a register and memory (16-bit types).
3339
- (rule 5 (icmps_val $true x @ (value_type (fits_in_64 ty)) (sinkable_load_16 y))
3340
- (icmps_mem_sext16 (ty_ext32 ty) (put_in_reg_sext32 x) (sink_load y)))
3341
-
3342
- ;; Compare (signed) a register and sign-extended memory.
3343
- (rule 4 (icmps_val $true x @ (value_type (fits_in_64 ty)) (sinkable_sload16 y))
3344
- (icmps_mem_sext16 ty x (sink_sload16 y)))
3345
- (rule 4 (icmps_val $true x @ (value_type (fits_in_64 ty)) (sinkable_sload32 y))
3346
- (icmps_mem_sext32 ty x (sink_sload32 y)))
3347
-
3348
-
3349
- ;; Return a `ProducesBool` to implement unsigned integer comparisons.
3350
- (decl icmpu_val (bool Value Value) ProducesFlags)
3351
-
3352
- ;; Compare (unsigned) two registers.
3353
- (rule (icmpu_val _ x @ (value_type (fits_in_64 ty)) y)
3354
- (icmpu_reg (ty_ext32 ty) (put_in_reg_zext32 x) (put_in_reg_zext32 y)))
3355
-
3356
- ;; Compare (unsigned) a register and a sign-extended register.
3357
- (rule 1 (icmpu_val _ x @ (value_type (fits_in_64 ty)) (zext32_value y))
3358
- (icmpu_reg_zext32 ty x y))
3359
-
3360
- ;; Compare (unsigned) a register and an immediate.
3361
- (rule 2 (icmpu_val _ x @ (value_type (fits_in_64 ty)) (u32_from_value y))
3362
- (icmpu_uimm32 (ty_ext32 ty) (put_in_reg_zext32 x) y))
3363
-
3364
- ;; Compare (unsigned) a register and memory (32/64-bit types).
3365
- (rule 4 (icmpu_val $true x @ (value_type (fits_in_64 ty)) (sinkable_load_32_64 y))
3366
- (icmpu_mem ty x (sink_load y)))
3367
-
3368
- ;; Compare (unsigned) a register and memory (16-bit types).
3369
- ;; Note that the ISA only provides instructions with a PC-relative memory
3370
- ;; address here, so we need to check whether the sinkable load matches this.
3371
- (rule 3 (icmpu_val $true x @ (value_type (fits_in_64 ty))
3372
- (sinkable_load_16 ld))
3373
- (if-let y (load_sym ld))
3374
- (icmpu_mem_zext16 (ty_ext32 ty) (put_in_reg_zext32 x) (sink_load y)))
3375
-
3376
- ;; Compare (unsigned) a register and zero-extended memory.
3377
- ;; Note that the ISA only provides instructions with a PC-relative memory
3378
- ;; address here, so we need to check whether the sinkable load matches this.
3379
- (rule 3 (icmpu_val $true x @ (value_type (fits_in_64 ty))
3380
- (sinkable_uload16 ld))
3381
- (if-let y (uload16_sym ld))
3382
- (icmpu_mem_zext16 ty x (sink_uload16 y)))
3383
- (rule 3 (icmpu_val $true x @ (value_type (fits_in_64 ty)) (sinkable_uload32 y))
3384
- (icmpu_mem_zext32 ty x (sink_uload32 y)))
3385
-
3386
-
3387
- ;; Compare 128-bit integers for equality.
3388
- ;; Implemented via element-wise comparison using the all-element true CC flag.
3389
- (rule (icmp_val _ (IntCC.Equal) x @ (value_type (vr128_ty _)) y)
3390
- (bool (vec_cmpeqs $I64X2 x y)
3391
- (floatcc_as_cond (FloatCC.Equal))))
3392
- (rule (icmp_val _ (IntCC.NotEqual) x @ (value_type (vr128_ty _)) y)
3393
- (bool (vec_cmpeqs $I64X2 x y)
3394
- (floatcc_as_cond (FloatCC.NotEqual))))
3395
-
3396
- ;; Compare (signed) 128-bit integers for relational inequality.
3397
- ;; Implemented via synthetic instruction using VECG and VCHLGS.
3398
- (rule (icmp_val _ (IntCC.SignedGreaterThan) x @ (value_type (vr128_ty ty)) y)
3399
- (vec_int128_scmphi x y))
3400
- (rule (icmp_val _ (IntCC.SignedLessThan) x @ (value_type (vr128_ty ty)) y)
3401
- (vec_int128_scmphi y x))
3402
- (rule (icmp_val _ (IntCC.SignedGreaterThanOrEqual) x @ (value_type (vr128_ty ty)) y)
3403
- (invert_bool (vec_int128_scmphi y x)))
3404
- (rule (icmp_val _ (IntCC.SignedLessThanOrEqual) x @ (value_type (vr128_ty ty)) y)
3405
- (invert_bool (vec_int128_scmphi x y)))
3406
-
3407
- ;; Compare (unsigned) 128-bit integers for relational inequality.
3408
- ;; Implemented via synthetic instruction using VECLG and VCHLGS.
3409
- (rule (icmp_val _ (IntCC.UnsignedGreaterThan) x @ (value_type (vr128_ty ty)) y)
3410
- (vec_int128_ucmphi x y))
3411
- (rule (icmp_val _ (IntCC.UnsignedLessThan) x @ (value_type (vr128_ty ty)) y)
3412
- (vec_int128_ucmphi y x))
3413
- (rule (icmp_val _ (IntCC.UnsignedGreaterThanOrEqual) x @ (value_type (vr128_ty ty)) y)
3414
- (invert_bool (vec_int128_ucmphi y x)))
3415
- (rule (icmp_val _ (IntCC.UnsignedLessThanOrEqual) x @ (value_type (vr128_ty ty)) y)
3416
- (invert_bool (vec_int128_ucmphi x y)))
3417
-
3418
-
3419
- ;; Vector `icmp` produces a boolean vector.
3420
- ;; We need to handle the various IntCC flags separately here.
3421
-
3422
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.Equal) x y)))
3423
- (vec_cmpeq ty x y))
3424
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.NotEqual) x y)))
3425
- (vec_not ty (vec_cmpeq ty x y)))
3426
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.SignedGreaterThan) x y)))
3427
- (vec_cmph ty x y))
3428
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.SignedLessThanOrEqual) x y)))
3429
- (vec_not ty (vec_cmph ty x y)))
3430
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.SignedLessThan) x y)))
3431
- (vec_cmph ty y x))
3432
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.SignedGreaterThanOrEqual) x y)))
3433
- (vec_not ty (vec_cmph ty y x)))
3434
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.UnsignedGreaterThan) x y)))
3435
- (vec_cmphl ty x y))
3436
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.UnsignedLessThanOrEqual) x y)))
3437
- (vec_not ty (vec_cmphl ty x y)))
3438
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.UnsignedLessThan) x y)))
3439
- (vec_cmphl ty y x))
3440
- (rule (lower (has_type (ty_vec128 ty) (icmp (IntCC.UnsignedGreaterThanOrEqual) x y)))
3441
- (vec_not ty (vec_cmphl ty y x)))
3442
-
3443
-
3444
- ;;;; Rules for `fcmp` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3445
-
3446
- ;; Main `fcmp` entry point. Generate a `ProducesBool` capturing the
3447
- ;; integer comparison and immediately lower it to a 0/1 integer result.
3448
- (rule -1 (lower (has_type (fits_in_64 ty) (fcmp float_cc x y)))
3449
- (lower_bool ty (fcmp_val float_cc x y)))
3450
-
3451
- ;; Return a `ProducesBool` to implement any floating-point comparison.
3452
- (decl fcmp_val (FloatCC Value Value) ProducesBool)
3453
- (rule (fcmp_val float_cc x @ (value_type ty) y)
3454
- (bool (fcmp_reg ty x y)
3455
- (floatcc_as_cond float_cc)))
3456
-
3457
- ;; Vector `fcmp` produces a boolean vector.
3458
- ;; We need to handle the various FloatCC flags separately here.
3459
-
3460
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.Equal) x y)))
3461
- (vec_fcmpeq ty x y))
3462
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.NotEqual) x y)))
3463
- (vec_not ty (vec_fcmpeq ty x y)))
3464
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.GreaterThan) x y)))
3465
- (vec_fcmph ty x y))
3466
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrLessThanOrEqual) x y)))
3467
- (vec_not ty (vec_fcmph ty x y)))
3468
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.GreaterThanOrEqual) x y)))
3469
- (vec_fcmphe ty x y))
3470
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrLessThan) x y)))
3471
- (vec_not ty (vec_fcmphe ty x y)))
3472
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.LessThan) x y)))
3473
- (vec_fcmph ty y x))
3474
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrGreaterThanOrEqual) x y)))
3475
- (vec_not ty (vec_fcmph ty y x)))
3476
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.LessThanOrEqual) x y)))
3477
- (vec_fcmphe ty y x))
3478
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrGreaterThan) x y)))
3479
- (vec_not ty (vec_fcmphe ty y x)))
3480
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.Ordered) x y)))
3481
- (vec_or ty (vec_fcmphe ty x y) (vec_fcmphe ty y x)))
3482
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.Unordered) x y)))
3483
- (vec_not_or ty (vec_fcmphe ty x y) (vec_fcmphe ty y x)))
3484
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.OrderedNotEqual) x y)))
3485
- (vec_or ty (vec_fcmph ty x y) (vec_fcmph ty y x)))
3486
- (rule (lower (has_type (ty_vec128 ty) (fcmp (FloatCC.UnorderedOrEqual) x y)))
3487
- (vec_not_or ty (vec_fcmph ty x y) (vec_fcmph ty y x)))
3488
-
3489
-
3490
- ;;;; Rules for `vall_true` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3491
-
3492
- ;; Main `vall_true` entry point. Generate a `ProducesBool` capturing the
3493
- ;; comparison and immediately lower it to a 0/1 integer result.
3494
- (rule (lower (has_type (fits_in_64 ty) (vall_true x)))
3495
- (lower_bool ty (vall_true_val x)))
3496
-
3497
- ;; Return a `ProducesBool` to implement `vall_true`.
3498
- (decl vall_true_val (Value) ProducesBool)
3499
- (rule -1 (vall_true_val x @ (value_type ty))
3500
- (bool (vec_cmpeqs ty x (vec_imm ty 0))
3501
- (floatcc_as_cond (FloatCC.Unordered))))
3502
-
3503
- ;; Short-circuit `vall_true` on the result of a `icmp`.
3504
- (rule (vall_true_val (has_type ty (icmp (IntCC.Equal) x y)))
3505
- (bool (vec_cmpeqs ty x y)
3506
- (floatcc_as_cond (FloatCC.Equal))))
3507
- (rule (vall_true_val (has_type ty (icmp (IntCC.NotEqual) x y)))
3508
- (bool (vec_cmpeqs ty x y)
3509
- (floatcc_as_cond (FloatCC.Unordered))))
3510
- (rule (vall_true_val (has_type ty (icmp (IntCC.SignedGreaterThan) x y)))
3511
- (bool (vec_cmphs ty x y)
3512
- (floatcc_as_cond (FloatCC.Equal))))
3513
- (rule (vall_true_val (has_type ty (icmp (IntCC.SignedLessThanOrEqual) x y)))
3514
- (bool (vec_cmphs ty x y)
3515
- (floatcc_as_cond (FloatCC.Unordered))))
3516
- (rule (vall_true_val (has_type ty (icmp (IntCC.SignedLessThan) x y)))
3517
- (bool (vec_cmphs ty y x)
3518
- (floatcc_as_cond (FloatCC.Equal))))
3519
- (rule (vall_true_val (has_type ty (icmp (IntCC.SignedGreaterThanOrEqual) x y)))
3520
- (bool (vec_cmphs ty y x)
3521
- (floatcc_as_cond (FloatCC.Unordered))))
3522
- (rule (vall_true_val (has_type ty (icmp (IntCC.UnsignedGreaterThan) x y)))
3523
- (bool (vec_cmphls ty x y)
3524
- (floatcc_as_cond (FloatCC.Equal))))
3525
- (rule (vall_true_val (has_type ty (icmp (IntCC.UnsignedLessThanOrEqual) x y)))
3526
- (bool (vec_cmphls ty x y)
3527
- (floatcc_as_cond (FloatCC.Unordered))))
3528
- (rule (vall_true_val (has_type ty (icmp (IntCC.UnsignedLessThan) x y)))
3529
- (bool (vec_cmphls ty y x)
3530
- (floatcc_as_cond (FloatCC.Equal))))
3531
- (rule (vall_true_val (has_type ty (icmp (IntCC.UnsignedGreaterThanOrEqual) x y)))
3532
- (bool (vec_cmphls ty y x)
3533
- (floatcc_as_cond (FloatCC.Unordered))))
3534
-
3535
- ;; Short-circuit `vall_true` on the result of a `fcmp` where possible.
3536
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.Equal) x y)))
3537
- (bool (vec_fcmpeqs ty x y)
3538
- (floatcc_as_cond (FloatCC.Equal))))
3539
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.NotEqual) x y)))
3540
- (bool (vec_fcmpeqs ty x y)
3541
- (floatcc_as_cond (FloatCC.Unordered))))
3542
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.GreaterThan) x y)))
3543
- (bool (vec_fcmphs ty x y)
3544
- (floatcc_as_cond (FloatCC.Equal))))
3545
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.UnorderedOrLessThanOrEqual) x y)))
3546
- (bool (vec_fcmphs ty x y)
3547
- (floatcc_as_cond (FloatCC.Unordered))))
3548
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.GreaterThanOrEqual) x y)))
3549
- (bool (vec_fcmphes ty x y)
3550
- (floatcc_as_cond (FloatCC.Equal))))
3551
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.UnorderedOrLessThan) x y)))
3552
- (bool (vec_fcmphes ty x y)
3553
- (floatcc_as_cond (FloatCC.Unordered))))
3554
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.LessThan) x y)))
3555
- (bool (vec_fcmphs ty y x)
3556
- (floatcc_as_cond (FloatCC.Equal))))
3557
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.UnorderedOrGreaterThanOrEqual) x y)))
3558
- (bool (vec_fcmphs ty y x)
3559
- (floatcc_as_cond (FloatCC.Unordered))))
3560
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.LessThanOrEqual) x y)))
3561
- (bool (vec_fcmphes ty y x)
3562
- (floatcc_as_cond (FloatCC.Equal))))
3563
- (rule (vall_true_val (has_type ty (fcmp (FloatCC.UnorderedOrGreaterThan) x y)))
3564
- (bool (vec_fcmphes ty y x)
3565
- (floatcc_as_cond (FloatCC.Unordered))))
3566
-
3567
-
3568
- ;;;; Rules for `vany_true` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3569
-
3570
- ;; Main `vany_true` entry point. Generate a `ProducesBool` capturing the
3571
- ;; comparison and immediately lower it to a 0/1 integer result.
3572
- (rule (lower (has_type (fits_in_64 ty) (vany_true x)))
3573
- (lower_bool ty (vany_true_val x)))
3574
-
3575
- ;; Return a `ProducesBool` to implement `vany_true`.
3576
- (decl vany_true_val (Value) ProducesBool)
3577
- (rule -1 (vany_true_val x @ (value_type ty))
3578
- (bool (vec_cmpeqs ty x (vec_imm ty 0))
3579
- (floatcc_as_cond (FloatCC.NotEqual))))
3580
-
3581
- ;; Short-circuit `vany_true` on the result of a `icmp`.
3582
- (rule (vany_true_val (has_type ty (icmp (IntCC.Equal) x y)))
3583
- (bool (vec_cmpeqs ty x y)
3584
- (floatcc_as_cond (FloatCC.Ordered))))
3585
- (rule (vany_true_val (has_type ty (icmp (IntCC.NotEqual) x y)))
3586
- (bool (vec_cmpeqs ty x y)
3587
- (floatcc_as_cond (FloatCC.NotEqual))))
3588
- (rule (vany_true_val (has_type ty (icmp (IntCC.SignedGreaterThan) x y)))
3589
- (bool (vec_cmphs ty x y)
3590
- (floatcc_as_cond (FloatCC.Ordered))))
3591
- (rule (vany_true_val (has_type ty (icmp (IntCC.SignedLessThanOrEqual) x y)))
3592
- (bool (vec_cmphs ty x y)
3593
- (floatcc_as_cond (FloatCC.NotEqual))))
3594
- (rule (vany_true_val (has_type ty (icmp (IntCC.SignedLessThan) x y)))
3595
- (bool (vec_cmphs ty y x)
3596
- (floatcc_as_cond (FloatCC.Ordered))))
3597
- (rule (vany_true_val (has_type ty (icmp (IntCC.SignedGreaterThanOrEqual) x y)))
3598
- (bool (vec_cmphs ty y x)
3599
- (floatcc_as_cond (FloatCC.NotEqual))))
3600
- (rule (vany_true_val (has_type ty (icmp (IntCC.UnsignedGreaterThan) x y)))
3601
- (bool (vec_cmphls ty x y)
3602
- (floatcc_as_cond (FloatCC.Ordered))))
3603
- (rule (vany_true_val (has_type ty (icmp (IntCC.UnsignedLessThanOrEqual) x y)))
3604
- (bool (vec_cmphls ty x y)
3605
- (floatcc_as_cond (FloatCC.NotEqual))))
3606
- (rule (vany_true_val (has_type ty (icmp (IntCC.UnsignedLessThan) x y)))
3607
- (bool (vec_cmphls ty y x)
3608
- (floatcc_as_cond (FloatCC.Ordered))))
3609
- (rule (vany_true_val (has_type ty (icmp (IntCC.UnsignedGreaterThanOrEqual) x y)))
3610
- (bool (vec_cmphls ty y x)
3611
- (floatcc_as_cond (FloatCC.NotEqual))))
3612
-
3613
- ;; Short-circuit `vany_true` on the result of a `fcmp` where possible.
3614
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.Equal) x y)))
3615
- (bool (vec_fcmpeqs ty x y)
3616
- (floatcc_as_cond (FloatCC.Ordered))))
3617
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.NotEqual) x y)))
3618
- (bool (vec_fcmpeqs ty x y)
3619
- (floatcc_as_cond (FloatCC.NotEqual))))
3620
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.GreaterThan) x y)))
3621
- (bool (vec_fcmphs ty x y)
3622
- (floatcc_as_cond (FloatCC.Ordered))))
3623
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.UnorderedOrLessThanOrEqual) x y)))
3624
- (bool (vec_fcmphs ty x y)
3625
- (floatcc_as_cond (FloatCC.NotEqual))))
3626
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.GreaterThanOrEqual) x y)))
3627
- (bool (vec_fcmphes ty x y)
3628
- (floatcc_as_cond (FloatCC.Ordered))))
3629
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.UnorderedOrLessThan) x y)))
3630
- (bool (vec_fcmphes ty x y)
3631
- (floatcc_as_cond (FloatCC.NotEqual))))
3632
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.LessThan) x y)))
3633
- (bool (vec_fcmphs ty y x)
3634
- (floatcc_as_cond (FloatCC.Ordered))))
3635
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.UnorderedOrGreaterThanOrEqual) x y)))
3636
- (bool (vec_fcmphs ty y x)
3637
- (floatcc_as_cond (FloatCC.NotEqual))))
3638
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.LessThanOrEqual) x y)))
3639
- (bool (vec_fcmphes ty y x)
3640
- (floatcc_as_cond (FloatCC.Ordered))))
3641
- (rule (vany_true_val (has_type ty (fcmp (FloatCC.UnorderedOrGreaterThan) x y)))
3642
- (bool (vec_fcmphes ty y x)
3643
- (floatcc_as_cond (FloatCC.NotEqual))))
3644
-
3645
-
3646
- ;;;; Rules for `vhigh_bits` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3647
-
3648
- (rule (lower (vhigh_bits x @ (value_type (multi_lane 8 16))))
3649
- (if-let (LaneOrder.LittleEndian) (lane_order))
3650
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 0 8 16 24 32 40 48 56
3651
- 64 72 80 88 96 104 112 120))))
3652
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3653
- (rule 1 (lower (vhigh_bits x @ (value_type (multi_lane 8 16))))
3654
- (if-let (LaneOrder.BigEndian) (lane_order))
3655
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 120 112 104 96 88 80 72 64
3656
- 56 48 40 32 24 16 8 0))))
3657
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3658
-
3659
- (rule (lower (vhigh_bits x @ (value_type (multi_lane 16 8))))
3660
- (if-let (LaneOrder.LittleEndian) (lane_order))
3661
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3662
- 0 16 32 48 64 80 96 112))))
3663
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3664
- (rule 1 (lower (vhigh_bits x @ (value_type (multi_lane 16 8))))
3665
- (if-let (LaneOrder.BigEndian) (lane_order))
3666
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3667
- 112 96 80 64 48 32 16 0))))
3668
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3669
-
3670
- (rule (lower (vhigh_bits x @ (value_type (multi_lane 32 4))))
3671
- (if-let (LaneOrder.LittleEndian) (lane_order))
3672
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3673
- 128 128 128 128 0 32 64 96))))
3674
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3675
- (rule 1 (lower (vhigh_bits x @ (value_type (multi_lane 32 4))))
3676
- (if-let (LaneOrder.BigEndian) (lane_order))
3677
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3678
- 128 128 128 128 96 64 32 0))))
3679
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3680
-
3681
- (rule (lower (vhigh_bits x @ (value_type (multi_lane 64 2))))
3682
- (if-let (LaneOrder.LittleEndian) (lane_order))
3683
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3684
- 128 128 128 128 128 128 0 64))))
3685
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3686
- (rule 1 (lower (vhigh_bits x @ (value_type (multi_lane 64 2))))
3687
- (if-let (LaneOrder.BigEndian) (lane_order))
3688
- (let ((mask Reg (vec_imm $I8X16 (imm8x16 128 128 128 128 128 128 128 128
3689
- 128 128 128 128 128 128 64 0))))
3690
- (vec_extract_lane $I64X2 (vec_bitpermute x mask) 0 (zero_reg))))
3691
-
3692
-
3693
- ;;;; Rules for `is_null` and `is_invalid` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3694
-
3695
- ;; Null references are represented by the constant value 0.
3696
- (rule (lower (has_type $I8 (is_null x @ (value_type $R64))))
3697
- (lower_bool $I8 (bool (icmps_simm16 $I64 x 0)
3698
- (intcc_as_cond (IntCC.Equal)))))
3699
-
3700
-
3701
- ;; Invalid references are represented by the constant value -1.
3702
- (rule (lower (has_type $I8 (is_invalid x @ (value_type $R64))))
3703
- (lower_bool $I8 (bool (icmps_simm16 $I64 x -1)
3704
- (intcc_as_cond (IntCC.Equal)))))
3705
-
3706
-
3707
- ;;;; Rules for `select` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3708
-
3709
- ;; Return a `ProducesBool` to capture the fact that the input value is nonzero.
3710
- ;; In the common case where that input is the result of an `icmp` or `fcmp`
3711
- ;; instruction, directly use that compare. Note that it is not safe to sink
3712
- ;; memory loads here, see the `icmp` comment.
3713
- (decl value_nonzero (Value) ProducesBool)
3714
- (rule (value_nonzero (icmp int_cc x y)) (icmp_val $false int_cc x y))
3715
- (rule (value_nonzero (fcmp float_cc x y)) (fcmp_val float_cc x y))
3716
- (rule -1 (value_nonzero val @ (value_type (gpr32_ty ty)))
3717
- (bool (icmps_simm16 $I32 (put_in_reg_sext32 val) 0)
3718
- (intcc_as_cond (IntCC.NotEqual))))
3719
- (rule -2 (value_nonzero val @ (value_type (gpr64_ty ty)))
3720
- (bool (icmps_simm16 $I64 (put_in_reg val) 0)
3721
- (intcc_as_cond (IntCC.NotEqual))))
3722
- (rule -3 (value_nonzero val @ (value_type (vr128_ty ty)))
3723
- (bool (vec_cmpeqs $I64X2 val (vec_imm $I64X2 0))
3724
- (floatcc_as_cond (FloatCC.NotEqual))))
3725
-
3726
- ;; Main `select` entry point. Lower the `value_nonzero` result.
3727
- (rule (lower (has_type ty (select val_cond val_true val_false)))
3728
- (select_bool_reg ty (value_nonzero val_cond)
3729
- (put_in_reg val_true) (put_in_reg val_false)))
3730
-
3731
- ;; Special-case some float-selection instructions for min/max
3732
- (rule 1 (lower (has_type (ty_scalar_float ty) (select (maybe_uextend (fcmp (FloatCC.LessThan) x y)) x y)))
3733
- (fmin_pseudo_reg ty y x))
3734
- (rule 2 (lower (has_type (ty_scalar_float ty) (select (maybe_uextend (fcmp (FloatCC.LessThan) y x)) x y)))
3735
- (fmax_pseudo_reg ty y x))
3736
-
3737
-
3738
- ;;;; Rules for `select_spectre_guard` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3739
-
3740
- ;; We need to guarantee a conditional move instruction. But on this platform
3741
- ;; this is already the best way to implement select in general, so the
3742
- ;; implementation of `select_spectre_guard` is identical to `select`.
3743
- (rule (lower (has_type ty (select_spectre_guard
3744
- val_cond val_true val_false)))
3745
- (select_bool_reg ty (value_nonzero val_cond)
3746
- (put_in_reg val_true) (put_in_reg val_false)))
3747
-
3748
-
3749
- ;;;; Rules for `jump` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3750
-
3751
- ;; Unconditional branch. The target is found as first (and only) element in
3752
- ;; the list of the current block's branch targets passed as `targets`.
3753
- (rule (lower_branch (jump _) (single_target label))
3754
- (emit_side_effect (jump_impl label)))
3755
-
3756
-
3757
- ;;;; Rules for `br_table` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3758
-
3759
- ;; Jump table. `targets` contains the default target followed by the
3760
- ;; list of branch targets per index value.
3761
- (rule (lower_branch (br_table val_idx _) (jump_table_targets default targets))
3762
- (let ((idx Reg (put_in_reg_zext64 val_idx))
3763
- ;; Bounds-check the index and branch to default.
3764
- ;; This is an internal branch that is not a terminator insn.
3765
- ;; Instead, the default target is listed a potential target
3766
- ;; in the final JTSequence, which is the block terminator.
3767
- (cond ProducesBool
3768
- (bool (icmpu_uimm32 $I64 idx (jump_table_size targets))
3769
- (intcc_as_cond (IntCC.UnsignedGreaterThanOrEqual))))
3770
- (_ Unit (emit_side_effect (oneway_cond_br_bool cond default))))
3771
- ;; Scale the index by the element size, and then emit the
3772
- ;; compound instruction that does:
3773
- ;;
3774
- ;; larl %r1, <jt-base>
3775
- ;; agf %r1, 0(%r1, %rScaledIndex)
3776
- ;; br %r1
3777
- ;; [jt entries]
3778
- ;;
3779
- ;; This must be *one* instruction in the vcode because
3780
- ;; we cannot allow regalloc to insert any spills/fills
3781
- ;; in the middle of the sequence; otherwise, the LARL's
3782
- ;; PC-rel offset to the jumptable would be incorrect.
3783
- ;; (The alternative is to introduce a relocation pass
3784
- ;; for inlined jumptables, which is much worse, IMHO.)
3785
- (emit_side_effect (jt_sequence (lshl_imm $I64 idx 2) targets))))
3786
-
3787
-
3788
- ;;;; Rules for `brif` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3789
-
3790
- ;; Two-way conditional branch on nonzero. `targets` contains:
3791
- ;; - element 0: target if the condition is true (i.e. value is nonzero)
3792
- ;; - element 1: target if the condition is false (i.e. value is zero)
3793
- (rule (lower_branch (brif val_cond _ _) (two_targets then else))
3794
- (emit_side_effect (cond_br_bool (value_nonzero val_cond) then else)))
3795
-
3796
-
3797
- ;;;; Rules for `trap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3798
-
3799
- (rule (lower (trap trap_code))
3800
- (side_effect (trap_impl trap_code)))
3801
-
3802
-
3803
- ;;;; Rules for `resumable_trap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3804
-
3805
- (rule (lower (resumable_trap trap_code))
3806
- (side_effect (trap_impl trap_code)))
3807
-
3808
-
3809
- ;;;; Rules for `trapz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3810
-
3811
- (rule (lower (trapz val trap_code))
3812
- (side_effect (trap_if_bool (invert_bool (value_nonzero val)) trap_code)))
3813
-
3814
-
3815
- ;;;; Rules for `trapnz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3816
-
3817
- (rule (lower (trapnz val trap_code))
3818
- (side_effect (trap_if_bool (value_nonzero val) trap_code)))
3819
-
3820
-
3821
- ;;;; Rules for `resumable_trapnz` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3822
-
3823
- (rule (lower (resumable_trapnz val trap_code))
3824
- (side_effect (trap_if_bool (value_nonzero val) trap_code)))
3825
-
3826
-
3827
- ;;;; Rules for `debugtrap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3828
-
3829
- (rule (lower (debugtrap))
3830
- (side_effect (debugtrap_impl)))
3831
-
3832
- ;;;; Rules for `uadd_overflow_trap` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3833
-
3834
- ;; UaddOverflowTrap is implemented via a ADD LOGICAL instruction, which sets the
3835
- ;; the condition code as follows:
3836
- ;; 0 Result zero; no carry
3837
- ;; 1 Result not zero; no carry
3838
- ;; 2 Result zero; carry
3839
- ;; 3 Result not zero; carry
3840
- ;; This means "carry" corresponds to condition code 2 or 3, i.e.
3841
- ;; a condition mask of 2 | 1.
3842
- ;;
3843
- ;; As this does not match any of the encodings used with a normal integer
3844
- ;; comparison, this cannot be represented by any IntCC value. We need to
3845
- ;; remap the IntCC::UnsignedGreaterThan value that we have here as result
3846
- ;; of the unsigned_add_overflow_condition call to the correct mask.
3847
-
3848
- (rule 0 (lower (has_type (fits_in_64 ty) (uadd_overflow_trap x y tc)))
3849
- (with_flags
3850
- (add_logical_reg_with_flags_paired ty x y)
3851
- (trap_if_impl (mask_as_cond 3) tc)))
3852
-
3853
- ;; Add a register an a zero-extended register.
3854
- (rule 4 (lower (has_type (fits_in_64 ty)
3855
- (uadd_overflow_trap x (zext32_value y) tc)))
3856
- (with_flags
3857
- (add_logical_reg_zext32_with_flags_paired ty x y)
3858
- (trap_if_impl (mask_as_cond 3) tc)))
3859
- (rule 8 (lower (has_type (fits_in_64 ty)
3860
- (uadd_overflow_trap (zext32_value x) y tc)))
3861
- (with_flags
3862
- (add_logical_reg_zext32_with_flags_paired ty y x)
3863
- (trap_if_impl (mask_as_cond 3) tc)))
3864
-
3865
- ;; Add a register and an immediate
3866
- (rule 3 (lower (has_type (fits_in_64 ty)
3867
- (uadd_overflow_trap x (u32_from_value y) tc)))
3868
- (with_flags
3869
- (add_logical_zimm32_with_flags_paired ty x y)
3870
- (trap_if_impl (mask_as_cond 3) tc)))
3871
- (rule 7 (lower (has_type (fits_in_64 ty)
3872
- (uadd_overflow_trap (u32_from_value x) y tc)))
3873
- (with_flags
3874
- (add_logical_zimm32_with_flags_paired ty y x)
3875
- (trap_if_impl (mask_as_cond 3) tc)))
3876
-
3877
- ;; Add a register and memory (32/64-bit types).
3878
- (rule 2 (lower (has_type (fits_in_64 ty)
3879
- (uadd_overflow_trap x (sinkable_load_32_64 y) tc)))
3880
- (with_flags
3881
- (add_logical_mem_with_flags_paired ty x (sink_load y))
3882
- (trap_if_impl (mask_as_cond 3) tc)))
3883
- (rule 6 (lower (has_type (fits_in_64 ty)
3884
- (uadd_overflow_trap (sinkable_load_32_64 x) y tc)))
3885
- (with_flags
3886
- (add_logical_mem_with_flags_paired ty y (sink_load x))
3887
- (trap_if_impl (mask_as_cond 3) tc)))
3888
-
3889
- ;; Add a register and zero-extended memory.
3890
- (rule 1 (lower (has_type (fits_in_64 ty)
3891
- (uadd_overflow_trap x (sinkable_uload32 y) tc)))
3892
- (with_flags
3893
- (add_logical_mem_zext32_with_flags_paired ty x (sink_uload32 y))
3894
- (trap_if_impl (mask_as_cond 3) tc)))
3895
- (rule 5 (lower (has_type (fits_in_64 ty)
3896
- (uadd_overflow_trap (sinkable_uload32 x) y tc)))
3897
- (with_flags
3898
- (add_logical_mem_zext32_with_flags_paired ty y (sink_uload32 x))
3899
- (trap_if_impl (mask_as_cond 3) tc)))
3900
-
3901
- ;;;; Rules for `return` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3902
-
3903
- (rule (lower (return args))
3904
- (lower_return args))
3905
-
3906
-
3907
- ;;;; Rules for `call` and `call_indirect` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3908
-
3909
- ;; Direct call to an in-range function.
3910
- (rule 1 (lower (call (func_ref_data sig_ref name (reloc_distance_near)) args))
3911
- (let ((abi Sig (abi_sig sig_ref))
3912
- (_ Unit (abi_accumulate_outgoing_args_size abi))
3913
- (uses CallArgList (lower_call_args abi (range 0 (abi_num_args abi)) args))
3914
- (defs CallRetList (defs_init abi))
3915
- (_ InstOutput (side_effect (abi_call abi name uses defs (Opcode.Call)))))
3916
- (lower_call_rets abi defs (range (abi_first_ret sig_ref abi)
3917
- (abi_num_rets abi)) (output_builder_new))))
3918
-
3919
- ;; Direct call to an out-of-range function (implicitly via pointer).
3920
- (rule (lower (call (func_ref_data sig_ref name _) args))
3921
- (let ((abi Sig (abi_sig sig_ref))
3922
- (_ Unit (abi_accumulate_outgoing_args_size abi))
3923
- (uses CallArgList (lower_call_args abi (range 0 (abi_num_args abi)) args))
3924
- (defs CallRetList (defs_init abi))
3925
- (target Reg (load_symbol_reloc (SymbolReloc.Absolute name 0)))
3926
- (_ InstOutput (side_effect (abi_call_ind abi target uses defs (Opcode.Call)))))
3927
- (lower_call_rets abi defs (range (abi_first_ret sig_ref abi)
3928
- (abi_num_rets abi)) (output_builder_new))))
3929
-
3930
- ;; Indirect call.
3931
- (rule (lower (call_indirect sig_ref ptr args))
3932
- (let ((abi Sig (abi_sig sig_ref))
3933
- (target Reg (put_in_reg ptr))
3934
- (_ Unit (abi_accumulate_outgoing_args_size abi))
3935
- (uses CallArgList (lower_call_args abi (range 0 (abi_num_args abi)) args))
3936
- (defs CallRetList (defs_init abi))
3937
- (_ InstOutput (side_effect (abi_call_ind abi target uses defs (Opcode.CallIndirect)))))
3938
- (lower_call_rets abi defs (range (abi_first_ret sig_ref abi)
3939
- (abi_num_rets abi)) (output_builder_new))))
3940
-
3941
- ;; Lower function arguments.
3942
- (decl lower_call_args (Sig Range ValueSlice) CallArgList)
3943
- (rule (lower_call_args abi range args)
3944
- (let ((uses CallArgListBuilder (args_builder_new))
3945
- (_ InstOutput (lower_call_args_buffer abi range args))
3946
- (_ InstOutput (lower_call_args_slots abi uses range args))
3947
- (_ InstOutput (lower_call_ret_arg abi uses)))
3948
- (args_builder_finish uses)))
3949
-
3950
- ;; Lower function arguments (part 1): prepare buffer copies.
3951
- (decl lower_call_args_buffer (Sig Range ValueSlice) InstOutput)
3952
- (rule (lower_call_args_buffer abi (range_empty) _) (output_none))
3953
- (rule (lower_call_args_buffer abi (range_unwrap head tail) args)
3954
- (let ((_ InstOutput (copy_to_buffer 0 (abi_get_arg abi head)
3955
- (value_slice_get args head))))
3956
- (lower_call_args_buffer abi tail args)))
3957
-
3958
- ;; Lower function arguments (part 2): set up registers / stack slots.
3959
- (decl lower_call_args_slots (Sig CallArgListBuilder Range ValueSlice) InstOutput)
3960
- (rule (lower_call_args_slots abi _ (range_empty) _) (output_none))
3961
- (rule (lower_call_args_slots abi uses (range_unwrap head tail) args)
3962
- (let ((_ InstOutput (copy_to_arg uses (abi_lane_order abi)
3963
- 0 (abi_get_arg abi head)
3964
- (value_slice_get args head))))
3965
- (lower_call_args_slots abi uses tail args)))
3966
-
3967
- ;; Lower function arguments (part 3): implicit return-area pointer.
3968
- (decl lower_call_ret_arg (Sig CallArgListBuilder) InstOutput)
3969
- (rule (lower_call_ret_arg (abi_no_ret_arg) _) (output_none))
3970
- (rule 1 (lower_call_ret_arg abi @ (abi_ret_arg (abi_arg_only_slot slot)) uses)
3971
- (let ((mem MemArg (memarg_stack_off (abi_sized_stack_arg_space abi) 0)))
3972
- (copy_reg_to_arg_slot uses (abi_lane_order abi) 0 slot (load_addr mem))))
3973
-
3974
- ;; Lower function return values by collecting them from registers / stack slots.
3975
- (decl lower_call_rets (Sig CallRetList Range InstOutputBuilder) InstOutput)
3976
- (rule (lower_call_rets abi _ (range_empty) builder) (output_builder_finish builder))
3977
- (rule (lower_call_rets abi defs (range_unwrap head tail) builder)
3978
- (let ((ret ValueRegs (copy_from_arg defs (abi_lane_order abi)
3979
- (abi_sized_stack_arg_space abi)
3980
- (abi_get_ret abi head)))
3981
- (_ Unit (output_builder_push builder ret)))
3982
- (lower_call_rets abi defs tail builder)))
3983
-
3984
- ;;;; Rules for `get_{frame,stack}_pointer` and `get_return_address` ;;;;;;;;;;;;
3985
-
3986
- (rule (lower (get_stack_pointer))
3987
- (sp))
3988
-
3989
- (rule (lower (get_frame_pointer))
3990
- (load64 (memarg_stack_off 0 0)))
3991
-
3992
- (rule (lower (get_return_address))
3993
- ;; The return address is 14 pointer-sized slots above the initial SP. So
3994
- ;; our offset is `14 * 8 = 112`.
3995
- (load64 (memarg_initial_sp_offset 112)))