Fix shuffle and enable tests. Add support for new load_splat instructions.

Updates to wasmparser 0.34.0 and picks up a newer wasmerio/wabt.
This commit is contained in:
Nick Lewycky
2019-07-19 15:19:58 -07:00
parent 3e009c5971
commit cd25356858
14 changed files with 278 additions and 151 deletions

173
Cargo.lock generated
View File

@ -138,6 +138,16 @@ dependencies = [
"cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]]
name = "cargo_toml"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"serde 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
"toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "cast" name = "cast"
version = "0.2.2" version = "0.2.2"
@ -244,20 +254,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "cranelift-bforest" name = "cranelift-bforest"
version = "0.31.0" version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc#f05f4044d42c54fc5841753030991afc026695fc"
dependencies = [ dependencies = [
"cranelift-entity 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-entity 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
] ]
[[package]] [[package]]
name = "cranelift-codegen" name = "cranelift-codegen"
version = "0.31.0" version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc#f05f4044d42c54fc5841753030991afc026695fc"
dependencies = [ dependencies = [
"cranelift-bforest 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-bforest 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"cranelift-codegen-meta 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-codegen-meta 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"cranelift-entity 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-entity 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -266,27 +276,51 @@ dependencies = [
[[package]] [[package]]
name = "cranelift-codegen-meta" name = "cranelift-codegen-meta"
version = "0.31.0" version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc#f05f4044d42c54fc5841753030991afc026695fc"
dependencies = [ dependencies = [
"cranelift-entity 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-entity 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
] ]
[[package]] [[package]]
name = "cranelift-entity" name = "cranelift-entity"
version = "0.31.0" version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc#f05f4044d42c54fc5841753030991afc026695fc"
[[package]]
name = "cranelift-frontend"
version = "0.34.0"
source = "git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc#f05f4044d42c54fc5841753030991afc026695fc"
dependencies = [
"cranelift-codegen 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"target-lexicon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "cranelift-native" name = "cranelift-native"
version = "0.31.0" version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc#f05f4044d42c54fc5841753030991afc026695fc"
dependencies = [ dependencies = [
"cranelift-codegen 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-codegen 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"raw-cpuid 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "raw-cpuid 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"target-lexicon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "target-lexicon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]]
name = "cranelift-wasm"
version = "0.34.0"
source = "git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc#f05f4044d42c54fc5841753030991afc026695fc"
dependencies = [
"cranelift-codegen 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"cranelift-entity 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"cranelift-frontend 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "criterion" name = "criterion"
version = "0.2.11" version = "0.2.11"
@ -555,20 +589,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "inkwell" name = "inkwell"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/wasmerio/inkwell?branch=llvm7-0#a14e62977504ef574dc2e933edc559cc79781ca7" source = "git+https://github.com/wasmerio/inkwell?branch=llvm8-0#f1775622b6d88fd30006b377042726854c9e0193"
dependencies = [ dependencies = [
"either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"enum-methods 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "enum-methods 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
"inkwell_internal_macros 0.1.0 (git+https://github.com/wasmerio/inkwell?branch=llvm7-0)", "inkwell_internal_macros 0.1.0 (git+https://github.com/wasmerio/inkwell?branch=llvm8-0)",
"libc 0.2.57 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.57 (registry+https://github.com/rust-lang/crates.io-index)",
"llvm-sys 70.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "llvm-sys 80.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "inkwell_internal_macros" name = "inkwell_internal_macros"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/wasmerio/inkwell?branch=llvm7-0#a14e62977504ef574dc2e933edc559cc79781ca7" source = "git+https://github.com/wasmerio/inkwell?branch=llvm8-0#f1775622b6d88fd30006b377042726854c9e0193"
dependencies = [ dependencies = [
"cargo_toml 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
"proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
"syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -620,7 +656,7 @@ dependencies = [
[[package]] [[package]]
name = "llvm-sys" name = "llvm-sys"
version = "70.2.0" version = "80.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1346,19 +1382,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "wabt" name = "wabt"
version = "0.7.4" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b#77081af74fe3ecaa300e3517c9f87233ae8cf95b"
dependencies = [ dependencies = [
"serde 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
"wabt-sys 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "wabt-sys 0.6.0 (git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b)",
] ]
[[package]] [[package]]
name = "wabt-sys" name = "wabt-sys"
version = "0.5.4" version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b#77081af74fe3ecaa300e3517c9f87233ae8cf95b"
dependencies = [ dependencies = [
"cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
"cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1385,7 +1421,7 @@ dependencies = [
"hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"structopt 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)",
"wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.8.0 (git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b)",
"wasmer-clif-backend 0.5.6", "wasmer-clif-backend 0.5.6",
"wasmer-dev-utils 0.5.6", "wasmer-dev-utils 0.5.6",
"wasmer-emscripten 0.5.6", "wasmer-emscripten 0.5.6",
@ -1405,9 +1441,11 @@ name = "wasmer-clif-backend"
version = "0.5.6" version = "0.5.6"
dependencies = [ dependencies = [
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cranelift-codegen 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-codegen 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"cranelift-entity 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-entity 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"cranelift-native 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", "cranelift-frontend 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"cranelift-native 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"cranelift-wasm 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)",
"hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.57 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.57 (registry+https://github.com/rust-lang/crates.io-index)",
"nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1417,38 +1455,12 @@ dependencies = [
"serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
"target-lexicon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "target-lexicon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-clif-fork-frontend 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-clif-fork-wasm 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-runtime-core 0.5.6", "wasmer-runtime-core 0.5.6",
"wasmer-win-exception-handler 0.5.6", "wasmer-win-exception-handler 0.5.6",
"wasmparser 0.32.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]]
name = "wasmer-clif-fork-frontend"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cranelift-codegen 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"target-lexicon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "wasmer-clif-fork-wasm"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cranelift-codegen 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cranelift-entity 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-clif-fork-frontend 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmparser 0.32.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "wasmer-dev-utils" name = "wasmer-dev-utils"
version = "0.5.6" version = "0.5.6"
@ -1474,7 +1486,7 @@ name = "wasmer-emscripten-tests"
version = "0.5.6" version = "0.5.6"
dependencies = [ dependencies = [
"glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.8.0 (git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b)",
"wasmer-clif-backend 0.5.6", "wasmer-clif-backend 0.5.6",
"wasmer-dev-utils 0.5.6", "wasmer-dev-utils 0.5.6",
"wasmer-emscripten 0.5.6", "wasmer-emscripten 0.5.6",
@ -1499,7 +1511,7 @@ dependencies = [
"cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
"goblin 0.0.20 (registry+https://github.com/rust-lang/crates.io-index)", "goblin 0.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
"hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"inkwell 0.1.0 (git+https://github.com/wasmerio/inkwell?branch=llvm7-0)", "inkwell 0.1.0 (git+https://github.com/wasmerio/inkwell?branch=llvm8-0)",
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.57 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.57 (registry+https://github.com/rust-lang/crates.io-index)",
"nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1507,9 +1519,9 @@ dependencies = [
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
"wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.8.0 (git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b)",
"wasmer-runtime-core 0.5.6", "wasmer-runtime-core 0.5.6",
"wasmparser 0.32.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -1517,7 +1529,7 @@ name = "wasmer-middleware-common"
version = "0.5.6" version = "0.5.6"
dependencies = [ dependencies = [
"criterion 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "criterion 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.8.0 (git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b)",
"wasmer-clif-backend 0.5.6", "wasmer-clif-backend 0.5.6",
"wasmer-llvm-backend 0.5.6", "wasmer-llvm-backend 0.5.6",
"wasmer-runtime-core 0.5.6", "wasmer-runtime-core 0.5.6",
@ -1532,7 +1544,7 @@ dependencies = [
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"tempfile 3.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
"wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.8.0 (git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b)",
"wasmer-clif-backend 0.5.6", "wasmer-clif-backend 0.5.6",
"wasmer-llvm-backend 0.5.6", "wasmer-llvm-backend 0.5.6",
"wasmer-runtime-core 0.5.6", "wasmer-runtime-core 0.5.6",
@ -1574,7 +1586,7 @@ dependencies = [
"serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmparser 0.32.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1592,14 +1604,14 @@ dependencies = [
"nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
"wasmer-runtime-core 0.5.6", "wasmer-runtime-core 0.5.6",
"wasmparser 0.32.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "wasmer-spectests" name = "wasmer-spectests"
version = "0.5.6" version = "0.5.6"
dependencies = [ dependencies = [
"wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wabt 0.8.0 (git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b)",
"wasmer-clif-backend 0.5.6", "wasmer-clif-backend 0.5.6",
"wasmer-llvm-backend 0.5.6", "wasmer-llvm-backend 0.5.6",
"wasmer-runtime-core 0.5.6", "wasmer-runtime-core 0.5.6",
@ -1647,7 +1659,7 @@ dependencies = [
[[package]] [[package]]
name = "wasmparser" name = "wasmparser"
version = "0.32.1" version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
@ -1733,6 +1745,7 @@ dependencies = [
"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb"
"checksum capstone 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "00be9d203fa0e078b93b24603633fb081851dfe0c1086364431f52587a47157e" "checksum capstone 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "00be9d203fa0e078b93b24603633fb081851dfe0c1086364431f52587a47157e"
"checksum capstone-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2dc8d32bc5c1e6d0fcde10af411c98b07d93498d51654f678757f08fa2acd6a6" "checksum capstone-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2dc8d32bc5c1e6d0fcde10af411c98b07d93498d51654f678757f08fa2acd6a6"
"checksum cargo_toml 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "097f5ce64ba566a83d9d914fd005de1e5937fdd57d8c5d99a7593040955d75a9"
"checksum cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427" "checksum cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
"checksum cbindgen 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1f861ef68cabbb271d373a7795014052bff37edce22c620d95e395e8719d7dc5" "checksum cbindgen 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1f861ef68cabbb271d373a7795014052bff37edce22c620d95e395e8719d7dc5"
"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d" "checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d"
@ -1745,11 +1758,13 @@ dependencies = [
"checksum cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "2ca4386c8954b76a8415b63959337d940d724b336cabd3afe189c2b51a7e1ff0" "checksum cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "2ca4386c8954b76a8415b63959337d940d724b336cabd3afe189c2b51a7e1ff0"
"checksum colored 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6cdb90b60f2927f8d76139c72dbde7e10c3a2bc47c8594c9c7a66529f2687c03" "checksum colored 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6cdb90b60f2927f8d76139c72dbde7e10c3a2bc47c8594c9c7a66529f2687c03"
"checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e"
"checksum cranelift-bforest 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "409f92af3dd276e112b72873a3ef02613e3c5f55b81d5d5d04f3157d4f8b8c54" "checksum cranelift-bforest 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)" = "<none>"
"checksum cranelift-codegen 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b303542a56fba4cbaeea099fb30ed078b50de0e765fd69f7f5f410adbe31d95b" "checksum cranelift-codegen 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)" = "<none>"
"checksum cranelift-codegen-meta 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0fee15ed430092a6d14b7c6d627540bef732509b8097ae31e4e35526edaa129c" "checksum cranelift-codegen-meta 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)" = "<none>"
"checksum cranelift-entity 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "739222c3740e4a8d6f0375bd95caba9b6c11afcba9f0e1d4f944d6bd99f84600" "checksum cranelift-entity 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)" = "<none>"
"checksum cranelift-native 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce451162d18b7d82118e23ea7e12f7d8b98557549404bd71215548de79eb0736" "checksum cranelift-frontend 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)" = "<none>"
"checksum cranelift-native 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)" = "<none>"
"checksum cranelift-wasm 0.34.0 (git+https://github.com/wasmerio/cranelift.git?rev=f05f4044d42c54fc5841753030991afc026695fc)" = "<none>"
"checksum criterion 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0363053954f3e679645fc443321ca128b7b950a6fe288cf5f9335cc22ee58394" "checksum criterion 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0363053954f3e679645fc443321ca128b7b950a6fe288cf5f9335cc22ee58394"
"checksum criterion-plot 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76f9212ddf2f4a9eb2d401635190600656a1f88a932ef53d06e7fa4c7e02fb8e" "checksum criterion-plot 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76f9212ddf2f4a9eb2d401635190600656a1f88a932ef53d06e7fa4c7e02fb8e"
"checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" "checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3"
@ -1779,15 +1794,15 @@ dependencies = [
"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" "checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" "checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
"checksum inkwell 0.1.0 (git+https://github.com/wasmerio/inkwell?branch=llvm7-0)" = "<none>" "checksum inkwell 0.1.0 (git+https://github.com/wasmerio/inkwell?branch=llvm8-0)" = "<none>"
"checksum inkwell_internal_macros 0.1.0 (git+https://github.com/wasmerio/inkwell?branch=llvm7-0)" = "<none>" "checksum inkwell_internal_macros 0.1.0 (git+https://github.com/wasmerio/inkwell?branch=llvm8-0)" = "<none>"
"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358" "checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" "checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
"checksum libc 0.2.57 (registry+https://github.com/rust-lang/crates.io-index)" = "a844cabbd5a77e60403a58af576f0a1baa83c3dd2670be63e615bd24fc58b82d" "checksum libc 0.2.57 (registry+https://github.com/rust-lang/crates.io-index)" = "a844cabbd5a77e60403a58af576f0a1baa83c3dd2670be63e615bd24fc58b82d"
"checksum libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5692f82b51823e27c4118b3e5c0d98aee9be90633ebc71ad12afef380b50219" "checksum libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5692f82b51823e27c4118b3e5c0d98aee9be90633ebc71ad12afef380b50219"
"checksum llvm-sys 70.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a2cb392cf218dbb2d2c4f0fe54b8622871f8897a1d62d24a117dcf540bba124" "checksum llvm-sys 80.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2110cd4daf9cd8e39dd3b933b1a2a2ac7315e91f7c92b3a20beab526c63b5978"
"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" "checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
@ -1877,12 +1892,10 @@ dependencies = [
"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
"checksum wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "74e463a508e390cc7447e70f640fbf44ad52e1bd095314ace1fdf99516d32add" "checksum wabt 0.8.0 (git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b)" = "<none>"
"checksum wabt-sys 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a6265b25719e82598d104b3717375e37661d41753e2c84cde3f51050c7ed7e3c" "checksum wabt-sys 0.6.0 (git+https://github.com/wasmerio/wabt-rs.git?rev=77081af74fe3ecaa300e3517c9f87233ae8cf95b)" = "<none>"
"checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" "checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1"
"checksum wasmer-clif-fork-frontend 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "620fd484c3348e4bb565d861cddb0c05170337aaa152b6ba61620d054ab17cd9" "checksum wasmparser 0.34.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8030ec5a7c242a91941947fdb752e9a7c0929aced954ea23c54dad1cd2611850"
"checksum wasmer-clif-fork-wasm 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b5e42fa4281de137d5a23b8197d29c218212077c6d55d0dfed7bb80c76308ba4"
"checksum wasmparser 0.32.1 (registry+https://github.com/rust-lang/crates.io-index)" = "22d1801de30f112ddaf665291097694ee33a36d1cb414b53a921d05b3519674a"
"checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" "checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164"
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"

View File

@ -22,7 +22,7 @@ include = [
byteorder = "1.3.1" byteorder = "1.3.1"
errno = "0.2.4" errno = "0.2.4"
structopt = "0.2.11" structopt = "0.2.11"
wabt = "0.8.0" wabt = { git = "https://github.com/wasmerio/wabt-rs.git", rev = "77081af74fe3ecaa300e3517c9f87233ae8cf95b" }
hashbrown = "0.1.8" hashbrown = "0.1.8"
wasmer-clif-backend = { path = "lib/clif-backend" } wasmer-clif-backend = { path = "lib/clif-backend" }
wasmer-singlepass-backend = { path = "lib/singlepass-backend", optional = true } wasmer-singlepass-backend = { path = "lib/singlepass-backend", optional = true }
@ -61,7 +61,7 @@ members = [
] ]
[build-dependencies] [build-dependencies]
wabt = "0.8.0" wabt = { git = "https://github.com/wasmerio/wabt-rs.git", rev = "77081af74fe3ecaa300e3517c9f87233ae8cf95b" }
glob = "0.2.11" glob = "0.2.11"
rustc_version = "0.2.3" rustc_version = "0.2.3"

View File

@ -9,14 +9,14 @@ edition = "2018"
[dependencies] [dependencies]
wasmer-runtime-core = { path = "../runtime-core", version = "0.5.6" } wasmer-runtime-core = { path = "../runtime-core", version = "0.5.6" }
cranelift-native = { version = "0.31" } cranelift-native = { git = "https://github.com/wasmerio/cranelift.git", rev = "f05f4044d42c54fc5841753030991afc026695fc" }
cranelift-codegen = { version = "0.31" } cranelift-codegen = { git = "https://github.com/wasmerio/cranelift.git", rev = "f05f4044d42c54fc5841753030991afc026695fc" }
cranelift-entity = { version = "0.31" } cranelift-entity = { git = "https://github.com/wasmerio/cranelift.git", rev = "f05f4044d42c54fc5841753030991afc026695fc" }
cranelift-frontend = { package = "wasmer-clif-fork-frontend", version = "0.31" } cranelift-frontend = { git = "https://github.com/wasmerio/cranelift.git", rev = "f05f4044d42c54fc5841753030991afc026695fc" }
cranelift-wasm = { package = "wasmer-clif-fork-wasm", version = "0.31" } cranelift-wasm = { git = "https://github.com/wasmerio/cranelift.git", rev = "f05f4044d42c54fc5841753030991afc026695fc" }
hashbrown = "0.1" hashbrown = "0.1"
target-lexicon = "0.4.0" target-lexicon = "0.4.0"
wasmparser = "0.32.1" wasmparser = "0.34.0"
byteorder = "1" byteorder = "1"
nix = "0.14.0" nix = "0.14.0"
libc = "0.2.49" libc = "0.2.49"

View File

@ -16,7 +16,7 @@ wasmer-llvm-backend = { path = "../llvm-backend", version = "0.5.6", optional =
wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.5.6", optional = true } wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.5.6", optional = true }
[dev-dependencies] [dev-dependencies]
wabt = "0.7.2" wabt = { git = "https://github.com/wasmerio/wabt-rs.git", rev = "77081af74fe3ecaa300e3517c9f87233ae8cf95b" }
wasmer-dev-utils = { path = "../dev-utils", version = "0.5.6"} wasmer-dev-utils = { path = "../dev-utils", version = "0.5.6"}
[build-dependencies] [build-dependencies]

View File

@ -7,7 +7,7 @@ edition = "2018"
[dependencies] [dependencies]
wasmer-runtime-core = { path = "../runtime-core", version = "0.5.6" } wasmer-runtime-core = { path = "../runtime-core", version = "0.5.6" }
inkwell = { git = "https://github.com/wasmerio/inkwell", branch = "llvm8-0", features = ["llvm8-0"] } inkwell = { git = "https://github.com/wasmerio/inkwell", branch = "llvm8-0", features = ["llvm8-0"] }
wasmparser = "0.32.1" wasmparser = "0.34.0"
hashbrown = "0.1.8" hashbrown = "0.1.8"
smallvec = "0.6.8" smallvec = "0.6.8"
goblin = "0.0.20" goblin = "0.0.20"
@ -23,7 +23,7 @@ semver = "0.9"
rustc_version = "0.2.3" rustc_version = "0.2.3"
[dev-dependencies] [dev-dependencies]
wabt = "0.8.0" wabt = { git = "https://github.com/wasmerio/wabt-rs.git", rev = "77081af74fe3ecaa300e3517c9f87233ae8cf95b" }
[features] [features]
debug = ["wasmer-runtime-core/debug"] debug = ["wasmer-runtime-core/debug"]

View File

@ -4119,7 +4119,7 @@ impl FunctionCodeGenerator<CodegenError> for LLVMFunctionCodeGenerator {
let res = builder.build_bitcast(res, intrinsics.i128_ty, ""); let res = builder.build_bitcast(res, intrinsics.i128_ty, "");
state.push1(res); state.push1(res);
} }
Operator::V8x16Shuffle1 => { Operator::V8x16Swizzle => {
let (v1, v2) = state.pop2()?; let (v1, v2) = state.pop2()?;
let v1 = builder let v1 = builder
.build_bitcast(v1, intrinsics.i8x16_ty, "") .build_bitcast(v1, intrinsics.i8x16_ty, "")
@ -4127,27 +4127,46 @@ impl FunctionCodeGenerator<CodegenError> for LLVMFunctionCodeGenerator {
let v2 = builder let v2 = builder
.build_bitcast(v2, intrinsics.i8x16_ty, "") .build_bitcast(v2, intrinsics.i8x16_ty, "")
.into_vector_value(); .into_vector_value();
let lanes = intrinsics.i32_ty.const_int(16, false); let lanes = intrinsics.i8_ty.const_int(16, false);
let mut res = intrinsics.i8x16_ty.get_undef(); let lanes = splat_vector(
for i in 0..15 { builder,
let idx = builder intrinsics,
.build_extract_element(v2, intrinsics.i32_ty.const_int(i, false), "idx") lanes.as_basic_value_enum(),
.into_int_value(); intrinsics.i8x16_ty,
let idx_out_of_range = builder.build_int_compare( "",
IntPredicate::UGE,
idx,
lanes,
"idx_out_of_range",
); );
let mut res = intrinsics.i8x16_ty.get_undef();
let idx_out_of_range =
builder.build_int_compare(IntPredicate::UGE, v2, lanes, "idx_out_of_range");
let idx_clamped = builder let idx_clamped = builder
.build_select(idx_out_of_range, intrinsics.i32_zero, idx, "idx_clamped") .build_select(
idx_out_of_range,
intrinsics.i8x16_ty.const_zero(),
v2,
"idx_clamped",
)
.into_vector_value();
for i in 0..16 {
let idx = builder
.build_extract_element(
idx_clamped,
intrinsics.i32_ty.const_int(i, false),
"idx",
)
.into_int_value();
let replace_with_zero = builder
.build_extract_element(
idx_out_of_range,
intrinsics.i32_ty.const_int(i, false),
"replace_with_zero",
)
.into_int_value(); .into_int_value();
let elem = builder let elem = builder
.build_extract_element(v1, idx_clamped, "elem") .build_extract_element(v1, idx, "elem")
.into_int_value(); .into_int_value();
let elem_or_zero = builder.build_select( let elem_or_zero = builder.build_select(
idx_out_of_range, replace_with_zero,
intrinsics.i32_zero, intrinsics.i8_zero,
elem, elem,
"elem_or_zero", "elem_or_zero",
); );
@ -4161,7 +4180,7 @@ impl FunctionCodeGenerator<CodegenError> for LLVMFunctionCodeGenerator {
let res = builder.build_bitcast(res, intrinsics.i128_ty, &state.var_name()); let res = builder.build_bitcast(res, intrinsics.i128_ty, &state.var_name());
state.push1(res); state.push1(res);
} }
Operator::V8x16Shuffle2Imm { lanes } => { Operator::V8x16Shuffle { lanes } => {
let (v1, v2) = state.pop2()?; let (v1, v2) = state.pop2()?;
let v1 = builder let v1 = builder
.build_bitcast(v1, intrinsics.i8x16_ty, "") .build_bitcast(v1, intrinsics.i8x16_ty, "")
@ -4180,6 +4199,98 @@ impl FunctionCodeGenerator<CodegenError> for LLVMFunctionCodeGenerator {
let res = builder.build_bitcast(res, intrinsics.i128_ty, ""); let res = builder.build_bitcast(res, intrinsics.i128_ty, "");
state.push1(res); state.push1(res);
} }
Operator::I8x16LoadSplat { ref memarg } => {
let effective_address = resolve_memory_ptr(
builder,
intrinsics,
context,
&function,
&mut state,
&mut ctx,
memarg,
intrinsics.i8_ptr_ty,
1,
)?;
let elem = builder.build_load(effective_address, "").into_int_value();
let res = splat_vector(
builder,
intrinsics,
elem.as_basic_value_enum(),
intrinsics.i8x16_ty,
&state.var_name(),
);
let res = builder.build_bitcast(res, intrinsics.i128_ty, "");
state.push1(res);
}
Operator::I16x8LoadSplat { ref memarg } => {
let effective_address = resolve_memory_ptr(
builder,
intrinsics,
context,
&function,
&mut state,
&mut ctx,
memarg,
intrinsics.i16_ptr_ty,
2,
)?;
let elem = builder.build_load(effective_address, "").into_int_value();
let res = splat_vector(
builder,
intrinsics,
elem.as_basic_value_enum(),
intrinsics.i16x8_ty,
&state.var_name(),
);
let res = builder.build_bitcast(res, intrinsics.i128_ty, "");
state.push1(res);
}
Operator::I32x4LoadSplat { ref memarg } => {
let effective_address = resolve_memory_ptr(
builder,
intrinsics,
context,
&function,
&mut state,
&mut ctx,
memarg,
intrinsics.i32_ptr_ty,
4,
)?;
let elem = builder.build_load(effective_address, "").into_int_value();
let res = splat_vector(
builder,
intrinsics,
elem.as_basic_value_enum(),
intrinsics.i32x4_ty,
&state.var_name(),
);
let res = builder.build_bitcast(res, intrinsics.i128_ty, "");
state.push1(res);
}
Operator::I64x2LoadSplat { ref memarg } => {
let effective_address = resolve_memory_ptr(
builder,
intrinsics,
context,
&function,
&mut state,
&mut ctx,
memarg,
intrinsics.i64_ptr_ty,
8,
)?;
let elem = builder.build_load(effective_address, "").into_int_value();
let res = splat_vector(
builder,
intrinsics,
elem.as_basic_value_enum(),
intrinsics.i64x2_ty,
&state.var_name(),
);
let res = builder.build_bitcast(res, intrinsics.i128_ty, "");
state.push1(res);
}
Operator::MemoryGrow { reserved } => { Operator::MemoryGrow { reserved } => {
let memory_index = MemoryIndex::new(reserved as usize); let memory_index = MemoryIndex::new(reserved as usize);

View File

@ -118,6 +118,7 @@ pub struct Intrinsics {
pub anyfunc_ty: StructType, pub anyfunc_ty: StructType,
pub i1_zero: IntValue, pub i1_zero: IntValue,
pub i8_zero: IntValue,
pub i32_zero: IntValue, pub i32_zero: IntValue,
pub i64_zero: IntValue, pub i64_zero: IntValue,
pub i128_zero: IntValue, pub i128_zero: IntValue,
@ -179,6 +180,7 @@ impl Intrinsics {
let f64_ptr_ty = f64_ty.ptr_type(AddressSpace::Generic); let f64_ptr_ty = f64_ty.ptr_type(AddressSpace::Generic);
let i1_zero = i1_ty.const_int(0, false); let i1_zero = i1_ty.const_int(0, false);
let i8_zero = i8_ty.const_int(0, false);
let i32_zero = i32_ty.const_int(0, false); let i32_zero = i32_ty.const_int(0, false);
let i64_zero = i64_ty.const_int(0, false); let i64_zero = i64_ty.const_int(0, false);
let i128_zero = i128_ty.const_int(0, false); let i128_zero = i128_ty.const_int(0, false);
@ -443,6 +445,7 @@ impl Intrinsics {
anyfunc_ty, anyfunc_ty,
i1_zero, i1_zero,
i8_zero,
i32_zero, i32_zero,
i64_zero, i64_zero,
i128_zero, i128_zero,

View File

@ -14,7 +14,7 @@ wasmer-llvm-backend = { path = "../llvm-backend", version = "0.5.6", optional =
wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.5.6", optional = true } wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.5.6", optional = true }
[dev-dependencies] [dev-dependencies]
wabt = "0.8.0" wabt = { git = "https://github.com/wasmerio/wabt-rs.git", rev = "77081af74fe3ecaa300e3517c9f87233ae8cf95b" }
criterion = "0.2" criterion = "0.2"
[features] [features]

View File

@ -13,7 +13,7 @@ wasmer-runtime-core = { path = "../runtime-core" }
hashbrown = "0.1" hashbrown = "0.1"
failure = "0.1" failure = "0.1"
tar = "0.4" tar = "0.4"
wasmparser = "0.32.1" wasmparser = "0.34.0"
zstd = "0.4" zstd = "0.4"
# [target.'cfg(unix)'.dependencies.zbox] # [target.'cfg(unix)'.dependencies.zbox]

View File

@ -10,7 +10,7 @@ edition = "2018"
[dependencies] [dependencies]
nix = "0.14.0" nix = "0.14.0"
page_size = "0.4.1" page_size = "0.4.1"
wasmparser = "0.32.1" wasmparser = "0.34.0"
parking_lot = "0.7.1" parking_lot = "0.7.1"
lazy_static = "1.2.0" lazy_static = "1.2.0"
indexmap = "1.0.2" indexmap = "1.0.2"

View File

@ -25,7 +25,7 @@ optional = true
[dev-dependencies] [dev-dependencies]
tempfile = "3.0.7" tempfile = "3.0.7"
criterion = "0.2" criterion = "0.2"
wabt = "0.8.0" wabt = { git = "https://github.com/wasmerio/wabt-rs.git", rev = "77081af74fe3ecaa300e3517c9f87233ae8cf95b" }
[target.'cfg(not(windows))'.dependencies.wasmer-llvm-backend] [target.'cfg(not(windows))'.dependencies.wasmer-llvm-backend]
path = "../llvm-backend" path = "../llvm-backend"

View File

@ -9,7 +9,7 @@ edition = "2018"
[dependencies] [dependencies]
wasmer-runtime-core = { path = "../runtime-core", version = "0.5.6" } wasmer-runtime-core = { path = "../runtime-core", version = "0.5.6" }
wasmparser = "0.32.1" wasmparser = "0.34.0"
dynasm = "0.3.2" dynasm = "0.3.2"
dynasmrt = "0.3.1" dynasmrt = "0.3.1"
lazy_static = "1.2.0" lazy_static = "1.2.0"

View File

@ -15,10 +15,10 @@ wasmer-llvm-backend = { path = "../llvm-backend", version = "0.5.6", optional =
wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.5.6", optional = true } wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.5.6", optional = true }
[build-dependencies] [build-dependencies]
wabt = "0.8.0" wabt = { git = "https://github.com/wasmerio/wabt-rs.git", rev = "77081af74fe3ecaa300e3517c9f87233ae8cf95b" }
[dev-dependencies] [dev-dependencies]
wabt = "0.8.0" wabt = { git = "https://github.com/wasmerio/wabt-rs.git", rev = "77081af74fe3ecaa300e3517c9f87233ae8cf95b" }
[features] [features]
default = ["fast-tests"] default = ["fast-tests"]

View File

@ -247,44 +247,44 @@
(func (export "f64x2.replace_lane/1") (param $a v128) (param $b f64) (result v128) (f64x2.replace_lane 1 (local.get $a) (local.get $b))) (func (export "f64x2.replace_lane/1") (param $a v128) (param $b f64) (result v128) (f64x2.replace_lane 1 (local.get $a) (local.get $b)))
) )
;; v8x16.shuffle1 ;; v8x16.swizzle
;;
;;(module
;; (func (export "v8x16.shuffle1") (param $elements v128) (param $indices v128) (result v128) (v8x16.shuffle1 (get_local $elements) (get_local $indices)))
;;)
;;
;;(assert_return
;; (invoke "v8x16.shuffle1"
;; (v128.const i8x16 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115)
;; (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
;; )
;; (v128.const i8x16 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100))
;;
;;(assert_return
;; (invoke "v8x16.shuffle1"
;; (v128.const i8x16 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115)
;; (v128.const i8x16 -1 1 -2 2 -3 3 -4 4 -5 5 -6 6 -7 7 -8 8)
;; )
;; (v128.const i8x16 0 101 0 102 0 103 0 104 0 105 0 106 0 107 0 108))
;;
;;(assert_return
;; (invoke "v8x16.shuffle1"
;; (v128.const i8x16 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115)
;; (v128.const i8x16 9 16 10 17 11 18 12 19 13 20 14 21 15 22 16 23)
;; )
;; (v128.const i8x16 109 0 110 0 111 0 112 0 113 0 114 0 115 0 0 0))
;; v8x16.shuffle2_imm (module
;; (func (export "v8x16.swizzle") (param $elements v128) (param $indices v128) (result v128) (v8x16.swizzle (get_local $elements) (get_local $indices)))
;;(module )
;; (func (export "v8x16.shuffle2_imm/0123456789abcdef") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle2_imm 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (local.get $a) (local.get $b)))
;; (func (export "v8x16.shuffle2_imm/ghijklmnopqrstuv") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle2_imm 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 (local.get $a) (local.get $b))) (assert_return
;; (func (export "v8x16.shuffle2_imm/vutsrqponmlkjihg") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle2_imm 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 (local.get $a) (local.get $b))) (invoke "v8x16.swizzle"
;; (func (export "v8x16.shuffle2_imm/fedcba9876543210") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle2_imm 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 (local.get $a) (local.get $b))) (v128.const i8x16 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115)
;; (func (export "v8x16.shuffle2_imm/0000000000000000") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle2_imm 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (local.get $a) (local.get $b))) (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
;; (func (export "v8x16.shuffle2_imm/gggggggggggggggg") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle2_imm 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 (local.get $a) (local.get $b))) )
;; (func (export "v8x16.shuffle2_imm/00000000gggggggg") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle2_imm 0 0 0 0 0 0 0 0 16 16 16 16 16 16 16 16 (local.get $a) (local.get $b))) (v128.const i8x16 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100))
;;)
(assert_return
(invoke "v8x16.swizzle"
(v128.const i8x16 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115)
(v128.const i8x16 -1 1 -2 2 -3 3 -4 4 -5 5 -6 6 -7 7 -8 8)
)
(v128.const i8x16 0 101 0 102 0 103 0 104 0 105 0 106 0 107 0 108))
(assert_return
(invoke "v8x16.swizzle"
(v128.const i8x16 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115)
(v128.const i8x16 9 16 10 17 11 18 12 19 13 20 14 21 15 22 16 23)
)
(v128.const i8x16 109 0 110 0 111 0 112 0 113 0 114 0 115 0 0 0))
;; v8x16.shuffle
(module
(func (export "v8x16.shuffle/0123456789abcdef") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (local.get $a) (local.get $b)))
(func (export "v8x16.shuffle/ghijklmnopqrstuv") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 (local.get $a) (local.get $b)))
(func (export "v8x16.shuffle/vutsrqponmlkjihg") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 (local.get $a) (local.get $b)))
(func (export "v8x16.shuffle/fedcba9876543210") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 (local.get $a) (local.get $b)))
(func (export "v8x16.shuffle/0000000000000000") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (local.get $a) (local.get $b)))
(func (export "v8x16.shuffle/gggggggggggggggg") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 (local.get $a) (local.get $b)))
(func (export "v8x16.shuffle/00000000gggggggg") (param $a v128) (param $b v128) (result v128) (v8x16.shuffle 0 0 0 0 0 0 0 0 16 16 16 16 16 16 16 16 (local.get $a) (local.get $b)))
)
;; i*.add ;; i*.add