wasmtime 15.0.1 → 16.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1212) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +83 -103
  3. data/ext/Cargo.toml +6 -6
  4. data/ext/cargo-vendor/cranelift-bforest-0.103.0/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cranelift-bforest-0.103.0/Cargo.toml +40 -0
  6. data/ext/cargo-vendor/cranelift-bforest-0.103.0/src/lib.rs +183 -0
  7. data/ext/cargo-vendor/cranelift-codegen-0.103.0/.cargo-checksum.json +1 -0
  8. data/ext/cargo-vendor/cranelift-codegen-0.103.0/Cargo.toml +175 -0
  9. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/binemit/mod.rs +171 -0
  10. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/cost.rs +171 -0
  11. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/elaborate.rs +750 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph.rs +703 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/dfg.rs +1735 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/pcc.rs +1682 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/aarch64/lower/isle.rs +874 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst/mod.rs +2041 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst.isle +2928 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/lower.isle +2864 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/s390x/lower/isle.rs +1029 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/lower/isle.rs +1064 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/pcc.rs +916 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isle_prelude.rs +977 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/lib.rs +106 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/machinst/isle.rs +896 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/arithmetic.isle +152 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/cprop.isle +237 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/icmp.isle +199 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/selects.isle +76 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts.rs +172 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/prelude.isle +649 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/timing.rs +297 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/unionfind.rs +75 -0
  33. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/.cargo-checksum.json +1 -0
  34. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/Cargo.toml +35 -0
  35. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/.cargo-checksum.json +1 -0
  36. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/Cargo.toml +22 -0
  37. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/src/lib.rs +10 -0
  38. data/ext/cargo-vendor/cranelift-control-0.103.0/.cargo-checksum.json +1 -0
  39. data/ext/cargo-vendor/cranelift-control-0.103.0/Cargo.toml +30 -0
  40. data/ext/cargo-vendor/cranelift-entity-0.103.0/.cargo-checksum.json +1 -0
  41. data/ext/cargo-vendor/cranelift-entity-0.103.0/Cargo.toml +50 -0
  42. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/lib.rs +317 -0
  43. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/primary.rs +516 -0
  44. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/unsigned.rs +71 -0
  45. data/ext/cargo-vendor/cranelift-frontend-0.103.0/.cargo-checksum.json +1 -0
  46. data/ext/cargo-vendor/cranelift-frontend-0.103.0/Cargo.toml +68 -0
  47. data/ext/cargo-vendor/cranelift-frontend-0.103.0/src/lib.rs +189 -0
  48. data/ext/cargo-vendor/cranelift-isle-0.103.0/.cargo-checksum.json +1 -0
  49. data/ext/cargo-vendor/cranelift-isle-0.103.0/Cargo.toml +46 -0
  50. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_constructor_main.rs +88 -0
  51. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_extractor_main.rs +63 -0
  52. data/ext/cargo-vendor/cranelift-isle-0.103.0/src/codegen.rs +886 -0
  53. data/ext/cargo-vendor/cranelift-native-0.103.0/.cargo-checksum.json +1 -0
  54. data/ext/cargo-vendor/cranelift-native-0.103.0/Cargo.toml +43 -0
  55. data/ext/cargo-vendor/cranelift-native-0.103.0/src/lib.rs +184 -0
  56. data/ext/cargo-vendor/cranelift-wasm-0.103.0/.cargo-checksum.json +1 -0
  57. data/ext/cargo-vendor/cranelift-wasm-0.103.0/Cargo.toml +106 -0
  58. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/environ/dummy.rs +953 -0
  59. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/lib.rs +62 -0
  60. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/translation_utils.rs +89 -0
  61. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/.cargo-checksum.json +1 -0
  62. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/Cargo.toml +102 -0
  63. data/ext/cargo-vendor/wasi-common-16.0.0/.cargo-checksum.json +1 -0
  64. data/ext/cargo-vendor/wasi-common-16.0.0/Cargo.toml +131 -0
  65. data/ext/cargo-vendor/wasi-common-16.0.0/src/lib.rs +76 -0
  66. data/ext/cargo-vendor/wasi-common-16.0.0/src/snapshots/preview_1.rs +1492 -0
  67. data/ext/cargo-vendor/wasmtime-16.0.0/.cargo-checksum.json +1 -0
  68. data/ext/cargo-vendor/wasmtime-16.0.0/Cargo.toml +211 -0
  69. data/ext/cargo-vendor/wasmtime-16.0.0/src/compiler.rs +682 -0
  70. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/component.rs +505 -0
  71. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/func/typed.rs +2400 -0
  72. data/ext/cargo-vendor/wasmtime-16.0.0/src/config.rs +2422 -0
  73. data/ext/cargo-vendor/wasmtime-16.0.0/src/func.rs +2391 -0
  74. data/ext/cargo-vendor/wasmtime-16.0.0/src/lib.rs +520 -0
  75. data/ext/cargo-vendor/wasmtime-16.0.0/src/memory.rs +998 -0
  76. data/ext/cargo-vendor/wasmtime-16.0.0/src/module.rs +1370 -0
  77. data/ext/cargo-vendor/wasmtime-16.0.0/src/stack.rs +73 -0
  78. data/ext/cargo-vendor/wasmtime-16.0.0/src/v128.rs +122 -0
  79. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/.cargo-checksum.json +1 -0
  80. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/Cargo.toml +22 -0
  81. data/ext/cargo-vendor/wasmtime-cache-16.0.0/.cargo-checksum.json +1 -0
  82. data/ext/cargo-vendor/wasmtime-cache-16.0.0/Cargo.toml +81 -0
  83. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/lib.rs +235 -0
  84. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/worker.rs +890 -0
  85. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/Cargo.toml +67 -0
  87. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/.cargo-checksum.json +1 -0
  88. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/Cargo.toml +25 -0
  89. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/.cargo-checksum.json +1 -0
  90. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/Cargo.toml +112 -0
  91. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler/component.rs +959 -0
  92. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler.rs +1317 -0
  93. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/expression.rs +1252 -0
  94. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/simulate.rs +410 -0
  95. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug.rs +18 -0
  96. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/func_environ.rs +2750 -0
  97. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/.cargo-checksum.json +1 -0
  98. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/Cargo.toml +71 -0
  99. data/ext/cargo-vendor/wasmtime-environ-16.0.0/.cargo-checksum.json +1 -0
  100. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.lock +660 -0
  101. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.toml +125 -0
  102. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/compilation.rs +402 -0
  103. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/compiler.rs +47 -0
  104. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/translate.rs +951 -0
  105. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/types.rs +1876 -0
  106. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/lib.rs +59 -0
  107. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module.rs +1075 -0
  108. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_environ.rs +892 -0
  109. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_types.rs +120 -0
  110. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/scopevec.rs +78 -0
  111. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/.cargo-checksum.json +1 -0
  112. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/Cargo.toml +63 -0
  113. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/lib.rs +328 -0
  114. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/unix.rs +265 -0
  115. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/windows.c +9 -0
  116. data/ext/cargo-vendor/wasmtime-jit-16.0.0/.cargo-checksum.json +1 -0
  117. data/ext/cargo-vendor/wasmtime-jit-16.0.0/Cargo.toml +125 -0
  118. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/code_memory.rs +319 -0
  119. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/instantiate.rs +772 -0
  120. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/lib.rs +21 -0
  121. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/.cargo-checksum.json +1 -0
  122. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/Cargo.toml +67 -0
  123. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/.cargo-checksum.json +1 -0
  124. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/Cargo.toml +46 -0
  125. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/.cargo-checksum.json +1 -0
  126. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/Cargo.toml +139 -0
  127. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/build.rs +28 -0
  128. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/proptest-regressions/instance/allocator/pooling/memory_pool.txt +9 -0
  129. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/aarch64.rs +120 -0
  130. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/mod.rs +32 -0
  131. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/riscv64.rs +88 -0
  132. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/s390x.rs +61 -0
  133. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/x86_64.rs +106 -0
  134. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/cow.rs +888 -0
  135. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/helpers.c +113 -0
  136. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/memory_pool.rs +1005 -0
  137. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/stack_pool.rs +242 -0
  138. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/table_pool.rs +227 -0
  139. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling.rs +698 -0
  140. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/lib.rs +264 -0
  141. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/libcalls.rs +776 -0
  142. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mmap.rs +214 -0
  143. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/enabled.rs +204 -0
  144. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/pkru.rs +102 -0
  145. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/mod.rs +10 -0
  146. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/traphandlers.rs +42 -0
  147. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/unwind.rs +17 -0
  148. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/vm.rs +63 -0
  149. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/mod.rs +30 -0
  150. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/machports.rs +487 -0
  151. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/macos_traphandlers.rs +28 -0
  152. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/mod.rs +21 -0
  153. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/signals.rs +402 -0
  154. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/unwind.rs +91 -0
  155. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/vm.rs +208 -0
  156. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/mod.rs +6 -0
  157. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/traphandlers.rs +105 -0
  158. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/unwind.rs +46 -0
  159. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/vm.rs +79 -0
  160. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers/backtrace.rs +265 -0
  161. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers.rs +733 -0
  162. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/vmcontext.rs +1197 -0
  163. data/ext/cargo-vendor/wasmtime-types-16.0.0/.cargo-checksum.json +1 -0
  164. data/ext/cargo-vendor/wasmtime-types-16.0.0/Cargo.toml +36 -0
  165. data/ext/cargo-vendor/wasmtime-types-16.0.0/src/lib.rs +504 -0
  166. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/.cargo-checksum.json +1 -0
  167. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/Cargo.toml +32 -0
  168. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/.cargo-checksum.json +1 -0
  169. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/Cargo.toml +261 -0
  170. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/lib.rs +137 -0
  171. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/io.rs +368 -0
  172. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/network.rs +570 -0
  173. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/tcp.rs +632 -0
  174. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/udp.rs +550 -0
  175. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/mod.rs +328 -0
  176. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview0.rs +870 -0
  177. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview1.rs +2348 -0
  178. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stdio.rs +259 -0
  179. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stream.rs +182 -0
  180. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/table.rs +337 -0
  181. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/api.rs +218 -0
  182. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/async_.rs +360 -0
  183. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/main.rs +113 -0
  184. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/preview1.rs +239 -0
  185. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/sync.rs +299 -0
  186. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/process_stdin.rs +165 -0
  187. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/command-extended.wit +6 -0
  188. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/command.wit +7 -0
  189. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/imports.wit +20 -0
  190. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/proxy.wit +32 -0
  191. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/types.wit +570 -0
  192. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/test.wit +22 -0
  193. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/typenames.witx +746 -0
  194. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/wasi_unstable.witx +513 -0
  195. data/ext/cargo-vendor/wasmtime-winch-16.0.0/.cargo-checksum.json +1 -0
  196. data/ext/cargo-vendor/wasmtime-winch-16.0.0/Cargo.toml +77 -0
  197. data/ext/cargo-vendor/wasmtime-winch-16.0.0/src/compiler.rs +243 -0
  198. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/.cargo-checksum.json +1 -0
  199. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/Cargo.toml +41 -0
  200. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/.cargo-checksum.json +1 -0
  201. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/Cargo.toml +29 -0
  202. data/ext/cargo-vendor/wiggle-16.0.0/.cargo-checksum.json +1 -0
  203. data/ext/cargo-vendor/wiggle-16.0.0/Cargo.toml +115 -0
  204. data/ext/cargo-vendor/wiggle-16.0.0/src/lib.rs +1198 -0
  205. data/ext/cargo-vendor/wiggle-generate-16.0.0/.cargo-checksum.json +1 -0
  206. data/ext/cargo-vendor/wiggle-generate-16.0.0/Cargo.toml +65 -0
  207. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/handle.rs +84 -0
  208. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/record.rs +132 -0
  209. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/variant.rs +191 -0
  210. data/ext/cargo-vendor/wiggle-macro-16.0.0/.cargo-checksum.json +1 -0
  211. data/ext/cargo-vendor/wiggle-macro-16.0.0/Cargo.toml +55 -0
  212. data/ext/cargo-vendor/winch-codegen-0.14.0/.cargo-checksum.json +1 -0
  213. data/ext/cargo-vendor/winch-codegen-0.14.0/Cargo.toml +76 -0
  214. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/local.rs +81 -0
  215. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/mod.rs +614 -0
  216. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/call.rs +345 -0
  217. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/context.rs +545 -0
  218. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/control.rs +497 -0
  219. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/env.rs +251 -0
  220. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/mod.rs +428 -0
  221. data/ext/cargo-vendor/winch-codegen-0.14.0/src/frame/mod.rs +221 -0
  222. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/abi.rs +313 -0
  223. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/masm.rs +444 -0
  224. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/mod.rs +137 -0
  225. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/mod.rs +225 -0
  226. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/abi.rs +524 -0
  227. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/asm.rs +1117 -0
  228. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/masm.rs +994 -0
  229. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/mod.rs +172 -0
  230. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/regs.rs +247 -0
  231. data/ext/cargo-vendor/winch-codegen-0.14.0/src/masm.rs +679 -0
  232. data/ext/cargo-vendor/winch-codegen-0.14.0/src/stack.rs +436 -0
  233. data/ext/cargo-vendor/winch-codegen-0.14.0/src/trampoline.rs +734 -0
  234. data/ext/cargo-vendor/winch-codegen-0.14.0/src/visitor.rs +1383 -0
  235. data/lib/wasmtime/version.rb +1 -1
  236. metadata +903 -977
  237. data/ext/cargo-vendor/cranelift-bforest-0.102.1/.cargo-checksum.json +0 -1
  238. data/ext/cargo-vendor/cranelift-bforest-0.102.1/Cargo.toml +0 -31
  239. data/ext/cargo-vendor/cranelift-bforest-0.102.1/src/lib.rs +0 -184
  240. data/ext/cargo-vendor/cranelift-codegen-0.102.1/.cargo-checksum.json +0 -1
  241. data/ext/cargo-vendor/cranelift-codegen-0.102.1/Cargo.toml +0 -164
  242. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/binemit/mod.rs +0 -171
  243. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/cost.rs +0 -91
  244. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/elaborate.rs +0 -731
  245. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph.rs +0 -678
  246. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/dfg.rs +0 -1730
  247. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/pcc.rs +0 -1682
  248. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/aarch64/lower/isle.rs +0 -875
  249. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst/mod.rs +0 -2041
  250. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst.isle +0 -2909
  251. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/lower.isle +0 -2860
  252. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/s390x/lower/isle.rs +0 -1029
  253. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/lower/isle.rs +0 -1070
  254. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/pcc.rs +0 -884
  255. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isle_prelude.rs +0 -972
  256. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/lib.rs +0 -108
  257. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/machinst/isle.rs +0 -897
  258. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/arithmetic.isle +0 -128
  259. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/cprop.isle +0 -210
  260. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/icmp.isle +0 -177
  261. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/selects.isle +0 -59
  262. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts.rs +0 -138
  263. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/prelude.isle +0 -646
  264. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/timing.rs +0 -271
  265. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/unionfind.rs +0 -74
  266. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/.cargo-checksum.json +0 -1
  267. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/Cargo.toml +0 -26
  268. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/.cargo-checksum.json +0 -1
  269. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/Cargo.toml +0 -22
  270. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/src/lib.rs +0 -12
  271. data/ext/cargo-vendor/cranelift-control-0.102.1/.cargo-checksum.json +0 -1
  272. data/ext/cargo-vendor/cranelift-control-0.102.1/Cargo.toml +0 -30
  273. data/ext/cargo-vendor/cranelift-entity-0.102.1/.cargo-checksum.json +0 -1
  274. data/ext/cargo-vendor/cranelift-entity-0.102.1/Cargo.toml +0 -41
  275. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/lib.rs +0 -316
  276. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/primary.rs +0 -456
  277. data/ext/cargo-vendor/cranelift-frontend-0.102.1/.cargo-checksum.json +0 -1
  278. data/ext/cargo-vendor/cranelift-frontend-0.102.1/Cargo.toml +0 -59
  279. data/ext/cargo-vendor/cranelift-frontend-0.102.1/src/lib.rs +0 -191
  280. data/ext/cargo-vendor/cranelift-isle-0.102.1/.cargo-checksum.json +0 -1
  281. data/ext/cargo-vendor/cranelift-isle-0.102.1/Cargo.toml +0 -37
  282. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_constructor_main.rs +0 -71
  283. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_extractor_main.rs +0 -50
  284. data/ext/cargo-vendor/cranelift-isle-0.102.1/src/codegen.rs +0 -763
  285. data/ext/cargo-vendor/cranelift-native-0.102.1/.cargo-checksum.json +0 -1
  286. data/ext/cargo-vendor/cranelift-native-0.102.1/Cargo.toml +0 -43
  287. data/ext/cargo-vendor/cranelift-native-0.102.1/src/lib.rs +0 -190
  288. data/ext/cargo-vendor/cranelift-wasm-0.102.1/.cargo-checksum.json +0 -1
  289. data/ext/cargo-vendor/cranelift-wasm-0.102.1/Cargo.toml +0 -97
  290. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/environ/dummy.rs +0 -953
  291. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/lib.rs +0 -64
  292. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/translation_utils.rs +0 -97
  293. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/.cargo-checksum.json +0 -1
  294. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/Cargo.toml +0 -93
  295. data/ext/cargo-vendor/wasi-common-15.0.1/.cargo-checksum.json +0 -1
  296. data/ext/cargo-vendor/wasi-common-15.0.1/Cargo.toml +0 -122
  297. data/ext/cargo-vendor/wasi-common-15.0.1/src/lib.rs +0 -73
  298. data/ext/cargo-vendor/wasi-common-15.0.1/src/snapshots/preview_1.rs +0 -1490
  299. data/ext/cargo-vendor/wasm-encoder-0.36.2/.cargo-checksum.json +0 -1
  300. data/ext/cargo-vendor/wasm-encoder-0.36.2/Cargo.toml +0 -37
  301. data/ext/cargo-vendor/wasm-encoder-0.36.2/README.md +0 -80
  302. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/aliases.rs +0 -160
  303. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/builder.rs +0 -455
  304. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/canonicals.rs +0 -159
  305. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/components.rs +0 -29
  306. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/exports.rs +0 -124
  307. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/imports.rs +0 -175
  308. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/instances.rs +0 -200
  309. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/modules.rs +0 -29
  310. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/names.rs +0 -149
  311. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/start.rs +0 -52
  312. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/types.rs +0 -771
  313. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component.rs +0 -168
  314. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/code.rs +0 -2989
  315. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/custom.rs +0 -73
  316. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/data.rs +0 -185
  317. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/dump.rs +0 -627
  318. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/elements.rs +0 -220
  319. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/exports.rs +0 -98
  320. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/functions.rs +0 -63
  321. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/globals.rs +0 -100
  322. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/imports.rs +0 -155
  323. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/linking.rs +0 -263
  324. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/memories.rs +0 -111
  325. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/names.rs +0 -265
  326. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/producers.rs +0 -180
  327. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/start.rs +0 -39
  328. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tables.rs +0 -115
  329. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tags.rs +0 -104
  330. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/types.rs +0 -584
  331. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core.rs +0 -168
  332. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/lib.rs +0 -215
  333. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/raw.rs +0 -30
  334. data/ext/cargo-vendor/wasmparser-0.116.1/.cargo-checksum.json +0 -1
  335. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.lock +0 -674
  336. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.toml +0 -60
  337. data/ext/cargo-vendor/wasmparser-0.116.1/README.md +0 -36
  338. data/ext/cargo-vendor/wasmparser-0.116.1/benches/benchmark.rs +0 -370
  339. data/ext/cargo-vendor/wasmparser-0.116.1/examples/simple.rs +0 -37
  340. data/ext/cargo-vendor/wasmparser-0.116.1/src/binary_reader.rs +0 -1706
  341. data/ext/cargo-vendor/wasmparser-0.116.1/src/define_types.rs +0 -782
  342. data/ext/cargo-vendor/wasmparser-0.116.1/src/lib.rs +0 -729
  343. data/ext/cargo-vendor/wasmparser-0.116.1/src/limits.rs +0 -58
  344. data/ext/cargo-vendor/wasmparser-0.116.1/src/parser.rs +0 -1612
  345. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/aliases.rs +0 -119
  346. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/canonicals.rs +0 -120
  347. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/exports.rs +0 -135
  348. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/imports.rs +0 -129
  349. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/instances.rs +0 -163
  350. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/names.rs +0 -102
  351. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/start.rs +0 -30
  352. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/types.rs +0 -549
  353. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component.rs +0 -17
  354. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/code.rs +0 -146
  355. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/coredumps.rs +0 -243
  356. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/custom.rs +0 -63
  357. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/data.rs +0 -96
  358. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/dylink0.rs +0 -132
  359. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/elements.rs +0 -152
  360. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/exports.rs +0 -65
  361. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/functions.rs +0 -17
  362. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/globals.rs +0 -49
  363. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/imports.rs +0 -76
  364. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/init.rs +0 -51
  365. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/memories.rs +0 -56
  366. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/names.rs +0 -153
  367. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/operators.rs +0 -354
  368. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/producers.rs +0 -83
  369. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tables.rs +0 -87
  370. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tags.rs +0 -32
  371. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/types.rs +0 -544
  372. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core.rs +0 -37
  373. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers.rs +0 -316
  374. data/ext/cargo-vendor/wasmparser-0.116.1/src/resources.rs +0 -398
  375. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/component.rs +0 -3203
  376. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/core.rs +0 -1341
  377. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/func.rs +0 -348
  378. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/names.rs +0 -859
  379. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/operators.rs +0 -3466
  380. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/types.rs +0 -4011
  381. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator.rs +0 -1603
  382. data/ext/cargo-vendor/wasmparser-0.116.1/tests/big-module.rs +0 -33
  383. data/ext/cargo-vendor/wasmtime-15.0.1/.cargo-checksum.json +0 -1
  384. data/ext/cargo-vendor/wasmtime-15.0.1/Cargo.toml +0 -202
  385. data/ext/cargo-vendor/wasmtime-15.0.1/src/compiler.rs +0 -682
  386. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/component.rs +0 -505
  387. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/func/typed.rs +0 -2398
  388. data/ext/cargo-vendor/wasmtime-15.0.1/src/config.rs +0 -2422
  389. data/ext/cargo-vendor/wasmtime-15.0.1/src/func.rs +0 -2428
  390. data/ext/cargo-vendor/wasmtime-15.0.1/src/lib.rs +0 -518
  391. data/ext/cargo-vendor/wasmtime-15.0.1/src/memory.rs +0 -996
  392. data/ext/cargo-vendor/wasmtime-15.0.1/src/module.rs +0 -1370
  393. data/ext/cargo-vendor/wasmtime-15.0.1/src/stack.rs +0 -73
  394. data/ext/cargo-vendor/wasmtime-15.0.1/src/v128.rs +0 -151
  395. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/.cargo-checksum.json +0 -1
  396. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/Cargo.toml +0 -22
  397. data/ext/cargo-vendor/wasmtime-cache-15.0.1/.cargo-checksum.json +0 -1
  398. data/ext/cargo-vendor/wasmtime-cache-15.0.1/Cargo.toml +0 -72
  399. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/lib.rs +0 -238
  400. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/worker.rs +0 -894
  401. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/.cargo-checksum.json +0 -1
  402. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/Cargo.toml +0 -58
  403. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/.cargo-checksum.json +0 -1
  404. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/Cargo.toml +0 -25
  405. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/.cargo-checksum.json +0 -1
  406. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/Cargo.toml +0 -103
  407. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler/component.rs +0 -959
  408. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler.rs +0 -1317
  409. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/expression.rs +0 -1250
  410. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/simulate.rs +0 -410
  411. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug.rs +0 -18
  412. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/func_environ.rs +0 -2746
  413. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/.cargo-checksum.json +0 -1
  414. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/Cargo.toml +0 -62
  415. data/ext/cargo-vendor/wasmtime-environ-15.0.1/.cargo-checksum.json +0 -1
  416. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.lock +0 -677
  417. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.toml +0 -116
  418. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/compilation.rs +0 -402
  419. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/compiler.rs +0 -47
  420. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/translate.rs +0 -951
  421. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/types.rs +0 -1870
  422. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/lib.rs +0 -59
  423. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module.rs +0 -1083
  424. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_environ.rs +0 -876
  425. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_types.rs +0 -78
  426. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/scopevec.rs +0 -57
  427. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/.cargo-checksum.json +0 -1
  428. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/Cargo.toml +0 -54
  429. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/lib.rs +0 -327
  430. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/unix.rs +0 -265
  431. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/windows.c +0 -9
  432. data/ext/cargo-vendor/wasmtime-jit-15.0.1/.cargo-checksum.json +0 -1
  433. data/ext/cargo-vendor/wasmtime-jit-15.0.1/Cargo.toml +0 -115
  434. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/code_memory.rs +0 -321
  435. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/instantiate.rs +0 -766
  436. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/lib.rs +0 -22
  437. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/miri.rs +0 -15
  438. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/systemv.rs +0 -90
  439. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/winx64.rs +0 -44
  440. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind.rs +0 -14
  441. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/.cargo-checksum.json +0 -1
  442. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/Cargo.toml +0 -58
  443. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/.cargo-checksum.json +0 -1
  444. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/Cargo.toml +0 -37
  445. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/.cargo-checksum.json +0 -1
  446. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/Cargo.toml +0 -126
  447. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/build.rs +0 -19
  448. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/proptest-regressions/instance/allocator/pooling/memory_pool.txt +0 -8
  449. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/cow.rs +0 -1060
  450. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/helpers.c +0 -108
  451. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/memory_pool.rs +0 -999
  452. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/stack_pool.rs +0 -242
  453. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/table_pool.rs +0 -225
  454. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/unix.rs +0 -56
  455. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/windows.rs +0 -38
  456. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling.rs +0 -708
  457. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/lib.rs +0 -279
  458. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/libcalls.rs +0 -775
  459. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mmap.rs +0 -226
  460. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/enabled.rs +0 -201
  461. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/pkru.rs +0 -93
  462. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/aarch64.rs +0 -42
  463. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/riscv64.rs +0 -45
  464. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/s390x.rs +0 -25
  465. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/x86_64.rs +0 -64
  466. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines.rs +0 -19
  467. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/aarch64.rs +0 -55
  468. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/riscv64.rs +0 -18
  469. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/s390x.rs +0 -22
  470. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/x86_64.rs +0 -20
  471. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace.rs +0 -291
  472. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/macos.rs +0 -492
  473. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/unix.rs +0 -402
  474. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/windows.rs +0 -89
  475. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers.rs +0 -815
  476. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/vmcontext.rs +0 -1197
  477. data/ext/cargo-vendor/wasmtime-types-15.0.1/.cargo-checksum.json +0 -1
  478. data/ext/cargo-vendor/wasmtime-types-15.0.1/Cargo.toml +0 -36
  479. data/ext/cargo-vendor/wasmtime-types-15.0.1/src/lib.rs +0 -504
  480. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/.cargo-checksum.json +0 -1
  481. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/Cargo.toml +0 -32
  482. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/.cargo-checksum.json +0 -1
  483. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/Cargo.toml +0 -248
  484. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/lib.rs +0 -135
  485. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/io.rs +0 -368
  486. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/network.rs +0 -515
  487. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/tcp.rs +0 -630
  488. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/udp.rs +0 -543
  489. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/mod.rs +0 -326
  490. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/preview1.rs +0 -2342
  491. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stdio.rs +0 -450
  492. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stream.rs +0 -182
  493. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/table.rs +0 -258
  494. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/command-extended.wit +0 -6
  495. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/command.wit +0 -7
  496. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/reactor.wit +0 -31
  497. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/proxy.wit +0 -33
  498. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/types.wit +0 -559
  499. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/test.wit +0 -22
  500. data/ext/cargo-vendor/wasmtime-winch-15.0.1/.cargo-checksum.json +0 -1
  501. data/ext/cargo-vendor/wasmtime-winch-15.0.1/Cargo.toml +0 -68
  502. data/ext/cargo-vendor/wasmtime-winch-15.0.1/src/compiler.rs +0 -242
  503. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/.cargo-checksum.json +0 -1
  504. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/Cargo.toml +0 -32
  505. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/.cargo-checksum.json +0 -1
  506. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/Cargo.toml +0 -22
  507. data/ext/cargo-vendor/wiggle-15.0.1/.cargo-checksum.json +0 -1
  508. data/ext/cargo-vendor/wiggle-15.0.1/Cargo.toml +0 -106
  509. data/ext/cargo-vendor/wiggle-15.0.1/src/lib.rs +0 -1198
  510. data/ext/cargo-vendor/wiggle-generate-15.0.1/.cargo-checksum.json +0 -1
  511. data/ext/cargo-vendor/wiggle-generate-15.0.1/Cargo.toml +0 -58
  512. data/ext/cargo-vendor/wiggle-generate-15.0.1/LICENSE +0 -220
  513. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/handle.rs +0 -84
  514. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/record.rs +0 -132
  515. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/variant.rs +0 -191
  516. data/ext/cargo-vendor/wiggle-macro-15.0.1/.cargo-checksum.json +0 -1
  517. data/ext/cargo-vendor/wiggle-macro-15.0.1/Cargo.toml +0 -55
  518. data/ext/cargo-vendor/wiggle-macro-15.0.1/LICENSE +0 -220
  519. data/ext/cargo-vendor/winch-codegen-0.13.1/.cargo-checksum.json +0 -1
  520. data/ext/cargo-vendor/winch-codegen-0.13.1/Cargo.toml +0 -67
  521. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/local.rs +0 -70
  522. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/mod.rs +0 -304
  523. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/call.rs +0 -353
  524. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/context.rs +0 -465
  525. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/control.rs +0 -456
  526. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/env.rs +0 -181
  527. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/mod.rs +0 -436
  528. data/ext/cargo-vendor/winch-codegen-0.13.1/src/frame/mod.rs +0 -189
  529. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/abi.rs +0 -267
  530. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/masm.rs +0 -436
  531. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/mod.rs +0 -136
  532. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/mod.rs +0 -218
  533. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/abi.rs +0 -410
  534. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/asm.rs +0 -1106
  535. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/masm.rs +0 -953
  536. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/mod.rs +0 -172
  537. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/regs.rs +0 -247
  538. data/ext/cargo-vendor/winch-codegen-0.13.1/src/masm.rs +0 -592
  539. data/ext/cargo-vendor/winch-codegen-0.13.1/src/stack.rs +0 -366
  540. data/ext/cargo-vendor/winch-codegen-0.13.1/src/trampoline.rs +0 -489
  541. data/ext/cargo-vendor/winch-codegen-0.13.1/src/visitor.rs +0 -1339
  542. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/LICENSE +0 -0
  543. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/README.md +0 -0
  544. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/map.rs +0 -0
  545. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/node.rs +0 -0
  546. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/path.rs +0 -0
  547. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/pool.rs +0 -0
  548. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/set.rs +0 -0
  549. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/LICENSE +0 -0
  550. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/README.md +0 -0
  551. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/benches/x64-evex-encoding.rs +0 -0
  552. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/build.rs +0 -0
  553. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/alias_analysis.rs +0 -0
  554. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/binemit/stack_map.rs +0 -0
  555. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/bitset.rs +0 -0
  556. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cfg_printer.rs +0 -0
  557. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/constant_hash.rs +0 -0
  558. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/context.rs +0 -0
  559. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ctxhash.rs +0 -0
  560. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cursor.rs +0 -0
  561. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/data_value.rs +0 -0
  562. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dbg.rs +0 -0
  563. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dce.rs +0 -0
  564. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dominator_tree.rs +0 -0
  565. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/egraph/domtree.rs +0 -0
  566. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/flowgraph.rs +0 -0
  567. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/fx.rs +0 -0
  568. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/incremental_cache.rs +0 -0
  569. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/inst_predicates.rs +0 -0
  570. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/atomic_rmw_op.rs +0 -0
  571. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/builder.rs +0 -0
  572. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/condcodes.rs +0 -0
  573. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/constant.rs +0 -0
  574. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/dynamic_type.rs +0 -0
  575. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/entities.rs +0 -0
  576. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extfunc.rs +0 -0
  577. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extname.rs +0 -0
  578. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/function.rs +0 -0
  579. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/globalvalue.rs +0 -0
  580. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/immediates.rs +0 -0
  581. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/instructions.rs +0 -0
  582. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/jumptable.rs +0 -0
  583. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/known_symbol.rs +0 -0
  584. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/layout.rs +0 -0
  585. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/libcall.rs +0 -0
  586. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memflags.rs +0 -0
  587. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memtype.rs +0 -0
  588. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/mod.rs +0 -0
  589. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/progpoint.rs +0 -0
  590. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/sourceloc.rs +0 -0
  591. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/stackslot.rs +0 -0
  592. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/table.rs +0 -0
  593. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/trapcode.rs +0 -0
  594. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/types.rs +0 -0
  595. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/abi.rs +0 -0
  596. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/args.rs +0 -0
  597. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit.rs +0 -0
  598. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  599. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/imms.rs +0 -0
  600. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/mod.rs +0 -0
  601. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/regs.rs +0 -0
  602. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  603. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind.rs +0 -0
  604. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst.isle +0 -0
  605. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst_neon.isle +0 -0
  606. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  607. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.isle +0 -0
  608. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.rs +0 -0
  609. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  610. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/mod.rs +0 -0
  611. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/pcc.rs +0 -0
  612. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/settings.rs +0 -0
  613. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/call_conv.rs +0 -0
  614. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/mod.rs +0 -0
  615. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/abi.rs +0 -0
  616. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/args.rs +0 -0
  617. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit.rs +0 -0
  618. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  619. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/encode.rs +0 -0
  620. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/imms.rs +0 -0
  621. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/regs.rs +0 -0
  622. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  623. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind.rs +0 -0
  624. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/vector.rs +0 -0
  625. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst_vector.isle +0 -0
  626. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  627. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle.rs +0 -0
  628. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower.rs +0 -0
  629. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/mod.rs +0 -0
  630. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/settings.rs +0 -0
  631. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/abi.rs +0 -0
  632. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/args.rs +0 -0
  633. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit.rs +0 -0
  634. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit_tests.rs +0 -0
  635. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/imms.rs +0 -0
  636. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/mod.rs +0 -0
  637. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/regs.rs +0 -0
  638. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  639. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind.rs +0 -0
  640. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst.isle +0 -0
  641. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  642. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.isle +0 -0
  643. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.rs +0 -0
  644. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/mod.rs +0 -0
  645. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/settings.rs +0 -0
  646. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/systemv.rs +0 -0
  647. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/winx64.rs +0 -0
  648. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind.rs +0 -0
  649. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/abi.rs +0 -0
  650. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/evex.rs +0 -0
  651. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/mod.rs +0 -0
  652. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/rex.rs +0 -0
  653. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/vex.rs +0 -0
  654. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/args.rs +0 -0
  655. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit.rs +0 -0
  656. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_state.rs +0 -0
  657. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_tests.rs +0 -0
  658. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/mod.rs +0 -0
  659. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/regs.rs +0 -0
  660. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  661. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  662. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind.rs +0 -0
  663. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst.isle +0 -0
  664. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  665. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.isle +0 -0
  666. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.rs +0 -0
  667. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/mod.rs +0 -0
  668. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/settings.rs +0 -0
  669. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/iterators.rs +0 -0
  670. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/globalvalue.rs +0 -0
  671. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/mod.rs +0 -0
  672. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/table.rs +0 -0
  673. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/loop_analysis.rs +0 -0
  674. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/abi.rs +0 -0
  675. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/blockorder.rs +0 -0
  676. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/buffer.rs +0 -0
  677. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/compile.rs +0 -0
  678. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/helpers.rs +0 -0
  679. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/inst_common.rs +0 -0
  680. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/lower.rs +0 -0
  681. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/mod.rs +0 -0
  682. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/pcc.rs +0 -0
  683. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/reg.rs +0 -0
  684. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/valueregs.rs +0 -0
  685. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/vcode.rs +0 -0
  686. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/nan_canonicalization.rs +0 -0
  687. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/README.md +0 -0
  688. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/bitops.isle +0 -0
  689. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/extends.isle +0 -0
  690. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/generated_code.rs +0 -0
  691. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/remat.isle +0 -0
  692. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/shifts.isle +0 -0
  693. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/vector.isle +0 -0
  694. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_lower.isle +0 -0
  695. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_opt.isle +0 -0
  696. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/print_errors.rs +0 -0
  697. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/remove_constant_phis.rs +0 -0
  698. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/result.rs +0 -0
  699. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/scoped_hash_map.rs +0 -0
  700. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/settings.rs +0 -0
  701. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/souper_harvest.rs +0 -0
  702. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/unreachable_code.rs +0 -0
  703. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/value_label.rs +0 -0
  704. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/verifier/mod.rs +0 -0
  705. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/write.rs +0 -0
  706. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/LICENSE +0 -0
  707. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/README.md +0 -0
  708. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/formats.rs +0 -0
  709. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/instructions.rs +0 -0
  710. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/isa.rs +0 -0
  711. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/mod.rs +0 -0
  712. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/operands.rs +0 -0
  713. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/settings.rs +0 -0
  714. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/types.rs +0 -0
  715. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/typevar.rs +0 -0
  716. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/constant_hash.rs +0 -0
  717. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/error.rs +0 -0
  718. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_inst.rs +0 -0
  719. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_settings.rs +0 -0
  720. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_types.rs +0 -0
  721. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/arm64.rs +0 -0
  722. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/mod.rs +0 -0
  723. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/riscv64.rs +0 -0
  724. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/s390x.rs +0 -0
  725. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/x86.rs +0 -0
  726. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/lib.rs +0 -0
  727. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/entities.rs +0 -0
  728. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/formats.rs +0 -0
  729. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/immediates.rs +0 -0
  730. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/instructions.rs +0 -0
  731. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/mod.rs +0 -0
  732. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/settings.rs +0 -0
  733. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/types.rs +0 -0
  734. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/srcgen.rs +0 -0
  735. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/unique_table.rs +0 -0
  736. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/LICENSE +0 -0
  737. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/README.md +0 -0
  738. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constant_hash.rs +0 -0
  739. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constants.rs +0 -0
  740. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/LICENSE +0 -0
  741. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/README.md +0 -0
  742. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/chaos.rs +0 -0
  743. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/lib.rs +0 -0
  744. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/zero_sized.rs +0 -0
  745. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/LICENSE +0 -0
  746. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/README.md +0 -0
  747. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/boxed_slice.rs +0 -0
  748. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/iter.rs +0 -0
  749. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/keys.rs +0 -0
  750. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/list.rs +0 -0
  751. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/map.rs +0 -0
  752. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/packed_option.rs +0 -0
  753. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/set.rs +0 -0
  754. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/sparse.rs +0 -0
  755. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/LICENSE +0 -0
  756. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/README.md +0 -0
  757. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/frontend.rs +0 -0
  758. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/ssa.rs +0 -0
  759. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/switch.rs +0 -0
  760. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/variable.rs +0 -0
  761. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/README.md +0 -0
  762. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/build.rs +0 -0
  763. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bad_converters.isle +0 -0
  764. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  765. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  766. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/error1.isle +0 -0
  767. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/extra_parens.isle +0 -0
  768. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_expression.isle +0 -0
  769. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_rhs.isle +0 -0
  770. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_internal_etor.isle +0 -0
  771. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_prio.isle +0 -0
  772. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows.isle +0 -0
  773. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows_main.rs +0 -0
  774. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets.isle +0 -0
  775. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets_main.rs +0 -0
  776. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_constructor.isle +0 -0
  777. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_extractor.isle +0 -0
  778. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test.isle +0 -0
  779. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test_main.rs +0 -0
  780. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/bound_var.isle +0 -0
  781. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/construct_and_extract.isle +0 -0
  782. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions.isle +0 -0
  783. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions_extern.isle +0 -0
  784. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/let.isle +0 -0
  785. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/nodebug.isle +0 -0
  786. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/prio_trie_bug.isle +0 -0
  787. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test2.isle +0 -0
  788. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test3.isle +0 -0
  789. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test4.isle +0 -0
  790. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/tutorial.isle +0 -0
  791. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst.isle +0 -0
  792. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst_main.rs +0 -0
  793. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing.isle +0 -0
  794. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing_main.rs +0 -0
  795. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/ast.rs +0 -0
  796. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/compile.rs +0 -0
  797. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/error.rs +0 -0
  798. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lexer.rs +0 -0
  799. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lib.rs +0 -0
  800. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/log.rs +0 -0
  801. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/overlap.rs +0 -0
  802. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/parser.rs +0 -0
  803. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/sema.rs +0 -0
  804. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/serialize.rs +0 -0
  805. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/trie_again.rs +0 -0
  806. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/tests/run_tests.rs +0 -0
  807. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/LICENSE +0 -0
  808. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/README.md +0 -0
  809. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/src/riscv.rs +0 -0
  810. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/LICENSE +0 -0
  811. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/README.md +0 -0
  812. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator/bounds_checks.rs +0 -0
  813. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator.rs +0 -0
  814. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/mod.rs +0 -0
  815. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/spec.rs +0 -0
  816. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/func_translator.rs +0 -0
  817. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/heap.rs +0 -0
  818. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/module_translator.rs +0 -0
  819. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/sections_translator.rs +0 -0
  820. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/state.rs +0 -0
  821. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/tests/wasm_testsuite.rs +0 -0
  822. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/arith.wat +0 -0
  823. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/br_table.wat +0 -0
  824. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call-simd.wat +0 -0
  825. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call.wat +0 -0
  826. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fannkuch.wat +0 -0
  827. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fasta.wat +0 -0
  828. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_ifs.wat +0 -0
  829. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_primes.wat +0 -0
  830. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fac-multi-value.wat +0 -0
  831. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fibonacci.wat +0 -0
  832. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/globals.wat +0 -0
  833. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall-simd.wat +0 -0
  834. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall.wat +0 -0
  835. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-0.wat +0 -0
  836. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-1.wat +0 -0
  837. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-2.wat +0 -0
  838. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-3.wat +0 -0
  839. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-4.wat +0 -0
  840. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-5.wat +0 -0
  841. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-6.wat +0 -0
  842. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params-2.wat +0 -0
  843. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params.wat +0 -0
  844. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/issue-1306-name-section-with-u32-max-function-index.wasm +0 -0
  845. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/memory.wat +0 -0
  846. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-0.wat +0 -0
  847. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-1.wat +0 -0
  848. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-10.wat +0 -0
  849. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-11.wat +0 -0
  850. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-12.wat +0 -0
  851. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-13.wat +0 -0
  852. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-14.wat +0 -0
  853. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-15.wat +0 -0
  854. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-16.wat +0 -0
  855. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-17.wat +0 -0
  856. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-2.wat +0 -0
  857. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-3.wat +0 -0
  858. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-4.wat +0 -0
  859. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-5.wat +0 -0
  860. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-6.wat +0 -0
  861. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-7.wat +0 -0
  862. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-8.wat +0 -0
  863. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-9.wat +0 -0
  864. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/nullref.wat +0 -0
  865. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/passive-data.wat +0 -0
  866. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2303.wat +0 -0
  867. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2559.wat +0 -0
  868. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/ref-func-0.wat +0 -0
  869. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/rust_fannkuch.wat +0 -0
  870. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/select.wat +0 -0
  871. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd-store.wat +0 -0
  872. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd.wat +0 -0
  873. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/table-copy.wat +0 -0
  874. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/unreachable_code.wat +0 -0
  875. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/LICENSE +0 -0
  876. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/README.md +0 -0
  877. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/clocks.rs +0 -0
  878. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/dir.rs +0 -0
  879. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/file.rs +0 -0
  880. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/lib.rs +0 -0
  881. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/net.rs +0 -0
  882. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/unix.rs +0 -0
  883. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/windows.rs +0 -0
  884. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched.rs +0 -0
  885. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/stdio.rs +0 -0
  886. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/LICENSE +0 -0
  887. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/README.md +0 -0
  888. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/README.md +0 -0
  889. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/docs/README.md +0 -0
  890. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/README.md +0 -0
  891. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/docs.md +0 -0
  892. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  893. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  894. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  895. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  896. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  897. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  898. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  899. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  900. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  901. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  902. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  903. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/docs.md +0 -0
  904. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  905. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/wasi_unstable.witx +0 -0
  906. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.html +0 -0
  907. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.md +0 -0
  908. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  909. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  910. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposal-template/README.md +0 -0
  911. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposals/README.md +0 -0
  912. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/snapshots/README.md +0 -0
  913. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/standard/README.md +0 -0
  914. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/build.rs +0 -0
  915. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/clocks.rs +0 -0
  916. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/ctx.rs +0 -0
  917. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/dir.rs +0 -0
  918. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/error.rs +0 -0
  919. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/file.rs +0 -0
  920. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/pipe.rs +0 -0
  921. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/random.rs +0 -0
  922. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched/subscription.rs +0 -0
  923. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched.rs +0 -0
  924. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/mod.rs +0 -0
  925. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_0.rs +0 -0
  926. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_1/error.rs +0 -0
  927. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/string_array.rs +0 -0
  928. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/table.rs +0 -0
  929. /data/ext/cargo-vendor/{wasm-encoder-0.36.2 → wasmtime-16.0.0}/LICENSE +0 -0
  930. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/README.md +0 -0
  931. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/code.rs +0 -0
  932. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/host.rs +0 -0
  933. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/options.rs +0 -0
  934. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func.rs +0 -0
  935. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/instance.rs +0 -0
  936. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/linker.rs +0 -0
  937. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/matching.rs +0 -0
  938. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/mod.rs +0 -0
  939. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/resources.rs +0 -0
  940. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/storage.rs +0 -0
  941. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/store.rs +0 -0
  942. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/types.rs +0 -0
  943. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/values.rs +0 -0
  944. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/coredump.rs +0 -0
  945. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine/serialization.rs +0 -0
  946. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine.rs +0 -0
  947. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/global.rs +0 -0
  948. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/table.rs +0 -0
  949. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals.rs +0 -0
  950. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/func/typed.rs +0 -0
  951. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/instance.rs +0 -0
  952. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/limits.rs +0 -0
  953. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/linker.rs +0 -0
  954. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/module/registry.rs +0 -0
  955. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/profiling.rs +0 -0
  956. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/ref.rs +0 -0
  957. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/resources.rs +0 -0
  958. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/signatures.rs +0 -0
  959. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/context.rs +0 -0
  960. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/data.rs +0 -0
  961. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/func_refs.rs +0 -0
  962. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store.rs +0 -0
  963. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/func.rs +0 -0
  964. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/global.rs +0 -0
  965. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/memory.rs +0 -0
  966. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/table.rs +0 -0
  967. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline.rs +0 -0
  968. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trap.rs +0 -0
  969. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types/matching.rs +0 -0
  970. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types.rs +0 -0
  971. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/unix.rs +0 -0
  972. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/values.rs +0 -0
  973. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/windows.rs +0 -0
  974. /data/ext/cargo-vendor/{wasmtime-asm-macros-15.0.1 → wasmtime-asm-macros-16.0.0}/src/lib.rs +0 -0
  975. /data/ext/cargo-vendor/{wasmparser-0.116.1 → wasmtime-cache-16.0.0}/LICENSE +0 -0
  976. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/build.rs +0 -0
  977. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config/tests.rs +0 -0
  978. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config.rs +0 -0
  979. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/tests.rs +0 -0
  980. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  981. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests.rs +0 -0
  982. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/tests/cache_write_default_config.rs +0 -0
  983. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/bindgen.rs +0 -0
  984. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/component.rs +0 -0
  985. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/lib.rs +0 -0
  986. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/char.wit +0 -0
  987. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/conventions.wit +0 -0
  988. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/direct-import.wit +0 -0
  989. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/empty.wit +0 -0
  990. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/flags.wit +0 -0
  991. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/floats.wit +0 -0
  992. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/function-new.wit +0 -0
  993. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/integers.wit +0 -0
  994. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/lists.wit +0 -0
  995. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/many-arguments.wit +0 -0
  996. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multi-return.wit +0 -0
  997. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  998. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  999. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/root.wit +0 -0
  1000. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/records.wit +0 -0
  1001. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/rename.wit +0 -0
  1002. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-export.wit +0 -0
  1003. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-import.wit +0 -0
  1004. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/share-types.wit +0 -0
  1005. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-functions.wit +0 -0
  1006. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-lists.wit +0 -0
  1007. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-wasi.wit +0 -0
  1008. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/small-anonymous.wit +0 -0
  1009. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-default.wit +0 -0
  1010. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-export.wit +0 -0
  1011. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke.wit +0 -0
  1012. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/strings.wit +0 -0
  1013. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/use-paths.wit +0 -0
  1014. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/variants.wit +0 -0
  1015. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  1016. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen.rs +0 -0
  1017. /data/ext/cargo-vendor/{wasmtime-component-util-15.0.1 → wasmtime-component-util-16.0.0}/src/lib.rs +0 -0
  1018. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-cranelift-16.0.0}/LICENSE +0 -0
  1019. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/SECURITY.md +0 -0
  1020. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/builder.rs +0 -0
  1021. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/gc.rs +0 -0
  1022. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/address_transform.rs +0 -0
  1023. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/attr.rs +0 -0
  1024. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/line_program.rs +0 -0
  1025. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/mod.rs +0 -0
  1026. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  1027. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/refs.rs +0 -0
  1028. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/unit.rs +0 -0
  1029. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/utils.rs +0 -0
  1030. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/write_debuginfo.rs +0 -0
  1031. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/lib.rs +0 -0
  1032. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/compiled_function.rs +0 -0
  1033. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/isa_builder.rs +0 -0
  1034. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/lib.rs +0 -0
  1035. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/obj.rs +0 -0
  1036. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-environ-16.0.0}/LICENSE +0 -0
  1037. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/examples/factc.rs +0 -0
  1038. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/address_map.rs +0 -0
  1039. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/builtin.rs +0 -0
  1040. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/dfg.rs +0 -0
  1041. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/info.rs +0 -0
  1042. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/adapt.rs +0 -0
  1043. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/inline.rs +0 -0
  1044. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/types/resources.rs +0 -0
  1045. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1046. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component.rs +0 -0
  1047. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/core_types.rs +0 -0
  1048. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/signature.rs +0 -0
  1049. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/trampoline.rs +0 -0
  1050. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/transcode.rs +0 -0
  1051. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/traps.rs +0 -0
  1052. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact.rs +0 -0
  1053. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/obj.rs +0 -0
  1054. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/ref_bits.rs +0 -0
  1055. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/stack_map.rs +0 -0
  1056. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/trap_encoding.rs +0 -0
  1057. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/tunables.rs +0 -0
  1058. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/vmoffsets.rs +0 -0
  1059. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-fiber-16.0.0}/LICENSE +0 -0
  1060. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/build.rs +0 -0
  1061. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/aarch64.rs +0 -0
  1062. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/arm.rs +0 -0
  1063. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/riscv64.rs +0 -0
  1064. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/s390x.S +0 -0
  1065. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86.rs +0 -0
  1066. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86_64.rs +0 -0
  1067. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/windows.rs +0 -0
  1068. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-jit-16.0.0}/LICENSE +0 -0
  1069. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/debug.rs +0 -0
  1070. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/demangling.rs +0 -0
  1071. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/jitdump.rs +0 -0
  1072. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/perfmap.rs +0 -0
  1073. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/vtune.rs +0 -0
  1074. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling.rs +0 -0
  1075. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/README.md +0 -0
  1076. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/gdb_jit_int.rs +0 -0
  1077. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/lib.rs +0 -0
  1078. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/perf_jitdump.rs +0 -0
  1079. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/lib.rs +0 -0
  1080. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/libc.rs +0 -0
  1081. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/miri.rs +0 -0
  1082. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/win.rs +0 -0
  1083. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-runtime-16.0.0}/LICENSE +0 -0
  1084. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/trampolines → wasmtime-runtime-16.0.0/src/arch}/s390x.S +0 -0
  1085. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/libcalls.rs +0 -0
  1086. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/resources.rs +0 -0
  1087. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component.rs +0 -0
  1088. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/debug_builtins.rs +0 -0
  1089. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/export.rs +0 -0
  1090. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/externref.rs +0 -0
  1091. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/imports.rs +0 -0
  1092. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/on_demand.rs +0 -0
  1093. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  1094. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator.rs +0 -0
  1095. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance.rs +0 -0
  1096. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/memory.rs +0 -0
  1097. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mmap_vec.rs +0 -0
  1098. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/module_id.rs +0 -0
  1099. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/disabled.rs +0 -0
  1100. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/mod.rs +0 -0
  1101. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/sys.rs +0 -0
  1102. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/parking_spot.rs +0 -0
  1103. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/send_sync_ptr.rs +0 -0
  1104. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/store_box.rs +0 -0
  1105. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/miri.rs → wasmtime-runtime-16.0.0/src/sys/miri/mmap.rs} +0 -0
  1106. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/unix.rs → wasmtime-runtime-16.0.0/src/sys/unix/mmap.rs} +0 -0
  1107. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/windows.rs → wasmtime-runtime-16.0.0/src/sys/windows/mmap.rs} +0 -0
  1108. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/table.rs +0 -0
  1109. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/traphandlers/coredump.rs +0 -0
  1110. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/vmcontext/vm_host_func_context.rs +0 -0
  1111. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-types-16.0.0}/LICENSE +0 -0
  1112. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wasmtime-types-16.0.0}/src/error.rs +0 -0
  1113. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-15.0.1 → wasmtime-versioned-export-macros-16.0.0}/src/lib.rs +0 -0
  1114. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-wasi-16.0.0}/LICENSE +0 -0
  1115. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/README.md +0 -0
  1116. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/build.rs +0 -0
  1117. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks/host.rs +0 -0
  1118. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks.rs +0 -0
  1119. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/command.rs +0 -0
  1120. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ctx.rs +0 -0
  1121. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/error.rs +0 -0
  1122. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/filesystem.rs +0 -0
  1123. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/clocks.rs +0 -0
  1124. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/env.rs +0 -0
  1125. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/exit.rs +0 -0
  1126. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem/sync.rs +0 -0
  1127. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem.rs +0 -0
  1128. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/instance_network.rs +0 -0
  1129. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/mod.rs +0 -0
  1130. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/random.rs +0 -0
  1131. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/tcp_create_socket.rs +0 -0
  1132. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/udp_create_socket.rs +0 -0
  1133. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ip_name_lookup.rs +0 -0
  1134. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/network.rs +0 -0
  1135. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/pipe.rs +0 -0
  1136. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/poll.rs +0 -0
  1137. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/random.rs +0 -0
  1138. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/stdio/worker_thread_stdin.rs +0 -0
  1139. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/tcp.rs +0 -0
  1140. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/udp.rs +0 -0
  1141. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/write_stream.rs +0 -0
  1142. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/environment.wit +0 -0
  1143. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/exit.wit +0 -0
  1144. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/run.wit +0 -0
  1145. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/stdio.wit +0 -0
  1146. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/terminal.wit +0 -0
  1147. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1148. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/wall-clock.wit +0 -0
  1149. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/world.wit +0 -0
  1150. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/preopens.wit +0 -0
  1151. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/types.wit +0 -0
  1152. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/world.wit +0 -0
  1153. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/http/handler.wit +0 -0
  1154. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/error.wit +0 -0
  1155. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/poll.wit +0 -0
  1156. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/streams.wit +0 -0
  1157. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/world.wit +0 -0
  1158. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure-seed.wit +0 -0
  1159. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure.wit +0 -0
  1160. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/random.wit +0 -0
  1161. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/world.wit +0 -0
  1162. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/instance-network.wit +0 -0
  1163. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1164. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/network.wit +0 -0
  1165. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1166. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp.wit +0 -0
  1167. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1168. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp.wit +0 -0
  1169. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/world.wit +0 -0
  1170. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/typenames.witx +0 -0
  1171. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/wasi_snapshot_preview1.witx +0 -0
  1172. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/LICENSE +0 -0
  1173. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/builder.rs +0 -0
  1174. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/lib.rs +0 -0
  1175. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/lib.rs +0 -0
  1176. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/rust.rs +0 -0
  1177. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/source.rs +0 -0
  1178. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/types.rs +0 -0
  1179. /data/ext/cargo-vendor/{wasmtime-wmemcheck-15.0.1 → wasmtime-wmemcheck-16.0.0}/src/lib.rs +0 -0
  1180. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wiggle-16.0.0}/LICENSE +0 -0
  1181. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/README.md +0 -0
  1182. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/borrow.rs +0 -0
  1183. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/error.rs +0 -0
  1184. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/guest_type.rs +0 -0
  1185. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/region.rs +0 -0
  1186. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/wasmtime.rs +0 -0
  1187. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wiggle-generate-16.0.0}/LICENSE +0 -0
  1188. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/README.md +0 -0
  1189. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/codegen_settings.rs +0 -0
  1190. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/config.rs +0 -0
  1191. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/funcs.rs +0 -0
  1192. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lib.rs +0 -0
  1193. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lifetimes.rs +0 -0
  1194. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/module_trait.rs +0 -0
  1195. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/names.rs +0 -0
  1196. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/error.rs +0 -0
  1197. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/flags.rs +0 -0
  1198. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/mod.rs +0 -0
  1199. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/wasmtime.rs +0 -0
  1200. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-macro-16.0.0}/LICENSE +0 -0
  1201. /data/ext/cargo-vendor/{wiggle-macro-15.0.1 → wiggle-macro-16.0.0}/src/lib.rs +0 -0
  1202. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/LICENSE +0 -0
  1203. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/build.rs +0 -0
  1204. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/codegen/builtin.rs +0 -0
  1205. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/address.rs +0 -0
  1206. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/asm.rs +0 -0
  1207. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/regs.rs +0 -0
  1208. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/reg.rs +0 -0
  1209. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/x64/address.rs +0 -0
  1210. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/lib.rs +0 -0
  1211. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regalloc.rs +0 -0
  1212. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regset.rs +0 -0
