wasmtime 14.0.3 → 14.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (733) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +68 -59
  3. data/ext/Cargo.toml +8 -8
  4. data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/.cargo-checksum.json +1 -1
  5. data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/Cargo.toml +1 -2
  6. data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/README.md +1 -2
  7. data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/interval.rs +0 -11
  8. data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/lib.rs +0 -1
  9. data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/state.rs +20 -13
  10. data/ext/cargo-vendor/async-timer-1.0.0-beta.11/tests/interval.rs +23 -0
  11. data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/.cargo-checksum.json +1 -1
  12. data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/Cargo.toml +2 -2
  13. data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/.cargo-checksum.json +1 -1
  14. data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/Cargo.toml +3 -3
  15. data/ext/cargo-vendor/wasm-encoder-0.36.2/.cargo-checksum.json +1 -0
  16. data/ext/cargo-vendor/wasm-encoder-0.36.2/Cargo.toml +37 -0
  17. data/ext/cargo-vendor/wasm-encoder-0.36.2/README.md +80 -0
  18. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/aliases.rs +160 -0
  19. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/builder.rs +455 -0
  20. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/canonicals.rs +159 -0
  21. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/components.rs +29 -0
  22. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/exports.rs +124 -0
  23. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/imports.rs +175 -0
  24. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/instances.rs +200 -0
  25. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/modules.rs +29 -0
  26. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/names.rs +149 -0
  27. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/start.rs +52 -0
  28. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/types.rs +771 -0
  29. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component.rs +168 -0
  30. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/code.rs +2989 -0
  31. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/custom.rs +73 -0
  32. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/data.rs +185 -0
  33. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/dump.rs +627 -0
  34. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/elements.rs +220 -0
  35. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/exports.rs +98 -0
  36. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/functions.rs +63 -0
  37. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/globals.rs +100 -0
  38. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/imports.rs +155 -0
  39. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/linking.rs +263 -0
  40. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/memories.rs +111 -0
  41. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/names.rs +265 -0
  42. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/producers.rs +180 -0
  43. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/start.rs +39 -0
  44. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tables.rs +115 -0
  45. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tags.rs +104 -0
  46. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/types.rs +584 -0
  47. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core.rs +168 -0
  48. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/lib.rs +215 -0
  49. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/raw.rs +30 -0
  50. data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/.cargo-checksum.json +1 -1
  51. data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/Cargo.toml +10 -10
  52. data/ext/cargo-vendor/wasmtime-asm-macros-14.0.4/.cargo-checksum.json +1 -0
  53. data/ext/cargo-vendor/{wasmtime-asm-macros-14.0.3 → wasmtime-asm-macros-14.0.4}/Cargo.toml +1 -1
  54. data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/.cargo-checksum.json +1 -1
  55. data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/Cargo.toml +1 -1
  56. data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/.cargo-checksum.json +1 -1
  57. data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/Cargo.toml +3 -3
  58. data/ext/cargo-vendor/wasmtime-component-util-14.0.4/.cargo-checksum.json +1 -0
  59. data/ext/cargo-vendor/{wasmtime-component-util-14.0.3 → wasmtime-component-util-14.0.4}/Cargo.toml +1 -1
  60. data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/.cargo-checksum.json +1 -1
  61. data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/Cargo.toml +10 -10
  62. data/ext/cargo-vendor/{wasmtime-cranelift-shared-14.0.3 → wasmtime-cranelift-shared-14.0.4}/.cargo-checksum.json +1 -1
  63. data/ext/cargo-vendor/{wasmtime-cranelift-shared-14.0.3 → wasmtime-cranelift-shared-14.0.4}/Cargo.toml +5 -5
  64. data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/.cargo-checksum.json +1 -1
  65. data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/Cargo.lock +7 -7
  66. data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/Cargo.toml +4 -4
  67. data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/.cargo-checksum.json +1 -1
  68. data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/Cargo.toml +4 -4
  69. data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/.cargo-checksum.json +1 -1
  70. data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/Cargo.toml +5 -5
  71. data/ext/cargo-vendor/{wasmtime-jit-debug-14.0.3 → wasmtime-jit-debug-14.0.4}/.cargo-checksum.json +1 -1
  72. data/ext/cargo-vendor/{wasmtime-jit-debug-14.0.3 → wasmtime-jit-debug-14.0.4}/Cargo.toml +2 -2
  73. data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-14.0.3 → wasmtime-jit-icache-coherence-14.0.4}/.cargo-checksum.json +1 -1
  74. data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-14.0.3 → wasmtime-jit-icache-coherence-14.0.4}/Cargo.toml +1 -1
  75. data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/.cargo-checksum.json +1 -1
  76. data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/Cargo.toml +8 -8
  77. data/ext/cargo-vendor/wasmtime-versioned-export-macros-14.0.4/.cargo-checksum.json +1 -0
  78. data/ext/cargo-vendor/{wasmtime-versioned-export-macros-14.0.3 → wasmtime-versioned-export-macros-14.0.4}/Cargo.toml +1 -1
  79. data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/.cargo-checksum.json +1 -1
  80. data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/Cargo.toml +6 -6
  81. data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/filesystem.rs +13 -4
  82. data/ext/cargo-vendor/{wasmtime-winch-14.0.3 → wasmtime-winch-14.0.4}/.cargo-checksum.json +1 -1
  83. data/ext/cargo-vendor/{wasmtime-winch-14.0.3 → wasmtime-winch-14.0.4}/Cargo.toml +5 -5
  84. data/ext/cargo-vendor/{wasmtime-wit-bindgen-14.0.3 → wasmtime-wit-bindgen-14.0.4}/.cargo-checksum.json +1 -1
  85. data/ext/cargo-vendor/{wasmtime-wit-bindgen-14.0.3 → wasmtime-wit-bindgen-14.0.4}/Cargo.toml +1 -1
  86. data/ext/cargo-vendor/wasmtime-wmemcheck-14.0.4/.cargo-checksum.json +1 -0
  87. data/ext/cargo-vendor/{wasmtime-wmemcheck-14.0.3 → wasmtime-wmemcheck-14.0.4}/Cargo.toml +1 -1
  88. data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/.cargo-checksum.json +1 -1
  89. data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/Cargo.toml +2 -2
  90. data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/binary.rs +9 -29
  91. data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/import.rs +13 -11
  92. data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/resolve.rs +1 -1
  93. data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/binary.rs +2 -2
  94. data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/resolve/names.rs +1 -1
  95. data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/types.rs +4 -4
  96. data/ext/cargo-vendor/wat-1.0.79/.cargo-checksum.json +1 -0
  97. data/ext/cargo-vendor/{wat-1.0.77 → wat-1.0.79}/Cargo.toml +2 -2
  98. data/ext/cargo-vendor/{wiggle-14.0.3 → wiggle-14.0.4}/.cargo-checksum.json +1 -1
  99. data/ext/cargo-vendor/{wiggle-14.0.3 → wiggle-14.0.4}/Cargo.toml +3 -3
  100. data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/.cargo-checksum.json +1 -1
  101. data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/Cargo.toml +1 -1
  102. data/ext/cargo-vendor/wiggle-macro-14.0.4/.cargo-checksum.json +1 -0
  103. data/ext/cargo-vendor/{wiggle-macro-14.0.3 → wiggle-macro-14.0.4}/Cargo.toml +2 -2
  104. data/ext/cargo-vendor/wiggle-macro-14.0.4/LICENSE +220 -0
  105. data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/.cargo-checksum.json +1 -1
  106. data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/Cargo.toml +3 -3
  107. data/lib/wasmtime/version.rb +1 -1
  108. metadata +723 -687
  109. data/ext/cargo-vendor/async-timer-1.0.0-beta.10/tests/interval.rs +0 -69
  110. data/ext/cargo-vendor/wasmtime-asm-macros-14.0.3/.cargo-checksum.json +0 -1
  111. data/ext/cargo-vendor/wasmtime-component-util-14.0.3/.cargo-checksum.json +0 -1
  112. data/ext/cargo-vendor/wasmtime-versioned-export-macros-14.0.3/.cargo-checksum.json +0 -1
  113. data/ext/cargo-vendor/wasmtime-wmemcheck-14.0.3/.cargo-checksum.json +0 -1
  114. data/ext/cargo-vendor/wat-1.0.77/.cargo-checksum.json +0 -1
  115. data/ext/cargo-vendor/wiggle-macro-14.0.3/.cargo-checksum.json +0 -1
  116. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/build.rs +0 -0
  117. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/c_wrapper/posix.c +0 -0
  118. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/timed.rs +0 -0
  119. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/timer/apple.rs +0 -0
  120. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/timer/async_tokio1.rs +0 -0
  121. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/timer/dummy.rs +0 -0
  122. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/timer/mod.rs +0 -0
  123. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/timer/posix.rs +0 -0
  124. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/timer/web.rs +0 -0
  125. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/timer/win.rs +0 -0
  126. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/src/utils.rs +0 -0
  127. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/tests/timed.rs +0 -0
  128. /data/ext/cargo-vendor/{async-timer-1.0.0-beta.10 → async-timer-1.0.0-beta.11}/tests/timer.rs +0 -0
  129. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/LICENSE +0 -0
  130. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/README.md +0 -0
  131. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/src/clocks.rs +0 -0
  132. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/src/dir.rs +0 -0
  133. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/src/file.rs +0 -0
  134. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/src/lib.rs +0 -0
  135. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/src/net.rs +0 -0
  136. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/src/sched/unix.rs +0 -0
  137. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/src/sched/windows.rs +0 -0
  138. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/src/sched.rs +0 -0
  139. /data/ext/cargo-vendor/{wasi-cap-std-sync-14.0.3 → wasi-cap-std-sync-14.0.4}/src/stdio.rs +0 -0
  140. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/LICENSE +0 -0
  141. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/README.md +0 -0
  142. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/README.md +0 -0
  143. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/docs/README.md +0 -0
  144. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/README.md +0 -0
  145. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/docs.md +0 -0
  146. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  147. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  148. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  149. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  150. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  151. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  152. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  153. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  154. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  155. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  156. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  157. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/old/snapshot_0/docs.md +0 -0
  158. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  159. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/old/snapshot_0/witx/wasi_unstable.witx +0 -0
  160. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/snapshot/docs.html +0 -0
  161. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/snapshot/docs.md +0 -0
  162. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  163. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  164. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/proposal-template/README.md +0 -0
  165. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/proposals/README.md +0 -0
  166. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/snapshots/README.md +0 -0
  167. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/WASI/standard/README.md +0 -0
  168. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/build.rs +0 -0
  169. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/clocks.rs +0 -0
  170. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/ctx.rs +0 -0
  171. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/dir.rs +0 -0
  172. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/error.rs +0 -0
  173. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/file.rs +0 -0
  174. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/lib.rs +0 -0
  175. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/pipe.rs +0 -0
  176. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/random.rs +0 -0
  177. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/sched/subscription.rs +0 -0
  178. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/sched.rs +0 -0
  179. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/snapshots/mod.rs +0 -0
  180. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/snapshots/preview_0.rs +0 -0
  181. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/snapshots/preview_1/error.rs +0 -0
  182. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/snapshots/preview_1.rs +0 -0
  183. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/string_array.rs +0 -0
  184. /data/ext/cargo-vendor/{wasi-common-14.0.3 → wasi-common-14.0.4}/src/table.rs +0 -0
  185. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasm-encoder-0.36.2}/LICENSE +0 -0
  186. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-14.0.4}/LICENSE +0 -0
  187. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/README.md +0 -0
  188. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/code.rs +0 -0
  189. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/compiler.rs +0 -0
  190. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/component.rs +0 -0
  191. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/func/host.rs +0 -0
  192. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/func/options.rs +0 -0
  193. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/func/typed.rs +0 -0
  194. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/func.rs +0 -0
  195. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/instance.rs +0 -0
  196. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/linker.rs +0 -0
  197. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/matching.rs +0 -0
  198. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/mod.rs +0 -0
  199. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/resources.rs +0 -0
  200. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/storage.rs +0 -0
  201. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/store.rs +0 -0
  202. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/types.rs +0 -0
  203. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/component/values.rs +0 -0
  204. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/config.rs +0 -0
  205. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/coredump.rs +0 -0
  206. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/engine/serialization.rs +0 -0
  207. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/engine.rs +0 -0
  208. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/externals/global.rs +0 -0
  209. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/externals/table.rs +0 -0
  210. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/externals.rs +0 -0
  211. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/func/typed.rs +0 -0
  212. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/func.rs +0 -0
  213. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/instance.rs +0 -0
  214. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/lib.rs +0 -0
  215. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/limits.rs +0 -0
  216. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/linker.rs +0 -0
  217. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/memory.rs +0 -0
  218. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/module/registry.rs +0 -0
  219. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/module.rs +0 -0
  220. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/profiling.rs +0 -0
  221. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/ref.rs +0 -0
  222. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/resources.rs +0 -0
  223. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/signatures.rs +0 -0
  224. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/store/context.rs +0 -0
  225. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/store/data.rs +0 -0
  226. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/store/func_refs.rs +0 -0
  227. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/store.rs +0 -0
  228. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/trampoline/func.rs +0 -0
  229. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/trampoline/global.rs +0 -0
  230. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/trampoline/memory.rs +0 -0
  231. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/trampoline/table.rs +0 -0
  232. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/trampoline.rs +0 -0
  233. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/trap.rs +0 -0
  234. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/types/matching.rs +0 -0
  235. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/types.rs +0 -0
  236. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/unix.rs +0 -0
  237. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/v128.rs +0 -0
  238. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/values.rs +0 -0
  239. /data/ext/cargo-vendor/{wasmtime-14.0.3 → wasmtime-14.0.4}/src/windows.rs +0 -0
  240. /data/ext/cargo-vendor/{wasmtime-asm-macros-14.0.3 → wasmtime-asm-macros-14.0.4}/src/lib.rs +0 -0
  241. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cache-14.0.4}/LICENSE +0 -0
  242. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/build.rs +0 -0
  243. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/src/config/tests.rs +0 -0
  244. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/src/config.rs +0 -0
  245. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/src/lib.rs +0 -0
  246. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/src/tests.rs +0 -0
  247. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/src/worker/tests/system_time_stub.rs +0 -0
  248. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/src/worker/tests.rs +0 -0
  249. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/src/worker.rs +0 -0
  250. /data/ext/cargo-vendor/{wasmtime-cache-14.0.3 → wasmtime-cache-14.0.4}/tests/cache_write_default_config.rs +0 -0
  251. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/src/bindgen.rs +0 -0
  252. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/src/component.rs +0 -0
  253. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/src/lib.rs +0 -0
  254. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/char.wit +0 -0
  255. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/conventions.wit +0 -0
  256. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/direct-import.wit +0 -0
  257. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/empty.wit +0 -0
  258. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/flags.wit +0 -0
  259. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/floats.wit +0 -0
  260. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/function-new.wit +0 -0
  261. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/integers.wit +0 -0
  262. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/lists.wit +0 -0
  263. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/many-arguments.wit +0 -0
  264. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/multi-return.wit +0 -0
  265. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  266. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  267. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/multiversion/root.wit +0 -0
  268. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/records.wit +0 -0
  269. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/rename.wit +0 -0
  270. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/resources-export.wit +0 -0
  271. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/resources-import.wit +0 -0
  272. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/share-types.wit +0 -0
  273. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/simple-functions.wit +0 -0
  274. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/simple-lists.wit +0 -0
  275. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/simple-wasi.wit +0 -0
  276. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/small-anonymous.wit +0 -0
  277. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/smoke-default.wit +0 -0
  278. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/smoke-export.wit +0 -0
  279. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/smoke.wit +0 -0
  280. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/strings.wit +0 -0
  281. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/use-paths.wit +0 -0
  282. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/variants.wit +0 -0
  283. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen/worlds-with-types.wit +0 -0
  284. /data/ext/cargo-vendor/{wasmtime-component-macro-14.0.3 → wasmtime-component-macro-14.0.4}/tests/codegen.rs +0 -0
  285. /data/ext/cargo-vendor/{wasmtime-component-util-14.0.3 → wasmtime-component-util-14.0.4}/src/lib.rs +0 -0
  286. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-cranelift-14.0.4}/LICENSE +0 -0
  287. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/SECURITY.md +0 -0
  288. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/builder.rs +0 -0
  289. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/compiler/component.rs +0 -0
  290. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/compiler.rs +0 -0
  291. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/gc.rs +0 -0
  292. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/address_transform.rs +0 -0
  293. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/attr.rs +0 -0
  294. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/expression.rs +0 -0
  295. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/line_program.rs +0 -0
  296. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/mod.rs +0 -0
  297. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/range_info_builder.rs +0 -0
  298. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/refs.rs +0 -0
  299. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/simulate.rs +0 -0
  300. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/unit.rs +0 -0
  301. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/transform/utils.rs +0 -0
  302. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug/write_debuginfo.rs +0 -0
  303. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/debug.rs +0 -0
  304. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/func_environ.rs +0 -0
  305. /data/ext/cargo-vendor/{wasmtime-cranelift-14.0.3 → wasmtime-cranelift-14.0.4}/src/lib.rs +0 -0
  306. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-14.0.3 → wasmtime-cranelift-shared-14.0.4}/src/compiled_function.rs +0 -0
  307. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-14.0.3 → wasmtime-cranelift-shared-14.0.4}/src/isa_builder.rs +0 -0
  308. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-14.0.3 → wasmtime-cranelift-shared-14.0.4}/src/lib.rs +0 -0
  309. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-14.0.3 → wasmtime-cranelift-shared-14.0.4}/src/obj.rs +0 -0
  310. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-environ-14.0.4}/LICENSE +0 -0
  311. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/examples/factc.rs +0 -0
  312. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/address_map.rs +0 -0
  313. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/builtin.rs +0 -0
  314. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/compilation.rs +0 -0
  315. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component/compiler.rs +0 -0
  316. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component/dfg.rs +0 -0
  317. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component/info.rs +0 -0
  318. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component/translate/adapt.rs +0 -0
  319. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component/translate/inline.rs +0 -0
  320. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component/translate.rs +0 -0
  321. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component/types/resources.rs +0 -0
  322. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component/types.rs +0 -0
  323. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component/vmcomponent_offsets.rs +0 -0
  324. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/component.rs +0 -0
  325. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/fact/core_types.rs +0 -0
  326. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/fact/signature.rs +0 -0
  327. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/fact/trampoline.rs +0 -0
  328. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/fact/transcode.rs +0 -0
  329. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/fact/traps.rs +0 -0
  330. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/fact.rs +0 -0
  331. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/lib.rs +0 -0
  332. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/module.rs +0 -0
  333. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/module_environ.rs +0 -0
  334. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/module_types.rs +0 -0
  335. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/obj.rs +0 -0
  336. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/ref_bits.rs +0 -0
  337. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/scopevec.rs +0 -0
  338. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/stack_map.rs +0 -0
  339. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/trap_encoding.rs +0 -0
  340. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/tunables.rs +0 -0
  341. /data/ext/cargo-vendor/{wasmtime-environ-14.0.3 → wasmtime-environ-14.0.4}/src/vmoffsets.rs +0 -0
  342. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-fiber-14.0.4}/LICENSE +0 -0
  343. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/build.rs +0 -0
  344. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/lib.rs +0 -0
  345. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/unix/aarch64.rs +0 -0
  346. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/unix/arm.rs +0 -0
  347. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/unix/riscv64.rs +0 -0
  348. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/unix/s390x.S +0 -0
  349. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/unix/x86.rs +0 -0
  350. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/unix/x86_64.rs +0 -0
  351. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/unix.rs +0 -0
  352. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/windows.c +0 -0
  353. /data/ext/cargo-vendor/{wasmtime-fiber-14.0.3 → wasmtime-fiber-14.0.4}/src/windows.rs +0 -0
  354. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-jit-14.0.4}/LICENSE +0 -0
  355. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/code_memory.rs +0 -0
  356. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/debug.rs +0 -0
  357. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/demangling.rs +0 -0
  358. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/instantiate.rs +0 -0
  359. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/lib.rs +0 -0
  360. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/profiling/jitdump.rs +0 -0
  361. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/profiling/perfmap.rs +0 -0
  362. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/profiling/vtune.rs +0 -0
  363. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/profiling.rs +0 -0
  364. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/unwind/miri.rs +0 -0
  365. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/unwind/systemv.rs +0 -0
  366. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/unwind/winx64.rs +0 -0
  367. /data/ext/cargo-vendor/{wasmtime-jit-14.0.3 → wasmtime-jit-14.0.4}/src/unwind.rs +0 -0
  368. /data/ext/cargo-vendor/{wasmtime-jit-debug-14.0.3 → wasmtime-jit-debug-14.0.4}/README.md +0 -0
  369. /data/ext/cargo-vendor/{wasmtime-jit-debug-14.0.3 → wasmtime-jit-debug-14.0.4}/src/gdb_jit_int.rs +0 -0
  370. /data/ext/cargo-vendor/{wasmtime-jit-debug-14.0.3 → wasmtime-jit-debug-14.0.4}/src/lib.rs +0 -0
  371. /data/ext/cargo-vendor/{wasmtime-jit-debug-14.0.3 → wasmtime-jit-debug-14.0.4}/src/perf_jitdump.rs +0 -0
  372. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-14.0.3 → wasmtime-jit-icache-coherence-14.0.4}/src/lib.rs +0 -0
  373. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-14.0.3 → wasmtime-jit-icache-coherence-14.0.4}/src/libc.rs +0 -0
  374. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-14.0.3 → wasmtime-jit-icache-coherence-14.0.4}/src/miri.rs +0 -0
  375. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-14.0.3 → wasmtime-jit-icache-coherence-14.0.4}/src/win.rs +0 -0
  376. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-runtime-14.0.4}/LICENSE +0 -0
  377. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/build.rs +0 -0
  378. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/proptest-regressions/instance/allocator/pooling/memory_pool.txt +0 -0
  379. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/component/libcalls.rs +0 -0
  380. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/component/resources.rs +0 -0
  381. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/component.rs +0 -0
  382. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/cow.rs +0 -0
  383. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/debug_builtins.rs +0 -0
  384. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/export.rs +0 -0
  385. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/externref.rs +0 -0
  386. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/helpers.c +0 -0
  387. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/imports.rs +0 -0
  388. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance/allocator/on_demand.rs +0 -0
  389. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  390. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance/allocator/pooling/memory_pool.rs +0 -0
  391. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance/allocator/pooling/stack_pool.rs +0 -0
  392. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance/allocator/pooling/table_pool.rs +0 -0
  393. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance/allocator/pooling/unix.rs +0 -0
  394. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance/allocator/pooling/windows.rs +0 -0
  395. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance/allocator/pooling.rs +0 -0
  396. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance/allocator.rs +0 -0
  397. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/instance.rs +0 -0
  398. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/lib.rs +0 -0
  399. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/libcalls.rs +0 -0
  400. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/memory.rs +0 -0
  401. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mmap/miri.rs +0 -0
  402. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mmap/unix.rs +0 -0
  403. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mmap/windows.rs +0 -0
  404. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mmap.rs +0 -0
  405. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mmap_vec.rs +0 -0
  406. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/module_id.rs +0 -0
  407. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mpk/disabled.rs +0 -0
  408. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mpk/enabled.rs +0 -0
  409. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mpk/mod.rs +0 -0
  410. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mpk/pkru.rs +0 -0
  411. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/mpk/sys.rs +0 -0
  412. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/parking_spot.rs +0 -0
  413. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/send_sync_ptr.rs +0 -0
  414. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/store_box.rs +0 -0
  415. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/table.rs +0 -0
  416. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/trampolines/aarch64.rs +0 -0
  417. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/trampolines/riscv64.rs +0 -0
  418. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/trampolines/s390x.S +0 -0
  419. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/trampolines/s390x.rs +0 -0
  420. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/trampolines/x86_64.rs +0 -0
  421. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/trampolines.rs +0 -0
  422. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers/backtrace/aarch64.rs +0 -0
  423. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers/backtrace/riscv64.rs +0 -0
  424. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers/backtrace/s390x.rs +0 -0
  425. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers/backtrace/x86_64.rs +0 -0
  426. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers/backtrace.rs +0 -0
  427. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers/coredump.rs +0 -0
  428. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers/macos.rs +0 -0
  429. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers/unix.rs +0 -0
  430. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers/windows.rs +0 -0
  431. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/traphandlers.rs +0 -0
  432. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/vmcontext/vm_host_func_context.rs +0 -0
  433. /data/ext/cargo-vendor/{wasmtime-runtime-14.0.3 → wasmtime-runtime-14.0.4}/src/vmcontext.rs +0 -0
  434. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-14.0.3 → wasmtime-versioned-export-macros-14.0.4}/src/lib.rs +0 -0
  435. /data/ext/cargo-vendor/{wast-66.0.2 → wasmtime-wasi-14.0.4}/LICENSE +0 -0
  436. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/README.md +0 -0
  437. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/build.rs +0 -0
  438. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/lib.rs +0 -0
  439. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/clocks/host.rs +0 -0
  440. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/clocks.rs +0 -0
  441. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/command.rs +0 -0
  442. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/ctx.rs +0 -0
  443. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/error.rs +0 -0
  444. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/clocks.rs +0 -0
  445. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/env.rs +0 -0
  446. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/exit.rs +0 -0
  447. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/filesystem/sync.rs +0 -0
  448. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/filesystem.rs +0 -0
  449. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/instance_network.rs +0 -0
  450. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/io.rs +0 -0
  451. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/mod.rs +0 -0
  452. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/network.rs +0 -0
  453. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/random.rs +0 -0
  454. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/tcp.rs +0 -0
  455. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/tcp_create_socket.rs +0 -0
  456. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/udp.rs +0 -0
  457. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/host/udp_create_socket.rs +0 -0
  458. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/ip_name_lookup.rs +0 -0
  459. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/mod.rs +0 -0
  460. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/network.rs +0 -0
  461. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/pipe.rs +0 -0
  462. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/poll.rs +0 -0
  463. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/preview1.rs +0 -0
  464. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/random.rs +0 -0
  465. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/stdio/worker_thread_stdin.rs +0 -0
  466. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/stdio.rs +0 -0
  467. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/stream.rs +0 -0
  468. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/table.rs +0 -0
  469. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/tcp.rs +0 -0
  470. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/udp.rs +0 -0
  471. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/src/preview2/write_stream.rs +0 -0
  472. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/command-extended.wit +0 -0
  473. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/cli/command.wit +0 -0
  474. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/cli/environment.wit +0 -0
  475. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/cli/exit.wit +0 -0
  476. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/cli/reactor.wit +0 -0
  477. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/cli/run.wit +0 -0
  478. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/cli/stdio.wit +0 -0
  479. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/cli/terminal.wit +0 -0
  480. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/clocks/monotonic-clock.wit +0 -0
  481. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/clocks/timezone.wit +0 -0
  482. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/clocks/wall-clock.wit +0 -0
  483. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/clocks/world.wit +0 -0
  484. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/filesystem/preopens.wit +0 -0
  485. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/filesystem/types.wit +0 -0
  486. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/filesystem/world.wit +0 -0
  487. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/http/incoming-handler.wit +0 -0
  488. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/http/outgoing-handler.wit +0 -0
  489. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/http/proxy.wit +0 -0
  490. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/http/types.wit +0 -0
  491. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/io/poll.wit +0 -0
  492. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/io/streams.wit +0 -0
  493. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/io/world.wit +0 -0
  494. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/logging/logging.wit +0 -0
  495. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/logging/world.wit +0 -0
  496. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/random/insecure-seed.wit +0 -0
  497. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/random/insecure.wit +0 -0
  498. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/random/random.wit +0 -0
  499. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/random/world.wit +0 -0
  500. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/sockets/instance-network.wit +0 -0
  501. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  502. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/sockets/network.wit +0 -0
  503. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  504. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/sockets/tcp.wit +0 -0
  505. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/sockets/udp-create-socket.wit +0 -0
  506. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/sockets/udp.wit +0 -0
  507. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/deps/sockets/world.wit +0 -0
  508. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/main.wit +0 -0
  509. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/wit/test.wit +0 -0
  510. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/witx/typenames.witx +0 -0
  511. /data/ext/cargo-vendor/{wasmtime-wasi-14.0.3 → wasmtime-wasi-14.0.4}/witx/wasi_snapshot_preview1.witx +0 -0
  512. /data/ext/cargo-vendor/{wasmtime-winch-14.0.3 → wasmtime-winch-14.0.4}/LICENSE +0 -0
  513. /data/ext/cargo-vendor/{wasmtime-winch-14.0.3 → wasmtime-winch-14.0.4}/src/builder.rs +0 -0
  514. /data/ext/cargo-vendor/{wasmtime-winch-14.0.3 → wasmtime-winch-14.0.4}/src/compiler.rs +0 -0
  515. /data/ext/cargo-vendor/{wasmtime-winch-14.0.3 → wasmtime-winch-14.0.4}/src/lib.rs +0 -0
  516. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-14.0.3 → wasmtime-wit-bindgen-14.0.4}/src/lib.rs +0 -0
  517. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-14.0.3 → wasmtime-wit-bindgen-14.0.4}/src/rust.rs +0 -0
  518. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-14.0.3 → wasmtime-wit-bindgen-14.0.4}/src/source.rs +0 -0
  519. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-14.0.3 → wasmtime-wit-bindgen-14.0.4}/src/types.rs +0 -0
  520. /data/ext/cargo-vendor/{wasmtime-wmemcheck-14.0.3 → wasmtime-wmemcheck-14.0.4}/src/lib.rs +0 -0
  521. /data/ext/cargo-vendor/{wat-1.0.77 → wast-67.0.1}/LICENSE +0 -0
  522. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/README.md +0 -0
  523. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/alias.rs +0 -0
  524. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/component.rs +0 -0
  525. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/custom.rs +0 -0
  526. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/expand.rs +0 -0
  527. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/export.rs +0 -0
  528. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/func.rs +0 -0
  529. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/instance.rs +0 -0
  530. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/item_ref.rs +0 -0
  531. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/module.rs +0 -0
  532. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/types.rs +0 -0
  533. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component/wast.rs +0 -0
  534. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/component.rs +0 -0
  535. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/custom.rs +0 -0
  536. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/export.rs +0 -0
  537. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/expr.rs +0 -0
  538. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/func.rs +0 -0
  539. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/global.rs +0 -0
  540. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/import.rs +0 -0
  541. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/memory.rs +0 -0
  542. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/module.rs +0 -0
  543. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/resolve/deinline_import_export.rs +0 -0
  544. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/resolve/mod.rs +0 -0
  545. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/resolve/types.rs +0 -0
  546. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/table.rs +0 -0
  547. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/tag.rs +0 -0
  548. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core/wast.rs +0 -0
  549. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/core.rs +0 -0
  550. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/encode.rs +0 -0
  551. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/error.rs +0 -0
  552. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/gensym.rs +0 -0
  553. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/lexer.rs +0 -0
  554. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/lib.rs +0 -0
  555. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/names.rs +0 -0
  556. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/parser.rs +0 -0
  557. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/token.rs +0 -0
  558. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/wast.rs +0 -0
  559. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/src/wat.rs +0 -0
  560. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/annotations.rs +0 -0
  561. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/comments.rs +0 -0
  562. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-core-func-alias.wat +0 -0
  563. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-core-func-alias.wat.err +0 -0
  564. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-func-alias.wat +0 -0
  565. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-func-alias.wat.err +0 -0
  566. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-index.wat +0 -0
  567. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-index.wat.err +0 -0
  568. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-name.wat +0 -0
  569. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-name.wat.err +0 -0
  570. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-name2.wat +0 -0
  571. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-name2.wat.err +0 -0
  572. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-name3.wat +0 -0
  573. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/bad-name3.wat.err +0 -0
  574. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/block1.wat +0 -0
  575. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/block1.wat.err +0 -0
  576. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/block2.wat +0 -0
  577. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/block2.wat.err +0 -0
  578. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/block3.wat +0 -0
  579. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/block3.wat.err +0 -0
  580. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment0.wat +0 -0
  581. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment0.wat.err +0 -0
  582. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment1.wat +0 -0
  583. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment1.wat.err +0 -0
  584. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment2.wat +0 -0
  585. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment2.wat.err +0 -0
  586. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment3.wat +0 -0
  587. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment3.wat.err +0 -0
  588. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment4.wat +0 -0
  589. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment4.wat.err +0 -0
  590. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment5.wat +0 -0
  591. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment5.wat.err +0 -0
  592. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment6.wat +0 -0
  593. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment6.wat.err +0 -0
  594. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment7.wat +0 -0
  595. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment7.wat.err +0 -0
  596. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment8.wat +0 -0
  597. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-block-comment8.wat.err +0 -0
  598. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment0.wat +0 -0
  599. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment0.wat.err +0 -0
  600. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment1.wat +0 -0
  601. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment1.wat.err +0 -0
  602. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment2.wat +0 -0
  603. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment2.wat.err +0 -0
  604. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment3.wat +0 -0
  605. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment3.wat.err +0 -0
  606. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment4.wat +0 -0
  607. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment4.wat.err +0 -0
  608. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment5.wat +0 -0
  609. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment5.wat.err +0 -0
  610. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment6.wat +0 -0
  611. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment6.wat.err +0 -0
  612. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment7.wat +0 -0
  613. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment7.wat.err +0 -0
  614. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment8.wat +0 -0
  615. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-line-comment8.wat.err +0 -0
  616. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string0.wat +0 -0
  617. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string0.wat.err +0 -0
  618. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string1.wat +0 -0
  619. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string1.wat.err +0 -0
  620. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string2.wat +0 -0
  621. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string2.wat.err +0 -0
  622. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string3.wat +0 -0
  623. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string3.wat.err +0 -0
  624. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string4.wat +0 -0
  625. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string4.wat.err +0 -0
  626. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string5.wat +0 -0
  627. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string5.wat.err +0 -0
  628. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string6.wat +0 -0
  629. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string6.wat.err +0 -0
  630. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string7.wat +0 -0
  631. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string7.wat.err +0 -0
  632. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string8.wat +0 -0
  633. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/confusing-string8.wat.err +0 -0
  634. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/inline1.wat +0 -0
  635. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/inline1.wat.err +0 -0
  636. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/newline-in-string.wat +0 -0
  637. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/newline-in-string.wat.err +0 -0
  638. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string1.wat +0 -0
  639. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string1.wat.err +0 -0
  640. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string10.wat +0 -0
  641. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string10.wat.err +0 -0
  642. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string11.wat +0 -0
  643. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string11.wat.err +0 -0
  644. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string12.wat +0 -0
  645. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string12.wat.err +0 -0
  646. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string13.wat +0 -0
  647. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string13.wat.err +0 -0
  648. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string14.wat +0 -0
  649. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string14.wat.err +0 -0
  650. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string15.wat +0 -0
  651. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string15.wat.err +0 -0
  652. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string16.wat +0 -0
  653. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string16.wat.err +0 -0
  654. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string2.wat +0 -0
  655. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string2.wat.err +0 -0
  656. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string3.wat +0 -0
  657. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string3.wat.err +0 -0
  658. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string4.wat +0 -0
  659. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string4.wat.err +0 -0
  660. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string5.wat +0 -0
  661. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string5.wat.err +0 -0
  662. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string6.wat +0 -0
  663. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string6.wat.err +0 -0
  664. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string7.wat +0 -0
  665. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string7.wat.err +0 -0
  666. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string8.wat +0 -0
  667. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string8.wat.err +0 -0
  668. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string9.wat +0 -0
  669. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/string9.wat.err +0 -0
  670. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/unbalanced.wat +0 -0
  671. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail/unbalanced.wat.err +0 -0
  672. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/parse-fail.rs +0 -0
  673. /data/ext/cargo-vendor/{wast-66.0.2 → wast-67.0.1}/tests/recursive.rs +0 -0
  674. /data/ext/cargo-vendor/{wiggle-14.0.3 → wat-1.0.79}/LICENSE +0 -0
  675. /data/ext/cargo-vendor/{wat-1.0.77 → wat-1.0.79}/README.md +0 -0
  676. /data/ext/cargo-vendor/{wat-1.0.77 → wat-1.0.79}/src/lib.rs +0 -0
  677. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-14.0.4}/LICENSE +0 -0
  678. /data/ext/cargo-vendor/{wiggle-14.0.3 → wiggle-14.0.4}/README.md +0 -0
  679. /data/ext/cargo-vendor/{wiggle-14.0.3 → wiggle-14.0.4}/src/borrow.rs +0 -0
  680. /data/ext/cargo-vendor/{wiggle-14.0.3 → wiggle-14.0.4}/src/error.rs +0 -0
  681. /data/ext/cargo-vendor/{wiggle-14.0.3 → wiggle-14.0.4}/src/guest_type.rs +0 -0
  682. /data/ext/cargo-vendor/{wiggle-14.0.3 → wiggle-14.0.4}/src/lib.rs +0 -0
  683. /data/ext/cargo-vendor/{wiggle-14.0.3 → wiggle-14.0.4}/src/region.rs +0 -0
  684. /data/ext/cargo-vendor/{wiggle-14.0.3 → wiggle-14.0.4}/src/wasmtime.rs +0 -0
  685. /data/ext/cargo-vendor/{wiggle-macro-14.0.3 → wiggle-generate-14.0.4}/LICENSE +0 -0
  686. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/README.md +0 -0
  687. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/codegen_settings.rs +0 -0
  688. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/config.rs +0 -0
  689. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/funcs.rs +0 -0
  690. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/lib.rs +0 -0
  691. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/lifetimes.rs +0 -0
  692. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/module_trait.rs +0 -0
  693. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/names.rs +0 -0
  694. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/types/error.rs +0 -0
  695. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/types/flags.rs +0 -0
  696. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/types/handle.rs +0 -0
  697. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/types/mod.rs +0 -0
  698. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/types/record.rs +0 -0
  699. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/types/variant.rs +0 -0
  700. /data/ext/cargo-vendor/{wiggle-generate-14.0.3 → wiggle-generate-14.0.4}/src/wasmtime.rs +0 -0
  701. /data/ext/cargo-vendor/{wiggle-macro-14.0.3 → wiggle-macro-14.0.4}/src/lib.rs +0 -0
  702. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/LICENSE +0 -0
  703. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/build.rs +0 -0
  704. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/abi/local.rs +0 -0
  705. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/abi/mod.rs +0 -0
  706. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/codegen/builtin.rs +0 -0
  707. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/codegen/call.rs +0 -0
  708. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/codegen/context.rs +0 -0
  709. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/codegen/control.rs +0 -0
  710. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/codegen/env.rs +0 -0
  711. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/codegen/mod.rs +0 -0
  712. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/frame/mod.rs +0 -0
  713. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/aarch64/abi.rs +0 -0
  714. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/aarch64/address.rs +0 -0
  715. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/aarch64/asm.rs +0 -0
  716. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/aarch64/masm.rs +0 -0
  717. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/aarch64/mod.rs +0 -0
  718. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/aarch64/regs.rs +0 -0
  719. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/mod.rs +0 -0
  720. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/reg.rs +0 -0
  721. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/x64/abi.rs +0 -0
  722. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/x64/address.rs +0 -0
  723. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/x64/asm.rs +0 -0
  724. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/x64/masm.rs +0 -0
  725. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/x64/mod.rs +0 -0
  726. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/isa/x64/regs.rs +0 -0
  727. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/lib.rs +0 -0
  728. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/masm.rs +0 -0
  729. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/regalloc.rs +0 -0
  730. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/regset.rs +0 -0
  731. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/stack.rs +0 -0
  732. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/trampoline.rs +0 -0
  733. /data/ext/cargo-vendor/{winch-codegen-0.12.3 → winch-codegen-0.12.4}/src/visitor.rs +0 -0
