diff --git a/Cargo.toml b/Cargo.toml index 9a604c68c9..3b5e10417b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,10 +11,10 @@ edition = "2018" default-run = "wasmtime" [dependencies] -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } -cranelift-native = "0.41.0" +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } +cranelift-native = "0.43.1" wasmtime-api = { path = "wasmtime-api" } wasmtime-debug = { path = "wasmtime-debug" } wasmtime-environ = { path = "wasmtime-environ" } @@ -28,9 +28,9 @@ wasmtime-wasi-c = { path = "wasmtime-wasi-c", optional = true } wasi-common = { git = "https://github.com/CraneStation/wasi-common", rev = "8ea7a983d8b1364e5f62d2adf0e74b3b8db1c9b3"} docopt = "1.0.1" serde = { "version" = "1.0.94", features = ["derive"] } -faerie = "0.10.1" +faerie = "0.11.0" failure = "0.1" -target-lexicon = { version = "0.4.0", default-features = false } +target-lexicon = { version = "0.8.1", default-features = false } pretty_env_logger = "0.3.0" file-per-thread-logger = "0.1.1" wabt = "0.9" @@ -54,3 +54,6 @@ members = [ default = ["cranelift-codegen/all-arch"] lightbeam = ["wasmtime-environ/lightbeam", "wasmtime-jit/lightbeam"] wasi-c = ["wasmtime-wasi-c"] + +# [patch.crates-io] +# cranelift-wasm = { path = "../cranelift/cranelift-wasm" } diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index cd8d4c4ac4..43697ee7d7 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -11,9 +11,9 @@ cargo-fuzz = true [dependencies] wasmtime-environ = { path = "../wasmtime-environ" } wasmtime-jit = { path = "../wasmtime-jit" } -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } -cranelift-native = "0.41.0" +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } +cranelift-native = "0.43.1" libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git" } wasmparser = { version = "0.36.0", default-features = false } binaryen = "0.5.0" diff --git a/fuzz/fuzz_targets/instantiate.rs b/fuzz/fuzz_targets/instantiate.rs old mode 100644 new mode 100755 index bee084b35d..41a2539163 --- a/fuzz/fuzz_targets/instantiate.rs +++ b/fuzz/fuzz_targets/instantiate.rs @@ -23,5 +23,12 @@ fuzz_target!(|data: &[u8]| { let isa = isa_builder.finish(settings::Flags::new(flag_builder)); let mut compiler = Compiler::new(isa); let mut imports_resolver = NullResolver {}; - let _instance = instantiate(&mut compiler, data, &mut imports_resolver).unwrap(); + let _instance = instantiate( + &mut compiler, + data, + &mut imports_resolver, + Default::default(), + true, + ) + .unwrap(); }); diff --git a/fuzz/fuzz_targets/instantiate_translated.rs b/fuzz/fuzz_targets/instantiate_translated.rs old mode 100644 new mode 100755 index 9d452259fd..af6dfdd460 --- a/fuzz/fuzz_targets/instantiate_translated.rs +++ b/fuzz/fuzz_targets/instantiate_translated.rs @@ -21,5 +21,12 @@ fuzz_target!(|data: &[u8]| { let isa = isa_builder.finish(settings::Flags::new(flag_builder)); let mut compiler = Compiler::new(isa); let mut imports_resolver = NullResolver {}; - let _instance = instantiate(&mut compiler, &wasm, &mut imports_resolver).unwrap(); + let _instance = instantiate( + &mut compiler, + &wasm, + &mut imports_resolver, + Default::default(), + true, + ) + .unwrap(); }); diff --git a/misc/wasmtime-py/Cargo.toml b/misc/wasmtime-py/Cargo.toml index 844a9baee7..d90661e5ba 100644 --- a/misc/wasmtime-py/Cargo.toml +++ b/misc/wasmtime-py/Cargo.toml @@ -12,16 +12,16 @@ name = "_wasmtime" crate-type = ["cdylib"] [dependencies] -cranelift-codegen = "0.41.0" -cranelift-native = "0.41.0" -cranelift-entity = "0.41.0" -cranelift-wasm = "0.41.0" -cranelift-frontend = "0.41.0" +cranelift-codegen = "0.43.1" +cranelift-native = "0.43.1" +cranelift-entity = "0.43.1" +cranelift-wasm = "0.43.1" +cranelift-frontend = "0.43.1" wasmtime-environ = { path = "../../wasmtime-environ" } wasmtime-interface-types = { path = "../../wasmtime-interface-types" } wasmtime-jit = { path = "../../wasmtime-jit" } wasmtime-runtime = { path = "../../wasmtime-runtime" } -target-lexicon = { version = "0.4.0", default-features = false } +target-lexicon = { version = "0.8.1", default-features = false } failure = "0.1" region = "2.0.0" wasmparser = "0.38.0" diff --git a/misc/wasmtime-rust/Cargo.toml b/misc/wasmtime-rust/Cargo.toml index 0c7b675d30..6bea1d0b46 100644 --- a/misc/wasmtime-rust/Cargo.toml +++ b/misc/wasmtime-rust/Cargo.toml @@ -12,8 +12,8 @@ test = false doctest = false [dependencies] -cranelift-codegen = "0.41.0" -cranelift-native = "0.41.0" +cranelift-codegen = "0.43.1" +cranelift-native = "0.43.1" failure = "0.1.5" wasmtime-interface-types = { path = "../../wasmtime-interface-types" } wasmtime-jit = { path = "../../wasmtime-jit" } diff --git a/wasmtime-api/Cargo.toml b/wasmtime-api/Cargo.toml index 21a51f59c8..70ad083d16 100644 --- a/wasmtime-api/Cargo.toml +++ b/wasmtime-api/Cargo.toml @@ -12,18 +12,18 @@ name = "wasmtime_api" crate-type = ["lib", "staticlib", "cdylib"] [dependencies] -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-native = "0.41.0" -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } -cranelift-frontend = "0.41.0" +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-native = "0.43.1" +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } +cranelift-frontend = "0.43.1" wasmtime-runtime = { path="../wasmtime-runtime" } wasmtime-environ = { path="../wasmtime-environ" } wasmtime-jit = { path="../wasmtime-jit" } wasmparser = "0.36" failure = { version = "0.1.3", default-features = false } failure_derive = { version = "0.1.3", default-features = false } -target-lexicon = { version = "0.4.0", default-features = false } +target-lexicon = { version = "0.8.1", default-features = false } region = "2.0.0" [features] diff --git a/wasmtime-debug/Cargo.toml b/wasmtime-debug/Cargo.toml index 599418f681..acd59569ef 100644 --- a/wasmtime-debug/Cargo.toml +++ b/wasmtime-debug/Cargo.toml @@ -14,12 +14,12 @@ edition = "2018" [dependencies] gimli = "0.19.0" wasmparser = { version = "0.36.0" } -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } -faerie = "0.10.1" +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } +faerie = "0.11.0" wasmtime-environ = { path = "../wasmtime-environ", default-features = false } -target-lexicon = { version = "0.4.0", default-features = false } +target-lexicon = { version = "0.8.1", default-features = false } failure = { version = "0.1.3", default-features = false } failure_derive = { version = "0.1.3", default-features = false } diff --git a/wasmtime-environ/Cargo.toml b/wasmtime-environ/Cargo.toml index b43d915a3f..1ae75ed2b0 100644 --- a/wasmtime-environ/Cargo.toml +++ b/wasmtime-environ/Cargo.toml @@ -12,9 +12,9 @@ readme = "README.md" edition = "2018" [dependencies] -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } lightbeam = { path = "../lightbeam", optional = true } failure = { version = "0.1.3", default-features = false } failure_derive = { version = "0.1.3", default-features = false } @@ -41,10 +41,10 @@ errno = "0.2.4" [dev-dependencies] tempfile = "3" -target-lexicon = { version = "0.4.0", default-features = false } +target-lexicon = { version = "0.8.1", default-features = false } pretty_env_logger = "0.3.0" rand = { version = "0.7.0", features = ["small_rng"] } -cranelift-codegen = { version = "0.41.0", features = ["enable-serde", "all-arch"] } +cranelift-codegen = { version = "0.43.1", features = ["enable-serde", "all-arch"] } [features] default = ["std"] diff --git a/wasmtime-interface-types/Cargo.toml b/wasmtime-interface-types/Cargo.toml index 0017bd6a73..559edbaff9 100644 --- a/wasmtime-interface-types/Cargo.toml +++ b/wasmtime-interface-types/Cargo.toml @@ -11,7 +11,7 @@ readme = "README.md" edition = "2018" [dependencies] -cranelift-codegen = "0.41.0" +cranelift-codegen = "0.43.1" failure = "0.1" walrus = "0.11.0" wasmparser = "0.36.0" diff --git a/wasmtime-jit/Cargo.toml b/wasmtime-jit/Cargo.toml index d69b6c9932..f001c06bed 100644 --- a/wasmtime-jit/Cargo.toml +++ b/wasmtime-jit/Cargo.toml @@ -11,17 +11,17 @@ readme = "README.md" edition = "2018" [dependencies] -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } -cranelift-frontend = "0.41.0" +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } +cranelift-frontend = "0.43.1" wasmtime-environ = { path = "../wasmtime-environ", default-features = false } wasmtime-runtime = { path = "../wasmtime-runtime", default-features = false } wasmtime-debug = { path = "../wasmtime-debug", default-features = false } region = "2.0.0" failure = { version = "0.1.3", default-features = false } failure_derive = { version = "0.1.3", default-features = false } -target-lexicon = { version = "0.4.0", default-features = false } +target-lexicon = { version = "0.8.1", default-features = false } hashbrown = { version = "0.6.0", optional = true } wasmparser = "0.36.0" diff --git a/wasmtime-obj/Cargo.toml b/wasmtime-obj/Cargo.toml index 702109247e..458232b519 100644 --- a/wasmtime-obj/Cargo.toml +++ b/wasmtime-obj/Cargo.toml @@ -11,8 +11,8 @@ readme = "README.md" edition = "2018" [dependencies] -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } wasmtime-environ = { path = "../wasmtime-environ" } -faerie = "0.10.1" +faerie = "0.11.0" diff --git a/wasmtime-runtime/Cargo.toml b/wasmtime-runtime/Cargo.toml index ae5898747e..f8bf9c9de3 100644 --- a/wasmtime-runtime/Cargo.toml +++ b/wasmtime-runtime/Cargo.toml @@ -11,9 +11,9 @@ readme = "README.md" edition = "2018" [dependencies] -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } wasmtime-environ = { path = "../wasmtime-environ", default-features = false } region = "2.0.0" lazy_static = "1.2.0" diff --git a/wasmtime-runtime/src/instance.rs b/wasmtime-runtime/src/instance.rs index c6c92590b3..603851ac9c 100644 --- a/wasmtime-runtime/src/instance.rs +++ b/wasmtime-runtime/src/instance.rs @@ -1260,6 +1260,7 @@ fn initialize_globals(instance: &mut Instance) { GlobalInit::I64Const(x) => *unsafe { (*to).as_i64_mut() } = x, GlobalInit::F32Const(x) => *unsafe { (*to).as_f32_bits_mut() } = x, GlobalInit::F64Const(x) => *unsafe { (*to).as_f64_bits_mut() } = x, + GlobalInit::V128Const(x) => *unsafe { (*to).as_u128_bits_mut() } = x.0, GlobalInit::GetGlobal(x) => { let from = if let Some(def_x) = module.defined_global_index(x) { instance.global_mut(def_x) diff --git a/wasmtime-runtime/src/vmcontext.rs b/wasmtime-runtime/src/vmcontext.rs index 1f7721a47b..74d79f72d2 100644 --- a/wasmtime-runtime/src/vmcontext.rs +++ b/wasmtime-runtime/src/vmcontext.rs @@ -382,6 +382,30 @@ impl VMGlobalDefinition { pub unsafe fn as_f64_bits_mut(&mut self) -> &mut u64 { &mut *(self.storage.as_mut().as_mut_ptr() as *mut u64) } + + /// Return a reference to the value as an u128. + #[allow(clippy::cast_ptr_alignment)] + pub unsafe fn as_u128(&self) -> &u128 { + &*(self.storage.as_ref().as_ptr() as *const u128) + } + + /// Return a mutable reference to the value as an u128. + #[allow(clippy::cast_ptr_alignment)] + pub unsafe fn as_u128_mut(&mut self) -> &mut u128 { + &mut *(self.storage.as_mut().as_mut_ptr() as *mut u128) + } + + /// Return a reference to the value as u128 bits. + #[allow(clippy::cast_ptr_alignment)] + pub unsafe fn as_u128_bits(&self) -> &[u8; 16] { + &*(self.storage.as_ref().as_ptr() as *const [u8; 16]) + } + + /// Return a mutable reference to the value as u128 bits. + #[allow(clippy::cast_ptr_alignment)] + pub unsafe fn as_u128_bits_mut(&mut self) -> &mut [u8; 16] { + &mut *(self.storage.as_mut().as_mut_ptr() as *mut [u8; 16]) + } } /// An index into the shared signature registry, usable for checking signatures diff --git a/wasmtime-wasi-c/Cargo.toml b/wasmtime-wasi-c/Cargo.toml index 8f6d92f62c..ffc8566bc8 100644 --- a/wasmtime-wasi-c/Cargo.toml +++ b/wasmtime-wasi-c/Cargo.toml @@ -12,10 +12,10 @@ readme = "README.md" wasmtime-runtime = { path = "../wasmtime-runtime" } wasmtime-environ = { path = "../wasmtime-environ" } wasmtime-jit = { path = "../wasmtime-jit" } -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } -target-lexicon = "0.4.0" +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } +target-lexicon = "0.8.1" log = { version = "0.4.8", default-features = false } libc = "0.2.60" diff --git a/wasmtime-wasi/Cargo.toml b/wasmtime-wasi/Cargo.toml index 420eee6be1..0fca505d38 100644 --- a/wasmtime-wasi/Cargo.toml +++ b/wasmtime-wasi/Cargo.toml @@ -14,10 +14,10 @@ wasmtime-runtime = { path = "../wasmtime-runtime" } wasmtime-environ = { path = "../wasmtime-environ" } wasmtime-jit = { path = "../wasmtime-jit" } wasi-common = { git = "https://github.com/CraneStation/wasi-common", rev = "8ea7a983d8b1364e5f62d2adf0e74b3b8db1c9b3"} -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } -target-lexicon = "0.4.0" +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } +target-lexicon = "0.8.1" log = { version = "0.4.8", default-features = false } [badges] diff --git a/wasmtime-wast/Cargo.toml b/wasmtime-wast/Cargo.toml index 2939c77c6c..80e9040916 100644 --- a/wasmtime-wast/Cargo.toml +++ b/wasmtime-wast/Cargo.toml @@ -11,14 +11,14 @@ readme = "README.md" edition = "2018" [dependencies] -cranelift-codegen = { version = "0.41.0", features = ["enable-serde"] } -cranelift-entity = { version = "0.41.0", features = ["enable-serde"] } -cranelift-wasm = { version = "0.41.0", features = ["enable-serde"] } +cranelift-codegen = { version = "0.43.1", features = ["enable-serde"] } +cranelift-entity = { version = "0.43.1", features = ["enable-serde"] } +cranelift-wasm = { version = "0.43.1", features = ["enable-serde"] } wasmtime-jit = { path = "../wasmtime-jit" } wasmtime-runtime = { path = "../wasmtime-runtime" } wasmtime-environ = { path = "../wasmtime-environ" } wabt = "0.9.1" -target-lexicon = "0.4.0" +target-lexicon = "0.8.1" failure = { version = "0.1.3", default-features = false } failure_derive = { version = "0.1.3", default-features = false }