@@ -0,0 +1,1682 @@
1
+ //! Proof-carrying code. We attach "facts" to values and then check
2
+ //! that they remain true after compilation.
3
+ //!
4
+ //! A few key design principle of this approach are:
5
+ //!
6
+ //! - The producer of the IR provides the axioms. All "ground truth",
7
+ //! such as what memory is accessible -- is meant to come by way of
8
+ //! facts on the function arguments and global values. In some
9
+ //! sense, all we are doing here is validating the "internal
10
+ //! consistency" of the facts that are provided on values, and the
11
+ //! actions performed on those values.
12
+ //!
13
+ //! - We do not derive and forward-propagate facts eagerly. Rather,
14
+ //! the producer needs to provide breadcrumbs -- a "proof witness"
15
+ //! of sorts -- to allow the checking to complete. That means that
16
+ //! as an address is computed, or pointer chains are dereferenced,
17
+ //! each intermediate value will likely have some fact attached.
18
+ //!
19
+ //! This does create more verbose IR, but a significant positive
20
+ //! benefit is that it avoids unnecessary work: we do not build up a
21
+ //! knowledge base that effectively encodes the integer ranges of
22
+ //! many or most values in the program. Rather, we only check
23
+ //! specifically the memory-access sequences. In practice, each such
24
+ //! sequence is likely to be a carefully-controlled sequence of IR
25
+ //! operations from, e.g., a sandboxing compiler (such as
26
+ //! `cranelift-wasm`) so adding annotations here to communicate
27
+ //! intent (ranges, bounds-checks, and the like) is no problem.
28
+ //!
29
+ //! Facts are attached to SSA values in CLIF, and are maintained
30
+ //! through optimizations and through lowering. They are thus also
31
+ //! present on VRegs in the VCode. In theory, facts could be checked
32
+ //! at either level, though in practice it is most useful to check
33
+ //! them at the VCode level if the goal is an end-to-end verification
34
+ //! of certain properties (e.g., memory sandboxing).
35
+ //!
36
+ //! Checking facts entails visiting each instruction that defines a
37
+ //! value with a fact, and checking the result's fact against the
38
+ //! facts on arguments and the operand. For VCode, this is
39
+ //! fundamentally a question of the target ISA's semantics, so we call
40
+ //! into the `LowerBackend` for this. Note that during checking there
41
+ //! is also limited forward propagation / inference, but only within
42
+ //! an instruction: for example, an addressing mode commonly can
43
+ //! include an addition, multiplication/shift, or extend operation,
44
+ //! and there is no way to attach facts to the intermediate values
45
+ //! "inside" the instruction, so instead the backend can use
46
+ //! `FactContext::add()` and friends to forward-propagate facts.
47
+ //!
48
+ //! TODO:
49
+ //!
50
+ //! Deployment:
51
+ //! - Add to fuzzing
52
+ //! - Turn on during wasm spec-tests
53
+ //!
54
+ //! More checks:
55
+ //! - Check that facts on `vmctx` GVs are subsumed by the actual facts
56
+ //! on the vmctx arg in block0 (function arg).
57
+ //!
58
+ //! Generality:
59
+ //! - facts on outputs (in func signature)?
60
+ //! - Implement checking at the CLIF level as well.
61
+ //! - Check instructions that can trap as well?
62
+ //!
63
+ //! Nicer errors:
64
+ //! - attach instruction index or some other identifier to errors
65
+ //!
66
+ //! Text format cleanup:
67
+ //! - make the bitwidth on `max` facts optional in the CLIF text
68
+ //! format?
69
+ //! - make offset in `mem` fact optional in the text format?
70
+ //!
71
+ //! Bikeshed colors (syntax):
72
+ //! - Put fact bang-annotations after types?
73
+ //! `v0: i64 ! fact(..)` vs. `v0 ! fact(..): i64`
74
+
75
+ use crate::ir;
76
+ use crate::ir::types::*;
77
+ use crate::isa::TargetIsa;
78
+ use crate::machinst::{BlockIndex, LowerBackend, VCode};
79
+ use crate::trace;
80
+ use regalloc2::Function as _;
81
+ use std::fmt;
82
+
83
+ #[cfg(feature = "enable-serde")]
84
+ use serde_derive::{Deserialize, Serialize};
85
+
86
+ /// The result of checking proof-carrying-code facts.
87
+ pub type PccResult<T> = std::result::Result<T, PccError>;
88
+
89
+ /// An error or inconsistency discovered when checking proof-carrying
90
+ /// code.
91
+ #[derive(Debug, Clone)]
92
+ pub enum PccError {
93
+ /// An operation wraps around, invalidating the stated value
94
+ /// range.
95
+ Overflow,
96
+ /// An input to an operator that produces a fact-annotated value
97
+ /// does not have a fact describing it, and one is needed.
98
+ MissingFact,
99
+ /// A derivation of an output fact is unsupported (incorrect or
100
+ /// not derivable).
101
+ UnsupportedFact,
102
+ /// A block parameter claims a fact that one of its predecessors
103
+ /// does not support.
104
+ UnsupportedBlockparam,
105
+ /// A memory access is out of bounds.
106
+ OutOfBounds,
107
+ /// Proof-carrying-code checking is not implemented for a
108
+ /// particular compiler backend.
109
+ UnimplementedBackend,
110
+ /// Proof-carrying-code checking is not implemented for a
111
+ /// particular instruction that instruction-selection chose. This
112
+ /// is an internal compiler error.
113
+ UnimplementedInst,
114
+ /// Access to an invalid or undefined field offset in a struct.
115
+ InvalidFieldOffset,
116
+ /// Access to a field via the wrong type.
117
+ BadFieldType,
118
+ /// Store to a read-only field.
119
+ WriteToReadOnlyField,
120
+ /// Store of data to a field with a fact that does not subsume the
121
+ /// field's fact.
122
+ InvalidStoredFact,
123
+ }
124
+
125
+ /// A fact on a value.
126
+ #[derive(Clone, Debug, Hash, PartialEq, Eq)]
127
+ #[cfg_attr(feature = "enable-serde", derive(Serialize, Deserialize))]
128
+ pub enum Fact {
129
+ /// A bitslice of a value (up to a bitwidth) is within the given
130
+ /// integer range.
131
+ ///
132
+ /// The slicing behavior is needed because this fact can describe
133
+ /// both an SSA `Value`, whose entire value is well-defined, and a
134
+ /// `VReg` in VCode, whose bits beyond the type stored in that
135
+ /// register are don't-care (undefined).
136
+ Range {
137
+ /// The bitwidth of bits we care about, from the LSB upward.
138
+ bit_width: u16,
139
+ /// The minimum value that the bitslice can take
140
+ /// (inclusive). The range is unsigned: the specified bits of
141
+ /// the actual value will be greater than or equal to this
142
+ /// value, as evaluated by an unsigned integer comparison.
143
+ min: u64,
144
+ /// The maximum value that the bitslice can take
145
+ /// (inclusive). The range is unsigned: the specified bits of
146
+ /// the actual value will be less than or equal to this value,
147
+ /// as evaluated by an unsigned integer comparison.
148
+ max: u64,
149
+ },
150
+
151
+ /// A value bounded by a global value.
152
+ ///
153
+ /// The range is in `(min_GV + min_offset)..(max_GV +
154
+ /// max_offset)`, inclusive on the lower and upper bound.
155
+ DynamicRange {
156
+ /// The bitwidth of bits we care about, from the LSB upward.
157
+ bit_width: u16,
158
+ /// The lower bound, inclusive.
159
+ min: Expr,
160
+ /// The upper bound, inclusive.
161
+ max: Expr,
162
+ },
163
+
164
+ /// A pointer to a memory type.
165
+ Mem {
166
+ /// The memory type.
167
+ ty: ir::MemoryType,
168
+ /// The minimum offset into the memory type, inclusive.
169
+ min_offset: u64,
170
+ /// The maximum offset into the memory type, inclusive.
171
+ max_offset: u64,
172
+ /// This pointer can also be null.
173
+ nullable: bool,
174
+ },
175
+
176
+ /// A pointer to a memory type, dynamically bounded. The pointer
177
+ /// is within `(GV_min+offset_min)..(GV_max+offset_max)`
178
+ /// (inclusive on both ends) in the memory type.
179
+ DynamicMem {
180
+ /// The memory type.
181
+ ty: ir::MemoryType,
182
+ /// The lower bound, inclusive.
183
+ min: Expr,
184
+ /// The upper bound, inclusive.
185
+ max: Expr,
186
+ /// This pointer can also be null.
187
+ nullable: bool,
188
+ },
189
+
190
+ /// A definition of a value to be used as a symbol in
191
+ /// BaseExprs. There can only be one of these per value number.
192
+ ///
193
+ /// Note that this differs from a `DynamicRange` specifying that
194
+ /// some value in the program is the same as `value`. A `def(v1)`
195
+ /// fact is propagated to machine code and serves as a source of
196
+ /// truth: the value or location labeled with this fact *defines*
197
+ /// what `v1` is, and any `dynamic_range(64, v1, v1)`-labeled
198
+ /// values elsewhere are claiming to be equal to this value.
199
+ ///
200
+ /// This is necessary because we don't propagate SSA value labels
201
+ /// down to machine code otherwise; so when referring symbolically
202
+ /// to addresses and expressions derived from addresses, we need
203
+ /// to introduce the symbol first.
204
+ Def {
205
+ /// The SSA value this value defines.
206
+ value: ir::Value,
207
+ },
208
+
209
+ /// A comparison result between two dynamic values with a
210
+ /// comparison of a certain kind.
211
+ Compare {
212
+ /// The kind of comparison.
213
+ kind: ir::condcodes::IntCC,
214
+ /// The left-hand side of the comparison.
215
+ lhs: Expr,
216
+ /// The right-hand side of the comparison.
217
+ rhs: Expr,
218
+ },
219
+
220
+ /// A "conflict fact": this fact results from merging two other
221
+ /// facts, and it can never be satisfied -- checking any value
222
+ /// against this fact will fail.
223
+ Conflict,
224
+ }
225
+
226
+ /// A bound expression.
227
+ #[derive(Clone, Debug, Hash, PartialEq, Eq)]
228
+ #[cfg_attr(feature = "enable-serde", derive(Serialize, Deserialize))]
229
+ pub struct Expr {
230
+ /// The dynamic (base) part.
231
+ pub base: BaseExpr,
232
+ /// The static (offset) part.
233
+ pub offset: i64,
234
+ }
235
+
236
+ /// The base part of a bound expression.
237
+ #[derive(Clone, Debug, Hash, PartialEq, Eq)]
238
+ #[cfg_attr(feature = "enable-serde", derive(Serialize, Deserialize))]
239
+ pub enum BaseExpr {
240
+ /// No dynamic part (i.e., zero).
241
+ None,
242
+ /// A global value.
243
+ GlobalValue(ir::GlobalValue),
244
+ /// An SSA Value as a symbolic value. This can be referenced in
245
+ /// facts even after we've lowered out of SSA: it becomes simply
246
+ /// some symbolic value.
247
+ Value(ir::Value),
248
+ /// Top of the address space. This is "saturating": the offset
249
+ /// doesn't matter.
250
+ Max,
251
+ }
252
+
253
+ impl BaseExpr {
254
+ /// Is one base less than or equal to another? (We can't always
255
+ /// know; in such cases, returns `false`.)
256
+ fn le(lhs: &BaseExpr, rhs: &BaseExpr) -> bool {
257
+ // (i) reflexivity; (ii) 0 <= x for all (unsigned) x; (iii) x <= max for all x.
258
+ lhs == rhs || *lhs == BaseExpr::None || *rhs == BaseExpr::Max
259
+ }
260
+
261
+ /// Compute some BaseExpr that will be less than or equal to both
262
+ /// inputs. This is a generalization of `min` (but looser).
263
+ fn min(lhs: &BaseExpr, rhs: &BaseExpr) -> BaseExpr {
264
+ if lhs == rhs {
265
+ lhs.clone()
266
+ } else if *lhs == BaseExpr::Max {
267
+ rhs.clone()
268
+ } else if *rhs == BaseExpr::Max {
269
+ lhs.clone()
270
+ } else {
271
+ BaseExpr::None // zero is <= x for all (unsigned) x.
272
+ }
273
+ }
274
+
275
+ /// Compute some BaseExpr that will be greater than or equal to
276
+ /// both inputs.
277
+ fn max(lhs: &BaseExpr, rhs: &BaseExpr) -> BaseExpr {
278
+ if lhs == rhs {
279
+ lhs.clone()
280
+ } else if *lhs == BaseExpr::None {
281
+ rhs.clone()
282
+ } else if *rhs == BaseExpr::None {
283
+ lhs.clone()
284
+ } else {
285
+ BaseExpr::Max
286
+ }
287
+ }
288
+ }
289
+
290
+ impl Expr {
291
+ /// Constant value.
292
+ pub fn constant(offset: i64) -> Self {
293
+ Expr {
294
+ base: BaseExpr::None,
295
+ offset,
296
+ }
297
+ }
298
+
299
+ /// The value of an SSA value.
300
+ pub fn value(value: ir::Value) -> Self {
301
+ Expr {
302
+ base: BaseExpr::Value(value),
303
+ offset: 0,
304
+ }
305
+ }
306
+
307
+ /// The value of a global value.
308
+ pub fn global_value(gv: ir::GlobalValue) -> Self {
309
+ Expr {
310
+ base: BaseExpr::GlobalValue(gv),
311
+ offset: 0,
312
+ }
313
+ }
314
+
315
+ /// Is one expression definitely less than or equal to another?
316
+ /// (We can't always know; in such cases, returns `false`.)
317
+ fn le(lhs: &Expr, rhs: &Expr) -> bool {
318
+ if rhs.base == BaseExpr::Max {
319
+ true
320
+ } else {
321
+ BaseExpr::le(&lhs.base, &rhs.base) && lhs.offset <= rhs.offset
322
+ }
323
+ }
324
+
325
+ /// Generalization of `min`: compute some Expr that is less than
326
+ /// or equal to both inputs.
327
+ fn min(lhs: &Expr, rhs: &Expr) -> Expr {
328
+ if lhs.base == BaseExpr::None && lhs.offset == 0 {
329
+ lhs.clone()
330
+ } else if rhs.base == BaseExpr::None && rhs.offset == 0 {
331
+ rhs.clone()
332
+ } else {
333
+ Expr {
334
+ base: BaseExpr::min(&lhs.base, &rhs.base),
335
+ offset: std::cmp::min(lhs.offset, rhs.offset),
336
+ }
337
+ }
338
+ }
339
+
340
+ /// Generalization of `max`: compute some Expr that is greater
341
+ /// than or equal to both inputs.
342
+ fn max(lhs: &Expr, rhs: &Expr) -> Expr {
343
+ if lhs.base == BaseExpr::None && lhs.offset == 0 {
344
+ rhs.clone()
345
+ } else if rhs.base == BaseExpr::None && rhs.offset == 0 {
346
+ lhs.clone()
347
+ } else {
348
+ Expr {
349
+ base: BaseExpr::max(&lhs.base, &rhs.base),
350
+ offset: std::cmp::max(lhs.offset, rhs.offset),
351
+ }
352
+ }
353
+ }
354
+
355
+ /// Add one expression to another.
356
+ fn add(lhs: &Expr, rhs: &Expr) -> Option<Expr> {
357
+ if lhs.base == rhs.base {
358
+ Some(Expr {
359
+ base: lhs.base.clone(),
360
+ offset: lhs.offset.checked_add(rhs.offset)?,
361
+ })
362
+ } else if lhs.base == BaseExpr::None {
363
+ Some(Expr {
364
+ base: rhs.base.clone(),
365
+ offset: lhs.offset.checked_add(rhs.offset)?,
366
+ })
367
+ } else if rhs.base == BaseExpr::None {
368
+ Some(Expr {
369
+ base: lhs.base.clone(),
370
+ offset: lhs.offset.checked_add(rhs.offset)?,
371
+ })
372
+ } else {
373
+ Some(Expr {
374
+ base: BaseExpr::Max,
375
+ offset: 0,
376
+ })
377
+ }
378
+ }
379
+
380
+ /// Add a static offset to an expression.
381
+ pub fn offset(lhs: &Expr, rhs: i64) -> Option<Expr> {
382
+ let offset = lhs.offset.checked_add(rhs)?;
383
+ Some(Expr {
384
+ base: lhs.base.clone(),
385
+ offset,
386
+ })
387
+ }
388
+
389
+ /// Is this Expr a BaseExpr with no offset? Return it if so.
390
+ pub fn without_offset(&self) -> Option<&BaseExpr> {
391
+ if self.offset == 0 {
392
+ Some(&self.base)
393
+ } else {
394
+ None
395
+ }
396
+ }
397
+ }
398
+
399
+ impl fmt::Display for BaseExpr {
400
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
401
+ match self {
402
+ BaseExpr::None => Ok(()),
403
+ BaseExpr::Max => write!(f, "max"),
404
+ BaseExpr::GlobalValue(gv) => write!(f, "{gv}"),
405
+ BaseExpr::Value(value) => write!(f, "{value}"),
406
+ }
407
+ }
408
+ }
409
+
410
+ impl BaseExpr {
411
+ /// Does this dynamic_expression take an offset?
412
+ pub fn is_some(&self) -> bool {
413
+ match self {
414
+ BaseExpr::None => false,
415
+ _ => true,
416
+ }
417
+ }
418
+ }
419
+
420
+ impl fmt::Display for Expr {
421
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
422
+ write!(f, "{}", self.base)?;
423
+ match self.offset {
424
+ offset if offset > 0 && self.base.is_some() => write!(f, "+{offset:#x}"),
425
+ offset if offset > 0 => write!(f, "{offset:#x}"),
426
+ offset if offset < 0 => {
427
+ let negative_offset = -i128::from(offset); // upcast to support i64::MIN.
428
+ write!(f, "-{negative_offset:#x}")
429
+ }
430
+ 0 if self.base.is_some() => Ok(()),
431
+ 0 => write!(f, "0"),
432
+ _ => unreachable!(),
433
+ }
434
+ }
435
+ }
436
+
437
+ impl fmt::Display for Fact {
438
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
439
+ match self {
440
+ Fact::Range {
441
+ bit_width,
442
+ min,
443
+ max,
444
+ } => write!(f, "range({bit_width}, {min:#x}, {max:#x})"),
445
+ Fact::DynamicRange {
446
+ bit_width,
447
+ min,
448
+ max,
449
+ } => {
450
+ write!(f, "dynamic_range({bit_width}, {min}, {max})")
451
+ }
452
+ Fact::Mem {
453
+ ty,
454
+ min_offset,
455
+ max_offset,
456
+ nullable,
457
+ } => {
458
+ let nullable_flag = if *nullable { ", nullable" } else { "" };
459
+ write!(
460
+ f,
461
+ "mem({ty}, {min_offset:#x}, {max_offset:#x}{nullable_flag})"
462
+ )
463
+ }
464
+ Fact::DynamicMem {
465
+ ty,
466
+ min,
467
+ max,
468
+ nullable,
469
+ } => {
470
+ let nullable_flag = if *nullable { ", nullable" } else { "" };
471
+ write!(f, "dynamic_mem({ty}, {min}, {max}{nullable_flag})")
472
+ }
473
+ Fact::Def { value } => write!(f, "def({value})"),
474
+ Fact::Compare { kind, lhs, rhs } => {
475
+ write!(f, "compare({kind}, {lhs}, {rhs})")
476
+ }
477
+ Fact::Conflict => write!(f, "conflict"),
478
+ }
479
+ }
480
+ }
481
+
482
+ impl Fact {
483
+ /// Create a range fact that specifies a single known constant value.
484
+ pub fn constant(bit_width: u16, value: u64) -> Self {
485
+ debug_assert!(value <= max_value_for_width(bit_width));
486
+ // `min` and `max` are inclusive, so this specifies a range of
487
+ // exactly one value.
488
+ Fact::Range {
489
+ bit_width,
490
+ min: value,
491
+ max: value,
492
+ }
493
+ }
494
+
495
+ /// Create a dynamic range fact that points to the base of a dynamic memory.
496
+ pub fn dynamic_base_ptr(ty: ir::MemoryType) -> Self {
497
+ Fact::DynamicMem {
498
+ ty,
499
+ min: Expr::constant(0),
500
+ max: Expr::constant(0),
501
+ nullable: false,
502
+ }
503
+ }
504
+
505
+ /// Create a fact that specifies the value is exactly an SSA value.
506
+ ///
507
+ /// Note that this differs from a `def` fact: it is not *defining*
508
+ /// a symbol to have the value that this fact is attached to;
509
+ /// rather it is claiming that this value is the same as whatever
510
+ /// that symbol is. (In other words, the def should be elsewhere,
511
+ /// and we are tying ourselves to it.)
512
+ pub fn value(bit_width: u16, value: ir::Value) -> Self {
513
+ Fact::DynamicRange {
514
+ bit_width,
515
+ min: Expr::value(value),
516
+ max: Expr::value(value),
517
+ }
518
+ }
519
+
520
+ /// Create a fact that specifies the value is exactly an SSA value plus some offset.
521
+ pub fn value_offset(bit_width: u16, value: ir::Value, offset: i64) -> Self {
522
+ Fact::DynamicRange {
523
+ bit_width,
524
+ min: Expr::offset(&Expr::value(value), offset).unwrap(),
525
+ max: Expr::offset(&Expr::value(value), offset).unwrap(),
526
+ }
527
+ }
528
+
529
+ /// Create a fact that specifies the value is exactly the value of a GV.
530
+ pub fn global_value(bit_width: u16, gv: ir::GlobalValue) -> Self {
531
+ Fact::DynamicRange {
532
+ bit_width,
533
+ min: Expr::global_value(gv),
534
+ max: Expr::global_value(gv),
535
+ }
536
+ }
537
+
538
+ /// Create a fact that specifies the value is exactly the value of a GV plus some offset.
539
+ pub fn global_value_offset(bit_width: u16, gv: ir::GlobalValue, offset: i64) -> Self {
540
+ Fact::DynamicRange {
541
+ bit_width,
542
+ min: Expr::offset(&Expr::global_value(gv), offset).unwrap(),
543
+ max: Expr::offset(&Expr::global_value(gv), offset).unwrap(),
544
+ }
545
+ }
546
+
547
+ /// Create a range fact that specifies the maximum range for a
548
+ /// value of the given bit-width.
549
+ pub const fn max_range_for_width(bit_width: u16) -> Self {
550
+ match bit_width {
551
+ bit_width if bit_width < 64 => Fact::Range {
552
+ bit_width,
553
+ min: 0,
554
+ max: (1u64 << bit_width) - 1,
555
+ },
556
+ 64 => Fact::Range {
557
+ bit_width: 64,
558
+ min: 0,
559
+ max: u64::MAX,
560
+ },
561
+ _ => panic!("bit width too large!"),
562
+ }
563
+ }
564
+
565
+ /// Create a range fact that specifies the maximum range for a
566
+ /// value of the given bit-width, zero-extended into a wider
567
+ /// width.
568
+ pub const fn max_range_for_width_extended(from_width: u16, to_width: u16) -> Self {
569
+ debug_assert!(from_width <= to_width);
570
+ match from_width {
571
+ from_width if from_width < 64 => Fact::Range {
572
+ bit_width: to_width,
573
+ min: 0,
574
+ max: (1u64 << from_width) - 1,
575
+ },
576
+ 64 => Fact::Range {
577
+ bit_width: to_width,
578
+ min: 0,
579
+ max: u64::MAX,
580
+ },
581
+ _ => panic!("bit width too large!"),
582
+ }
583
+ }
584
+
585
+ /// Try to infer a minimal fact for a value of the given IR type.
586
+ pub fn infer_from_type(ty: ir::Type) -> Option<&'static Self> {
587
+ static FACTS: [Fact; 4] = [
588
+ Fact::max_range_for_width(8),
589
+ Fact::max_range_for_width(16),
590
+ Fact::max_range_for_width(32),
591
+ Fact::max_range_for_width(64),
592
+ ];
593
+ match ty {
594
+ I8 => Some(&FACTS[0]),
595
+ I16 => Some(&FACTS[1]),
596
+ I32 => Some(&FACTS[2]),
597
+ I64 => Some(&FACTS[3]),
598
+ _ => None,
599
+ }
600
+ }
601
+
602
+ /// Does this fact "propagate" automatically, i.e., cause
603
+ /// instructions that process it to infer their own output facts?
604
+ /// Not all facts propagate automatically; otherwise, verification
605
+ /// would be much slower.
606
+ pub fn propagates(&self) -> bool {
607
+ match self {
608
+ Fact::Mem { .. } => true,
609
+ _ => false,
610
+ }
611
+ }
612
+
613
+ /// Is this a constant value of the given bitwidth? Return it as a
614
+ /// `Some(value)` if so.
615
+ pub fn as_const(&self, bits: u16) -> Option<u64> {
616
+ match self {
617
+ Fact::Range {
618
+ bit_width,
619
+ min,
620
+ max,
621
+ } if *bit_width == bits && min == max => Some(*min),
622
+ _ => None,
623
+ }
624
+ }
625
+
626
+ /// Is this fact a single-value range with a symbolic Expr?
627
+ pub fn as_symbol(&self) -> Option<&Expr> {
628
+ match self {
629
+ Fact::DynamicRange { min, max, .. } if min == max => Some(min),
630
+ _ => None,
631
+ }
632
+ }
633
+
634
+ /// Merge two facts. We take the *intersection*: that is, we know
635
+ /// both facts to be true, so we can intersect ranges. (This
636
+ /// differs from the usual static analysis approach, where we are
637
+ /// merging multiple possibilities into a generalized / widened
638
+ /// fact. We want to narrow here.)
639
+ pub fn intersect(a: &Fact, b: &Fact) -> Fact {
640
+ match (a, b) {
641
+ (
642
+ Fact::Range {
643
+ bit_width: bw_lhs,
644
+ min: min_lhs,
645
+ max: max_lhs,
646
+ },
647
+ Fact::Range {
648
+ bit_width: bw_rhs,
649
+ min: min_rhs,
650
+ max: max_rhs,
651
+ },
652
+ ) if bw_lhs == bw_rhs && max_lhs >= min_rhs && max_rhs >= min_lhs => Fact::Range {
653
+ bit_width: *bw_lhs,
654
+ min: std::cmp::max(*min_lhs, *min_rhs),
655
+ max: std::cmp::min(*max_lhs, *max_rhs),
656
+ },
657
+
658
+ (
659
+ Fact::DynamicRange {
660
+ bit_width: bw_lhs,
661
+ min: min_lhs,
662
+ max: max_lhs,
663
+ },
664
+ Fact::DynamicRange {
665
+ bit_width: bw_rhs,
666
+ min: min_rhs,
667
+ max: max_rhs,
668
+ },
669
+ ) if bw_lhs == bw_rhs && Expr::le(min_rhs, max_lhs) && Expr::le(min_lhs, max_rhs) => {
670
+ Fact::DynamicRange {
671
+ bit_width: *bw_lhs,
672
+ min: Expr::max(min_lhs, min_rhs),
673
+ max: Expr::min(max_lhs, max_rhs),
674
+ }
675
+ }
676
+
677
+ (
678
+ Fact::Mem {
679
+ ty: ty_lhs,
680
+ min_offset: min_offset_lhs,
681
+ max_offset: max_offset_lhs,
682
+ nullable: nullable_lhs,
683
+ },
684
+ Fact::Mem {
685
+ ty: ty_rhs,
686
+ min_offset: min_offset_rhs,
687
+ max_offset: max_offset_rhs,
688
+ nullable: nullable_rhs,
689
+ },
690
+ ) if ty_lhs == ty_rhs
691
+ && max_offset_lhs >= min_offset_rhs
692
+ && max_offset_rhs >= min_offset_lhs =>
693
+ {
694
+ Fact::Mem {
695
+ ty: *ty_lhs,
696
+ min_offset: std::cmp::max(*min_offset_lhs, *min_offset_rhs),
697
+ max_offset: std::cmp::min(*max_offset_lhs, *max_offset_rhs),
698
+ nullable: *nullable_lhs && *nullable_rhs,
699
+ }
700
+ }
701
+
702
+ (
703
+ Fact::DynamicMem {
704
+ ty: ty_lhs,
705
+ min: min_lhs,
706
+ max: max_lhs,
707
+ nullable: null_lhs,
708
+ },
709
+ Fact::DynamicMem {
710
+ ty: ty_rhs,
711
+ min: min_rhs,
712
+ max: max_rhs,
713
+ nullable: null_rhs,
714
+ },
715
+ ) if ty_lhs == ty_rhs && Expr::le(min_rhs, max_lhs) && Expr::le(min_lhs, max_rhs) => {
716
+ Fact::DynamicMem {
717
+ ty: *ty_lhs,
718
+ min: Expr::max(min_lhs, min_rhs),
719
+ max: Expr::min(max_lhs, max_rhs),
720
+ nullable: *null_lhs && *null_rhs,
721
+ }
722
+ }
723
+
724
+ _ => Fact::Conflict,
725
+ }
726
+ }
727
+ }
728
+
729
+ macro_rules! ensure {
730
+ ( $condition:expr, $err:tt $(,)? ) => {
731
+ if !$condition {
732
+ return Err(PccError::$err);
733
+ }
734
+ };
735
+ }
736
+
737
+ macro_rules! bail {
738
+ ( $err:tt ) => {{
739
+ return Err(PccError::$err);
740
+ }};
741
+ }
742
+
743
+ /// The two kinds of inequalities: "strict" (`<`, `>`) and "loose"
744
+ /// (`<=`, `>=`), the latter of which admit equality.
745
+ #[derive(Clone, Copy, Debug, PartialEq, Eq)]
746
+ pub enum InequalityKind {
747
+ /// Strict inequality: {less,greater}-than.
748
+ Strict,
749
+ /// Loose inequality: {less,greater}-than-or-equal.
750
+ Loose,
751
+ }
752
+
753
+ /// A "context" in which we can evaluate and derive facts. This
754
+ /// context carries environment/global properties, such as the machine
755
+ /// pointer width.
756
+ pub struct FactContext<'a> {
757
+ function: &'a ir::Function,
758
+ pointer_width: u16,
759
+ }
760
+
761
+ impl<'a> FactContext<'a> {
762
+ /// Create a new "fact context" in which to evaluate facts.
763
+ pub fn new(function: &'a ir::Function, pointer_width: u16) -> Self {
764
+ FactContext {
765
+ function,
766
+ pointer_width,
767
+ }
768
+ }
769
+
770
+ /// Computes whether `lhs` "subsumes" (implies) `rhs`.
771
+ pub fn subsumes(&self, lhs: &Fact, rhs: &Fact) -> bool {
772
+ match (lhs, rhs) {
773
+ // Reflexivity.
774
+ (l, r) if l == r => true,
775
+
776
+ (
777
+ Fact::Range {
778
+ bit_width: bw_lhs,
779
+ min: min_lhs,
780
+ max: max_lhs,
781
+ },
782
+ Fact::Range {
783
+ bit_width: bw_rhs,
784
+ min: min_rhs,
785
+ max: max_rhs,
786
+ },
787
+ ) => {
788
+ // If the bitwidths we're claiming facts about are the
789
+ // same, or the left-hand-side makes a claim about a
790
+ // wider bitwidth, and if the right-hand-side range is
791
+ // larger than the left-hand-side range, than the LHS
792
+ // subsumes the RHS.
793
+ //
794
+ // In other words, we can always expand the claimed
795
+ // possible value range.
796
+ bw_lhs >= bw_rhs && max_lhs <= max_rhs && min_lhs >= min_rhs
797
+ }
798
+
799
+ (
800
+ Fact::DynamicRange {
801
+ bit_width: bw_lhs,
802
+ min: min_lhs,
803
+ max: max_lhs,
804
+ },
805
+ Fact::DynamicRange {
806
+ bit_width: bw_rhs,
807
+ min: min_rhs,
808
+ max: max_rhs,
809
+ },
810
+ ) => {
811
+ // Nearly same as above, but with dynamic-expression
812
+ // comparisons. Note that we require equal bitwidths
813
+ // here: unlike in the static case, we don't have
814
+ // fixed values for min and max, so we can't lean on
815
+ // the well-formedness requirements of the static
816
+ // ranges fitting within the bit-width max.
817
+ bw_lhs == bw_rhs && Expr::le(max_lhs, max_rhs) && Expr::le(min_rhs, min_lhs)
818
+ }
819
+
820
+ (
821
+ Fact::Mem {
822
+ ty: ty_lhs,
823
+ min_offset: min_offset_lhs,
824
+ max_offset: max_offset_lhs,
825
+ nullable: nullable_lhs,
826
+ },
827
+ Fact::Mem {
828
+ ty: ty_rhs,
829
+ min_offset: min_offset_rhs,
830
+ max_offset: max_offset_rhs,
831
+ nullable: nullable_rhs,
832
+ },
833
+ ) => {
834
+ ty_lhs == ty_rhs
835
+ && max_offset_lhs <= max_offset_rhs
836
+ && min_offset_lhs >= min_offset_rhs
837
+ && (*nullable_lhs || !*nullable_rhs)
838
+ }
839
+
840
+ (
841
+ Fact::DynamicMem {
842
+ ty: ty_lhs,
843
+ min: min_lhs,
844
+ max: max_lhs,
845
+ nullable: nullable_lhs,
846
+ },
847
+ Fact::DynamicMem {
848
+ ty: ty_rhs,
849
+ min: min_rhs,
850
+ max: max_rhs,
851
+ nullable: nullable_rhs,
852
+ },
853
+ ) => {
854
+ ty_lhs == ty_rhs
855
+ && Expr::le(max_lhs, max_rhs)
856
+ && Expr::le(min_rhs, min_lhs)
857
+ && (*nullable_lhs || !*nullable_rhs)
858
+ }
859
+
860
+ // Constant zero subsumes nullable DynamicMem pointers.
861
+ (
862
+ Fact::Range {
863
+ bit_width,
864
+ min: 0,
865
+ max: 0,
866
+ },
867
+ Fact::DynamicMem { nullable: true, .. },
868
+ ) if *bit_width == self.pointer_width => true,
869
+
870
+ // Any fact subsumes a Def, because the Def makes no
871
+ // claims about the actual value (it ties a symbol to that
872
+ // value, but the value is fed to the symbol, not the
873
+ // other way around).
874
+ (_, Fact::Def { .. }) => true,
875
+
876
+ _ => false,
877
+ }
878
+ }
879
+
880
+ /// Computes whether the optional fact `lhs` subsumes (implies)
881
+ /// the optional fact `lhs`. A `None` never subsumes any fact, and
882
+ /// is always subsumed by any fact at all (or no fact).
883
+ pub fn subsumes_fact_optionals(&self, lhs: Option<&Fact>, rhs: Option<&Fact>) -> bool {
884
+ match (lhs, rhs) {
885
+ (None, None) => true,
886
+ (Some(_), None) => true,
887
+ (None, Some(_)) => false,
888
+ (Some(lhs), Some(rhs)) => self.subsumes(lhs, rhs),
889
+ }
890
+ }
891
+
892
+ /// Computes whatever fact can be known about the sum of two
893
+ /// values with attached facts. The add is performed to the given
894
+ /// bit-width. Note that this is distinct from the machine or
895
+ /// pointer width: e.g., many 64-bit machines can still do 32-bit
896
+ /// adds that wrap at 2^32.
897
+ pub fn add(&self, lhs: &Fact, rhs: &Fact, add_width: u16) -> Option<Fact> {
898
+ let result = match (lhs, rhs) {
899
+ (
900
+ Fact::Range {
901
+ bit_width: bw_lhs,
902
+ min: min_lhs,
903
+ max: max_lhs,
904
+ },
905
+ Fact::Range {
906
+ bit_width: bw_rhs,
907
+ min: min_rhs,
908
+ max: max_rhs,
909
+ },
910
+ ) if bw_lhs == bw_rhs && add_width >= *bw_lhs => {
911
+ let computed_min = min_lhs.checked_add(*min_rhs)?;
912
+ let computed_max = max_lhs.checked_add(*max_rhs)?;
913
+ let computed_max = std::cmp::min(max_value_for_width(add_width), computed_max);
914
+ Some(Fact::Range {
915
+ bit_width: *bw_lhs,
916
+ min: computed_min,
917
+ max: computed_max,
918
+ })
919
+ }
920
+
921
+ (
922
+ Fact::Range {
923
+ bit_width: bw_max,
924
+ min,
925
+ max,
926
+ },
927
+ Fact::Mem {
928
+ ty,
929
+ min_offset,
930
+ max_offset,
931
+ nullable,
932
+ },
933
+ )
934
+ | (
935
+ Fact::Mem {
936
+ ty,
937
+ min_offset,
938
+ max_offset,
939
+ nullable,
940
+ },
941
+ Fact::Range {
942
+ bit_width: bw_max,
943
+ min,
944
+ max,
945
+ },
946
+ ) if *bw_max >= self.pointer_width
947
+ && add_width >= *bw_max
948
+ && (!*nullable || *max == 0) =>
949
+ {
950
+ let min_offset = min_offset.checked_add(*min)?;
951
+ let max_offset = max_offset.checked_add(*max)?;
952
+ Some(Fact::Mem {
953
+ ty: *ty,
954
+ min_offset,
955
+ max_offset,
956
+ nullable: false,
957
+ })
958
+ }
959
+
960
+ (
961
+ Fact::Range {
962
+ bit_width: bw_static,
963
+ min: min_static,
964
+ max: max_static,
965
+ },
966
+ Fact::DynamicRange {
967
+ bit_width: bw_dynamic,
968
+ min: ref min_dynamic,
969
+ max: ref max_dynamic,
970
+ },
971
+ )
972
+ | (
973
+ Fact::DynamicRange {
974
+ bit_width: bw_dynamic,
975
+ min: ref min_dynamic,
976
+ max: ref max_dynamic,
977
+ },
978
+ Fact::Range {
979
+ bit_width: bw_static,
980
+ min: min_static,
981
+ max: max_static,
982
+ },
983
+ ) if bw_static == bw_dynamic => {
984
+ let min = Expr::offset(min_dynamic, i64::try_from(*min_static).ok()?)?;
985
+ let max = Expr::offset(max_dynamic, i64::try_from(*max_static).ok()?)?;
986
+ Some(Fact::DynamicRange {
987
+ bit_width: *bw_dynamic,
988
+ min,
989
+ max,
990
+ })
991
+ }
992
+
993
+ (
994
+ Fact::DynamicMem {
995
+ ty,
996
+ min: min_mem,
997
+ max: max_mem,
998
+ nullable: false,
999
+ },
1000
+ Fact::DynamicRange {
1001
+ bit_width,
1002
+ min: min_range,
1003
+ max: max_range,
1004
+ },
1005
+ )
1006
+ | (
1007
+ Fact::DynamicRange {
1008
+ bit_width,
1009
+ min: min_range,
1010
+ max: max_range,
1011
+ },
1012
+ Fact::DynamicMem {
1013
+ ty,
1014
+ min: min_mem,
1015
+ max: max_mem,
1016
+ nullable: false,
1017
+ },
1018
+ ) if *bit_width == self.pointer_width => {
1019
+ let min = Expr::add(min_mem, min_range)?;
1020
+ let max = Expr::add(max_mem, max_range)?;
1021
+ Some(Fact::DynamicMem {
1022
+ ty: *ty,
1023
+ min,
1024
+ max,
1025
+ nullable: false,
1026
+ })
1027
+ }
1028
+
1029
+ (
1030
+ Fact::Mem {
1031
+ ty,
1032
+ min_offset,
1033
+ max_offset,
1034
+ nullable: false,
1035
+ },
1036
+ Fact::DynamicRange {
1037
+ bit_width,
1038
+ min: min_range,
1039
+ max: max_range,
1040
+ },
1041
+ )
1042
+ | (
1043
+ Fact::DynamicRange {
1044
+ bit_width,
1045
+ min: min_range,
1046
+ max: max_range,
1047
+ },
1048
+ Fact::Mem {
1049
+ ty,
1050
+ min_offset,
1051
+ max_offset,
1052
+ nullable: false,
1053
+ },
1054
+ ) if *bit_width == self.pointer_width => {
1055
+ let min = Expr::offset(min_range, i64::try_from(*min_offset).ok()?)?;
1056
+ let max = Expr::offset(max_range, i64::try_from(*max_offset).ok()?)?;
1057
+ Some(Fact::DynamicMem {
1058
+ ty: *ty,
1059
+ min,
1060
+ max,
1061
+ nullable: false,
1062
+ })
1063
+ }
1064
+
1065
+ (
1066
+ Fact::Range {
1067
+ bit_width: bw_static,
1068
+ min: min_static,
1069
+ max: max_static,
1070
+ },
1071
+ Fact::DynamicMem {
1072
+ ty,
1073
+ min: ref min_dynamic,
1074
+ max: ref max_dynamic,
1075
+ nullable,
1076
+ },
1077
+ )
1078
+ | (
1079
+ Fact::DynamicMem {
1080
+ ty,
1081
+ min: ref min_dynamic,
1082
+ max: ref max_dynamic,
1083
+ nullable,
1084
+ },
1085
+ Fact::Range {
1086
+ bit_width: bw_static,
1087
+ min: min_static,
1088
+ max: max_static,
1089
+ },
1090
+ ) if *bw_static == self.pointer_width && (!*nullable || *max_static == 0) => {
1091
+ let min = Expr::offset(min_dynamic, i64::try_from(*min_static).ok()?)?;
1092
+ let max = Expr::offset(max_dynamic, i64::try_from(*max_static).ok()?)?;
1093
+ Some(Fact::DynamicMem {
1094
+ ty: *ty,
1095
+ min,
1096
+ max,
1097
+ nullable: false,
1098
+ })
1099
+ }
1100
+
1101
+ _ => None,
1102
+ };
1103
+
1104
+ trace!("add: {lhs:?} + {rhs:?} -> {result:?}");
1105
+ result
1106
+ }
1107
+
1108
+ /// Computes the `uextend` of a value with the given facts.
1109
+ pub fn uextend(&self, fact: &Fact, from_width: u16, to_width: u16) -> Option<Fact> {
1110
+ if from_width == to_width {
1111
+ return Some(fact.clone());
1112
+ }
1113
+
1114
+ let result = match fact {
1115
+ // If the claim is already for a same-or-wider value and the min
1116
+ // and max are within range of the narrower value, we can
1117
+ // claim the same range.
1118
+ Fact::Range {
1119
+ bit_width,
1120
+ min,
1121
+ max,
1122
+ } if *bit_width >= from_width
1123
+ && *min <= max_value_for_width(from_width)
1124
+ && *max <= max_value_for_width(from_width) =>
1125
+ {
1126
+ Some(Fact::Range {
1127
+ bit_width: to_width,
1128
+ min: *min,
1129
+ max: *max,
1130
+ })
1131
+ }
1132
+
1133
+ // If the claim is a dynamic range for the from-width, we
1134
+ // can extend to the to-width.
1135
+ Fact::DynamicRange {
1136
+ bit_width,
1137
+ min,
1138
+ max,
1139
+ } if *bit_width == from_width => Some(Fact::DynamicRange {
1140
+ bit_width: to_width,
1141
+ min: min.clone(),
1142
+ max: max.clone(),
1143
+ }),
1144
+
1145
+ // If the claim is a definition of a value, we can say
1146
+ // that the output has a range of exactly that value.
1147
+ Fact::Def { value } => Some(Fact::value(to_width, *value)),
1148
+
1149
+ // Otherwise, we can at least claim that the value is
1150
+ // within the range of `from_width`.
1151
+ Fact::Range { .. } => Some(Fact::max_range_for_width_extended(from_width, to_width)),
1152
+
1153
+ _ => None,
1154
+ };
1155
+ trace!("uextend: fact {fact:?} from {from_width} to {to_width} -> {result:?}");
1156
+ result
1157
+ }
1158
+
1159
+ /// Computes the `sextend` of a value with the given facts.
1160
+ pub fn sextend(&self, fact: &Fact, from_width: u16, to_width: u16) -> Option<Fact> {
1161
+ match fact {
1162
+ // If we have a defined value in bits 0..bit_width, and
1163
+ // the MSB w.r.t. `from_width` is *not* set, then we can
1164
+ // do the same as `uextend`.
1165
+ Fact::Range {
1166
+ bit_width,
1167
+ // We can ignore `min`: it is always <= max in
1168
+ // unsigned terms, and we check max's LSB below.
1169
+ min: _,
1170
+ max,
1171
+ } if *bit_width == from_width && (*max & (1 << (*bit_width - 1)) == 0) => {
1172
+ self.uextend(fact, from_width, to_width)
1173
+ }
1174
+ _ => None,
1175
+ }
1176
+ }
1177
+
1178
+ /// Computes the bit-truncation of a value with the given fact.
1179
+ pub fn truncate(&self, fact: &Fact, from_width: u16, to_width: u16) -> Option<Fact> {
1180
+ if from_width == to_width {
1181
+ return Some(fact.clone());
1182
+ }
1183
+
1184
+ trace!(
1185
+ "truncate: fact {:?} from {} to {}",
1186
+ fact,
1187
+ from_width,
1188
+ to_width
1189
+ );
1190
+
1191
+ match fact {
1192
+ Fact::Range {
1193
+ bit_width,
1194
+ min,
1195
+ max,
1196
+ } if *bit_width == from_width => {
1197
+ let max_val = (1u64 << to_width) - 1;
1198
+ if *min <= max_val && *max <= max_val {
1199
+ Some(Fact::Range {
1200
+ bit_width: to_width,
1201
+ min: *min,
1202
+ max: *max,
1203
+ })
1204
+ } else {
1205
+ Some(Fact::Range {
1206
+ bit_width: to_width,
1207
+ min: 0,
1208
+ max: max_val,
1209
+ })
1210
+ }
1211
+ }
1212
+ _ => None,
1213
+ }
1214
+ }
1215
+
1216
+ /// Scales a value with a fact by a known constant.
1217
+ pub fn scale(&self, fact: &Fact, width: u16, factor: u32) -> Option<Fact> {
1218
+ let result = match fact {
1219
+ x if factor == 1 => Some(x.clone()),
1220
+
1221
+ Fact::Range {
1222
+ bit_width,
1223
+ min,
1224
+ max,
1225
+ } if *bit_width == width => {
1226
+ let min = min.checked_mul(u64::from(factor))?;
1227
+ let max = max.checked_mul(u64::from(factor))?;
1228
+ if *bit_width < 64 && max > max_value_for_width(width) {
1229
+ return None;
1230
+ }
1231
+ Some(Fact::Range {
1232
+ bit_width: *bit_width,
1233
+ min,
1234
+ max,
1235
+ })
1236
+ }
1237
+ _ => None,
1238
+ };
1239
+ trace!("scale: {fact:?} * {factor} at width {width} -> {result:?}");
1240
+ result
1241
+ }
1242
+
1243
+ /// Left-shifts a value with a fact by a known constant.
1244
+ pub fn shl(&self, fact: &Fact, width: u16, amount: u16) -> Option<Fact> {
1245
+ if amount >= 32 {
1246
+ return None;
1247
+ }
1248
+ let factor: u32 = 1 << amount;
1249
+ self.scale(fact, width, factor)
1250
+ }
1251
+
1252
+ /// Offsets a value with a fact by a known amount.
1253
+ pub fn offset(&self, fact: &Fact, width: u16, offset: i64) -> Option<Fact> {
1254
+ if offset == 0 {
1255
+ return Some(fact.clone());
1256
+ }
1257
+
1258
+ let compute_offset = |base: u64| -> Option<u64> {
1259
+ if offset >= 0 {
1260
+ base.checked_add(u64::try_from(offset).unwrap())
1261
+ } else {
1262
+ base.checked_sub(u64::try_from(-offset).unwrap())
1263
+ }
1264
+ };
1265
+
1266
+ let result = match fact {
1267
+ Fact::Range {
1268
+ bit_width,
1269
+ min,
1270
+ max,
1271
+ } if *bit_width == width => {
1272
+ let min = compute_offset(*min)?;
1273
+ let max = compute_offset(*max)?;
1274
+ Some(Fact::Range {
1275
+ bit_width: *bit_width,
1276
+ min,
1277
+ max,
1278
+ })
1279
+ }
1280
+ Fact::DynamicRange {
1281
+ bit_width,
1282
+ min,
1283
+ max,
1284
+ } if *bit_width == width => {
1285
+ let min = Expr::offset(min, offset)?;
1286
+ let max = Expr::offset(max, offset)?;
1287
+ Some(Fact::DynamicRange {
1288
+ bit_width: *bit_width,
1289
+ min,
1290
+ max,
1291
+ })
1292
+ }
1293
+ Fact::Mem {
1294
+ ty,
1295
+ min_offset: mem_min_offset,
1296
+ max_offset: mem_max_offset,
1297
+ nullable: false,
1298
+ } => {
1299
+ let min_offset = compute_offset(*mem_min_offset)?;
1300
+ let max_offset = compute_offset(*mem_max_offset)?;
1301
+ Some(Fact::Mem {
1302
+ ty: *ty,
1303
+ min_offset,
1304
+ max_offset,
1305
+ nullable: false,
1306
+ })
1307
+ }
1308
+ Fact::DynamicMem {
1309
+ ty,
1310
+ min,
1311
+ max,
1312
+ nullable: false,
1313
+ } => {
1314
+ let min = Expr::offset(min, offset)?;
1315
+ let max = Expr::offset(max, offset)?;
1316
+ Some(Fact::DynamicMem {
1317
+ ty: *ty,
1318
+ min,
1319
+ max,
1320
+ nullable: false,
1321
+ })
1322
+ }
1323
+ _ => None,
1324
+ };
1325
+ trace!("offset: {fact:?} + {offset} in width {width} -> {result:?}");
1326
+ result
1327
+ }
1328
+
1329
+ /// Check that accessing memory via a pointer with this fact, with
1330
+ /// a memory access of the given size, is valid.
1331
+ ///
1332
+ /// If valid, returns the memory type and offset into that type
1333
+ /// that this address accesses, if known, or `None` if the range
1334
+ /// doesn't constrain the access to exactly one location.
1335
+ fn check_address(&self, fact: &Fact, size: u32) -> PccResult<Option<(ir::MemoryType, u64)>> {
1336
+ trace!("check_address: fact {:?} size {}", fact, size);
1337
+ match fact {
1338
+ Fact::Mem {
1339
+ ty,
1340
+ min_offset,
1341
+ max_offset,
1342
+ nullable: _,
1343
+ } => {
1344
+ let end_offset: u64 = max_offset
1345
+ .checked_add(u64::from(size))
1346
+ .ok_or(PccError::Overflow)?;
1347
+ match &self.function.memory_types[*ty] {
1348
+ ir::MemoryTypeData::Struct { size, .. }
1349
+ | ir::MemoryTypeData::Memory { size } => {
1350
+ ensure!(end_offset <= *size, OutOfBounds)
1351
+ }
1352
+ ir::MemoryTypeData::DynamicMemory { .. } => bail!(OutOfBounds),
1353
+ ir::MemoryTypeData::Empty => bail!(OutOfBounds),
1354
+ }
1355
+ let specific_ty_and_offset = if min_offset == max_offset {
1356
+ Some((*ty, *min_offset))
1357
+ } else {
1358
+ None
1359
+ };
1360
+ Ok(specific_ty_and_offset)
1361
+ }
1362
+ Fact::DynamicMem {
1363
+ ty,
1364
+ min: _,
1365
+ max:
1366
+ Expr {
1367
+ base: BaseExpr::GlobalValue(max_gv),
1368
+ offset: max_offset,
1369
+ },
1370
+ nullable: _,
1371
+ } => match &self.function.memory_types[*ty] {
1372
+ ir::MemoryTypeData::DynamicMemory {
1373
+ gv,
1374
+ size: mem_static_size,
1375
+ } if gv == max_gv => {
1376
+ let end_offset = max_offset
1377
+ .checked_add(i64::from(size))
1378
+ .ok_or(PccError::Overflow)?;
1379
+ let mem_static_size =
1380
+ i64::try_from(*mem_static_size).map_err(|_| PccError::Overflow)?;
1381
+ ensure!(end_offset <= mem_static_size, OutOfBounds);
1382
+ Ok(None)
1383
+ }
1384
+ _ => bail!(OutOfBounds),
1385
+ },
1386
+ _ => bail!(OutOfBounds),
1387
+ }
1388
+ }
1389
+
1390
+ /// Get the access struct field, if any, by a pointer with the
1391
+ /// given fact and an access of the given type.
1392
+ pub fn struct_field<'b>(
1393
+ &'b self,
1394
+ fact: &Fact,
1395
+ access_ty: ir::Type,
1396
+ ) -> PccResult<Option<&'b ir::MemoryTypeField>> {
1397
+ let (ty, offset) = match self.check_address(fact, access_ty.bytes())? {
1398
+ Some((ty, offset)) => (ty, offset),
1399
+ None => return Ok(None),
1400
+ };
1401
+
1402
+ if let ir::MemoryTypeData::Struct { fields, .. } = &self.function.memory_types[ty] {
1403
+ let field = fields
1404
+ .iter()
1405
+ .find(|field| field.offset == offset)
1406
+ .ok_or(PccError::InvalidFieldOffset)?;
1407
+ if field.ty != access_ty {
1408
+ bail!(BadFieldType);
1409
+ }
1410
+ Ok(Some(field))
1411
+ } else {
1412
+ // Access to valid memory, but not a struct: no facts can be attached to the result.
1413
+ Ok(None)
1414
+ }
1415
+ }
1416
+
1417
+ /// Check a load, and determine what fact, if any, the result of the load might have.
1418
+ pub fn load<'b>(&'b self, fact: &Fact, access_ty: ir::Type) -> PccResult<Option<&'b Fact>> {
1419
+ Ok(self
1420
+ .struct_field(fact, access_ty)?
1421
+ .and_then(|field| field.fact()))
1422
+ }
1423
+
1424
+ /// Check a store.
1425
+ pub fn store(
1426
+ &self,
1427
+ fact: &Fact,
1428
+ access_ty: ir::Type,
1429
+ data_fact: Option<&Fact>,
1430
+ ) -> PccResult<()> {
1431
+ if let Some(field) = self.struct_field(fact, access_ty)? {
1432
+ // If it's a read-only field, disallow.
1433
+ if field.readonly {
1434
+ bail!(WriteToReadOnlyField);
1435
+ }
1436
+ // Check that the fact on the stored data subsumes the field's fact.
1437
+ if !self.subsumes_fact_optionals(data_fact, field.fact()) {
1438
+ bail!(InvalidStoredFact);
1439
+ }
1440
+ }
1441
+ Ok(())
1442
+ }
1443
+
1444
+ /// Apply a known inequality to rewrite dynamic bounds using transitivity, if possible.
1445
+ ///
1446
+ /// Given that `lhs >= rhs` (if not `strict`) or `lhs > rhs` (if
1447
+ /// `strict`), update `fact`.
1448
+ pub fn apply_inequality(
1449
+ &self,
1450
+ fact: &Fact,
1451
+ lhs: &Fact,
1452
+ rhs: &Fact,
1453
+ kind: InequalityKind,
1454
+ ) -> Fact {
1455
+ let result = match (
1456
+ lhs.as_symbol(),
1457
+ lhs.as_const(self.pointer_width)
1458
+ .and_then(|k| i64::try_from(k).ok()),
1459
+ rhs.as_symbol(),
1460
+ fact,
1461
+ ) {
1462
+ (
1463
+ Some(lhs),
1464
+ None,
1465
+ Some(rhs),
1466
+ Fact::DynamicMem {
1467
+ ty,
1468
+ min,
1469
+ max,
1470
+ nullable,
1471
+ },
1472
+ ) if rhs.base == max.base => {
1473
+ let strict_offset = match kind {
1474
+ InequalityKind::Strict => 1,
1475
+ InequalityKind::Loose => 0,
1476
+ };
1477
+ if let Some(offset) = max
1478
+ .offset
1479
+ .checked_add(lhs.offset)
1480
+ .and_then(|x| x.checked_sub(rhs.offset))
1481
+ .and_then(|x| x.checked_sub(strict_offset))
1482
+ {
1483
+ let new_max = Expr {
1484
+ base: lhs.base.clone(),
1485
+ offset,
1486
+ };
1487
+ Fact::DynamicMem {
1488
+ ty: *ty,
1489
+ min: min.clone(),
1490
+ max: new_max,
1491
+ nullable: *nullable,
1492
+ }
1493
+ } else {
1494
+ fact.clone()
1495
+ }
1496
+ }
1497
+
1498
+ (
1499
+ None,
1500
+ Some(lhs_const),
1501
+ Some(rhs),
1502
+ Fact::DynamicMem {
1503
+ ty,
1504
+ min: _,
1505
+ max,
1506
+ nullable,
1507
+ },
1508
+ ) if rhs.base == max.base => {
1509
+ let strict_offset = match kind {
1510
+ InequalityKind::Strict => 1,
1511
+ InequalityKind::Loose => 0,
1512
+ };
1513
+ if let Some(offset) = max
1514
+ .offset
1515
+ .checked_add(lhs_const)
1516
+ .and_then(|x| x.checked_sub(rhs.offset))
1517
+ .and_then(|x| x.checked_sub(strict_offset))
1518
+ {
1519
+ Fact::Mem {
1520
+ ty: *ty,
1521
+ min_offset: 0,
1522
+ max_offset: u64::try_from(offset).unwrap_or(0),
1523
+ nullable: *nullable,
1524
+ }
1525
+ } else {
1526
+ fact.clone()
1527
+ }
1528
+ }
1529
+
1530
+ _ => fact.clone(),
1531
+ };
1532
+ trace!("apply_inequality({fact:?}, {lhs:?}, {rhs:?}, {kind:?} -> {result:?}");
1533
+ result
1534
+ }
1535
+
1536
+ /// Compute the union of two facts, if possible.
1537
+ pub fn union(&self, lhs: &Fact, rhs: &Fact) -> Option<Fact> {
1538
+ let result = match (lhs, rhs) {
1539
+ (lhs, rhs) if lhs == rhs => Some(lhs.clone()),
1540
+
1541
+ (
1542
+ Fact::DynamicMem {
1543
+ ty: ty_lhs,
1544
+ min: min_lhs,
1545
+ max: max_lhs,
1546
+ nullable: nullable_lhs,
1547
+ },
1548
+ Fact::DynamicMem {
1549
+ ty: ty_rhs,
1550
+ min: min_rhs,
1551
+ max: max_rhs,
1552
+ nullable: nullable_rhs,
1553
+ },
1554
+ ) if ty_lhs == ty_rhs => Some(Fact::DynamicMem {
1555
+ ty: *ty_lhs,
1556
+ min: Expr::min(min_lhs, min_rhs),
1557
+ max: Expr::max(max_lhs, max_rhs),
1558
+ nullable: *nullable_lhs || *nullable_rhs,
1559
+ }),
1560
+
1561
+ (
1562
+ Fact::Range {
1563
+ bit_width: bw_const,
1564
+ min: 0,
1565
+ max: 0,
1566
+ },
1567
+ Fact::DynamicMem {
1568
+ ty,
1569
+ min,
1570
+ max,
1571
+ nullable: _,
1572
+ },
1573
+ )
1574
+ | (
1575
+ Fact::DynamicMem {
1576
+ ty,
1577
+ min,
1578
+ max,
1579
+ nullable: _,
1580
+ },
1581
+ Fact::Range {
1582
+ bit_width: bw_const,
1583
+ min: 0,
1584
+ max: 0,
1585
+ },
1586
+ ) if *bw_const == self.pointer_width => Some(Fact::DynamicMem {
1587
+ ty: *ty,
1588
+ min: min.clone(),
1589
+ max: max.clone(),
1590
+ nullable: true,
1591
+ }),
1592
+
1593
+ (
1594
+ Fact::Range {
1595
+ bit_width: bw_const,
1596
+ min: 0,
1597
+ max: 0,
1598
+ },
1599
+ Fact::Mem {
1600
+ ty,
1601
+ min_offset,
1602
+ max_offset,
1603
+ nullable: _,
1604
+ },
1605
+ )
1606
+ | (
1607
+ Fact::Mem {
1608
+ ty,
1609
+ min_offset,
1610
+ max_offset,
1611
+ nullable: _,
1612
+ },
1613
+ Fact::Range {
1614
+ bit_width: bw_const,
1615
+ min: 0,
1616
+ max: 0,
1617
+ },
1618
+ ) if *bw_const == self.pointer_width => Some(Fact::Mem {
1619
+ ty: *ty,
1620
+ min_offset: *min_offset,
1621
+ max_offset: *max_offset,
1622
+ nullable: true,
1623
+ }),
1624
+
1625
+ _ => None,
1626
+ };
1627
+ trace!("union({lhs:?}, {rhs:?}) -> {result:?}");
1628
+ result
1629
+ }
1630
+ }
1631
+
1632
+ fn max_value_for_width(bits: u16) -> u64 {
1633
+ assert!(bits <= 64);
1634
+ if bits == 64 {
1635
+ u64::MAX
1636
+ } else {
1637
+ (1u64 << bits) - 1
1638
+ }
1639
+ }
1640
+
1641
+ /// Top-level entry point after compilation: this checks the facts in
1642
+ /// VCode.
1643
+ pub fn check_vcode_facts<B: LowerBackend + TargetIsa>(
1644
+ f: &ir::Function,
1645
+ vcode: &mut VCode<B::MInst>,
1646
+ backend: &B,
1647
+ ) -> PccResult<()> {
1648
+ let ctx = FactContext::new(f, backend.triple().pointer_width().unwrap().bits().into());
1649
+
1650
+ // Check that individual instructions are valid according to input
1651
+ // facts, and support the stated output facts.
1652
+ for block in 0..vcode.num_blocks() {
1653
+ let block = BlockIndex::new(block);
1654
+ let mut flow_state = B::FactFlowState::default();
1655
+ for inst in vcode.block_insns(block).iter() {
1656
+ // Check any output facts on this inst.
1657
+ if let Err(e) = backend.check_fact(&ctx, vcode, inst, &mut flow_state) {
1658
+ log::info!("Error checking instruction: {:?}", vcode[inst]);
1659
+ return Err(e);
1660
+ }
1661
+
1662
+ // If this is a branch, check that all block arguments subsume
1663
+ // the assumed facts on the blockparams of successors.
1664
+ if vcode.is_branch(inst) {
1665
+ for (succ_idx, succ) in vcode.block_succs(block).iter().enumerate() {
1666
+ for (arg, param) in vcode
1667
+ .branch_blockparams(block, inst, succ_idx)
1668
+ .iter()
1669
+ .zip(vcode.block_params(*succ).iter())
1670
+ {
1671
+ let arg_fact = vcode.vreg_fact(*arg);
1672
+ let param_fact = vcode.vreg_fact(*param);
1673
+ if !ctx.subsumes_fact_optionals(arg_fact, param_fact) {
1674
+ return Err(PccError::UnsupportedBlockparam);
1675
+ }
1676
+ }
1677
+ }
1678
+ }
1679
+ }
1680
+ }
1681
+ Ok(())
1682
+ }