@@ -0,0 +1,2989 @@
1
+ use crate::{encode_section, Encode, HeapType, Section, SectionId, ValType};
2
+ use std::borrow::Cow;
3
+
4
+ /// An encoder for the code section.
5
+ ///
6
+ /// Code sections are only supported for modules.
7
+ ///
8
+ /// # Example
9
+ ///
10
+ /// ```
11
+ /// use wasm_encoder::{
12
+ /// CodeSection, Function, FunctionSection, Instruction, Module,
13
+ /// TypeSection, ValType
14
+ /// };
15
+ ///
16
+ /// let mut types = TypeSection::new();
17
+ /// types.function(vec![], vec![ValType::I32]);
18
+ ///
19
+ /// let mut functions = FunctionSection::new();
20
+ /// let type_index = 0;
21
+ /// functions.function(type_index);
22
+ ///
23
+ /// let locals = vec![];
24
+ /// let mut func = Function::new(locals);
25
+ /// func.instruction(&Instruction::I32Const(42));
26
+ /// let mut code = CodeSection::new();
27
+ /// code.function(&func);
28
+ ///
29
+ /// let mut module = Module::new();
30
+ /// module
31
+ /// .section(&types)
32
+ /// .section(&functions)
33
+ /// .section(&code);
34
+ ///
35
+ /// let wasm_bytes = module.finish();
36
+ /// ```
37
+ #[derive(Clone, Default, Debug)]
38
+ pub struct CodeSection {
39
+ bytes: Vec<u8>,
40
+ num_added: u32,
41
+ }
42
+
43
+ impl CodeSection {
44
+ /// Create a new code section encoder.
45
+ pub fn new() -> Self {
46
+ Self::default()
47
+ }
48
+
49
+ /// The number of functions in the section.
50
+ pub fn len(&self) -> u32 {
51
+ self.num_added
52
+ }
53
+
54
+ /// The number of bytes already added to this section.
55
+ ///
56
+ /// This number doesn't include the vector length that precedes the
57
+ /// code entries, since it has a variable size that isn't known until all
58
+ /// functions are added.
59
+ pub fn byte_len(&self) -> usize {
60
+ self.bytes.len()
61
+ }
62
+
63
+ /// Determines if the section is empty.
64
+ pub fn is_empty(&self) -> bool {
65
+ self.num_added == 0
66
+ }
67
+
68
+ /// Write a function body into this code section.
69
+ pub fn function(&mut self, func: &Function) -> &mut Self {
70
+ func.encode(&mut self.bytes);
71
+ self.num_added += 1;
72
+ self
73
+ }
74
+
75
+ /// Add a raw byte slice into this code section as a function body.
76
+ ///
77
+ /// The length prefix of the function body will be automatically prepended,
78
+ /// and should not be included in the raw byte slice.
79
+ ///
80
+ /// # Example
81
+ ///
82
+ /// You can use the `raw` method to copy an already-encoded function body
83
+ /// into a new code section encoder:
84
+ ///
85
+ /// ```
86
+ /// // id, size, # entries, entry
87
+ /// let code_section = [10, 6, 1, 4, 0, 65, 0, 11];
88
+ ///
89
+ /// // Parse the code section.
90
+ /// let reader = wasmparser::CodeSectionReader::new(&code_section, 0).unwrap();
91
+ /// let body = reader.into_iter().next().unwrap().unwrap();
92
+ /// let body_range = body.range();
93
+ ///
94
+ /// // Add the body to a new code section encoder by copying bytes rather
95
+ /// // than re-parsing and re-encoding it.
96
+ /// let mut encoder = wasm_encoder::CodeSection::new();
97
+ /// encoder.raw(&code_section[body_range.start..body_range.end]);
98
+ /// ```
99
+ pub fn raw(&mut self, data: &[u8]) -> &mut Self {
100
+ data.encode(&mut self.bytes);
101
+ self.num_added += 1;
102
+ self
103
+ }
104
+ }
105
+
106
+ impl Encode for CodeSection {
107
+ fn encode(&self, sink: &mut Vec<u8>) {
108
+ encode_section(sink, self.num_added, &self.bytes);
109
+ }
110
+ }
111
+
112
+ impl Section for CodeSection {
113
+ fn id(&self) -> u8 {
114
+ SectionId::Code.into()
115
+ }
116
+ }
117
+
118
+ /// An encoder for a function body within the code section.
119
+ ///
120
+ /// # Example
121
+ ///
122
+ /// ```
123
+ /// use wasm_encoder::{CodeSection, Function, Instruction};
124
+ ///
125
+ /// // Define the function body for:
126
+ /// //
127
+ /// // (func (param i32 i32) (result i32)
128
+ /// // local.get 0
129
+ /// // local.get 1
130
+ /// // i32.add)
131
+ /// let locals = vec![];
132
+ /// let mut func = Function::new(locals);
133
+ /// func.instruction(&Instruction::LocalGet(0));
134
+ /// func.instruction(&Instruction::LocalGet(1));
135
+ /// func.instruction(&Instruction::I32Add);
136
+ ///
137
+ /// // Add our function to the code section.
138
+ /// let mut code = CodeSection::new();
139
+ /// code.function(&func);
140
+ /// ```
141
+ #[derive(Clone, Debug, Eq, PartialEq)]
142
+ pub struct Function {
143
+ bytes: Vec<u8>,
144
+ }
145
+
146
+ impl Function {
147
+ /// Create a new function body with the given locals.
148
+ ///
149
+ /// The argument is an iterator over `(N, Ty)`, which defines
150
+ /// that the next `N` locals will be of type `Ty`.
151
+ ///
152
+ /// For example, a function with locals 0 and 1 of type I32 and
153
+ /// local 2 of type F32 would be created as:
154
+ ///
155
+ /// ```
156
+ /// # use wasm_encoder::{Function, ValType};
157
+ /// let f = Function::new([(2, ValType::I32), (1, ValType::F32)]);
158
+ /// ```
159
+ ///
160
+ /// For more information about the code section (and function definition) in the WASM binary format
161
+ /// see the [WebAssembly spec](https://webassembly.github.io/spec/core/binary/modules.html#binary-func)
162
+ pub fn new<L>(locals: L) -> Self
163
+ where
164
+ L: IntoIterator<Item = (u32, ValType)>,
165
+ L::IntoIter: ExactSizeIterator,
166
+ {
167
+ let locals = locals.into_iter();
168
+ let mut bytes = vec![];
169
+ locals.len().encode(&mut bytes);
170
+ for (count, ty) in locals {
171
+ count.encode(&mut bytes);
172
+ ty.encode(&mut bytes);
173
+ }
174
+ Function { bytes }
175
+ }
176
+
177
+ /// Create a function from a list of locals' types.
178
+ ///
179
+ /// Unlike [`Function::new`], this constructor simply takes a list of types
180
+ /// which are in order associated with locals.
181
+ ///
182
+ /// For example:
183
+ ///
184
+ /// ```
185
+ /// # use wasm_encoder::{Function, ValType};
186
+ /// let f = Function::new([(2, ValType::I32), (1, ValType::F32)]);
187
+ /// let g = Function::new_with_locals_types([
188
+ /// ValType::I32, ValType::I32, ValType::F32
189
+ /// ]);
190
+ ///
191
+ /// assert_eq!(f, g)
192
+ /// ```
193
+ pub fn new_with_locals_types<L>(locals: L) -> Self
194
+ where
195
+ L: IntoIterator<Item = ValType>,
196
+ {
197
+ let locals = locals.into_iter();
198
+
199
+ let mut locals_collected: Vec<(u32, ValType)> = vec![];
200
+ for l in locals {
201
+ if let Some((last_count, last_type)) = locals_collected.last_mut() {
202
+ if l == *last_type {
203
+ // Increment the count of consecutive locals of this type
204
+ *last_count += 1;
205
+ continue;
206
+ }
207
+ }
208
+ // If we didn't increment, a new type of local appeared
209
+ locals_collected.push((1, l));
210
+ }
211
+
212
+ Function::new(locals_collected)
213
+ }
214
+
215
+ /// Write an instruction into this function body.
216
+ pub fn instruction(&mut self, instruction: &Instruction) -> &mut Self {
217
+ instruction.encode(&mut self.bytes);
218
+ self
219
+ }
220
+
221
+ /// Add raw bytes to this function's body.
222
+ pub fn raw<B>(&mut self, bytes: B) -> &mut Self
223
+ where
224
+ B: IntoIterator<Item = u8>,
225
+ {
226
+ self.bytes.extend(bytes);
227
+ self
228
+ }
229
+
230
+ /// The number of bytes already added to this function.
231
+ ///
232
+ /// This number doesn't include the variable-width size field that `encode`
233
+ /// will write before the added bytes, since the size of that field isn't
234
+ /// known until all the instructions are added to this function.
235
+ pub fn byte_len(&self) -> usize {
236
+ self.bytes.len()
237
+ }
238
+ }
239
+
240
+ impl Encode for Function {
241
+ fn encode(&self, sink: &mut Vec<u8>) {
242
+ self.bytes.encode(sink);
243
+ }
244
+ }
245
+
246
+ /// The immediate for a memory instruction.
247
+ #[derive(Clone, Copy, Debug)]
248
+ pub struct MemArg {
249
+ /// A static offset to add to the instruction's dynamic address operand.
250
+ ///
251
+ /// This is a `u64` field for the memory64 proposal, but 32-bit memories
252
+ /// limit offsets to at most `u32::MAX` bytes. This will be encoded as a LEB
253
+ /// but it won't generate a valid module if an offset is specified which is
254
+ /// larger than the maximum size of the index space for the memory indicated
255
+ /// by `memory_index`.
256
+ pub offset: u64,
257
+ /// The expected alignment of the instruction's dynamic address operand
258
+ /// (expressed the exponent of a power of two).
259
+ pub align: u32,
260
+ /// The index of the memory this instruction is operating upon.
261
+ pub memory_index: u32,
262
+ }
263
+
264
+ impl Encode for MemArg {
265
+ fn encode(&self, sink: &mut Vec<u8>) {
266
+ if self.memory_index == 0 {
267
+ self.align.encode(sink);
268
+ self.offset.encode(sink);
269
+ } else {
270
+ (self.align | (1 << 6)).encode(sink);
271
+ self.memory_index.encode(sink);
272
+ self.offset.encode(sink);
273
+ }
274
+ }
275
+ }
276
+
277
+ /// Describe an unchecked SIMD lane index.
278
+ pub type Lane = u8;
279
+
280
+ /// The type for a `block`/`if`/`loop`.
281
+ #[derive(Clone, Copy, Debug)]
282
+ pub enum BlockType {
283
+ /// `[] -> []`
284
+ Empty,
285
+ /// `[] -> [t]`
286
+ Result(ValType),
287
+ /// The `n`th function type.
288
+ FunctionType(u32),
289
+ }
290
+
291
+ impl Encode for BlockType {
292
+ fn encode(&self, sink: &mut Vec<u8>) {
293
+ match *self {
294
+ Self::Empty => sink.push(0x40),
295
+ Self::Result(ty) => ty.encode(sink),
296
+ Self::FunctionType(f) => (f as i64).encode(sink),
297
+ }
298
+ }
299
+ }
300
+
301
+ /// WebAssembly instructions.
302
+ #[derive(Clone, Debug)]
303
+ #[non_exhaustive]
304
+ #[allow(missing_docs, non_camel_case_types)]
305
+ pub enum Instruction<'a> {
306
+ // Control instructions.
307
+ Unreachable,
308
+ Nop,
309
+ Block(BlockType),
310
+ Loop(BlockType),
311
+ If(BlockType),
312
+ Else,
313
+ Try(BlockType),
314
+ Delegate(u32),
315
+ Catch(u32),
316
+ CatchAll,
317
+ End,
318
+ Br(u32),
319
+ BrIf(u32),
320
+ BrTable(Cow<'a, [u32]>, u32),
321
+ BrOnNull(u32),
322
+ BrOnNonNull(u32),
323
+ Return,
324
+ Call(u32),
325
+ CallRef(u32),
326
+ CallIndirect { ty: u32, table: u32 },
327
+ ReturnCallRef(u32),
328
+ ReturnCall(u32),
329
+ ReturnCallIndirect { ty: u32, table: u32 },
330
+ Throw(u32),
331
+ Rethrow(u32),
332
+
333
+ // Parametric instructions.
334
+ Drop,
335
+ Select,
336
+
337
+ // Variable instructions.
338
+ LocalGet(u32),
339
+ LocalSet(u32),
340
+ LocalTee(u32),
341
+ GlobalGet(u32),
342
+ GlobalSet(u32),
343
+
344
+ // Memory instructions.
345
+ I32Load(MemArg),
346
+ I64Load(MemArg),
347
+ F32Load(MemArg),
348
+ F64Load(MemArg),
349
+ I32Load8S(MemArg),
350
+ I32Load8U(MemArg),
351
+ I32Load16S(MemArg),
352
+ I32Load16U(MemArg),
353
+ I64Load8S(MemArg),
354
+ I64Load8U(MemArg),
355
+ I64Load16S(MemArg),
356
+ I64Load16U(MemArg),
357
+ I64Load32S(MemArg),
358
+ I64Load32U(MemArg),
359
+ I32Store(MemArg),
360
+ I64Store(MemArg),
361
+ F32Store(MemArg),
362
+ F64Store(MemArg),
363
+ I32Store8(MemArg),
364
+ I32Store16(MemArg),
365
+ I64Store8(MemArg),
366
+ I64Store16(MemArg),
367
+ I64Store32(MemArg),
368
+ MemorySize(u32),
369
+ MemoryGrow(u32),
370
+ MemoryInit { mem: u32, data_index: u32 },
371
+ DataDrop(u32),
372
+ MemoryCopy { src_mem: u32, dst_mem: u32 },
373
+ MemoryFill(u32),
374
+ MemoryDiscard(u32),
375
+
376
+ // Numeric instructions.
377
+ I32Const(i32),
378
+ I64Const(i64),
379
+ F32Const(f32),
380
+ F64Const(f64),
381
+ I32Eqz,
382
+ I32Eq,
383
+ I32Ne,
384
+ I32LtS,
385
+ I32LtU,
386
+ I32GtS,
387
+ I32GtU,
388
+ I32LeS,
389
+ I32LeU,
390
+ I32GeS,
391
+ I32GeU,
392
+ I64Eqz,
393
+ I64Eq,
394
+ I64Ne,
395
+ I64LtS,
396
+ I64LtU,
397
+ I64GtS,
398
+ I64GtU,
399
+ I64LeS,
400
+ I64LeU,
401
+ I64GeS,
402
+ I64GeU,
403
+ F32Eq,
404
+ F32Ne,
405
+ F32Lt,
406
+ F32Gt,
407
+ F32Le,
408
+ F32Ge,
409
+ F64Eq,
410
+ F64Ne,
411
+ F64Lt,
412
+ F64Gt,
413
+ F64Le,
414
+ F64Ge,
415
+ I32Clz,
416
+ I32Ctz,
417
+ I32Popcnt,
418
+ I32Add,
419
+ I32Sub,
420
+ I32Mul,
421
+ I32DivS,
422
+ I32DivU,
423
+ I32RemS,
424
+ I32RemU,
425
+ I32And,
426
+ I32Or,
427
+ I32Xor,
428
+ I32Shl,
429
+ I32ShrS,
430
+ I32ShrU,
431
+ I32Rotl,
432
+ I32Rotr,
433
+ I64Clz,
434
+ I64Ctz,
435
+ I64Popcnt,
436
+ I64Add,
437
+ I64Sub,
438
+ I64Mul,
439
+ I64DivS,
440
+ I64DivU,
441
+ I64RemS,
442
+ I64RemU,
443
+ I64And,
444
+ I64Or,
445
+ I64Xor,
446
+ I64Shl,
447
+ I64ShrS,
448
+ I64ShrU,
449
+ I64Rotl,
450
+ I64Rotr,
451
+ F32Abs,
452
+ F32Neg,
453
+ F32Ceil,
454
+ F32Floor,
455
+ F32Trunc,
456
+ F32Nearest,
457
+ F32Sqrt,
458
+ F32Add,
459
+ F32Sub,
460
+ F32Mul,
461
+ F32Div,
462
+ F32Min,
463
+ F32Max,
464
+ F32Copysign,
465
+ F64Abs,
466
+ F64Neg,
467
+ F64Ceil,
468
+ F64Floor,
469
+ F64Trunc,
470
+ F64Nearest,
471
+ F64Sqrt,
472
+ F64Add,
473
+ F64Sub,
474
+ F64Mul,
475
+ F64Div,
476
+ F64Min,
477
+ F64Max,
478
+ F64Copysign,
479
+ I32WrapI64,
480
+ I32TruncF32S,
481
+ I32TruncF32U,
482
+ I32TruncF64S,
483
+ I32TruncF64U,
484
+ I64ExtendI32S,
485
+ I64ExtendI32U,
486
+ I64TruncF32S,
487
+ I64TruncF32U,
488
+ I64TruncF64S,
489
+ I64TruncF64U,
490
+ F32ConvertI32S,
491
+ F32ConvertI32U,
492
+ F32ConvertI64S,
493
+ F32ConvertI64U,
494
+ F32DemoteF64,
495
+ F64ConvertI32S,
496
+ F64ConvertI32U,
497
+ F64ConvertI64S,
498
+ F64ConvertI64U,
499
+ F64PromoteF32,
500
+ I32ReinterpretF32,
501
+ I64ReinterpretF64,
502
+ F32ReinterpretI32,
503
+ F64ReinterpretI64,
504
+ I32Extend8S,
505
+ I32Extend16S,
506
+ I64Extend8S,
507
+ I64Extend16S,
508
+ I64Extend32S,
509
+ I32TruncSatF32S,
510
+ I32TruncSatF32U,
511
+ I32TruncSatF64S,
512
+ I32TruncSatF64U,
513
+ I64TruncSatF32S,
514
+ I64TruncSatF32U,
515
+ I64TruncSatF64S,
516
+ I64TruncSatF64U,
517
+
518
+ // Reference types instructions.
519
+ TypedSelect(ValType),
520
+ RefNull(HeapType),
521
+ RefIsNull,
522
+ RefFunc(u32),
523
+ RefAsNonNull,
524
+
525
+ // GC types instructions.
526
+ RefI31,
527
+ I31GetS,
528
+ I31GetU,
529
+
530
+ // Bulk memory instructions.
531
+ TableInit { elem_index: u32, table: u32 },
532
+ ElemDrop(u32),
533
+ TableFill(u32),
534
+ TableSet(u32),
535
+ TableGet(u32),
536
+ TableGrow(u32),
537
+ TableSize(u32),
538
+ TableCopy { src_table: u32, dst_table: u32 },
539
+
540
+ // SIMD instructions.
541
+ V128Load(MemArg),
542
+ V128Load8x8S(MemArg),
543
+ V128Load8x8U(MemArg),
544
+ V128Load16x4S(MemArg),
545
+ V128Load16x4U(MemArg),
546
+ V128Load32x2S(MemArg),
547
+ V128Load32x2U(MemArg),
548
+ V128Load8Splat(MemArg),
549
+ V128Load16Splat(MemArg),
550
+ V128Load32Splat(MemArg),
551
+ V128Load64Splat(MemArg),
552
+ V128Load32Zero(MemArg),
553
+ V128Load64Zero(MemArg),
554
+ V128Store(MemArg),
555
+ V128Load8Lane { memarg: MemArg, lane: Lane },
556
+ V128Load16Lane { memarg: MemArg, lane: Lane },
557
+ V128Load32Lane { memarg: MemArg, lane: Lane },
558
+ V128Load64Lane { memarg: MemArg, lane: Lane },
559
+ V128Store8Lane { memarg: MemArg, lane: Lane },
560
+ V128Store16Lane { memarg: MemArg, lane: Lane },
561
+ V128Store32Lane { memarg: MemArg, lane: Lane },
562
+ V128Store64Lane { memarg: MemArg, lane: Lane },
563
+ V128Const(i128),
564
+ I8x16Shuffle([Lane; 16]),
565
+ I8x16ExtractLaneS(Lane),
566
+ I8x16ExtractLaneU(Lane),
567
+ I8x16ReplaceLane(Lane),
568
+ I16x8ExtractLaneS(Lane),
569
+ I16x8ExtractLaneU(Lane),
570
+ I16x8ReplaceLane(Lane),
571
+ I32x4ExtractLane(Lane),
572
+ I32x4ReplaceLane(Lane),
573
+ I64x2ExtractLane(Lane),
574
+ I64x2ReplaceLane(Lane),
575
+ F32x4ExtractLane(Lane),
576
+ F32x4ReplaceLane(Lane),
577
+ F64x2ExtractLane(Lane),
578
+ F64x2ReplaceLane(Lane),
579
+ I8x16Swizzle,
580
+ I8x16Splat,
581
+ I16x8Splat,
582
+ I32x4Splat,
583
+ I64x2Splat,
584
+ F32x4Splat,
585
+ F64x2Splat,
586
+ I8x16Eq,
587
+ I8x16Ne,
588
+ I8x16LtS,
589
+ I8x16LtU,
590
+ I8x16GtS,
591
+ I8x16GtU,
592
+ I8x16LeS,
593
+ I8x16LeU,
594
+ I8x16GeS,
595
+ I8x16GeU,
596
+ I16x8Eq,
597
+ I16x8Ne,
598
+ I16x8LtS,
599
+ I16x8LtU,
600
+ I16x8GtS,
601
+ I16x8GtU,
602
+ I16x8LeS,
603
+ I16x8LeU,
604
+ I16x8GeS,
605
+ I16x8GeU,
606
+ I32x4Eq,
607
+ I32x4Ne,
608
+ I32x4LtS,
609
+ I32x4LtU,
610
+ I32x4GtS,
611
+ I32x4GtU,
612
+ I32x4LeS,
613
+ I32x4LeU,
614
+ I32x4GeS,
615
+ I32x4GeU,
616
+ I64x2Eq,
617
+ I64x2Ne,
618
+ I64x2LtS,
619
+ I64x2GtS,
620
+ I64x2LeS,
621
+ I64x2GeS,
622
+ F32x4Eq,
623
+ F32x4Ne,
624
+ F32x4Lt,
625
+ F32x4Gt,
626
+ F32x4Le,
627
+ F32x4Ge,
628
+ F64x2Eq,
629
+ F64x2Ne,
630
+ F64x2Lt,
631
+ F64x2Gt,
632
+ F64x2Le,
633
+ F64x2Ge,
634
+ V128Not,
635
+ V128And,
636
+ V128AndNot,
637
+ V128Or,
638
+ V128Xor,
639
+ V128Bitselect,
640
+ V128AnyTrue,
641
+ I8x16Abs,
642
+ I8x16Neg,
643
+ I8x16Popcnt,
644
+ I8x16AllTrue,
645
+ I8x16Bitmask,
646
+ I8x16NarrowI16x8S,
647
+ I8x16NarrowI16x8U,
648
+ I8x16Shl,
649
+ I8x16ShrS,
650
+ I8x16ShrU,
651
+ I8x16Add,
652
+ I8x16AddSatS,
653
+ I8x16AddSatU,
654
+ I8x16Sub,
655
+ I8x16SubSatS,
656
+ I8x16SubSatU,
657
+ I8x16MinS,
658
+ I8x16MinU,
659
+ I8x16MaxS,
660
+ I8x16MaxU,
661
+ I8x16AvgrU,
662
+ I16x8ExtAddPairwiseI8x16S,
663
+ I16x8ExtAddPairwiseI8x16U,
664
+ I16x8Abs,
665
+ I16x8Neg,
666
+ I16x8Q15MulrSatS,
667
+ I16x8AllTrue,
668
+ I16x8Bitmask,
669
+ I16x8NarrowI32x4S,
670
+ I16x8NarrowI32x4U,
671
+ I16x8ExtendLowI8x16S,
672
+ I16x8ExtendHighI8x16S,
673
+ I16x8ExtendLowI8x16U,
674
+ I16x8ExtendHighI8x16U,
675
+ I16x8Shl,
676
+ I16x8ShrS,
677
+ I16x8ShrU,
678
+ I16x8Add,
679
+ I16x8AddSatS,
680
+ I16x8AddSatU,
681
+ I16x8Sub,
682
+ I16x8SubSatS,
683
+ I16x8SubSatU,
684
+ I16x8Mul,
685
+ I16x8MinS,
686
+ I16x8MinU,
687
+ I16x8MaxS,
688
+ I16x8MaxU,
689
+ I16x8AvgrU,
690
+ I16x8ExtMulLowI8x16S,
691
+ I16x8ExtMulHighI8x16S,
692
+ I16x8ExtMulLowI8x16U,
693
+ I16x8ExtMulHighI8x16U,
694
+ I32x4ExtAddPairwiseI16x8S,
695
+ I32x4ExtAddPairwiseI16x8U,
696
+ I32x4Abs,
697
+ I32x4Neg,
698
+ I32x4AllTrue,
699
+ I32x4Bitmask,
700
+ I32x4ExtendLowI16x8S,
701
+ I32x4ExtendHighI16x8S,
702
+ I32x4ExtendLowI16x8U,
703
+ I32x4ExtendHighI16x8U,
704
+ I32x4Shl,
705
+ I32x4ShrS,
706
+ I32x4ShrU,
707
+ I32x4Add,
708
+ I32x4Sub,
709
+ I32x4Mul,
710
+ I32x4MinS,
711
+ I32x4MinU,
712
+ I32x4MaxS,
713
+ I32x4MaxU,
714
+ I32x4DotI16x8S,
715
+ I32x4ExtMulLowI16x8S,
716
+ I32x4ExtMulHighI16x8S,
717
+ I32x4ExtMulLowI16x8U,
718
+ I32x4ExtMulHighI16x8U,
719
+ I64x2Abs,
720
+ I64x2Neg,
721
+ I64x2AllTrue,
722
+ I64x2Bitmask,
723
+ I64x2ExtendLowI32x4S,
724
+ I64x2ExtendHighI32x4S,
725
+ I64x2ExtendLowI32x4U,
726
+ I64x2ExtendHighI32x4U,
727
+ I64x2Shl,
728
+ I64x2ShrS,
729
+ I64x2ShrU,
730
+ I64x2Add,
731
+ I64x2Sub,
732
+ I64x2Mul,
733
+ I64x2ExtMulLowI32x4S,
734
+ I64x2ExtMulHighI32x4S,
735
+ I64x2ExtMulLowI32x4U,
736
+ I64x2ExtMulHighI32x4U,
737
+ F32x4Ceil,
738
+ F32x4Floor,
739
+ F32x4Trunc,
740
+ F32x4Nearest,
741
+ F32x4Abs,
742
+ F32x4Neg,
743
+ F32x4Sqrt,
744
+ F32x4Add,
745
+ F32x4Sub,
746
+ F32x4Mul,
747
+ F32x4Div,
748
+ F32x4Min,
749
+ F32x4Max,
750
+ F32x4PMin,
751
+ F32x4PMax,
752
+ F64x2Ceil,
753
+ F64x2Floor,
754
+ F64x2Trunc,
755
+ F64x2Nearest,
756
+ F64x2Abs,
757
+ F64x2Neg,
758
+ F64x2Sqrt,
759
+ F64x2Add,
760
+ F64x2Sub,
761
+ F64x2Mul,
762
+ F64x2Div,
763
+ F64x2Min,
764
+ F64x2Max,
765
+ F64x2PMin,
766
+ F64x2PMax,
767
+ I32x4TruncSatF32x4S,
768
+ I32x4TruncSatF32x4U,
769
+ F32x4ConvertI32x4S,
770
+ F32x4ConvertI32x4U,
771
+ I32x4TruncSatF64x2SZero,
772
+ I32x4TruncSatF64x2UZero,
773
+ F64x2ConvertLowI32x4S,
774
+ F64x2ConvertLowI32x4U,
775
+ F32x4DemoteF64x2Zero,
776
+ F64x2PromoteLowF32x4,
777
+
778
+ // Relaxed simd proposal
779
+ I8x16RelaxedSwizzle,
780
+ I32x4RelaxedTruncF32x4S,
781
+ I32x4RelaxedTruncF32x4U,
782
+ I32x4RelaxedTruncF64x2SZero,
783
+ I32x4RelaxedTruncF64x2UZero,
784
+ F32x4RelaxedMadd,
785
+ F32x4RelaxedNmadd,
786
+ F64x2RelaxedMadd,
787
+ F64x2RelaxedNmadd,
788
+ I8x16RelaxedLaneselect,
789
+ I16x8RelaxedLaneselect,
790
+ I32x4RelaxedLaneselect,
791
+ I64x2RelaxedLaneselect,
792
+ F32x4RelaxedMin,
793
+ F32x4RelaxedMax,
794
+ F64x2RelaxedMin,
795
+ F64x2RelaxedMax,
796
+ I16x8RelaxedQ15mulrS,
797
+ I16x8RelaxedDotI8x16I7x16S,
798
+ I32x4RelaxedDotI8x16I7x16AddS,
799
+
800
+ // Atomic instructions (the threads proposal)
801
+ MemoryAtomicNotify(MemArg),
802
+ MemoryAtomicWait32(MemArg),
803
+ MemoryAtomicWait64(MemArg),
804
+ AtomicFence,
805
+ I32AtomicLoad(MemArg),
806
+ I64AtomicLoad(MemArg),
807
+ I32AtomicLoad8U(MemArg),
808
+ I32AtomicLoad16U(MemArg),
809
+ I64AtomicLoad8U(MemArg),
810
+ I64AtomicLoad16U(MemArg),
811
+ I64AtomicLoad32U(MemArg),
812
+ I32AtomicStore(MemArg),
813
+ I64AtomicStore(MemArg),
814
+ I32AtomicStore8(MemArg),
815
+ I32AtomicStore16(MemArg),
816
+ I64AtomicStore8(MemArg),
817
+ I64AtomicStore16(MemArg),
818
+ I64AtomicStore32(MemArg),
819
+ I32AtomicRmwAdd(MemArg),
820
+ I64AtomicRmwAdd(MemArg),
821
+ I32AtomicRmw8AddU(MemArg),
822
+ I32AtomicRmw16AddU(MemArg),
823
+ I64AtomicRmw8AddU(MemArg),
824
+ I64AtomicRmw16AddU(MemArg),
825
+ I64AtomicRmw32AddU(MemArg),
826
+ I32AtomicRmwSub(MemArg),
827
+ I64AtomicRmwSub(MemArg),
828
+ I32AtomicRmw8SubU(MemArg),
829
+ I32AtomicRmw16SubU(MemArg),
830
+ I64AtomicRmw8SubU(MemArg),
831
+ I64AtomicRmw16SubU(MemArg),
832
+ I64AtomicRmw32SubU(MemArg),
833
+ I32AtomicRmwAnd(MemArg),
834
+ I64AtomicRmwAnd(MemArg),
835
+ I32AtomicRmw8AndU(MemArg),
836
+ I32AtomicRmw16AndU(MemArg),
837
+ I64AtomicRmw8AndU(MemArg),
838
+ I64AtomicRmw16AndU(MemArg),
839
+ I64AtomicRmw32AndU(MemArg),
840
+ I32AtomicRmwOr(MemArg),
841
+ I64AtomicRmwOr(MemArg),
842
+ I32AtomicRmw8OrU(MemArg),
843
+ I32AtomicRmw16OrU(MemArg),
844
+ I64AtomicRmw8OrU(MemArg),
845
+ I64AtomicRmw16OrU(MemArg),
846
+ I64AtomicRmw32OrU(MemArg),
847
+ I32AtomicRmwXor(MemArg),
848
+ I64AtomicRmwXor(MemArg),
849
+ I32AtomicRmw8XorU(MemArg),
850
+ I32AtomicRmw16XorU(MemArg),
851
+ I64AtomicRmw8XorU(MemArg),
852
+ I64AtomicRmw16XorU(MemArg),
853
+ I64AtomicRmw32XorU(MemArg),
854
+ I32AtomicRmwXchg(MemArg),
855
+ I64AtomicRmwXchg(MemArg),
856
+ I32AtomicRmw8XchgU(MemArg),
857
+ I32AtomicRmw16XchgU(MemArg),
858
+ I64AtomicRmw8XchgU(MemArg),
859
+ I64AtomicRmw16XchgU(MemArg),
860
+ I64AtomicRmw32XchgU(MemArg),
861
+ I32AtomicRmwCmpxchg(MemArg),
862
+ I64AtomicRmwCmpxchg(MemArg),
863
+ I32AtomicRmw8CmpxchgU(MemArg),
864
+ I32AtomicRmw16CmpxchgU(MemArg),
865
+ I64AtomicRmw8CmpxchgU(MemArg),
866
+ I64AtomicRmw16CmpxchgU(MemArg),
867
+ I64AtomicRmw32CmpxchgU(MemArg),
868
+ }
869
+
870
+ impl Encode for Instruction<'_> {
871
+ fn encode(&self, sink: &mut Vec<u8>) {
872
+ match *self {
873
+ // Control instructions.
874
+ Instruction::Unreachable => sink.push(0x00),
875
+ Instruction::Nop => sink.push(0x01),
876
+ Instruction::Block(bt) => {
877
+ sink.push(0x02);
878
+ bt.encode(sink);
879
+ }
880
+ Instruction::Loop(bt) => {
881
+ sink.push(0x03);
882
+ bt.encode(sink);
883
+ }
884
+ Instruction::If(bt) => {
885
+ sink.push(0x04);
886
+ bt.encode(sink);
887
+ }
888
+ Instruction::Else => sink.push(0x05),
889
+ Instruction::Try(bt) => {
890
+ sink.push(0x06);
891
+ bt.encode(sink);
892
+ }
893
+ Instruction::Catch(t) => {
894
+ sink.push(0x07);
895
+ t.encode(sink);
896
+ }
897
+ Instruction::Throw(t) => {
898
+ sink.push(0x08);
899
+ t.encode(sink);
900
+ }
901
+ Instruction::Rethrow(l) => {
902
+ sink.push(0x09);
903
+ l.encode(sink);
904
+ }
905
+ Instruction::End => sink.push(0x0B),
906
+ Instruction::Br(l) => {
907
+ sink.push(0x0C);
908
+ l.encode(sink);
909
+ }
910
+ Instruction::BrIf(l) => {
911
+ sink.push(0x0D);
912
+ l.encode(sink);
913
+ }
914
+ Instruction::BrTable(ref ls, l) => {
915
+ sink.push(0x0E);
916
+ ls.encode(sink);
917
+ l.encode(sink);
918
+ }
919
+ Instruction::BrOnNull(l) => {
920
+ sink.push(0xD5);
921
+ l.encode(sink);
922
+ }
923
+ Instruction::BrOnNonNull(l) => {
924
+ sink.push(0xD6);
925
+ l.encode(sink);
926
+ }
927
+ Instruction::Return => sink.push(0x0F),
928
+ Instruction::Call(f) => {
929
+ sink.push(0x10);
930
+ f.encode(sink);
931
+ }
932
+ Instruction::CallRef(ty) => {
933
+ sink.push(0x14);
934
+ ty.encode(sink);
935
+ }
936
+ Instruction::CallIndirect { ty, table } => {
937
+ sink.push(0x11);
938
+ ty.encode(sink);
939
+ table.encode(sink);
940
+ }
941
+ Instruction::ReturnCallRef(ty) => {
942
+ sink.push(0x15);
943
+ ty.encode(sink);
944
+ }
945
+
946
+ Instruction::ReturnCall(f) => {
947
+ sink.push(0x12);
948
+ f.encode(sink);
949
+ }
950
+ Instruction::ReturnCallIndirect { ty, table } => {
951
+ sink.push(0x13);
952
+ ty.encode(sink);
953
+ table.encode(sink);
954
+ }
955
+ Instruction::Delegate(l) => {
956
+ sink.push(0x18);
957
+ l.encode(sink);
958
+ }
959
+ Instruction::CatchAll => {
960
+ sink.push(0x19);
961
+ }
962
+
963
+ // Parametric instructions.
964
+ Instruction::Drop => sink.push(0x1A),
965
+ Instruction::Select => sink.push(0x1B),
966
+ Instruction::TypedSelect(ty) => {
967
+ sink.push(0x1c);
968
+ [ty].encode(sink);
969
+ }
970
+
971
+ // Variable instructions.
972
+ Instruction::LocalGet(l) => {
973
+ sink.push(0x20);
974
+ l.encode(sink);
975
+ }
976
+ Instruction::LocalSet(l) => {
977
+ sink.push(0x21);
978
+ l.encode(sink);
979
+ }
980
+ Instruction::LocalTee(l) => {
981
+ sink.push(0x22);
982
+ l.encode(sink);
983
+ }
984
+ Instruction::GlobalGet(g) => {
985
+ sink.push(0x23);
986
+ g.encode(sink);
987
+ }
988
+ Instruction::GlobalSet(g) => {
989
+ sink.push(0x24);
990
+ g.encode(sink);
991
+ }
992
+ Instruction::TableGet(table) => {
993
+ sink.push(0x25);
994
+ table.encode(sink);
995
+ }
996
+ Instruction::TableSet(table) => {
997
+ sink.push(0x26);
998
+ table.encode(sink);
999
+ }
1000
+
1001
+ // Memory instructions.
1002
+ Instruction::I32Load(m) => {
1003
+ sink.push(0x28);
1004
+ m.encode(sink);
1005
+ }
1006
+ Instruction::I64Load(m) => {
1007
+ sink.push(0x29);
1008
+ m.encode(sink);
1009
+ }
1010
+ Instruction::F32Load(m) => {
1011
+ sink.push(0x2A);
1012
+ m.encode(sink);
1013
+ }
1014
+ Instruction::F64Load(m) => {
1015
+ sink.push(0x2B);
1016
+ m.encode(sink);
1017
+ }
1018
+ Instruction::I32Load8S(m) => {
1019
+ sink.push(0x2C);
1020
+ m.encode(sink);
1021
+ }
1022
+ Instruction::I32Load8U(m) => {
1023
+ sink.push(0x2D);
1024
+ m.encode(sink);
1025
+ }
1026
+ Instruction::I32Load16S(m) => {
1027
+ sink.push(0x2E);
1028
+ m.encode(sink);
1029
+ }
1030
+ Instruction::I32Load16U(m) => {
1031
+ sink.push(0x2F);
1032
+ m.encode(sink);
1033
+ }
1034
+ Instruction::I64Load8S(m) => {
1035
+ sink.push(0x30);
1036
+ m.encode(sink);
1037
+ }
1038
+ Instruction::I64Load8U(m) => {
1039
+ sink.push(0x31);
1040
+ m.encode(sink);
1041
+ }
1042
+ Instruction::I64Load16S(m) => {
1043
+ sink.push(0x32);
1044
+ m.encode(sink);
1045
+ }
1046
+ Instruction::I64Load16U(m) => {
1047
+ sink.push(0x33);
1048
+ m.encode(sink);
1049
+ }
1050
+ Instruction::I64Load32S(m) => {
1051
+ sink.push(0x34);
1052
+ m.encode(sink);
1053
+ }
1054
+ Instruction::I64Load32U(m) => {
1055
+ sink.push(0x35);
1056
+ m.encode(sink);
1057
+ }
1058
+ Instruction::I32Store(m) => {
1059
+ sink.push(0x36);
1060
+ m.encode(sink);
1061
+ }
1062
+ Instruction::I64Store(m) => {
1063
+ sink.push(0x37);
1064
+ m.encode(sink);
1065
+ }
1066
+ Instruction::F32Store(m) => {
1067
+ sink.push(0x38);
1068
+ m.encode(sink);
1069
+ }
1070
+ Instruction::F64Store(m) => {
1071
+ sink.push(0x39);
1072
+ m.encode(sink);
1073
+ }
1074
+ Instruction::I32Store8(m) => {
1075
+ sink.push(0x3A);
1076
+ m.encode(sink);
1077
+ }
1078
+ Instruction::I32Store16(m) => {
1079
+ sink.push(0x3B);
1080
+ m.encode(sink);
1081
+ }
1082
+ Instruction::I64Store8(m) => {
1083
+ sink.push(0x3C);
1084
+ m.encode(sink);
1085
+ }
1086
+ Instruction::I64Store16(m) => {
1087
+ sink.push(0x3D);
1088
+ m.encode(sink);
1089
+ }
1090
+ Instruction::I64Store32(m) => {
1091
+ sink.push(0x3E);
1092
+ m.encode(sink);
1093
+ }
1094
+ Instruction::MemorySize(i) => {
1095
+ sink.push(0x3F);
1096
+ i.encode(sink);
1097
+ }
1098
+ Instruction::MemoryGrow(i) => {
1099
+ sink.push(0x40);
1100
+ i.encode(sink);
1101
+ }
1102
+ Instruction::MemoryInit { mem, data_index } => {
1103
+ sink.push(0xfc);
1104
+ sink.push(0x08);
1105
+ data_index.encode(sink);
1106
+ mem.encode(sink);
1107
+ }
1108
+ Instruction::DataDrop(data) => {
1109
+ sink.push(0xfc);
1110
+ sink.push(0x09);
1111
+ data.encode(sink);
1112
+ }
1113
+ Instruction::MemoryCopy { src_mem, dst_mem } => {
1114
+ sink.push(0xfc);
1115
+ sink.push(0x0a);
1116
+ dst_mem.encode(sink);
1117
+ src_mem.encode(sink);
1118
+ }
1119
+ Instruction::MemoryFill(mem) => {
1120
+ sink.push(0xfc);
1121
+ sink.push(0x0b);
1122
+ mem.encode(sink);
1123
+ }
1124
+ Instruction::MemoryDiscard(mem) => {
1125
+ sink.push(0xfc);
1126
+ sink.push(0x12);
1127
+ mem.encode(sink);
1128
+ }
1129
+
1130
+ // Numeric instructions.
1131
+ Instruction::I32Const(x) => {
1132
+ sink.push(0x41);
1133
+ x.encode(sink);
1134
+ }
1135
+ Instruction::I64Const(x) => {
1136
+ sink.push(0x42);
1137
+ x.encode(sink);
1138
+ }
1139
+ Instruction::F32Const(x) => {
1140
+ sink.push(0x43);
1141
+ let x = x.to_bits();
1142
+ sink.extend(x.to_le_bytes().iter().copied());
1143
+ }
1144
+ Instruction::F64Const(x) => {
1145
+ sink.push(0x44);
1146
+ let x = x.to_bits();
1147
+ sink.extend(x.to_le_bytes().iter().copied());
1148
+ }
1149
+ Instruction::I32Eqz => sink.push(0x45),
1150
+ Instruction::I32Eq => sink.push(0x46),
1151
+ Instruction::I32Ne => sink.push(0x47),
1152
+ Instruction::I32LtS => sink.push(0x48),
1153
+ Instruction::I32LtU => sink.push(0x49),
1154
+ Instruction::I32GtS => sink.push(0x4A),
1155
+ Instruction::I32GtU => sink.push(0x4B),
1156
+ Instruction::I32LeS => sink.push(0x4C),
1157
+ Instruction::I32LeU => sink.push(0x4D),
1158
+ Instruction::I32GeS => sink.push(0x4E),
1159
+ Instruction::I32GeU => sink.push(0x4F),
1160
+ Instruction::I64Eqz => sink.push(0x50),
1161
+ Instruction::I64Eq => sink.push(0x51),
1162
+ Instruction::I64Ne => sink.push(0x52),
1163
+ Instruction::I64LtS => sink.push(0x53),
1164
+ Instruction::I64LtU => sink.push(0x54),
1165
+ Instruction::I64GtS => sink.push(0x55),
1166
+ Instruction::I64GtU => sink.push(0x56),
1167
+ Instruction::I64LeS => sink.push(0x57),
1168
+ Instruction::I64LeU => sink.push(0x58),
1169
+ Instruction::I64GeS => sink.push(0x59),
1170
+ Instruction::I64GeU => sink.push(0x5A),
1171
+ Instruction::F32Eq => sink.push(0x5B),
1172
+ Instruction::F32Ne => sink.push(0x5C),
1173
+ Instruction::F32Lt => sink.push(0x5D),
1174
+ Instruction::F32Gt => sink.push(0x5E),
1175
+ Instruction::F32Le => sink.push(0x5F),
1176
+ Instruction::F32Ge => sink.push(0x60),
1177
+ Instruction::F64Eq => sink.push(0x61),
1178
+ Instruction::F64Ne => sink.push(0x62),
1179
+ Instruction::F64Lt => sink.push(0x63),
1180
+ Instruction::F64Gt => sink.push(0x64),
1181
+ Instruction::F64Le => sink.push(0x65),
1182
+ Instruction::F64Ge => sink.push(0x66),
1183
+ Instruction::I32Clz => sink.push(0x67),
1184
+ Instruction::I32Ctz => sink.push(0x68),
1185
+ Instruction::I32Popcnt => sink.push(0x69),
1186
+ Instruction::I32Add => sink.push(0x6A),
1187
+ Instruction::I32Sub => sink.push(0x6B),
1188
+ Instruction::I32Mul => sink.push(0x6C),
1189
+ Instruction::I32DivS => sink.push(0x6D),
1190
+ Instruction::I32DivU => sink.push(0x6E),
1191
+ Instruction::I32RemS => sink.push(0x6F),
1192
+ Instruction::I32RemU => sink.push(0x70),
1193
+ Instruction::I32And => sink.push(0x71),
1194
+ Instruction::I32Or => sink.push(0x72),
1195
+ Instruction::I32Xor => sink.push(0x73),
1196
+ Instruction::I32Shl => sink.push(0x74),
1197
+ Instruction::I32ShrS => sink.push(0x75),
1198
+ Instruction::I32ShrU => sink.push(0x76),
1199
+ Instruction::I32Rotl => sink.push(0x77),
1200
+ Instruction::I32Rotr => sink.push(0x78),
1201
+ Instruction::I64Clz => sink.push(0x79),
1202
+ Instruction::I64Ctz => sink.push(0x7A),
1203
+ Instruction::I64Popcnt => sink.push(0x7B),
1204
+ Instruction::I64Add => sink.push(0x7C),
1205
+ Instruction::I64Sub => sink.push(0x7D),
1206
+ Instruction::I64Mul => sink.push(0x7E),
1207
+ Instruction::I64DivS => sink.push(0x7F),
1208
+ Instruction::I64DivU => sink.push(0x80),
1209
+ Instruction::I64RemS => sink.push(0x81),
1210
+ Instruction::I64RemU => sink.push(0x82),
1211
+ Instruction::I64And => sink.push(0x83),
1212
+ Instruction::I64Or => sink.push(0x84),
1213
+ Instruction::I64Xor => sink.push(0x85),
1214
+ Instruction::I64Shl => sink.push(0x86),
1215
+ Instruction::I64ShrS => sink.push(0x87),
1216
+ Instruction::I64ShrU => sink.push(0x88),
1217
+ Instruction::I64Rotl => sink.push(0x89),
1218
+ Instruction::I64Rotr => sink.push(0x8A),
1219
+ Instruction::F32Abs => sink.push(0x8B),
1220
+ Instruction::F32Neg => sink.push(0x8C),
1221
+ Instruction::F32Ceil => sink.push(0x8D),
1222
+ Instruction::F32Floor => sink.push(0x8E),
1223
+ Instruction::F32Trunc => sink.push(0x8F),
1224
+ Instruction::F32Nearest => sink.push(0x90),
1225
+ Instruction::F32Sqrt => sink.push(0x91),
1226
+ Instruction::F32Add => sink.push(0x92),
1227
+ Instruction::F32Sub => sink.push(0x93),
1228
+ Instruction::F32Mul => sink.push(0x94),
1229
+ Instruction::F32Div => sink.push(0x95),
1230
+ Instruction::F32Min => sink.push(0x96),
1231
+ Instruction::F32Max => sink.push(0x97),
1232
+ Instruction::F32Copysign => sink.push(0x98),
1233
+ Instruction::F64Abs => sink.push(0x99),
1234
+ Instruction::F64Neg => sink.push(0x9A),
1235
+ Instruction::F64Ceil => sink.push(0x9B),
1236
+ Instruction::F64Floor => sink.push(0x9C),
1237
+ Instruction::F64Trunc => sink.push(0x9D),
1238
+ Instruction::F64Nearest => sink.push(0x9E),
1239
+ Instruction::F64Sqrt => sink.push(0x9F),
1240
+ Instruction::F64Add => sink.push(0xA0),
1241
+ Instruction::F64Sub => sink.push(0xA1),
1242
+ Instruction::F64Mul => sink.push(0xA2),
1243
+ Instruction::F64Div => sink.push(0xA3),
1244
+ Instruction::F64Min => sink.push(0xA4),
1245
+ Instruction::F64Max => sink.push(0xA5),
1246
+ Instruction::F64Copysign => sink.push(0xA6),
1247
+ Instruction::I32WrapI64 => sink.push(0xA7),
1248
+ Instruction::I32TruncF32S => sink.push(0xA8),
1249
+ Instruction::I32TruncF32U => sink.push(0xA9),
1250
+ Instruction::I32TruncF64S => sink.push(0xAA),
1251
+ Instruction::I32TruncF64U => sink.push(0xAB),
1252
+ Instruction::I64ExtendI32S => sink.push(0xAC),
1253
+ Instruction::I64ExtendI32U => sink.push(0xAD),
1254
+ Instruction::I64TruncF32S => sink.push(0xAE),
1255
+ Instruction::I64TruncF32U => sink.push(0xAF),
1256
+ Instruction::I64TruncF64S => sink.push(0xB0),
1257
+ Instruction::I64TruncF64U => sink.push(0xB1),
1258
+ Instruction::F32ConvertI32S => sink.push(0xB2),
1259
+ Instruction::F32ConvertI32U => sink.push(0xB3),
1260
+ Instruction::F32ConvertI64S => sink.push(0xB4),
1261
+ Instruction::F32ConvertI64U => sink.push(0xB5),
1262
+ Instruction::F32DemoteF64 => sink.push(0xB6),
1263
+ Instruction::F64ConvertI32S => sink.push(0xB7),
1264
+ Instruction::F64ConvertI32U => sink.push(0xB8),
1265
+ Instruction::F64ConvertI64S => sink.push(0xB9),
1266
+ Instruction::F64ConvertI64U => sink.push(0xBA),
1267
+ Instruction::F64PromoteF32 => sink.push(0xBB),
1268
+ Instruction::I32ReinterpretF32 => sink.push(0xBC),
1269
+ Instruction::I64ReinterpretF64 => sink.push(0xBD),
1270
+ Instruction::F32ReinterpretI32 => sink.push(0xBE),
1271
+ Instruction::F64ReinterpretI64 => sink.push(0xBF),
1272
+ Instruction::I32Extend8S => sink.push(0xC0),
1273
+ Instruction::I32Extend16S => sink.push(0xC1),
1274
+ Instruction::I64Extend8S => sink.push(0xC2),
1275
+ Instruction::I64Extend16S => sink.push(0xC3),
1276
+ Instruction::I64Extend32S => sink.push(0xC4),
1277
+
1278
+ Instruction::I32TruncSatF32S => {
1279
+ sink.push(0xFC);
1280
+ sink.push(0x00);
1281
+ }
1282
+ Instruction::I32TruncSatF32U => {
1283
+ sink.push(0xFC);
1284
+ sink.push(0x01);
1285
+ }
1286
+ Instruction::I32TruncSatF64S => {
1287
+ sink.push(0xFC);
1288
+ sink.push(0x02);
1289
+ }
1290
+ Instruction::I32TruncSatF64U => {
1291
+ sink.push(0xFC);
1292
+ sink.push(0x03);
1293
+ }
1294
+ Instruction::I64TruncSatF32S => {
1295
+ sink.push(0xFC);
1296
+ sink.push(0x04);
1297
+ }
1298
+ Instruction::I64TruncSatF32U => {
1299
+ sink.push(0xFC);
1300
+ sink.push(0x05);
1301
+ }
1302
+ Instruction::I64TruncSatF64S => {
1303
+ sink.push(0xFC);
1304
+ sink.push(0x06);
1305
+ }
1306
+ Instruction::I64TruncSatF64U => {
1307
+ sink.push(0xFC);
1308
+ sink.push(0x07);
1309
+ }
1310
+
1311
+ // Reference types instructions.
1312
+ Instruction::RefNull(ty) => {
1313
+ sink.push(0xd0);
1314
+ ty.encode(sink);
1315
+ }
1316
+ Instruction::RefIsNull => sink.push(0xd1),
1317
+ Instruction::RefFunc(f) => {
1318
+ sink.push(0xd2);
1319
+ f.encode(sink);
1320
+ }
1321
+ Instruction::RefAsNonNull => sink.push(0xd4),
1322
+
1323
+ // GC instructions.
1324
+ Instruction::RefI31 => {
1325
+ sink.push(0xfb);
1326
+ sink.push(0x1c)
1327
+ }
1328
+ Instruction::I31GetS => {
1329
+ sink.push(0xfb);
1330
+ sink.push(0x1d)
1331
+ }
1332
+ Instruction::I31GetU => {
1333
+ sink.push(0xfb);
1334
+ sink.push(0x1e)
1335
+ }
1336
+
1337
+ // Bulk memory instructions.
1338
+ Instruction::TableInit { elem_index, table } => {
1339
+ sink.push(0xfc);
1340
+ sink.push(0x0c);
1341
+ elem_index.encode(sink);
1342
+ table.encode(sink);
1343
+ }
1344
+ Instruction::ElemDrop(segment) => {
1345
+ sink.push(0xfc);
1346
+ sink.push(0x0d);
1347
+ segment.encode(sink);
1348
+ }
1349
+ Instruction::TableCopy {
1350
+ src_table,
1351
+ dst_table,
1352
+ } => {
1353
+ sink.push(0xfc);
1354
+ sink.push(0x0e);
1355
+ dst_table.encode(sink);
1356
+ src_table.encode(sink);
1357
+ }
1358
+ Instruction::TableGrow(table) => {
1359
+ sink.push(0xfc);
1360
+ sink.push(0x0f);
1361
+ table.encode(sink);
1362
+ }
1363
+ Instruction::TableSize(table) => {
1364
+ sink.push(0xfc);
1365
+ sink.push(0x10);
1366
+ table.encode(sink);
1367
+ }
1368
+ Instruction::TableFill(table) => {
1369
+ sink.push(0xfc);
1370
+ sink.push(0x11);
1371
+ table.encode(sink);
1372
+ }
1373
+
1374
+ // SIMD instructions.
1375
+ Instruction::V128Load(memarg) => {
1376
+ sink.push(0xFD);
1377
+ 0x00u32.encode(sink);
1378
+ memarg.encode(sink);
1379
+ }
1380
+ Instruction::V128Load8x8S(memarg) => {
1381
+ sink.push(0xFD);
1382
+ 0x01u32.encode(sink);
1383
+ memarg.encode(sink);
1384
+ }
1385
+ Instruction::V128Load8x8U(memarg) => {
1386
+ sink.push(0xFD);
1387
+ 0x02u32.encode(sink);
1388
+ memarg.encode(sink);
1389
+ }
1390
+ Instruction::V128Load16x4S(memarg) => {
1391
+ sink.push(0xFD);
1392
+ 0x03u32.encode(sink);
1393
+ memarg.encode(sink);
1394
+ }
1395
+ Instruction::V128Load16x4U(memarg) => {
1396
+ sink.push(0xFD);
1397
+ 0x04u32.encode(sink);
1398
+ memarg.encode(sink);
1399
+ }
1400
+ Instruction::V128Load32x2S(memarg) => {
1401
+ sink.push(0xFD);
1402
+ 0x05u32.encode(sink);
1403
+ memarg.encode(sink);
1404
+ }
1405
+ Instruction::V128Load32x2U(memarg) => {
1406
+ sink.push(0xFD);
1407
+ 0x06u32.encode(sink);
1408
+ memarg.encode(sink);
1409
+ }
1410
+ Instruction::V128Load8Splat(memarg) => {
1411
+ sink.push(0xFD);
1412
+ 0x07u32.encode(sink);
1413
+ memarg.encode(sink);
1414
+ }
1415
+ Instruction::V128Load16Splat(memarg) => {
1416
+ sink.push(0xFD);
1417
+ 0x08u32.encode(sink);
1418
+ memarg.encode(sink);
1419
+ }
1420
+ Instruction::V128Load32Splat(memarg) => {
1421
+ sink.push(0xFD);
1422
+ 0x09u32.encode(sink);
1423
+ memarg.encode(sink);
1424
+ }
1425
+ Instruction::V128Load64Splat(memarg) => {
1426
+ sink.push(0xFD);
1427
+ 0x0Au32.encode(sink);
1428
+ memarg.encode(sink);
1429
+ }
1430
+ Instruction::V128Store(memarg) => {
1431
+ sink.push(0xFD);
1432
+ 0x0Bu32.encode(sink);
1433
+ memarg.encode(sink);
1434
+ }
1435
+ Instruction::V128Const(x) => {
1436
+ sink.push(0xFD);
1437
+ 0x0Cu32.encode(sink);
1438
+ sink.extend(x.to_le_bytes().iter().copied());
1439
+ }
1440
+ Instruction::I8x16Shuffle(lanes) => {
1441
+ sink.push(0xFD);
1442
+ 0x0Du32.encode(sink);
1443
+ assert!(lanes.iter().all(|l: &u8| *l < 32));
1444
+ sink.extend(lanes.iter().copied());
1445
+ }
1446
+ Instruction::I8x16Swizzle => {
1447
+ sink.push(0xFD);
1448
+ 0x0Eu32.encode(sink);
1449
+ }
1450
+ Instruction::I8x16Splat => {
1451
+ sink.push(0xFD);
1452
+ 0x0Fu32.encode(sink);
1453
+ }
1454
+ Instruction::I16x8Splat => {
1455
+ sink.push(0xFD);
1456
+ 0x10u32.encode(sink);
1457
+ }
1458
+ Instruction::I32x4Splat => {
1459
+ sink.push(0xFD);
1460
+ 0x11u32.encode(sink);
1461
+ }
1462
+ Instruction::I64x2Splat => {
1463
+ sink.push(0xFD);
1464
+ 0x12u32.encode(sink);
1465
+ }
1466
+ Instruction::F32x4Splat => {
1467
+ sink.push(0xFD);
1468
+ 0x13u32.encode(sink);
1469
+ }
1470
+ Instruction::F64x2Splat => {
1471
+ sink.push(0xFD);
1472
+ 0x14u32.encode(sink);
1473
+ }
1474
+ Instruction::I8x16ExtractLaneS(lane) => {
1475
+ sink.push(0xFD);
1476
+ 0x15u32.encode(sink);
1477
+ assert!(lane < 16);
1478
+ sink.push(lane);
1479
+ }
1480
+ Instruction::I8x16ExtractLaneU(lane) => {
1481
+ sink.push(0xFD);
1482
+ 0x16u32.encode(sink);
1483
+ assert!(lane < 16);
1484
+ sink.push(lane);
1485
+ }
1486
+ Instruction::I8x16ReplaceLane(lane) => {
1487
+ sink.push(0xFD);
1488
+ 0x17u32.encode(sink);
1489
+ assert!(lane < 16);
1490
+ sink.push(lane);
1491
+ }
1492
+ Instruction::I16x8ExtractLaneS(lane) => {
1493
+ sink.push(0xFD);
1494
+ 0x18u32.encode(sink);
1495
+ assert!(lane < 8);
1496
+ sink.push(lane);
1497
+ }
1498
+ Instruction::I16x8ExtractLaneU(lane) => {
1499
+ sink.push(0xFD);
1500
+ 0x19u32.encode(sink);
1501
+ assert!(lane < 8);
1502
+ sink.push(lane);
1503
+ }
1504
+ Instruction::I16x8ReplaceLane(lane) => {
1505
+ sink.push(0xFD);
1506
+ 0x1Au32.encode(sink);
1507
+ assert!(lane < 8);
1508
+ sink.push(lane);
1509
+ }
1510
+ Instruction::I32x4ExtractLane(lane) => {
1511
+ sink.push(0xFD);
1512
+ 0x1Bu32.encode(sink);
1513
+ assert!(lane < 4);
1514
+ sink.push(lane);
1515
+ }
1516
+ Instruction::I32x4ReplaceLane(lane) => {
1517
+ sink.push(0xFD);
1518
+ 0x1Cu32.encode(sink);
1519
+ assert!(lane < 4);
1520
+ sink.push(lane);
1521
+ }
1522
+ Instruction::I64x2ExtractLane(lane) => {
1523
+ sink.push(0xFD);
1524
+ 0x1Du32.encode(sink);
1525
+ assert!(lane < 2);
1526
+ sink.push(lane);
1527
+ }
1528
+ Instruction::I64x2ReplaceLane(lane) => {
1529
+ sink.push(0xFD);
1530
+ 0x1Eu32.encode(sink);
1531
+ assert!(lane < 2);
1532
+ sink.push(lane);
1533
+ }
1534
+ Instruction::F32x4ExtractLane(lane) => {
1535
+ sink.push(0xFD);
1536
+ 0x1Fu32.encode(sink);
1537
+ assert!(lane < 4);
1538
+ sink.push(lane);
1539
+ }
1540
+ Instruction::F32x4ReplaceLane(lane) => {
1541
+ sink.push(0xFD);
1542
+ 0x20u32.encode(sink);
1543
+ assert!(lane < 4);
1544
+ sink.push(lane);
1545
+ }
1546
+ Instruction::F64x2ExtractLane(lane) => {
1547
+ sink.push(0xFD);
1548
+ 0x21u32.encode(sink);
1549
+ assert!(lane < 2);
1550
+ sink.push(lane);
1551
+ }
1552
+ Instruction::F64x2ReplaceLane(lane) => {
1553
+ sink.push(0xFD);
1554
+ 0x22u32.encode(sink);
1555
+ assert!(lane < 2);
1556
+ sink.push(lane);
1557
+ }
1558
+
1559
+ Instruction::I8x16Eq => {
1560
+ sink.push(0xFD);
1561
+ 0x23u32.encode(sink);
1562
+ }
1563
+ Instruction::I8x16Ne => {
1564
+ sink.push(0xFD);
1565
+ 0x24u32.encode(sink);
1566
+ }
1567
+ Instruction::I8x16LtS => {
1568
+ sink.push(0xFD);
1569
+ 0x25u32.encode(sink);
1570
+ }
1571
+ Instruction::I8x16LtU => {
1572
+ sink.push(0xFD);
1573
+ 0x26u32.encode(sink);
1574
+ }
1575
+ Instruction::I8x16GtS => {
1576
+ sink.push(0xFD);
1577
+ 0x27u32.encode(sink);
1578
+ }
1579
+ Instruction::I8x16GtU => {
1580
+ sink.push(0xFD);
1581
+ 0x28u32.encode(sink);
1582
+ }
1583
+ Instruction::I8x16LeS => {
1584
+ sink.push(0xFD);
1585
+ 0x29u32.encode(sink);
1586
+ }
1587
+ Instruction::I8x16LeU => {
1588
+ sink.push(0xFD);
1589
+ 0x2Au32.encode(sink);
1590
+ }
1591
+ Instruction::I8x16GeS => {
1592
+ sink.push(0xFD);
1593
+ 0x2Bu32.encode(sink);
1594
+ }
1595
+ Instruction::I8x16GeU => {
1596
+ sink.push(0xFD);
1597
+ 0x2Cu32.encode(sink);
1598
+ }
1599
+ Instruction::I16x8Eq => {
1600
+ sink.push(0xFD);
1601
+ 0x2Du32.encode(sink);
1602
+ }
1603
+ Instruction::I16x8Ne => {
1604
+ sink.push(0xFD);
1605
+ 0x2Eu32.encode(sink);
1606
+ }
1607
+ Instruction::I16x8LtS => {
1608
+ sink.push(0xFD);
1609
+ 0x2Fu32.encode(sink);
1610
+ }
1611
+ Instruction::I16x8LtU => {
1612
+ sink.push(0xFD);
1613
+ 0x30u32.encode(sink);
1614
+ }
1615
+ Instruction::I16x8GtS => {
1616
+ sink.push(0xFD);
1617
+ 0x31u32.encode(sink);
1618
+ }
1619
+ Instruction::I16x8GtU => {
1620
+ sink.push(0xFD);
1621
+ 0x32u32.encode(sink);
1622
+ }
1623
+ Instruction::I16x8LeS => {
1624
+ sink.push(0xFD);
1625
+ 0x33u32.encode(sink);
1626
+ }
1627
+ Instruction::I16x8LeU => {
1628
+ sink.push(0xFD);
1629
+ 0x34u32.encode(sink);
1630
+ }
1631
+ Instruction::I16x8GeS => {
1632
+ sink.push(0xFD);
1633
+ 0x35u32.encode(sink);
1634
+ }
1635
+ Instruction::I16x8GeU => {
1636
+ sink.push(0xFD);
1637
+ 0x36u32.encode(sink);
1638
+ }
1639
+ Instruction::I32x4Eq => {
1640
+ sink.push(0xFD);
1641
+ 0x37u32.encode(sink);
1642
+ }
1643
+ Instruction::I32x4Ne => {
1644
+ sink.push(0xFD);
1645
+ 0x38u32.encode(sink);
1646
+ }
1647
+ Instruction::I32x4LtS => {
1648
+ sink.push(0xFD);
1649
+ 0x39u32.encode(sink);
1650
+ }
1651
+ Instruction::I32x4LtU => {
1652
+ sink.push(0xFD);
1653
+ 0x3Au32.encode(sink);
1654
+ }
1655
+ Instruction::I32x4GtS => {
1656
+ sink.push(0xFD);
1657
+ 0x3Bu32.encode(sink);
1658
+ }
1659
+ Instruction::I32x4GtU => {
1660
+ sink.push(0xFD);
1661
+ 0x3Cu32.encode(sink);
1662
+ }
1663
+ Instruction::I32x4LeS => {
1664
+ sink.push(0xFD);
1665
+ 0x3Du32.encode(sink);
1666
+ }
1667
+ Instruction::I32x4LeU => {
1668
+ sink.push(0xFD);
1669
+ 0x3Eu32.encode(sink);
1670
+ }
1671
+ Instruction::I32x4GeS => {
1672
+ sink.push(0xFD);
1673
+ 0x3Fu32.encode(sink);
1674
+ }
1675
+ Instruction::I32x4GeU => {
1676
+ sink.push(0xFD);
1677
+ 0x40u32.encode(sink);
1678
+ }
1679
+ Instruction::F32x4Eq => {
1680
+ sink.push(0xFD);
1681
+ 0x41u32.encode(sink);
1682
+ }
1683
+ Instruction::F32x4Ne => {
1684
+ sink.push(0xFD);
1685
+ 0x42u32.encode(sink);
1686
+ }
1687
+ Instruction::F32x4Lt => {
1688
+ sink.push(0xFD);
1689
+ 0x43u32.encode(sink);
1690
+ }
1691
+ Instruction::F32x4Gt => {
1692
+ sink.push(0xFD);
1693
+ 0x44u32.encode(sink);
1694
+ }
1695
+ Instruction::F32x4Le => {
1696
+ sink.push(0xFD);
1697
+ 0x45u32.encode(sink);
1698
+ }
1699
+ Instruction::F32x4Ge => {
1700
+ sink.push(0xFD);
1701
+ 0x46u32.encode(sink);
1702
+ }
1703
+ Instruction::F64x2Eq => {
1704
+ sink.push(0xFD);
1705
+ 0x47u32.encode(sink);
1706
+ }
1707
+ Instruction::F64x2Ne => {
1708
+ sink.push(0xFD);
1709
+ 0x48u32.encode(sink);
1710
+ }
1711
+ Instruction::F64x2Lt => {
1712
+ sink.push(0xFD);
1713
+ 0x49u32.encode(sink);
1714
+ }
1715
+ Instruction::F64x2Gt => {
1716
+ sink.push(0xFD);
1717
+ 0x4Au32.encode(sink);
1718
+ }
1719
+ Instruction::F64x2Le => {
1720
+ sink.push(0xFD);
1721
+ 0x4Bu32.encode(sink);
1722
+ }
1723
+ Instruction::F64x2Ge => {
1724
+ sink.push(0xFD);
1725
+ 0x4Cu32.encode(sink);
1726
+ }
1727
+ Instruction::V128Not => {
1728
+ sink.push(0xFD);
1729
+ 0x4Du32.encode(sink);
1730
+ }
1731
+ Instruction::V128And => {
1732
+ sink.push(0xFD);
1733
+ 0x4Eu32.encode(sink);
1734
+ }
1735
+ Instruction::V128AndNot => {
1736
+ sink.push(0xFD);
1737
+ 0x4Fu32.encode(sink);
1738
+ }
1739
+ Instruction::V128Or => {
1740
+ sink.push(0xFD);
1741
+ 0x50u32.encode(sink);
1742
+ }
1743
+ Instruction::V128Xor => {
1744
+ sink.push(0xFD);
1745
+ 0x51u32.encode(sink);
1746
+ }
1747
+ Instruction::V128Bitselect => {
1748
+ sink.push(0xFD);
1749
+ 0x52u32.encode(sink);
1750
+ }
1751
+ Instruction::V128AnyTrue => {
1752
+ sink.push(0xFD);
1753
+ 0x53u32.encode(sink);
1754
+ }
1755
+ Instruction::I8x16Abs => {
1756
+ sink.push(0xFD);
1757
+ 0x60u32.encode(sink);
1758
+ }
1759
+ Instruction::I8x16Neg => {
1760
+ sink.push(0xFD);
1761
+ 0x61u32.encode(sink);
1762
+ }
1763
+ Instruction::I8x16Popcnt => {
1764
+ sink.push(0xFD);
1765
+ 0x62u32.encode(sink);
1766
+ }
1767
+ Instruction::I8x16AllTrue => {
1768
+ sink.push(0xFD);
1769
+ 0x63u32.encode(sink);
1770
+ }
1771
+ Instruction::I8x16Bitmask => {
1772
+ sink.push(0xFD);
1773
+ 0x64u32.encode(sink);
1774
+ }
1775
+ Instruction::I8x16NarrowI16x8S => {
1776
+ sink.push(0xFD);
1777
+ 0x65u32.encode(sink);
1778
+ }
1779
+ Instruction::I8x16NarrowI16x8U => {
1780
+ sink.push(0xFD);
1781
+ 0x66u32.encode(sink);
1782
+ }
1783
+ Instruction::I8x16Shl => {
1784
+ sink.push(0xFD);
1785
+ 0x6bu32.encode(sink);
1786
+ }
1787
+ Instruction::I8x16ShrS => {
1788
+ sink.push(0xFD);
1789
+ 0x6cu32.encode(sink);
1790
+ }
1791
+ Instruction::I8x16ShrU => {
1792
+ sink.push(0xFD);
1793
+ 0x6du32.encode(sink);
1794
+ }
1795
+ Instruction::I8x16Add => {
1796
+ sink.push(0xFD);
1797
+ 0x6eu32.encode(sink);
1798
+ }
1799
+ Instruction::I8x16AddSatS => {
1800
+ sink.push(0xFD);
1801
+ 0x6fu32.encode(sink);
1802
+ }
1803
+ Instruction::I8x16AddSatU => {
1804
+ sink.push(0xFD);
1805
+ 0x70u32.encode(sink);
1806
+ }
1807
+ Instruction::I8x16Sub => {
1808
+ sink.push(0xFD);
1809
+ 0x71u32.encode(sink);
1810
+ }
1811
+ Instruction::I8x16SubSatS => {
1812
+ sink.push(0xFD);
1813
+ 0x72u32.encode(sink);
1814
+ }
1815
+ Instruction::I8x16SubSatU => {
1816
+ sink.push(0xFD);
1817
+ 0x73u32.encode(sink);
1818
+ }
1819
+ Instruction::I8x16MinS => {
1820
+ sink.push(0xFD);
1821
+ 0x76u32.encode(sink);
1822
+ }
1823
+ Instruction::I8x16MinU => {
1824
+ sink.push(0xFD);
1825
+ 0x77u32.encode(sink);
1826
+ }
1827
+ Instruction::I8x16MaxS => {
1828
+ sink.push(0xFD);
1829
+ 0x78u32.encode(sink);
1830
+ }
1831
+ Instruction::I8x16MaxU => {
1832
+ sink.push(0xFD);
1833
+ 0x79u32.encode(sink);
1834
+ }
1835
+ Instruction::I8x16AvgrU => {
1836
+ sink.push(0xFD);
1837
+ 0x7Bu32.encode(sink);
1838
+ }
1839
+ Instruction::I16x8ExtAddPairwiseI8x16S => {
1840
+ sink.push(0xFD);
1841
+ 0x7Cu32.encode(sink);
1842
+ }
1843
+ Instruction::I16x8ExtAddPairwiseI8x16U => {
1844
+ sink.push(0xFD);
1845
+ 0x7Du32.encode(sink);
1846
+ }
1847
+ Instruction::I32x4ExtAddPairwiseI16x8S => {
1848
+ sink.push(0xFD);
1849
+ 0x7Eu32.encode(sink);
1850
+ }
1851
+ Instruction::I32x4ExtAddPairwiseI16x8U => {
1852
+ sink.push(0xFD);
1853
+ 0x7Fu32.encode(sink);
1854
+ }
1855
+ Instruction::I16x8Abs => {
1856
+ sink.push(0xFD);
1857
+ 0x80u32.encode(sink);
1858
+ }
1859
+ Instruction::I16x8Neg => {
1860
+ sink.push(0xFD);
1861
+ 0x81u32.encode(sink);
1862
+ }
1863
+ Instruction::I16x8Q15MulrSatS => {
1864
+ sink.push(0xFD);
1865
+ 0x82u32.encode(sink);
1866
+ }
1867
+ Instruction::I16x8AllTrue => {
1868
+ sink.push(0xFD);
1869
+ 0x83u32.encode(sink);
1870
+ }
1871
+ Instruction::I16x8Bitmask => {
1872
+ sink.push(0xFD);
1873
+ 0x84u32.encode(sink);
1874
+ }
1875
+ Instruction::I16x8NarrowI32x4S => {
1876
+ sink.push(0xFD);
1877
+ 0x85u32.encode(sink);
1878
+ }
1879
+ Instruction::I16x8NarrowI32x4U => {
1880
+ sink.push(0xFD);
1881
+ 0x86u32.encode(sink);
1882
+ }
1883
+ Instruction::I16x8ExtendLowI8x16S => {
1884
+ sink.push(0xFD);
1885
+ 0x87u32.encode(sink);
1886
+ }
1887
+ Instruction::I16x8ExtendHighI8x16S => {
1888
+ sink.push(0xFD);
1889
+ 0x88u32.encode(sink);
1890
+ }
1891
+ Instruction::I16x8ExtendLowI8x16U => {
1892
+ sink.push(0xFD);
1893
+ 0x89u32.encode(sink);
1894
+ }
1895
+ Instruction::I16x8ExtendHighI8x16U => {
1896
+ sink.push(0xFD);
1897
+ 0x8Au32.encode(sink);
1898
+ }
1899
+ Instruction::I16x8Shl => {
1900
+ sink.push(0xFD);
1901
+ 0x8Bu32.encode(sink);
1902
+ }
1903
+ Instruction::I16x8ShrS => {
1904
+ sink.push(0xFD);
1905
+ 0x8Cu32.encode(sink);
1906
+ }
1907
+ Instruction::I16x8ShrU => {
1908
+ sink.push(0xFD);
1909
+ 0x8Du32.encode(sink);
1910
+ }
1911
+ Instruction::I16x8Add => {
1912
+ sink.push(0xFD);
1913
+ 0x8Eu32.encode(sink);
1914
+ }
1915
+ Instruction::I16x8AddSatS => {
1916
+ sink.push(0xFD);
1917
+ 0x8Fu32.encode(sink);
1918
+ }
1919
+ Instruction::I16x8AddSatU => {
1920
+ sink.push(0xFD);
1921
+ 0x90u32.encode(sink);
1922
+ }
1923
+ Instruction::I16x8Sub => {
1924
+ sink.push(0xFD);
1925
+ 0x91u32.encode(sink);
1926
+ }
1927
+ Instruction::I16x8SubSatS => {
1928
+ sink.push(0xFD);
1929
+ 0x92u32.encode(sink);
1930
+ }
1931
+ Instruction::I16x8SubSatU => {
1932
+ sink.push(0xFD);
1933
+ 0x93u32.encode(sink);
1934
+ }
1935
+ Instruction::I16x8Mul => {
1936
+ sink.push(0xFD);
1937
+ 0x95u32.encode(sink);
1938
+ }
1939
+ Instruction::I16x8MinS => {
1940
+ sink.push(0xFD);
1941
+ 0x96u32.encode(sink);
1942
+ }
1943
+ Instruction::I16x8MinU => {
1944
+ sink.push(0xFD);
1945
+ 0x97u32.encode(sink);
1946
+ }
1947
+ Instruction::I16x8MaxS => {
1948
+ sink.push(0xFD);
1949
+ 0x98u32.encode(sink);
1950
+ }
1951
+ Instruction::I16x8MaxU => {
1952
+ sink.push(0xFD);
1953
+ 0x99u32.encode(sink);
1954
+ }
1955
+ Instruction::I16x8AvgrU => {
1956
+ sink.push(0xFD);
1957
+ 0x9Bu32.encode(sink);
1958
+ }
1959
+ Instruction::I16x8ExtMulLowI8x16S => {
1960
+ sink.push(0xFD);
1961
+ 0x9Cu32.encode(sink);
1962
+ }
1963
+ Instruction::I16x8ExtMulHighI8x16S => {
1964
+ sink.push(0xFD);
1965
+ 0x9Du32.encode(sink);
1966
+ }
1967
+ Instruction::I16x8ExtMulLowI8x16U => {
1968
+ sink.push(0xFD);
1969
+ 0x9Eu32.encode(sink);
1970
+ }
1971
+ Instruction::I16x8ExtMulHighI8x16U => {
1972
+ sink.push(0xFD);
1973
+ 0x9Fu32.encode(sink);
1974
+ }
1975
+ Instruction::I32x4Abs => {
1976
+ sink.push(0xFD);
1977
+ 0xA0u32.encode(sink);
1978
+ }
1979
+ Instruction::I32x4Neg => {
1980
+ sink.push(0xFD);
1981
+ 0xA1u32.encode(sink);
1982
+ }
1983
+ Instruction::I32x4AllTrue => {
1984
+ sink.push(0xFD);
1985
+ 0xA3u32.encode(sink);
1986
+ }
1987
+ Instruction::I32x4Bitmask => {
1988
+ sink.push(0xFD);
1989
+ 0xA4u32.encode(sink);
1990
+ }
1991
+ Instruction::I32x4ExtendLowI16x8S => {
1992
+ sink.push(0xFD);
1993
+ 0xA7u32.encode(sink);
1994
+ }
1995
+ Instruction::I32x4ExtendHighI16x8S => {
1996
+ sink.push(0xFD);
1997
+ 0xA8u32.encode(sink);
1998
+ }
1999
+ Instruction::I32x4ExtendLowI16x8U => {
2000
+ sink.push(0xFD);
2001
+ 0xA9u32.encode(sink);
2002
+ }
2003
+ Instruction::I32x4ExtendHighI16x8U => {
2004
+ sink.push(0xFD);
2005
+ 0xAAu32.encode(sink);
2006
+ }
2007
+ Instruction::I32x4Shl => {
2008
+ sink.push(0xFD);
2009
+ 0xABu32.encode(sink);
2010
+ }
2011
+ Instruction::I32x4ShrS => {
2012
+ sink.push(0xFD);
2013
+ 0xACu32.encode(sink);
2014
+ }
2015
+ Instruction::I32x4ShrU => {
2016
+ sink.push(0xFD);
2017
+ 0xADu32.encode(sink);
2018
+ }
2019
+ Instruction::I32x4Add => {
2020
+ sink.push(0xFD);
2021
+ 0xAEu32.encode(sink);
2022
+ }
2023
+ Instruction::I32x4Sub => {
2024
+ sink.push(0xFD);
2025
+ 0xB1u32.encode(sink);
2026
+ }
2027
+ Instruction::I32x4Mul => {
2028
+ sink.push(0xFD);
2029
+ 0xB5u32.encode(sink);
2030
+ }
2031
+ Instruction::I32x4MinS => {
2032
+ sink.push(0xFD);
2033
+ 0xB6u32.encode(sink);
2034
+ }
2035
+ Instruction::I32x4MinU => {
2036
+ sink.push(0xFD);
2037
+ 0xB7u32.encode(sink);
2038
+ }
2039
+ Instruction::I32x4MaxS => {
2040
+ sink.push(0xFD);
2041
+ 0xB8u32.encode(sink);
2042
+ }
2043
+ Instruction::I32x4MaxU => {
2044
+ sink.push(0xFD);
2045
+ 0xB9u32.encode(sink);
2046
+ }
2047
+ Instruction::I32x4DotI16x8S => {
2048
+ sink.push(0xFD);
2049
+ 0xBAu32.encode(sink);
2050
+ }
2051
+ Instruction::I32x4ExtMulLowI16x8S => {
2052
+ sink.push(0xFD);
2053
+ 0xBCu32.encode(sink);
2054
+ }
2055
+ Instruction::I32x4ExtMulHighI16x8S => {
2056
+ sink.push(0xFD);
2057
+ 0xBDu32.encode(sink);
2058
+ }
2059
+ Instruction::I32x4ExtMulLowI16x8U => {
2060
+ sink.push(0xFD);
2061
+ 0xBEu32.encode(sink);
2062
+ }
2063
+ Instruction::I32x4ExtMulHighI16x8U => {
2064
+ sink.push(0xFD);
2065
+ 0xBFu32.encode(sink);
2066
+ }
2067
+ Instruction::I64x2Abs => {
2068
+ sink.push(0xFD);
2069
+ 0xC0u32.encode(sink);
2070
+ }
2071
+ Instruction::I64x2Neg => {
2072
+ sink.push(0xFD);
2073
+ 0xC1u32.encode(sink);
2074
+ }
2075
+ Instruction::I64x2AllTrue => {
2076
+ sink.push(0xFD);
2077
+ 0xC3u32.encode(sink);
2078
+ }
2079
+ Instruction::I64x2Bitmask => {
2080
+ sink.push(0xFD);
2081
+ 0xC4u32.encode(sink);
2082
+ }
2083
+ Instruction::I64x2ExtendLowI32x4S => {
2084
+ sink.push(0xFD);
2085
+ 0xC7u32.encode(sink);
2086
+ }
2087
+ Instruction::I64x2ExtendHighI32x4S => {
2088
+ sink.push(0xFD);
2089
+ 0xC8u32.encode(sink);
2090
+ }
2091
+ Instruction::I64x2ExtendLowI32x4U => {
2092
+ sink.push(0xFD);
2093
+ 0xC9u32.encode(sink);
2094
+ }
2095
+ Instruction::I64x2ExtendHighI32x4U => {
2096
+ sink.push(0xFD);
2097
+ 0xCAu32.encode(sink);
2098
+ }
2099
+ Instruction::I64x2Shl => {
2100
+ sink.push(0xFD);
2101
+ 0xCBu32.encode(sink);
2102
+ }
2103
+ Instruction::I64x2ShrS => {
2104
+ sink.push(0xFD);
2105
+ 0xCCu32.encode(sink);
2106
+ }
2107
+ Instruction::I64x2ShrU => {
2108
+ sink.push(0xFD);
2109
+ 0xCDu32.encode(sink);
2110
+ }
2111
+ Instruction::I64x2Add => {
2112
+ sink.push(0xFD);
2113
+ 0xCEu32.encode(sink);
2114
+ }
2115
+ Instruction::I64x2Sub => {
2116
+ sink.push(0xFD);
2117
+ 0xD1u32.encode(sink);
2118
+ }
2119
+ Instruction::I64x2Mul => {
2120
+ sink.push(0xFD);
2121
+ 0xD5u32.encode(sink);
2122
+ }
2123
+ Instruction::I64x2ExtMulLowI32x4S => {
2124
+ sink.push(0xFD);
2125
+ 0xDCu32.encode(sink);
2126
+ }
2127
+ Instruction::I64x2ExtMulHighI32x4S => {
2128
+ sink.push(0xFD);
2129
+ 0xDDu32.encode(sink);
2130
+ }
2131
+ Instruction::I64x2ExtMulLowI32x4U => {
2132
+ sink.push(0xFD);
2133
+ 0xDEu32.encode(sink);
2134
+ }
2135
+ Instruction::I64x2ExtMulHighI32x4U => {
2136
+ sink.push(0xFD);
2137
+ 0xDFu32.encode(sink);
2138
+ }
2139
+ Instruction::F32x4Ceil => {
2140
+ sink.push(0xFD);
2141
+ 0x67u32.encode(sink);
2142
+ }
2143
+ Instruction::F32x4Floor => {
2144
+ sink.push(0xFD);
2145
+ 0x68u32.encode(sink);
2146
+ }
2147
+ Instruction::F32x4Trunc => {
2148
+ sink.push(0xFD);
2149
+ 0x69u32.encode(sink);
2150
+ }
2151
+ Instruction::F32x4Nearest => {
2152
+ sink.push(0xFD);
2153
+ 0x6Au32.encode(sink);
2154
+ }
2155
+ Instruction::F32x4Abs => {
2156
+ sink.push(0xFD);
2157
+ 0xE0u32.encode(sink);
2158
+ }
2159
+ Instruction::F32x4Neg => {
2160
+ sink.push(0xFD);
2161
+ 0xE1u32.encode(sink);
2162
+ }
2163
+ Instruction::F32x4Sqrt => {
2164
+ sink.push(0xFD);
2165
+ 0xE3u32.encode(sink);
2166
+ }
2167
+ Instruction::F32x4Add => {
2168
+ sink.push(0xFD);
2169
+ 0xE4u32.encode(sink);
2170
+ }
2171
+ Instruction::F32x4Sub => {
2172
+ sink.push(0xFD);
2173
+ 0xE5u32.encode(sink);
2174
+ }
2175
+ Instruction::F32x4Mul => {
2176
+ sink.push(0xFD);
2177
+ 0xE6u32.encode(sink);
2178
+ }
2179
+ Instruction::F32x4Div => {
2180
+ sink.push(0xFD);
2181
+ 0xE7u32.encode(sink);
2182
+ }
2183
+ Instruction::F32x4Min => {
2184
+ sink.push(0xFD);
2185
+ 0xE8u32.encode(sink);
2186
+ }
2187
+ Instruction::F32x4Max => {
2188
+ sink.push(0xFD);
2189
+ 0xE9u32.encode(sink);
2190
+ }
2191
+ Instruction::F32x4PMin => {
2192
+ sink.push(0xFD);
2193
+ 0xEAu32.encode(sink);
2194
+ }
2195
+ Instruction::F32x4PMax => {
2196
+ sink.push(0xFD);
2197
+ 0xEBu32.encode(sink);
2198
+ }
2199
+ Instruction::F64x2Ceil => {
2200
+ sink.push(0xFD);
2201
+ 0x74u32.encode(sink);
2202
+ }
2203
+ Instruction::F64x2Floor => {
2204
+ sink.push(0xFD);
2205
+ 0x75u32.encode(sink);
2206
+ }
2207
+ Instruction::F64x2Trunc => {
2208
+ sink.push(0xFD);
2209
+ 0x7Au32.encode(sink);
2210
+ }
2211
+ Instruction::F64x2Nearest => {
2212
+ sink.push(0xFD);
2213
+ 0x94u32.encode(sink);
2214
+ }
2215
+ Instruction::F64x2Abs => {
2216
+ sink.push(0xFD);
2217
+ 0xECu32.encode(sink);
2218
+ }
2219
+ Instruction::F64x2Neg => {
2220
+ sink.push(0xFD);
2221
+ 0xEDu32.encode(sink);
2222
+ }
2223
+ Instruction::F64x2Sqrt => {
2224
+ sink.push(0xFD);
2225
+ 0xEFu32.encode(sink);
2226
+ }
2227
+ Instruction::F64x2Add => {
2228
+ sink.push(0xFD);
2229
+ 0xF0u32.encode(sink);
2230
+ }
2231
+ Instruction::F64x2Sub => {
2232
+ sink.push(0xFD);
2233
+ 0xF1u32.encode(sink);
2234
+ }
2235
+ Instruction::F64x2Mul => {
2236
+ sink.push(0xFD);
2237
+ 0xF2u32.encode(sink);
2238
+ }
2239
+ Instruction::F64x2Div => {
2240
+ sink.push(0xFD);
2241
+ 0xF3u32.encode(sink);
2242
+ }
2243
+ Instruction::F64x2Min => {
2244
+ sink.push(0xFD);
2245
+ 0xF4u32.encode(sink);
2246
+ }
2247
+ Instruction::F64x2Max => {
2248
+ sink.push(0xFD);
2249
+ 0xF5u32.encode(sink);
2250
+ }
2251
+ Instruction::F64x2PMin => {
2252
+ sink.push(0xFD);
2253
+ 0xF6u32.encode(sink);
2254
+ }
2255
+ Instruction::F64x2PMax => {
2256
+ sink.push(0xFD);
2257
+ 0xF7u32.encode(sink);
2258
+ }
2259
+ Instruction::I32x4TruncSatF32x4S => {
2260
+ sink.push(0xFD);
2261
+ 0xF8u32.encode(sink);
2262
+ }
2263
+ Instruction::I32x4TruncSatF32x4U => {
2264
+ sink.push(0xFD);
2265
+ 0xF9u32.encode(sink);
2266
+ }
2267
+ Instruction::F32x4ConvertI32x4S => {
2268
+ sink.push(0xFD);
2269
+ 0xFAu32.encode(sink);
2270
+ }
2271
+ Instruction::F32x4ConvertI32x4U => {
2272
+ sink.push(0xFD);
2273
+ 0xFBu32.encode(sink);
2274
+ }
2275
+ Instruction::I32x4TruncSatF64x2SZero => {
2276
+ sink.push(0xFD);
2277
+ 0xFCu32.encode(sink);
2278
+ }
2279
+ Instruction::I32x4TruncSatF64x2UZero => {
2280
+ sink.push(0xFD);
2281
+ 0xFDu32.encode(sink);
2282
+ }
2283
+ Instruction::F64x2ConvertLowI32x4S => {
2284
+ sink.push(0xFD);
2285
+ 0xFEu32.encode(sink);
2286
+ }
2287
+ Instruction::F64x2ConvertLowI32x4U => {
2288
+ sink.push(0xFD);
2289
+ 0xFFu32.encode(sink);
2290
+ }
2291
+ Instruction::F32x4DemoteF64x2Zero => {
2292
+ sink.push(0xFD);
2293
+ 0x5Eu32.encode(sink);
2294
+ }
2295
+ Instruction::F64x2PromoteLowF32x4 => {
2296
+ sink.push(0xFD);
2297
+ 0x5Fu32.encode(sink);
2298
+ }
2299
+ Instruction::V128Load32Zero(memarg) => {
2300
+ sink.push(0xFD);
2301
+ 0x5Cu32.encode(sink);
2302
+ memarg.encode(sink);
2303
+ }
2304
+ Instruction::V128Load64Zero(memarg) => {
2305
+ sink.push(0xFD);
2306
+ 0x5Du32.encode(sink);
2307
+ memarg.encode(sink);
2308
+ }
2309
+ Instruction::V128Load8Lane { memarg, lane } => {
2310
+ sink.push(0xFD);
2311
+ 0x54u32.encode(sink);
2312
+ memarg.encode(sink);
2313
+ assert!(lane < 16);
2314
+ sink.push(lane);
2315
+ }
2316
+ Instruction::V128Load16Lane { memarg, lane } => {
2317
+ sink.push(0xFD);
2318
+ 0x55u32.encode(sink);
2319
+ memarg.encode(sink);
2320
+ assert!(lane < 8);
2321
+ sink.push(lane);
2322
+ }
2323
+ Instruction::V128Load32Lane { memarg, lane } => {
2324
+ sink.push(0xFD);
2325
+ 0x56u32.encode(sink);
2326
+ memarg.encode(sink);
2327
+ assert!(lane < 4);
2328
+ sink.push(lane);
2329
+ }
2330
+ Instruction::V128Load64Lane { memarg, lane } => {
2331
+ sink.push(0xFD);
2332
+ 0x57u32.encode(sink);
2333
+ memarg.encode(sink);
2334
+ assert!(lane < 2);
2335
+ sink.push(lane);
2336
+ }
2337
+ Instruction::V128Store8Lane { memarg, lane } => {
2338
+ sink.push(0xFD);
2339
+ 0x58u32.encode(sink);
2340
+ memarg.encode(sink);
2341
+ assert!(lane < 16);
2342
+ sink.push(lane);
2343
+ }
2344
+ Instruction::V128Store16Lane { memarg, lane } => {
2345
+ sink.push(0xFD);
2346
+ 0x59u32.encode(sink);
2347
+ memarg.encode(sink);
2348
+ assert!(lane < 8);
2349
+ sink.push(lane);
2350
+ }
2351
+ Instruction::V128Store32Lane { memarg, lane } => {
2352
+ sink.push(0xFD);
2353
+ 0x5Au32.encode(sink);
2354
+ memarg.encode(sink);
2355
+ assert!(lane < 4);
2356
+ sink.push(lane);
2357
+ }
2358
+ Instruction::V128Store64Lane { memarg, lane } => {
2359
+ sink.push(0xFD);
2360
+ 0x5Bu32.encode(sink);
2361
+ memarg.encode(sink);
2362
+ assert!(lane < 2);
2363
+ sink.push(lane);
2364
+ }
2365
+ Instruction::I64x2Eq => {
2366
+ sink.push(0xFD);
2367
+ 0xD6u32.encode(sink);
2368
+ }
2369
+ Instruction::I64x2Ne => {
2370
+ sink.push(0xFD);
2371
+ 0xD7u32.encode(sink);
2372
+ }
2373
+ Instruction::I64x2LtS => {
2374
+ sink.push(0xFD);
2375
+ 0xD8u32.encode(sink);
2376
+ }
2377
+ Instruction::I64x2GtS => {
2378
+ sink.push(0xFD);
2379
+ 0xD9u32.encode(sink);
2380
+ }
2381
+ Instruction::I64x2LeS => {
2382
+ sink.push(0xFD);
2383
+ 0xDAu32.encode(sink);
2384
+ }
2385
+ Instruction::I64x2GeS => {
2386
+ sink.push(0xFD);
2387
+ 0xDBu32.encode(sink);
2388
+ }
2389
+ Instruction::I8x16RelaxedSwizzle => {
2390
+ sink.push(0xFD);
2391
+ 0x100u32.encode(sink);
2392
+ }
2393
+ Instruction::I32x4RelaxedTruncF32x4S => {
2394
+ sink.push(0xFD);
2395
+ 0x101u32.encode(sink);
2396
+ }
2397
+ Instruction::I32x4RelaxedTruncF32x4U => {
2398
+ sink.push(0xFD);
2399
+ 0x102u32.encode(sink);
2400
+ }
2401
+ Instruction::I32x4RelaxedTruncF64x2SZero => {
2402
+ sink.push(0xFD);
2403
+ 0x103u32.encode(sink);
2404
+ }
2405
+ Instruction::I32x4RelaxedTruncF64x2UZero => {
2406
+ sink.push(0xFD);
2407
+ 0x104u32.encode(sink);
2408
+ }
2409
+ Instruction::F32x4RelaxedMadd => {
2410
+ sink.push(0xFD);
2411
+ 0x105u32.encode(sink);
2412
+ }
2413
+ Instruction::F32x4RelaxedNmadd => {
2414
+ sink.push(0xFD);
2415
+ 0x106u32.encode(sink);
2416
+ }
2417
+ Instruction::F64x2RelaxedMadd => {
2418
+ sink.push(0xFD);
2419
+ 0x107u32.encode(sink);
2420
+ }
2421
+ Instruction::F64x2RelaxedNmadd => {
2422
+ sink.push(0xFD);
2423
+ 0x108u32.encode(sink);
2424
+ }
2425
+ Instruction::I8x16RelaxedLaneselect => {
2426
+ sink.push(0xFD);
2427
+ 0x109u32.encode(sink);
2428
+ }
2429
+ Instruction::I16x8RelaxedLaneselect => {
2430
+ sink.push(0xFD);
2431
+ 0x10Au32.encode(sink);
2432
+ }
2433
+ Instruction::I32x4RelaxedLaneselect => {
2434
+ sink.push(0xFD);
2435
+ 0x10Bu32.encode(sink);
2436
+ }
2437
+ Instruction::I64x2RelaxedLaneselect => {
2438
+ sink.push(0xFD);
2439
+ 0x10Cu32.encode(sink);
2440
+ }
2441
+ Instruction::F32x4RelaxedMin => {
2442
+ sink.push(0xFD);
2443
+ 0x10Du32.encode(sink);
2444
+ }
2445
+ Instruction::F32x4RelaxedMax => {
2446
+ sink.push(0xFD);
2447
+ 0x10Eu32.encode(sink);
2448
+ }
2449
+ Instruction::F64x2RelaxedMin => {
2450
+ sink.push(0xFD);
2451
+ 0x10Fu32.encode(sink);
2452
+ }
2453
+ Instruction::F64x2RelaxedMax => {
2454
+ sink.push(0xFD);
2455
+ 0x110u32.encode(sink);
2456
+ }
2457
+ Instruction::I16x8RelaxedQ15mulrS => {
2458
+ sink.push(0xFD);
2459
+ 0x111u32.encode(sink);
2460
+ }
2461
+ Instruction::I16x8RelaxedDotI8x16I7x16S => {
2462
+ sink.push(0xFD);
2463
+ 0x112u32.encode(sink);
2464
+ }
2465
+ Instruction::I32x4RelaxedDotI8x16I7x16AddS => {
2466
+ sink.push(0xFD);
2467
+ 0x113u32.encode(sink);
2468
+ }
2469
+
2470
+ // Atmoic instructions from the thread proposal
2471
+ Instruction::MemoryAtomicNotify(memarg) => {
2472
+ sink.push(0xFE);
2473
+ sink.push(0x00);
2474
+ memarg.encode(sink);
2475
+ }
2476
+ Instruction::MemoryAtomicWait32(memarg) => {
2477
+ sink.push(0xFE);
2478
+ sink.push(0x01);
2479
+ memarg.encode(sink);
2480
+ }
2481
+ Instruction::MemoryAtomicWait64(memarg) => {
2482
+ sink.push(0xFE);
2483
+ sink.push(0x02);
2484
+ memarg.encode(sink);
2485
+ }
2486
+ Instruction::AtomicFence => {
2487
+ sink.push(0xFE);
2488
+ sink.push(0x03);
2489
+ sink.push(0x00);
2490
+ }
2491
+ Instruction::I32AtomicLoad(memarg) => {
2492
+ sink.push(0xFE);
2493
+ sink.push(0x10);
2494
+ memarg.encode(sink);
2495
+ }
2496
+ Instruction::I64AtomicLoad(memarg) => {
2497
+ sink.push(0xFE);
2498
+ sink.push(0x11);
2499
+ memarg.encode(sink);
2500
+ }
2501
+ Instruction::I32AtomicLoad8U(memarg) => {
2502
+ sink.push(0xFE);
2503
+ sink.push(0x12);
2504
+ memarg.encode(sink);
2505
+ }
2506
+ Instruction::I32AtomicLoad16U(memarg) => {
2507
+ sink.push(0xFE);
2508
+ sink.push(0x13);
2509
+ memarg.encode(sink);
2510
+ }
2511
+ Instruction::I64AtomicLoad8U(memarg) => {
2512
+ sink.push(0xFE);
2513
+ sink.push(0x14);
2514
+ memarg.encode(sink);
2515
+ }
2516
+ Instruction::I64AtomicLoad16U(memarg) => {
2517
+ sink.push(0xFE);
2518
+ sink.push(0x15);
2519
+ memarg.encode(sink);
2520
+ }
2521
+ Instruction::I64AtomicLoad32U(memarg) => {
2522
+ sink.push(0xFE);
2523
+ sink.push(0x16);
2524
+ memarg.encode(sink);
2525
+ }
2526
+ Instruction::I32AtomicStore(memarg) => {
2527
+ sink.push(0xFE);
2528
+ sink.push(0x17);
2529
+ memarg.encode(sink);
2530
+ }
2531
+ Instruction::I64AtomicStore(memarg) => {
2532
+ sink.push(0xFE);
2533
+ sink.push(0x18);
2534
+ memarg.encode(sink);
2535
+ }
2536
+ Instruction::I32AtomicStore8(memarg) => {
2537
+ sink.push(0xFE);
2538
+ sink.push(0x19);
2539
+ memarg.encode(sink);
2540
+ }
2541
+ Instruction::I32AtomicStore16(memarg) => {
2542
+ sink.push(0xFE);
2543
+ sink.push(0x1A);
2544
+ memarg.encode(sink);
2545
+ }
2546
+ Instruction::I64AtomicStore8(memarg) => {
2547
+ sink.push(0xFE);
2548
+ sink.push(0x1B);
2549
+ memarg.encode(sink);
2550
+ }
2551
+ Instruction::I64AtomicStore16(memarg) => {
2552
+ sink.push(0xFE);
2553
+ sink.push(0x1C);
2554
+ memarg.encode(sink);
2555
+ }
2556
+ Instruction::I64AtomicStore32(memarg) => {
2557
+ sink.push(0xFE);
2558
+ sink.push(0x1D);
2559
+ memarg.encode(sink);
2560
+ }
2561
+ Instruction::I32AtomicRmwAdd(memarg) => {
2562
+ sink.push(0xFE);
2563
+ sink.push(0x1E);
2564
+ memarg.encode(sink);
2565
+ }
2566
+ Instruction::I64AtomicRmwAdd(memarg) => {
2567
+ sink.push(0xFE);
2568
+ sink.push(0x1F);
2569
+ memarg.encode(sink);
2570
+ }
2571
+ Instruction::I32AtomicRmw8AddU(memarg) => {
2572
+ sink.push(0xFE);
2573
+ sink.push(0x20);
2574
+ memarg.encode(sink);
2575
+ }
2576
+ Instruction::I32AtomicRmw16AddU(memarg) => {
2577
+ sink.push(0xFE);
2578
+ sink.push(0x21);
2579
+ memarg.encode(sink);
2580
+ }
2581
+ Instruction::I64AtomicRmw8AddU(memarg) => {
2582
+ sink.push(0xFE);
2583
+ sink.push(0x22);
2584
+ memarg.encode(sink);
2585
+ }
2586
+ Instruction::I64AtomicRmw16AddU(memarg) => {
2587
+ sink.push(0xFE);
2588
+ sink.push(0x23);
2589
+ memarg.encode(sink);
2590
+ }
2591
+ Instruction::I64AtomicRmw32AddU(memarg) => {
2592
+ sink.push(0xFE);
2593
+ sink.push(0x24);
2594
+ memarg.encode(sink);
2595
+ }
2596
+ Instruction::I32AtomicRmwSub(memarg) => {
2597
+ sink.push(0xFE);
2598
+ sink.push(0x25);
2599
+ memarg.encode(sink);
2600
+ }
2601
+ Instruction::I64AtomicRmwSub(memarg) => {
2602
+ sink.push(0xFE);
2603
+ sink.push(0x26);
2604
+ memarg.encode(sink);
2605
+ }
2606
+ Instruction::I32AtomicRmw8SubU(memarg) => {
2607
+ sink.push(0xFE);
2608
+ sink.push(0x27);
2609
+ memarg.encode(sink);
2610
+ }
2611
+ Instruction::I32AtomicRmw16SubU(memarg) => {
2612
+ sink.push(0xFE);
2613
+ sink.push(0x28);
2614
+ memarg.encode(sink);
2615
+ }
2616
+ Instruction::I64AtomicRmw8SubU(memarg) => {
2617
+ sink.push(0xFE);
2618
+ sink.push(0x29);
2619
+ memarg.encode(sink);
2620
+ }
2621
+ Instruction::I64AtomicRmw16SubU(memarg) => {
2622
+ sink.push(0xFE);
2623
+ sink.push(0x2A);
2624
+ memarg.encode(sink);
2625
+ }
2626
+ Instruction::I64AtomicRmw32SubU(memarg) => {
2627
+ sink.push(0xFE);
2628
+ sink.push(0x2B);
2629
+ memarg.encode(sink);
2630
+ }
2631
+ Instruction::I32AtomicRmwAnd(memarg) => {
2632
+ sink.push(0xFE);
2633
+ sink.push(0x2C);
2634
+ memarg.encode(sink);
2635
+ }
2636
+ Instruction::I64AtomicRmwAnd(memarg) => {
2637
+ sink.push(0xFE);
2638
+ sink.push(0x2D);
2639
+ memarg.encode(sink);
2640
+ }
2641
+ Instruction::I32AtomicRmw8AndU(memarg) => {
2642
+ sink.push(0xFE);
2643
+ sink.push(0x2E);
2644
+ memarg.encode(sink);
2645
+ }
2646
+ Instruction::I32AtomicRmw16AndU(memarg) => {
2647
+ sink.push(0xFE);
2648
+ sink.push(0x2F);
2649
+ memarg.encode(sink);
2650
+ }
2651
+ Instruction::I64AtomicRmw8AndU(memarg) => {
2652
+ sink.push(0xFE);
2653
+ sink.push(0x30);
2654
+ memarg.encode(sink);
2655
+ }
2656
+ Instruction::I64AtomicRmw16AndU(memarg) => {
2657
+ sink.push(0xFE);
2658
+ sink.push(0x31);
2659
+ memarg.encode(sink);
2660
+ }
2661
+ Instruction::I64AtomicRmw32AndU(memarg) => {
2662
+ sink.push(0xFE);
2663
+ sink.push(0x32);
2664
+ memarg.encode(sink);
2665
+ }
2666
+ Instruction::I32AtomicRmwOr(memarg) => {
2667
+ sink.push(0xFE);
2668
+ sink.push(0x33);
2669
+ memarg.encode(sink);
2670
+ }
2671
+ Instruction::I64AtomicRmwOr(memarg) => {
2672
+ sink.push(0xFE);
2673
+ sink.push(0x34);
2674
+ memarg.encode(sink);
2675
+ }
2676
+ Instruction::I32AtomicRmw8OrU(memarg) => {
2677
+ sink.push(0xFE);
2678
+ sink.push(0x35);
2679
+ memarg.encode(sink);
2680
+ }
2681
+ Instruction::I32AtomicRmw16OrU(memarg) => {
2682
+ sink.push(0xFE);
2683
+ sink.push(0x36);
2684
+ memarg.encode(sink);
2685
+ }
2686
+ Instruction::I64AtomicRmw8OrU(memarg) => {
2687
+ sink.push(0xFE);
2688
+ sink.push(0x37);
2689
+ memarg.encode(sink);
2690
+ }
2691
+ Instruction::I64AtomicRmw16OrU(memarg) => {
2692
+ sink.push(0xFE);
2693
+ sink.push(0x38);
2694
+ memarg.encode(sink);
2695
+ }
2696
+ Instruction::I64AtomicRmw32OrU(memarg) => {
2697
+ sink.push(0xFE);
2698
+ sink.push(0x39);
2699
+ memarg.encode(sink);
2700
+ }
2701
+ Instruction::I32AtomicRmwXor(memarg) => {
2702
+ sink.push(0xFE);
2703
+ sink.push(0x3A);
2704
+ memarg.encode(sink);
2705
+ }
2706
+ Instruction::I64AtomicRmwXor(memarg) => {
2707
+ sink.push(0xFE);
2708
+ sink.push(0x3B);
2709
+ memarg.encode(sink);
2710
+ }
2711
+ Instruction::I32AtomicRmw8XorU(memarg) => {
2712
+ sink.push(0xFE);
2713
+ sink.push(0x3C);
2714
+ memarg.encode(sink);
2715
+ }
2716
+ Instruction::I32AtomicRmw16XorU(memarg) => {
2717
+ sink.push(0xFE);
2718
+ sink.push(0x3D);
2719
+ memarg.encode(sink);
2720
+ }
2721
+ Instruction::I64AtomicRmw8XorU(memarg) => {
2722
+ sink.push(0xFE);
2723
+ sink.push(0x3E);
2724
+ memarg.encode(sink);
2725
+ }
2726
+ Instruction::I64AtomicRmw16XorU(memarg) => {
2727
+ sink.push(0xFE);
2728
+ sink.push(0x3F);
2729
+ memarg.encode(sink);
2730
+ }
2731
+ Instruction::I64AtomicRmw32XorU(memarg) => {
2732
+ sink.push(0xFE);
2733
+ sink.push(0x40);
2734
+ memarg.encode(sink);
2735
+ }
2736
+ Instruction::I32AtomicRmwXchg(memarg) => {
2737
+ sink.push(0xFE);
2738
+ sink.push(0x41);
2739
+ memarg.encode(sink);
2740
+ }
2741
+ Instruction::I64AtomicRmwXchg(memarg) => {
2742
+ sink.push(0xFE);
2743
+ sink.push(0x42);
2744
+ memarg.encode(sink);
2745
+ }
2746
+ Instruction::I32AtomicRmw8XchgU(memarg) => {
2747
+ sink.push(0xFE);
2748
+ sink.push(0x43);
2749
+ memarg.encode(sink);
2750
+ }
2751
+ Instruction::I32AtomicRmw16XchgU(memarg) => {
2752
+ sink.push(0xFE);
2753
+ sink.push(0x44);
2754
+ memarg.encode(sink);
2755
+ }
2756
+ Instruction::I64AtomicRmw8XchgU(memarg) => {
2757
+ sink.push(0xFE);
2758
+ sink.push(0x45);
2759
+ memarg.encode(sink);
2760
+ }
2761
+ Instruction::I64AtomicRmw16XchgU(memarg) => {
2762
+ sink.push(0xFE);
2763
+ sink.push(0x46);
2764
+ memarg.encode(sink);
2765
+ }
2766
+ Instruction::I64AtomicRmw32XchgU(memarg) => {
2767
+ sink.push(0xFE);
2768
+ sink.push(0x47);
2769
+ memarg.encode(sink);
2770
+ }
2771
+ Instruction::I32AtomicRmwCmpxchg(memarg) => {
2772
+ sink.push(0xFE);
2773
+ sink.push(0x48);
2774
+ memarg.encode(sink);
2775
+ }
2776
+ Instruction::I64AtomicRmwCmpxchg(memarg) => {
2777
+ sink.push(0xFE);
2778
+ sink.push(0x49);
2779
+ memarg.encode(sink);
2780
+ }
2781
+ Instruction::I32AtomicRmw8CmpxchgU(memarg) => {
2782
+ sink.push(0xFE);
2783
+ sink.push(0x4A);
2784
+ memarg.encode(sink);
2785
+ }
2786
+ Instruction::I32AtomicRmw16CmpxchgU(memarg) => {
2787
+ sink.push(0xFE);
2788
+ sink.push(0x4B);
2789
+ memarg.encode(sink);
2790
+ }
2791
+ Instruction::I64AtomicRmw8CmpxchgU(memarg) => {
2792
+ sink.push(0xFE);
2793
+ sink.push(0x4C);
2794
+ memarg.encode(sink);
2795
+ }
2796
+ Instruction::I64AtomicRmw16CmpxchgU(memarg) => {
2797
+ sink.push(0xFE);
2798
+ sink.push(0x4D);
2799
+ memarg.encode(sink);
2800
+ }
2801
+ Instruction::I64AtomicRmw32CmpxchgU(memarg) => {
2802
+ sink.push(0xFE);
2803
+ sink.push(0x4E);
2804
+ memarg.encode(sink);
2805
+ }
2806
+ }
2807
+ }
2808
+ }
2809
+
2810
+ /// A constant expression.
2811
+ ///
2812
+ /// Usable in contexts such as offsets or initializers.
2813
+ #[derive(Debug)]
2814
+ pub struct ConstExpr {
2815
+ bytes: Vec<u8>,
2816
+ }
2817
+
2818
+ impl ConstExpr {
2819
+ /// Create a new empty constant expression builder.
2820
+ pub fn empty() -> Self {
2821
+ Self { bytes: Vec::new() }
2822
+ }
2823
+
2824
+ /// Create a constant expression with the specified raw encoding of instructions.
2825
+ pub fn raw(bytes: impl IntoIterator<Item = u8>) -> Self {
2826
+ Self {
2827
+ bytes: bytes.into_iter().collect(),
2828
+ }
2829
+ }
2830
+
2831
+ fn new_insn(insn: Instruction) -> Self {
2832
+ let mut bytes = vec![];
2833
+ insn.encode(&mut bytes);
2834
+ Self { bytes }
2835
+ }
2836
+
2837
+ /// Create a constant expression containing a single `global.get` instruction.
2838
+ pub fn global_get(index: u32) -> Self {
2839
+ Self::new_insn(Instruction::GlobalGet(index))
2840
+ }
2841
+
2842
+ /// Create a constant expression containing a single `ref.null` instruction.
2843
+ pub fn ref_null(ty: HeapType) -> Self {
2844
+ Self::new_insn(Instruction::RefNull(ty))
2845
+ }
2846
+
2847
+ /// Create a constant expression containing a single `ref.func` instruction.
2848
+ pub fn ref_func(func: u32) -> Self {
2849
+ Self::new_insn(Instruction::RefFunc(func))
2850
+ }
2851
+
2852
+ /// Create a constant expression containing a single `i32.const` instruction.
2853
+ pub fn i32_const(value: i32) -> Self {
2854
+ Self::new_insn(Instruction::I32Const(value))
2855
+ }
2856
+
2857
+ /// Create a constant expression containing a single `i64.const` instruction.
2858
+ pub fn i64_const(value: i64) -> Self {
2859
+ Self::new_insn(Instruction::I64Const(value))
2860
+ }
2861
+
2862
+ /// Create a constant expression containing a single `f32.const` instruction.
2863
+ pub fn f32_const(value: f32) -> Self {
2864
+ Self::new_insn(Instruction::F32Const(value))
2865
+ }
2866
+
2867
+ /// Create a constant expression containing a single `f64.const` instruction.
2868
+ pub fn f64_const(value: f64) -> Self {
2869
+ Self::new_insn(Instruction::F64Const(value))
2870
+ }
2871
+
2872
+ /// Create a constant expression containing a single `v128.const` instruction.
2873
+ pub fn v128_const(value: i128) -> Self {
2874
+ Self::new_insn(Instruction::V128Const(value))
2875
+ }
2876
+ }
2877
+
2878
+ impl Encode for ConstExpr {
2879
+ fn encode(&self, sink: &mut Vec<u8>) {
2880
+ sink.extend(&self.bytes);
2881
+ Instruction::End.encode(sink);
2882
+ }
2883
+ }
2884
+
2885
+ /// An error when converting a `wasmparser::ConstExpr` into a
2886
+ /// `wasm_encoder::ConstExpr`.
2887
+ #[cfg(feature = "wasmparser")]
2888
+ #[derive(Debug)]
2889
+ pub enum ConstExprConversionError {
2890
+ /// There was an error when parsing the const expression.
2891
+ ParseError(wasmparser::BinaryReaderError),
2892
+
2893
+ /// The const expression is invalid: not actually constant or something like
2894
+ /// that.
2895
+ Invalid,
2896
+ }
2897
+
2898
+ #[cfg(feature = "wasmparser")]
2899
+ impl std::fmt::Display for ConstExprConversionError {
2900
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2901
+ match self {
2902
+ Self::ParseError(_e) => {
2903
+ write!(f, "There was an error when parsing the const expression")
2904
+ }
2905
+ Self::Invalid => write!(f, "The const expression was invalid"),
2906
+ }
2907
+ }
2908
+ }
2909
+
2910
+ #[cfg(feature = "wasmparser")]
2911
+ impl std::error::Error for ConstExprConversionError {
2912
+ fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
2913
+ match self {
2914
+ Self::ParseError(e) => Some(e),
2915
+ Self::Invalid => None,
2916
+ }
2917
+ }
2918
+ }
2919
+
2920
+ #[cfg(feature = "wasmparser")]
2921
+ impl<'a> TryFrom<wasmparser::ConstExpr<'a>> for ConstExpr {
2922
+ type Error = ConstExprConversionError;
2923
+
2924
+ fn try_from(const_expr: wasmparser::ConstExpr) -> Result<Self, Self::Error> {
2925
+ let mut ops = const_expr.get_operators_reader().into_iter();
2926
+
2927
+ let result = match ops.next() {
2928
+ Some(Ok(wasmparser::Operator::I32Const { value })) => ConstExpr::i32_const(value),
2929
+ Some(Ok(wasmparser::Operator::I64Const { value })) => ConstExpr::i64_const(value),
2930
+ Some(Ok(wasmparser::Operator::F32Const { value })) => {
2931
+ ConstExpr::f32_const(value.bits() as _)
2932
+ }
2933
+ Some(Ok(wasmparser::Operator::F64Const { value })) => {
2934
+ ConstExpr::f64_const(value.bits() as _)
2935
+ }
2936
+ Some(Ok(wasmparser::Operator::V128Const { value })) => {
2937
+ ConstExpr::v128_const(i128::from_le_bytes(*value.bytes()))
2938
+ }
2939
+ Some(Ok(wasmparser::Operator::RefNull { hty })) => ConstExpr::ref_null(hty.into()),
2940
+ Some(Ok(wasmparser::Operator::RefFunc { function_index })) => {
2941
+ ConstExpr::ref_func(function_index)
2942
+ }
2943
+ Some(Ok(wasmparser::Operator::GlobalGet { global_index })) => {
2944
+ ConstExpr::global_get(global_index)
2945
+ }
2946
+
2947
+ // TODO: support the extended-const proposal.
2948
+ Some(Ok(_op)) => return Err(ConstExprConversionError::Invalid),
2949
+
2950
+ Some(Err(e)) => return Err(ConstExprConversionError::ParseError(e)),
2951
+ None => return Err(ConstExprConversionError::Invalid),
2952
+ };
2953
+
2954
+ match (ops.next(), ops.next()) {
2955
+ (Some(Ok(wasmparser::Operator::End)), None) => Ok(result),
2956
+ _ => Err(ConstExprConversionError::Invalid),
2957
+ }
2958
+ }
2959
+ }
2960
+
2961
+ #[cfg(test)]
2962
+ mod tests {
2963
+ #[test]
2964
+ fn function_new_with_locals_test() {
2965
+ use super::*;
2966
+
2967
+ // Test the algorithm for conversion is correct
2968
+ let f1 = Function::new_with_locals_types([
2969
+ ValType::I32,
2970
+ ValType::I32,
2971
+ ValType::I64,
2972
+ ValType::F32,
2973
+ ValType::F32,
2974
+ ValType::F32,
2975
+ ValType::I32,
2976
+ ValType::I64,
2977
+ ValType::I64,
2978
+ ]);
2979
+ let f2 = Function::new([
2980
+ (2, ValType::I32),
2981
+ (1, ValType::I64),
2982
+ (3, ValType::F32),
2983
+ (1, ValType::I32),
2984
+ (2, ValType::I64),
2985
+ ]);
2986
+
2987
+ assert_eq!(f1.bytes, f2.bytes)
2988
+ }
2989
+ }