diff --git a/.cargo/config.in b/.cargo/config.in index 5c7dece85faf..8790ba6aee17 100644 --- a/.cargo/config.in +++ b/.cargo/config.in @@ -24,7 +24,7 @@ replace-with = "vendored-sources" [source."https://github.com/CraneStation/Cranelift"] git = "https://github.com/CraneStation/Cranelift" -rev = "e455f6ae0f3577ceb210c0ce167181c33c133a69" +rev = "312516a69da03dc06eace32f61412389a8dcadf3" replace-with = "vendored-sources" [source.vendored-sources] diff --git a/Cargo.lock b/Cargo.lock index 9bdcd9ffdde4..72c5412801a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -197,8 +197,8 @@ name = "baldrdash" version = "0.1.0" dependencies = [ "bindgen 0.49.3 (registry+https://github.com/rust-lang/crates.io-index)", - "cranelift-codegen 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", - "cranelift-wasm 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", + "cranelift-codegen 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", + "cranelift-wasm 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", "env_logger 0.5.6 (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)", @@ -612,20 +612,20 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.30.0" -source = "git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69#e455f6ae0f3577ceb210c0ce167181c33c133a69" +version = "0.32.0" +source = "git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3#312516a69da03dc06eace32f61412389a8dcadf3" dependencies = [ - "cranelift-entity 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", + "cranelift-entity 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", ] [[package]] name = "cranelift-codegen" -version = "0.30.0" -source = "git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69#e455f6ae0f3577ceb210c0ce167181c33c133a69" +version = "0.32.0" +source = "git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3#312516a69da03dc06eace32f61412389a8dcadf3" dependencies = [ - "cranelift-bforest 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", - "cranelift-codegen-meta 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", - "cranelift-entity 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", + "cranelift-bforest 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", + "cranelift-codegen-meta 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", + "cranelift-entity 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -634,39 +634,39 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.30.0" -source = "git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69#e455f6ae0f3577ceb210c0ce167181c33c133a69" +version = "0.32.0" +source = "git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3#312516a69da03dc06eace32f61412389a8dcadf3" dependencies = [ - "cranelift-entity 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", + "cranelift-entity 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", ] [[package]] name = "cranelift-entity" -version = "0.30.0" -source = "git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69#e455f6ae0f3577ceb210c0ce167181c33c133a69" +version = "0.32.0" +source = "git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3#312516a69da03dc06eace32f61412389a8dcadf3" [[package]] name = "cranelift-frontend" -version = "0.30.0" -source = "git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69#e455f6ae0f3577ceb210c0ce167181c33c133a69" +version = "0.32.0" +source = "git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3#312516a69da03dc06eace32f61412389a8dcadf3" dependencies = [ - "cranelift-codegen 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", + "cranelift-codegen 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", "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 = "cranelift-wasm" -version = "0.30.0" -source = "git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69#e455f6ae0f3577ceb210c0ce167181c33c133a69" +version = "0.32.0" +source = "git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3#312516a69da03dc06eace32f61412389a8dcadf3" dependencies = [ - "cranelift-codegen 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", - "cranelift-entity 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", - "cranelift-frontend 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)", + "cranelift-codegen 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", + "cranelift-entity 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", + "cranelift-frontend 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)", "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "wasmparser 0.31.1 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmparser 0.32.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3540,7 +3540,7 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.31.1" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -3887,12 +3887,12 @@ dependencies = [ "checksum core-text 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f3f46450d6f2397261af420b4ccce23807add2e45fa206410a03d66fb7f050ae" "checksum cose 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "72fa26cb151d3ae4b70f63d67d0fed57ce04220feafafbae7f503bef7aae590d" "checksum cose-c 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "49726015ab0ca765144fcca61e4a7a543a16b795a777fa53f554da2fffff9a94" -"checksum cranelift-bforest 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)" = "" -"checksum cranelift-codegen 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)" = "" -"checksum cranelift-codegen-meta 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)" = "" -"checksum cranelift-entity 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)" = "" -"checksum cranelift-frontend 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)" = "" -"checksum cranelift-wasm 0.30.0 (git+https://github.com/CraneStation/Cranelift?rev=e455f6ae0f3577ceb210c0ce167181c33c133a69)" = "" +"checksum cranelift-bforest 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)" = "" +"checksum cranelift-codegen 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)" = "" +"checksum cranelift-codegen-meta 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)" = "" +"checksum cranelift-entity 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)" = "" +"checksum cranelift-frontend 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)" = "" +"checksum cranelift-wasm 0.32.0 (git+https://github.com/CraneStation/Cranelift?rev=312516a69da03dc06eace32f61412389a8dcadf3)" = "" "checksum crc 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bd5d02c0aac6bd68393ed69e00bbc2457f3e89075c6349db7189618dc4ddc1d7" "checksum crossbeam-channel 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8d4f5844607ce8da3fff431e7dba56cda8bfcc570aa50bee36adba8a32b8cad7" "checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" @@ -4158,7 +4158,7 @@ dependencies = [ "checksum walkdir 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "63636bd0eb3d00ccb8b9036381b526efac53caf112b7783b730ab3f8e44da369" "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" "checksum warp 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "8f0a120bf7041d4381a5429c4e6d12633bfb874c968a78ec3a3563e9ca6e12d6" -"checksum wasmparser 0.31.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8a6f324afc05fd8282bbc49dae854a1c20f74aeff10a575b5a43453d1864db97" +"checksum wasmparser 0.32.1 (registry+https://github.com/rust-lang/crates.io-index)" = "22d1801de30f112ddaf665291097694ee33a36d1cb414b53a921d05b3519674a" "checksum weedle 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "26a4c67f132386d965390b8a734d5d10adbcd30eb5cc74bd9229af8b83f10044" "checksum which 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4be6cfa54dab45266e98b5d7be2f8ce959ddd49abd141a05d52dce4b07f803bb" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" diff --git a/Cargo.toml b/Cargo.toml index 5eaa1b071bf7..0371d3aa312f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,8 +64,8 @@ packed_simd = { git = "https://github.com/hsivonen/packed_simd", branch = "rust_ [patch.crates-io.cranelift-codegen] git = "https://github.com/CraneStation/Cranelift" -rev = "e455f6ae0f3577ceb210c0ce167181c33c133a69" +rev = "312516a69da03dc06eace32f61412389a8dcadf3" [patch.crates-io.cranelift-wasm] git = "https://github.com/CraneStation/Cranelift" -rev = "e455f6ae0f3577ceb210c0ce167181c33c133a69" +rev = "312516a69da03dc06eace32f61412389a8dcadf3" diff --git a/js/src/wasm/cranelift/Cargo.toml b/js/src/wasm/cranelift/Cargo.toml index 677385bcb396..bb9d4243a965 100644 --- a/js/src/wasm/cranelift/Cargo.toml +++ b/js/src/wasm/cranelift/Cargo.toml @@ -16,8 +16,8 @@ name = "baldrdash" # dependencies (codegen and wasm). # - $TOP_LEVEL/.cargo/config.in, look for the revision (rev) field of the # Cranelift source. -cranelift-codegen = { version = "0.30", default-features = false } -cranelift-wasm = "0.30" +cranelift-codegen = { version = "0.32", default-features = false } +cranelift-wasm = "0.32" target-lexicon = "0.4.0" log = { version = "0.4.6", default-features = false, features = ["release_max_level_info"] } env_logger = "0.5.6" diff --git a/third_party/rust/cranelift-bforest/.cargo-checksum.json b/third_party/rust/cranelift-bforest/.cargo-checksum.json index a72b28224321..44c4865e2ccc 100644 --- a/third_party/rust/cranelift-bforest/.cargo-checksum.json +++ b/third_party/rust/cranelift-bforest/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"4fb2be5a108736ec2eeb257fd9c90d7e4384321e34eaef0fc7c5517a8e096650","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"af367c67340fa7f6fb9a35b0aa637dcf303957f7ae7427a5f4f6356801c8bb04","src/lib.rs":"1b23abbfe5850a4cd77ae6ae5dcfc2f678ef36b4032fd7496f2b333c51e63301","src/map.rs":"5d891d62814941e19dfc88ff36538efa3da5479f3f97de8219a6f610c9a1ee32","src/node.rs":"e620c64e78488035f11723b14892c7986c06ad37dc5b115a35a453ff1ae66ca3","src/path.rs":"a86ee1c882c173e8af96fd53a416a0fb485dd3f045ac590ef313a9d9ecf90f56","src/pool.rs":"6090f8c0e0da16ebee0e31bca66392d0075b3aff529d30d4e716fa20cd0aef99","src/set.rs":"b411158f813a310c7a6c337d4ada3bf0a021088c443875dc25233415dcbe0633"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"1bd727aa095825902dcacc15d67f21693eea560cf57a13eb3de7d458e4ec047f","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"af367c67340fa7f6fb9a35b0aa637dcf303957f7ae7427a5f4f6356801c8bb04","src/lib.rs":"1b23abbfe5850a4cd77ae6ae5dcfc2f678ef36b4032fd7496f2b333c51e63301","src/map.rs":"5d891d62814941e19dfc88ff36538efa3da5479f3f97de8219a6f610c9a1ee32","src/node.rs":"e620c64e78488035f11723b14892c7986c06ad37dc5b115a35a453ff1ae66ca3","src/path.rs":"a86ee1c882c173e8af96fd53a416a0fb485dd3f045ac590ef313a9d9ecf90f56","src/pool.rs":"6090f8c0e0da16ebee0e31bca66392d0075b3aff529d30d4e716fa20cd0aef99","src/set.rs":"b411158f813a310c7a6c337d4ada3bf0a021088c443875dc25233415dcbe0633"},"package":null} \ No newline at end of file diff --git a/third_party/rust/cranelift-bforest/Cargo.toml b/third_party/rust/cranelift-bforest/Cargo.toml index d5bd3565e409..3672a97827de 100644 --- a/third_party/rust/cranelift-bforest/Cargo.toml +++ b/third_party/rust/cranelift-bforest/Cargo.toml @@ -1,7 +1,7 @@ [package] authors = ["The Cranelift Project Developers"] name = "cranelift-bforest" -version = "0.30.0" +version = "0.32.0" description = "A forest of B+-trees" license = "Apache-2.0 WITH LLVM-exception" documentation = "https://cranelift.readthedocs.io/" @@ -12,7 +12,7 @@ keywords = ["btree", "forest", "set", "map"] edition = "2018" [dependencies] -cranelift-entity = { path = "../cranelift-entity", version = "0.30.0", default-features = false } +cranelift-entity = { path = "../cranelift-entity", version = "0.32.0", default-features = false } [features] default = ["std"] diff --git a/third_party/rust/cranelift-codegen-meta/.cargo-checksum.json b/third_party/rust/cranelift-codegen-meta/.cargo-checksum.json index 36e479f8ab43..d0800442dc2d 100644 --- a/third_party/rust/cranelift-codegen-meta/.cargo-checksum.json +++ b/third_party/rust/cranelift-codegen-meta/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"253c80832ab598570d604ae8a8108ea9835b8eef8d9b9645408ed025ce3b574a","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"b123f056d0d458396679c5f7f2a16d2762af0258fcda4ac14b6655a95e5a0022","src/cdsl/ast.rs":"170f0526c73e4ebdd22cf25290607b6610e9e3fe0b1d79ee38962085f878d2e4","src/cdsl/cpu_modes.rs":"57c40621115a58faa7af1c729ecaf8cda01c2b143008bde6d8c70885e7c3fd75","src/cdsl/formats.rs":"8eaee84c9c574e7a2ab73b4bf63b97c1cea3ffce0a477f1701e75a7a523ada57","src/cdsl/instructions.rs":"dd734b1ff0750ec09a06e5746338f479ae97eb122dc64dba37b656ab5ae79ebd","src/cdsl/isa.rs":"569bf078c68c800fbd36fde1b52e0371747f6249252655e2dc4715d4e975be40","src/cdsl/mod.rs":"86149f101e1b00a9623028dcd779ad66b6a67f0f67b423c5ac88cd96dabdd227","src/cdsl/operands.rs":"1cda258798d861c4f467783b5c70c1202a57f554861017eead6477af2ee34063","src/cdsl/regs.rs":"049d299c63a757aad7adb7945b3919bd62c9204348a4f8b9727ca84fecbf3115","src/cdsl/settings.rs":"b6b1653b486fb4b86aaab59328a959cf784cb4b61b3216fe7acebe0490849642","src/cdsl/type_inference.rs":"2771631701c150e077c5dcf705c8ae8705944d86ab945ae9e7adc82f3ca5447a","src/cdsl/types.rs":"4cc1f20eb8383fdee6a9e7ca0f7758e563a4fb715056b5edbd4db72f8dfd471b","src/cdsl/typevar.rs":"7249fcd7c3cd3645e8489c73595bd5327bedc499bd7bc87f2a68e241fba329c3","src/cdsl/xform.rs":"005bd2fca7f8b737c605a75a0f44f2d70f0138e67f3013343ced81f639dce8bb","src/constant_hash.rs":"b8acd3f8712a4999819d9d9beced2938d9940a5748ba016c182f1132d97eefab","src/error.rs":"5110a4e3c1e97396ba02d9f5abbb8af4b586f0cc4d33a5c2473f1718cc4bef05","src/gen_inst.rs":"94e71181683f022fdcc55abf487a20be5d4dd51fe3092345b6bc4e2bde04441b","src/gen_legalizer.rs":"368ea72fe2d253f7d4d7548ae449fde875781e43ce0ecb9a604765595e387cc2","src/gen_registers.rs":"a544a2b91fafe08639e39e50bea0892fda89fe2f6eaf111b2d5f3e98e4d07b86","src/gen_settings.rs":"4469bf496f9539835fce3cd9743ac0fbc270b3029b0e6c949f406e790685199c","src/gen_types.rs":"3935da6c6a53f9332e06f74bc3a46270656b4d4231ad28ed2648d7b1d2774e90","src/isa/arm32/mod.rs":"54e88d89644c5cee61cdc8315f1d77b01c232dc322c52f6e244cef9e7688a3ad","src/isa/arm64/mod.rs":"c5169b92c1bcb562649a48b7880033f542c9affa73274d23b3817e4ac83942fe","src/isa/mod.rs":"fce60d19dd3c099ebee3ac5ae64a2bee363f13da9ff5a4960d3c1a0bee71d29a","src/isa/riscv/mod.rs":"2da05e3974ef0b72431c9fdda14314890f72500b94def1d74cdf5e74bd950bc0","src/isa/x86/instructions.rs":"ad88f311fd51f341f7dfe395f98d8805ea55e1c86d1a89272ed999f5ae8dc3f0","src/isa/x86/legalize.rs":"251af731b2514fead08e27e812ca44dc674a41bd4a9637d9d919259497961961","src/isa/x86/mod.rs":"14715e552eedfeae1693a416bb82bda2156b31cd4b306e07530a3c1acdc17125","src/isa/x86/registers.rs":"c0bc60336a8c8b7b4db92dc623e9419a60af14dd6252f0b19e227e46f7166178","src/isa/x86/settings.rs":"1a74b3d1ef5e99e0b7c75528b9fd5afbb3394979615b005b43b72108757a9886","src/lib.rs":"8c9364c6fce73c158abfb7c88ecff01dc608a05c250e89df9bec3082773cde6d","src/shared/entities.rs":"80b8ff57a09c7b2f9dab755abbcc2738317de474776fe1de0d2a581310aa9af8","src/shared/formats.rs":"20908b1048c5e71a185de6b6ded79cdff2c26ddb38ba7b134b7a27f37e8324f3","src/shared/immediates.rs":"804c4c9ffa2fe55d90279ee158aaa6bd6c7f0c604d63d7457a98e82269cec9a7","src/shared/instructions.rs":"85f74df59fb0564613055df2173699e61d9e711fb481015635de47c5286690fd","src/shared/legalize.rs":"e3ed83c004afd088bedad0db6664983bfc15149fb99d7d28dea535b2ff48d761","src/shared/mod.rs":"6e30631fe2ba19d819330ea14d29cce4910b435f030e706be2fc94af23b88d71","src/shared/settings.rs":"42c2c5b6f5fdef090c35760c5920d5013afe4ddc472ee9cc37eb6d8ddaae2906","src/shared/types.rs":"158d73840185e6aa8385463bbf6568efdda0c8de8284cf6b4e565f425ec5d921","src/srcgen.rs":"79fee2f603b33f76f7c9c8b9452c745a363d732c40c0814d84001ff3ef805677","src/unique_table.rs":"90b7203b29241a1ede70f0a3e50d96799e0b41d8f7455170d6ffb127f87f3cc3"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"b5dee75ce6c2fc2f678809ee361b2dde077697f0e22b664a937aa1132de9e4c4","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"b123f056d0d458396679c5f7f2a16d2762af0258fcda4ac14b6655a95e5a0022","src/cdsl/ast.rs":"170f0526c73e4ebdd22cf25290607b6610e9e3fe0b1d79ee38962085f878d2e4","src/cdsl/cpu_modes.rs":"57c40621115a58faa7af1c729ecaf8cda01c2b143008bde6d8c70885e7c3fd75","src/cdsl/formats.rs":"8eaee84c9c574e7a2ab73b4bf63b97c1cea3ffce0a477f1701e75a7a523ada57","src/cdsl/instructions.rs":"dd734b1ff0750ec09a06e5746338f479ae97eb122dc64dba37b656ab5ae79ebd","src/cdsl/isa.rs":"569bf078c68c800fbd36fde1b52e0371747f6249252655e2dc4715d4e975be40","src/cdsl/mod.rs":"86149f101e1b00a9623028dcd779ad66b6a67f0f67b423c5ac88cd96dabdd227","src/cdsl/operands.rs":"1cda258798d861c4f467783b5c70c1202a57f554861017eead6477af2ee34063","src/cdsl/regs.rs":"049d299c63a757aad7adb7945b3919bd62c9204348a4f8b9727ca84fecbf3115","src/cdsl/settings.rs":"b6b1653b486fb4b86aaab59328a959cf784cb4b61b3216fe7acebe0490849642","src/cdsl/type_inference.rs":"2771631701c150e077c5dcf705c8ae8705944d86ab945ae9e7adc82f3ca5447a","src/cdsl/types.rs":"4cc1f20eb8383fdee6a9e7ca0f7758e563a4fb715056b5edbd4db72f8dfd471b","src/cdsl/typevar.rs":"7249fcd7c3cd3645e8489c73595bd5327bedc499bd7bc87f2a68e241fba329c3","src/cdsl/xform.rs":"005bd2fca7f8b737c605a75a0f44f2d70f0138e67f3013343ced81f639dce8bb","src/constant_hash.rs":"b8acd3f8712a4999819d9d9beced2938d9940a5748ba016c182f1132d97eefab","src/error.rs":"5110a4e3c1e97396ba02d9f5abbb8af4b586f0cc4d33a5c2473f1718cc4bef05","src/gen_inst.rs":"94e71181683f022fdcc55abf487a20be5d4dd51fe3092345b6bc4e2bde04441b","src/gen_legalizer.rs":"368ea72fe2d253f7d4d7548ae449fde875781e43ce0ecb9a604765595e387cc2","src/gen_registers.rs":"a544a2b91fafe08639e39e50bea0892fda89fe2f6eaf111b2d5f3e98e4d07b86","src/gen_settings.rs":"4469bf496f9539835fce3cd9743ac0fbc270b3029b0e6c949f406e790685199c","src/gen_types.rs":"3935da6c6a53f9332e06f74bc3a46270656b4d4231ad28ed2648d7b1d2774e90","src/isa/arm32/mod.rs":"54e88d89644c5cee61cdc8315f1d77b01c232dc322c52f6e244cef9e7688a3ad","src/isa/arm64/mod.rs":"c5169b92c1bcb562649a48b7880033f542c9affa73274d23b3817e4ac83942fe","src/isa/mod.rs":"fce60d19dd3c099ebee3ac5ae64a2bee363f13da9ff5a4960d3c1a0bee71d29a","src/isa/riscv/mod.rs":"2da05e3974ef0b72431c9fdda14314890f72500b94def1d74cdf5e74bd950bc0","src/isa/x86/instructions.rs":"ad88f311fd51f341f7dfe395f98d8805ea55e1c86d1a89272ed999f5ae8dc3f0","src/isa/x86/legalize.rs":"251af731b2514fead08e27e812ca44dc674a41bd4a9637d9d919259497961961","src/isa/x86/mod.rs":"14715e552eedfeae1693a416bb82bda2156b31cd4b306e07530a3c1acdc17125","src/isa/x86/registers.rs":"c0bc60336a8c8b7b4db92dc623e9419a60af14dd6252f0b19e227e46f7166178","src/isa/x86/settings.rs":"1a74b3d1ef5e99e0b7c75528b9fd5afbb3394979615b005b43b72108757a9886","src/lib.rs":"8c9364c6fce73c158abfb7c88ecff01dc608a05c250e89df9bec3082773cde6d","src/shared/entities.rs":"80b8ff57a09c7b2f9dab755abbcc2738317de474776fe1de0d2a581310aa9af8","src/shared/formats.rs":"20908b1048c5e71a185de6b6ded79cdff2c26ddb38ba7b134b7a27f37e8324f3","src/shared/immediates.rs":"804c4c9ffa2fe55d90279ee158aaa6bd6c7f0c604d63d7457a98e82269cec9a7","src/shared/instructions.rs":"85f74df59fb0564613055df2173699e61d9e711fb481015635de47c5286690fd","src/shared/legalize.rs":"e3ed83c004afd088bedad0db6664983bfc15149fb99d7d28dea535b2ff48d761","src/shared/mod.rs":"6e30631fe2ba19d819330ea14d29cce4910b435f030e706be2fc94af23b88d71","src/shared/settings.rs":"42c2c5b6f5fdef090c35760c5920d5013afe4ddc472ee9cc37eb6d8ddaae2906","src/shared/types.rs":"158d73840185e6aa8385463bbf6568efdda0c8de8284cf6b4e565f425ec5d921","src/srcgen.rs":"79fee2f603b33f76f7c9c8b9452c745a363d732c40c0814d84001ff3ef805677","src/unique_table.rs":"90b7203b29241a1ede70f0a3e50d96799e0b41d8f7455170d6ffb127f87f3cc3"},"package":null} \ No newline at end of file diff --git a/third_party/rust/cranelift-codegen-meta/Cargo.toml b/third_party/rust/cranelift-codegen-meta/Cargo.toml index a5f734494d40..336dfd9921dc 100644 --- a/third_party/rust/cranelift-codegen-meta/Cargo.toml +++ b/third_party/rust/cranelift-codegen-meta/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cranelift-codegen-meta" authors = ["The Cranelift Project Developers"] -version = "0.30.0" +version = "0.32.0" description = "Metaprogram for cranelift-codegen code generator library" license = "Apache-2.0 WITH LLVM-exception" repository = "https://github.com/CraneStation/cranelift" @@ -9,7 +9,7 @@ readme = "README.md" edition = "2018" [dependencies] -cranelift-entity = { path = "../../cranelift-entity", version = "0.30.0", default-features = false } +cranelift-entity = { path = "../../cranelift-entity", version = "0.32.0", default-features = false } [badges] maintenance = { status = "experimental" } diff --git a/third_party/rust/cranelift-codegen/.cargo-checksum.json b/third_party/rust/cranelift-codegen/.cargo-checksum.json index 4a8f8ba1d131..fa2c94e8611e 100644 --- a/third_party/rust/cranelift-codegen/.cargo-checksum.json +++ b/third_party/rust/cranelift-codegen/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"9e1e9d197a2fcdb9bfd3c32a7608ab772ed4301aa0b9f2e60b73c98f542ac760","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"e5127227a7db4a8aa92fa6613ed71801025790e696bb41b0323fb7f3c6f7495a","build.rs":"7c0919d12ff966e0c400e7cfa0a555b2e50ede20c0dfb4f4401e35a828134ea9","meta-python/base/__init__.py":"4fac8bb055541dc964383bb04223bae6dfbfe348abf5e23f83655966cbb4aa8f","meta-python/base/entities.py":"f956b8ba863cd26f6867e13c1b2db3c202e9b07c48c1e43a9c2b41ad0deb8922","meta-python/base/formats.py":"6f8cf7cbdfb613acfd4ba3a8e4a9a173cbaa8afd254f03218c5f01daa1078d6c","meta-python/base/immediates.py":"f42682d86bda7b569ec2fc2debd9036355999e61caaa9fbf8307e0be8a164814","meta-python/base/instructions.py":"797dc0c47dd0ea1698201695ff2b5d3c7e8a7aca94396c2685189d9cc53b1419","meta-python/base/legalize.py":"beddc21c03ffba30a509a6df28ad87e3162cf8c60debd036082e32f3c732b7d2","meta-python/base/predicates.py":"53a5a9a37021a9762f0faec9f9e3c5b713411d47dd9192423cfe0f7a61916809","meta-python/base/semantics.py":"b90cbca9a143676ac37496c83634a66a83360248e4505ff7bda12b0d454efd92","meta-python/base/settings.py":"97fca9ddaab347f50f1594c93283f8f474e53a7232eae65949f56a6a702c2bba","meta-python/base/types.py":"9616d6fe4cab050827ab02eeb9843eacebbb8f7555521f504b5ee2ddf7214fdb","meta-python/build.py":"254a7fb51f6025c54f5b08135b83ffadfc2e6c02cb8c3078fdd06c0eff4b91da","meta-python/cdsl/__init__.py":"b534ec129a0e517f0d13313c2b4bb3a345d3e5b62693a31d8d42c80a219e39fa","meta-python/cdsl/ast.py":"8509f15eaaaf2fed2bec93eba19d313d37c2ddd70d1399a491a394206cbfabe4","meta-python/cdsl/formats.py":"fedfeaec754b40d6a9cc92b827976782c615d8eab1c7f47f6b47510cbef585f4","meta-python/cdsl/instructions.py":"50fe9329a56e6294a27306aad7be22c88a5b5ef42c3b030ec59218167157f62f","meta-python/cdsl/isa.py":"dc530a4dd5642e3379398dfc8a90ad6ae1692302de63851370bdfa8abf4cdce0","meta-python/cdsl/operands.py":"e24914eae4059b88781bf5a5d7a14ecf98b10a701ed6cf6e88d15981b2ccbfdf","meta-python/cdsl/predicates.py":"fe2dc6e78ff6d4bcb6b1d5448ded343ede0f03b96a965a11aef0f5bbe7bb8f56","meta-python/cdsl/registers.py":"939dafd1b8976a6cd456c9a5e4b374af81fafb9da979ea3a1f6d14e4645914a6","meta-python/cdsl/settings.py":"400d853a815f64c0294d0c0e03d3c514942760faa8b06152b1078a92ddb9f62c","meta-python/cdsl/test_ast.py":"947e934e2862445a158bf266dff58a8c88aae31fb34a7f823309ee58a15c5393","meta-python/cdsl/test_package.py":"ffa53d20e023ecb89137294bb13614f4de9b09e1bf05d9772131570bf78f7987","meta-python/cdsl/test_ti.py":"04656e2da99ec37875f91172bb2fa423da1ee27bf523a4d41af311ea22492d1b","meta-python/cdsl/test_typevar.py":"768bf3c35481950264ad6fd7059a532ac62b121ac439983bb4fe1ae76a1d1248","meta-python/cdsl/test_xform.py":"ddb6633c7941bbf68570701cb887a81d6b4b27f4bc45eabccf2ce287ad9b77e9","meta-python/cdsl/ti.py":"566e91f0bb3ebacd5abf9f5a663caee69706c2e829dee1ed735d229198689f76","meta-python/cdsl/types.py":"adee4bbc1a9478288fa4b53ee1edeb5ee3296dba2c70bfbe01e923895064999e","meta-python/cdsl/typevar.py":"b5669934eddaf5b9cc0c27b966e2566b5f669f1c5a345f005960930fb499097e","meta-python/cdsl/xform.py":"bf200b711570b905f0fb30611ba64f131f98593060eedbe5575054cca4928593","meta-python/check.sh":"707cda14534882e8d4593f93c056390560394c9bc8a687e99f10a56d7b09cb92","meta-python/constant_hash.py":"c752e6dadf3a9a5bd00c978e85ab27a20c49138a1ccdc6fc9a1904797a4bfe48","meta-python/gen_binemit.py":"76472fb199a330b934ba9ad0a1bbacfb52f0eae7c9a66d83f0d7890970323a2d","meta-python/gen_build_deps.py":"53bbdd591c91f8e28da95e4da02c9299a01a32d8be6a0c7490b6b7c60a4fbebe","meta-python/gen_encoding.py":"471c5f4ecf24a2a173864c62a48920e5fbe1aacd2229b3eb4483637570bb26b2","meta-python/isa/__init__.py":"e499c1206cd095a926fa0ca7eb9d0a50a802ed71c8eb7598e5d3a0f939c8ada5","meta-python/isa/arm32/__init__.py":"eecba73231aa398ded7304690bdba3450dc163afd4360f1b0ad02a28e2380363","meta-python/isa/arm32/defs.py":"01c41dbd7406c624e26229df6befa0992194bddcc7d11e8f6174abfe2b33bf61","meta-python/isa/arm32/registers.py":"c03ca6435828ad5f262049e42f1f71bcf74903831f85daa92c3f322a6c1050ea","meta-python/isa/arm32/settings.py":"afd5a04a9d029f578d6f62dc7c539191886cc9f9dea15d65fc66bf37a63b8814","meta-python/isa/arm64/__init__.py":"f6877253cf786d7ee972881e7d9b3c78c11e6b024e4e227487340dd01d0c44e4","meta-python/isa/arm64/defs.py":"797c5bb6d11fc7a44afe67476136dbd11c40f5e13a1c8f52f9f96be4441677b2","meta-python/isa/arm64/registers.py":"9bdd06edaa382be96042e1ac36d63137e73292292b61dcf4becb7d1428130317","meta-python/isa/arm64/settings.py":"f7b1f8733e775ea8005372ee35f1c2a627b3a69d722e837295599e4cf1f5eb43","meta-python/isa/riscv/__init__.py":"c11607c9eef0bc2707daa3edd4174e934c7a0dcc8ce90cee2c9292a85b1ac596","meta-python/isa/riscv/defs.py":"e73740055c4fb123c45453fc149a807e9720466de848022d5375049bdcfc311c","meta-python/isa/riscv/encodings.py":"2f890f47d8ee13141c45b1126dd8cb1dfdcde96df03208ce19e96ea3ae53c5d2","meta-python/isa/riscv/recipes.py":"57eb830d0e01858c7f01cda71a26854eb8f69cb46aae6456873766e1e0a40389","meta-python/isa/riscv/registers.py":"ef9aca3a6ec2b08ee8f5952186d232861b64a919b671b41911a365e7672b01bd","meta-python/isa/riscv/settings.py":"dfe29722d67be0620a70e08cfb802829a26f5fd339a9342a8ac2dd419daf8a85","meta-python/isa/x86/__init__.py":"ad579de68ea7bf5dc2bce0e3a6f09e7978b1697f1afec8a5ce5dc591136e590d","meta-python/isa/x86/defs.py":"b5eb7889b6f5e5b221ed3923d0137bbb1566c55b5961448cc39e4ea2f13cf4b7","meta-python/isa/x86/encodings.py":"0130a8eb7e7415f538fd9ee5b15eea008b1cad609325fd7399750b402e5fc916","meta-python/isa/x86/instructions.py":"530cde78e6b9f6e4ea2192985f4c5c77a987cdc19001d50fb47fa8e36a62f52e","meta-python/isa/x86/legalize.py":"1375ded072c29459e7c0e40ecb02f28d5395d9d8c603eb70e338b2bf2991c9cd","meta-python/isa/x86/recipes.py":"5dc66c8e0d0ac3aff05dfe42822b4711c677d52177f9753b50daa73eeee4b690","meta-python/isa/x86/registers.py":"ff934491d07ec6b51fbfd454b865a7c7c191ffbd31b1804615735266b120f4b2","meta-python/isa/x86/settings.py":"7ef2e43521b9b11e90a93c1c60946e65d420ecf6e15ba17f933c7a24a5124e5b","meta-python/mypy.ini":"5ec2f7cc0bbc4fd0435643d6b72e715bd9568a3a0fe14c043f9e559c405b66fb","meta-python/semantics/__init__.py":"c9dd72fde0ab020d3328dde532d92b39e438e4147930e41df7613c27727e11eb","meta-python/semantics/elaborate.py":"3a3fbba83a6818c2d1ce236fd0413111380875a0307f7a5f4b5dd66d8ef714b1","meta-python/semantics/macros.py":"b218c52e1bd4f019dc14a27d315b4f3405a10e5bdc6f2523fe709c8faf91b418","meta-python/semantics/primitives.py":"4e5eb0c90fcc295686732c8c66ad7a793997645c9a676c97babf06823fd2b60d","meta-python/semantics/smtlib.py":"48ef80320f21682860bbf5f79f18739f1d10f0b1fe581ebb05541e90dc2f2f4f","meta-python/semantics/test_elaborate.py":"3a4c850a7385007422c7549661b211903cd1dd1606dad7a86262ae27e697bca6","meta-python/srcgen.py":"999557d683e808a2ca90688c489ec4aff65798f44ac321ecf7de34d307261913","meta-python/stubs/z3/__init__.pyi":"6aaeb80f783b29c4364dee21da45f6df041c0a4807189a15777ee5447f6515dc","meta-python/stubs/z3/z3core.pyi":"c01a41d468e07cc4f8b405c292ed7f8c82bc1077f8b82dfde1e474577ade3335","meta-python/stubs/z3/z3types.pyi":"30009c951af99b9028d47cd4cabae95ff9742b77b690bd8dd63f6b7dba580759","meta-python/test_constant_hash.py":"157cf4f8964e0f04c041ffd349e889ce565b144453436690578c5d03c3a60216","meta-python/test_srcgen.py":"d6d7775e19a5b2621360c00eb6d92dfcb4568e49220993e0ceaac9628dbfd661","meta-python/unique_table.py":"5bd500667430c15f6ae586603d8612fb3bda07b072e40d86286e08392bdc3127","src/abi.rs":"76ee030cf0780fe63ccbf855b1161f215e3e2991cb9abe71ca9aff25e5f1dbc2","src/binemit/memorysink.rs":"3ac1d77f178dabe3b2201735f9c7aa577fcc680424ad9ed435736b76fe583dfa","src/binemit/mod.rs":"ed63c382e6f58a9f7417d8913c15387f88d511a4ef02cba191c341496db50863","src/binemit/relaxation.rs":"697c4041b7e9605dd09b93be389cc18d54666ce16637383f2916a35788df32c9","src/binemit/shrink.rs":"63384c0eee75f0c0260cc385d7eb097dc67c85432f37dd28115a27fb17cfc3c9","src/bitset.rs":"d57a79058a31b094b4bbe9d34876a5543286df1e08b5ceadfd05a9efc5a3b1ce","src/cfg_printer.rs":"d285f1ce7d960089b9c28a3ab280bb1e6b3026f9f23ec0fac6b1a170b504d164","src/constant_hash.rs":"330e8289789ee351d0abeaf4b5e859b8db8772306e0820d34864fc9905d53b38","src/context.rs":"cf97e03ee2a5eaba6dd84208b937664a825e778aa49da34f5311b1f1c9a70a53","src/cursor.rs":"6643149791795257bd6bd8ce184dcb32e8aec835bd57711facfbe1f645c0d89e","src/dbg.rs":"1898d94cff0975815eb348651702e95c8f2f63886501d3b7043ee75668480472","src/dce.rs":"d8ab7c0cac0416f9d75afdacc60ba02e532361ec927c3f8bd171b1a53ec8b31a","src/divconst_magic_numbers.rs":"09691389c9055bef7a0cfd5d77fbfeba4be468d05d981d4de088516a94b8b28e","src/dominator_tree.rs":"7ee4114026011b11d49e48c5a9202970bafe3b22c2074f7c1390b98ebb2edb7a","src/flowgraph.rs":"bf520026c32c5454554d0b078b64a78bd44f3c0f4f198eddf71bcfd78cc963a3","src/fx.rs":"8a5d07487906d8316a179e826fcd817a92a4860686256a6fd9d78ba47c63f330","src/ir/builder.rs":"1a12c57f4168fa3c2fcf6be2f19d0d377eee40f24ae4390e6ba9d954f85a8a3e","src/ir/condcodes.rs":"5247c8d849e1372d2a22379c33a4a88226ec6187be18ca6f2c4e0f315d812aa8","src/ir/dfg.rs":"caa494cc32dbf27e87e5cfe3ed13e0116bf0f94f436cdeca75a59fe4b047b181","src/ir/entities.rs":"48a6fa7e43bd2d53bf7900e456fd80103088e16148e6ca859f71f0250df90ede","src/ir/extfunc.rs":"9806734eeb480724481128d8c1de78a3b1f80f1214c20f24131196a0df137872","src/ir/extname.rs":"ed2c0b52cdaecc7f0ba9a894ef9fffe139e09b520e43dcd6f0c887a3d41a31ac","src/ir/function.rs":"af8f8e09a2482865d8bd9be9f475fa5627c9a6886c2675286a47597fa54fcecd","src/ir/globalvalue.rs":"906d29f3d4190b811f66fc549c4e0408bdd2807eac98e33c0b3d5c2b876acc02","src/ir/heap.rs":"a59d3e5901412b53c0b53a8cdf10765ff5921de9c410ae9acea226c89827df3c","src/ir/immediates.rs":"029a8aa905e6fd0f3334e17a28e73ac36684df2ca0829dcae0158ea8cf64ca8c","src/ir/instructions.rs":"2180de1d127ab5878c5743d8e096d551edb973e0ff1d373c4239c32e7981364c","src/ir/jumptable.rs":"7764abc9aa027a5a89d22059b360372bd9a19686887c5a7830f7637d6f188e1e","src/ir/layout.rs":"bb45eefde16ac9423f637dfcc2796ae7b955a97f38a55f23a19cc45da5decce1","src/ir/libcall.rs":"413c46df13831c7d453ce2c833b2fa913f88f548bb6d840e55b716224e0b5499","src/ir/memflags.rs":"dbcf3798ab66dc764b73fb7f139a621c54cc6bcc683f1f70a33ed7e8c3486bfd","src/ir/mod.rs":"37685305acb21dc24896e5d7977784988fe723c09bdf8ab8cc7830ccabd76a11","src/ir/progpoint.rs":"49433f22bd6ff3a96ad0733ff612f3617b312e4492b6b663187141966f6aa701","src/ir/sourceloc.rs":"37ef5fd8cef1de99620797d7d5aba3630e737171853c8471495c685dafac19b6","src/ir/stackslot.rs":"2f54359339837bb1d0d817d3af21bb4b1b050c31703885dfaced29f6e41153c2","src/ir/table.rs":"dcc3b663a989b2b084402b08dc9a0e928dbd052e194a46a1886cc6f0cf1a5f2c","src/ir/trapcode.rs":"59e223193617b8c1043ddd3a907c6131f2987e8fe0965ebfd9f7c056c064b7c5","src/ir/types.rs":"1f644beba2c797f7bd89378d930c3eca1491ec5f82c4715945ac63a0a5754473","src/ir/valueloc.rs":"4c676c2d21d75611ef922a230ee82846afb565ce0f55bc71e33c70e1a1d92a07","src/isa/arm32/abi.rs":"74775c5f1eb95764e46815fa8b31891416a616fdd212972eb77aead43b3345a9","src/isa/arm32/binemit.rs":"52b2f4b3c6d8683ed6963c1f53907ac57b6aab7cc149464c9a12d6875aa3b5c6","src/isa/arm32/enc_tables.rs":"b5b7f2fdcaf1d1878a357c54ab757e94f0d06e5bd391ac5d876e96f5b30d6b7a","src/isa/arm32/mod.rs":"239eb819224af2c2edaa44355f5491cbab780b7427289a607162f5e0df500da8","src/isa/arm32/registers.rs":"254b568a02480f46bb4967a24a438390231014258f0c159f0a41dbafe8e66d56","src/isa/arm32/settings.rs":"188f3cc445168b472b488e73b011e83edd31ac17e3841dacda07a55ccf923468","src/isa/arm64/abi.rs":"52353ed2e2133dacddaad70a876ecebb9c179c19b911ffa823b5b89d3ee7a17c","src/isa/arm64/binemit.rs":"4465cceb68d03ae4d0fdf188c9b86870fb57b3617d67f0bb7d476e5afb581e81","src/isa/arm64/enc_tables.rs":"8c829c544daeed9adc8458891614a0be6f149e775bd22651465f2c165d4a9e56","src/isa/arm64/mod.rs":"46bc796d3420b252b7af843d60e16e0f51de524b0842c6e6fe1adcbadbb70752","src/isa/arm64/registers.rs":"308cfcfd9ff2191d7656e7350bb36e41803664eb86ae490fb4b4d3549b25b6a2","src/isa/arm64/settings.rs":"0dff47e995e5d9740deb0116b59e91fbcb725a7fa1bdbd802bf83c13381b17f7","src/isa/call_conv.rs":"833ac811ff78ab8d3a5052165e76c51c6da7686020d95462c18074750fb790ed","src/isa/constraints.rs":"bddb5c68e56b122a53d8be215e41d22ccf8c4563630b1486e6eb31c0d3337565","src/isa/enc_tables.rs":"3497f3d701f21d6f952424abf31515fde9e67aea1cde26236c9ee8b033c61ae6","src/isa/encoding.rs":"7ea5b4400530172f96e263561682886ea6c67e706398d44a83933ef7f0ac98a5","src/isa/mod.rs":"d9019b94d415113c782202a48d6c79d333fa6591539771cdc19e6dbee0047041","src/isa/registers.rs":"4a91d4888df5eeed1802f34c43a42b82aaf1f9928a58329b0cbc9c3c57c75485","src/isa/riscv/abi.rs":"36557b91ad16a1344c80fbb16a62b46eac88500d76cb9ebcd4eae224dd67b2de","src/isa/riscv/binemit.rs":"0bd76b005b53b71bdb59057a20671fbcd8ab1c37d767bfd4ab0a92d05e192d9a","src/isa/riscv/enc_tables.rs":"ab73c80fef6b1256fbd3c0e1bdd8e43a20f7d132a32236f6bfc028e9003adfe0","src/isa/riscv/mod.rs":"44932e33e3a6090bebe3c77e0237378d7808c61a331a7cc84ea22ec2f7f52ccb","src/isa/riscv/registers.rs":"666c2abe1a93db5f1573d1603db6c13c37f3fc877c0c93b64d1b971921bfa950","src/isa/riscv/settings.rs":"d018d23418ff3fb98571bcdeeddde3277bf213b4b8ac1e55b6573e128b3931ce","src/isa/stack.rs":"d023c57feb944c94c4dc8b7138dcbc9d37ff18ca23c23d83e9bab3c88299ffa0","src/isa/x86/abi.rs":"c36d9143f018af42c8c19f44e91510ccbcfa7be927357aff20ebd357de185fca","src/isa/x86/binemit.rs":"9b7a3a5aacbf382145ac39c2bfd767bdfa92a8d0447a84dcc19672f1db34d047","src/isa/x86/enc_tables.rs":"073fd2b33c412575e651d696c438429e53601a782d200470ffb86ee8249ac6b5","src/isa/x86/mod.rs":"c813127526b450f806b74837551deb0e7faae1e3cf74e618a4120c90eae59156","src/isa/x86/registers.rs":"bed70bbe1f56f3ef03ea7cd1bea68eb911913cb4c8b93167e044dfc639f7f461","src/isa/x86/settings.rs":"cd8f8c5255663f6e247f0634088b16b53d785ee8c62cb5c0926b3d27597c12ff","src/iterators.rs":"f85f52d3fa707a0eb974c92215b3e976923ce8f9481219f7812e0f2869c2bd37","src/legalizer/boundary.rs":"70a6819cbb116f07d0a09f8e5b0e2fe91145f423ad02e10225f8879ff4e61351","src/legalizer/call.rs":"be6074c64c1a00e5e81159dd94c8401fef62205b22c15e07e0c56cf922554d00","src/legalizer/globalvalue.rs":"59ab09a0faf593c7f228500b3fd3bacfc0412bdcb2864ec3621aa65adc4a5693","src/legalizer/heap.rs":"b83dc83a5876b024db058023692f71d8f910f6b212f34200e9bcf61a19daeb8e","src/legalizer/libcall.rs":"5c5a79709322a6562496c30af775ad255b27af67f7541fc1615f7deb891f8cff","src/legalizer/mod.rs":"d7ac361390308b605ee02d12d9bd6c0d46e36cf852115c0a71ddd88e8c7bd2bd","src/legalizer/split.rs":"13fe4d2cecea166ecdc1ebb11f5254374ee170518f1a61de7ac0a921bc8fb25d","src/legalizer/table.rs":"c36d03525312e3191aba8ee00c26a87c1ea200f9a9a0370f0cc84eeacff71786","src/lib.rs":"1e3a026f3ab6a1d133722227f1f9b8d2cd214e576e31c6c68d252326984dafc5","src/licm.rs":"1c14deeb4c86ef7bde39b16758825a774156609359724583ff8788be658abd8e","src/loop_analysis.rs":"58fc3cc0e700f05e3131ff1b16ff975d4f32a68c790f095d8445bd300356d3c0","src/nan_canonicalization.rs":"9619bb5554791bd1be75ecd98564d6c9f5b65132bc07c5c4d8c210cd79b66f82","src/partition_slice.rs":"bc13504e7658aab565918d965a0b67e941eb572e583870571bc6dbb2b9aad272","src/postopt.rs":"d4c487f0299fb905bb5a5822e38dea6f70afa4d4577288988b5bec8660bc1ba0","src/predicates.rs":"44bbc09ae0c7d5b54c05eb6061b062e92d1893edc7dda43ae2bccfedc6bb25e3","src/print_errors.rs":"3fbd77a01b5404a4bbcf2970e44299ad33948c71f4014d92026415daa8325314","src/ref_slice.rs":"421a61323c11858a596d50220487f399e1bcedeff0e8d1b716dd4b3531eb01a5","src/regalloc/affinity.rs":"19cec5495c8bddc1fcc8f3c8659d527a5a3ea373ffcc130e3fbd5b462ef15930","src/regalloc/coalescing.rs":"d83be1c1067eb56f2f8f16380450a327d6495b4c6f1f489ded68271c055aec07","src/regalloc/coloring.rs":"cd64fdf547e1c1a1ddcdf345d27b4ec6dfeaf6d34f69cab70082fb2b47c8e860","src/regalloc/context.rs":"e08cbd0dabaee5d9f78e8c6e3750ef61489c6517da7521043cad8dbb23f31581","src/regalloc/diversion.rs":"d46d733f6d00a8f536d5c7c8b8fc6f348c3d0605dd0ee77e1d8359367ba53347","src/regalloc/live_value_tracker.rs":"28823003dc72e8a4702776a8ab5ffd878712700a272b64376b0de2022e0ee31a","src/regalloc/liveness.rs":"a59673fda65d1e3c0e5b3f4468686d05a389c877bee7b10323264595c3c54677","src/regalloc/liverange.rs":"7a28454e5f70d570db439b966a01ead759b65eb65c5845f9c58bf2f230a5f2ab","src/regalloc/mod.rs":"6254df639f9289fd578e01b7dca99bc9c9e3c6680c6d031405e8df8d0cff31ad","src/regalloc/pressure.rs":"04738e95418f0f858885dfc45183efc3dfb59c8d2ad2fd88bbd9a73a62907730","src/regalloc/register_set.rs":"bc58f93f22f0adbe43260fe20c6089be1fca64f5bcc4acff85dc0a5ec5b61937","src/regalloc/reload.rs":"ccccb716a694b53103bd4d55efb2323e788c1127469233c17b648fa06baa67b1","src/regalloc/solver.rs":"43eebe2ae7f7e8b5510d161428152503ec37661f5083a36d925b4a247e1bd28a","src/regalloc/spilling.rs":"dff4af64409c9a1db7697423576826c3920c26c892fbdde89ee31c680d672e03","src/regalloc/virtregs.rs":"e5c8da6860ba9495f9396621530347e1dd6fc5b2fae2eb23c171ea77429356f1","src/result.rs":"c10354d615f93caa446c3c8c49d6ba3af762816af470f9c4accf04315cce9753","src/scoped_hash_map.rs":"5afafb3a4039094c3a2aad1582354220d21f399aa50046e7f4a1259e1976597e","src/settings.rs":"263d88ef1f976ecb5ee5656d95e77ca9cc49d91e9865f44d040d070a41a1bbfb","src/simple_gvn.rs":"c8feb380d4831badc59aa1e65efeafa6702711585817fe5f6b31de6b265fac24","src/simple_preopt.rs":"d2800d1345dc02e2ff5ef5c8b3d1bf9fcaee8f62e78df9f1681338ffc780d520","src/stack_layout.rs":"c5de271e296fc424f1a30017620bc88500369c8e553fef6e95beccb9c6640e7c","src/timing.rs":"a6808943eec68f5d3ff32132d40c07c142e6aa8073473561573a013978883e4f","src/topo_order.rs":"b01ed68a7300691f41ac434e58a5267b10a8b4a7056d65035e24aa8a6722122a","src/unreachable_code.rs":"40cc71a02887ee4065c76ce96dda0a363a8cc134ec784fe5ed1f276db76596ce","src/value_label.rs":"b860f1a5a35fbd562d9cce4ac38852139bd4f1d7425cda53c2529b0a361bd21c","src/verifier/cssa.rs":"e3e1d77b763c0ba82d3b59ab5b4667fd3152d5a08be50b58b0c82f86376bb062","src/verifier/flags.rs":"cac8ba7ed5fe621eaa425112b931423cb5f3523d580fcf0b7536deb252e96186","src/verifier/liveness.rs":"ac3413b464ee8b5aa5928bee724799b9a1e0cbbdce433c819b9d870483ed070a","src/verifier/locations.rs":"04635edc12bc741a23c9318611aac4abcb42f01effbebee6d858f108f9393a44","src/verifier/mod.rs":"a0ee43ae2f160936ab5ed05c6cea7111bd175aebe4058850060bfb5e1ded8a29","src/write.rs":"e067ac97dffcace67545525c631d6df6930e96700019a1e4723f98e31333fc9a"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"3a686835de3f329ac12e0bf91373e4f6a2978d68f8eeae56edac21fa01083fec","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"e5127227a7db4a8aa92fa6613ed71801025790e696bb41b0323fb7f3c6f7495a","build.rs":"7c0919d12ff966e0c400e7cfa0a555b2e50ede20c0dfb4f4401e35a828134ea9","meta-python/base/__init__.py":"4fac8bb055541dc964383bb04223bae6dfbfe348abf5e23f83655966cbb4aa8f","meta-python/base/entities.py":"f956b8ba863cd26f6867e13c1b2db3c202e9b07c48c1e43a9c2b41ad0deb8922","meta-python/base/formats.py":"6f8cf7cbdfb613acfd4ba3a8e4a9a173cbaa8afd254f03218c5f01daa1078d6c","meta-python/base/immediates.py":"f42682d86bda7b569ec2fc2debd9036355999e61caaa9fbf8307e0be8a164814","meta-python/base/instructions.py":"797dc0c47dd0ea1698201695ff2b5d3c7e8a7aca94396c2685189d9cc53b1419","meta-python/base/legalize.py":"beddc21c03ffba30a509a6df28ad87e3162cf8c60debd036082e32f3c732b7d2","meta-python/base/predicates.py":"53a5a9a37021a9762f0faec9f9e3c5b713411d47dd9192423cfe0f7a61916809","meta-python/base/semantics.py":"b90cbca9a143676ac37496c83634a66a83360248e4505ff7bda12b0d454efd92","meta-python/base/settings.py":"97fca9ddaab347f50f1594c93283f8f474e53a7232eae65949f56a6a702c2bba","meta-python/base/types.py":"9616d6fe4cab050827ab02eeb9843eacebbb8f7555521f504b5ee2ddf7214fdb","meta-python/build.py":"254a7fb51f6025c54f5b08135b83ffadfc2e6c02cb8c3078fdd06c0eff4b91da","meta-python/cdsl/__init__.py":"b534ec129a0e517f0d13313c2b4bb3a345d3e5b62693a31d8d42c80a219e39fa","meta-python/cdsl/ast.py":"8509f15eaaaf2fed2bec93eba19d313d37c2ddd70d1399a491a394206cbfabe4","meta-python/cdsl/formats.py":"fedfeaec754b40d6a9cc92b827976782c615d8eab1c7f47f6b47510cbef585f4","meta-python/cdsl/instructions.py":"50fe9329a56e6294a27306aad7be22c88a5b5ef42c3b030ec59218167157f62f","meta-python/cdsl/isa.py":"dc530a4dd5642e3379398dfc8a90ad6ae1692302de63851370bdfa8abf4cdce0","meta-python/cdsl/operands.py":"e24914eae4059b88781bf5a5d7a14ecf98b10a701ed6cf6e88d15981b2ccbfdf","meta-python/cdsl/predicates.py":"fe2dc6e78ff6d4bcb6b1d5448ded343ede0f03b96a965a11aef0f5bbe7bb8f56","meta-python/cdsl/registers.py":"939dafd1b8976a6cd456c9a5e4b374af81fafb9da979ea3a1f6d14e4645914a6","meta-python/cdsl/settings.py":"400d853a815f64c0294d0c0e03d3c514942760faa8b06152b1078a92ddb9f62c","meta-python/cdsl/test_ast.py":"947e934e2862445a158bf266dff58a8c88aae31fb34a7f823309ee58a15c5393","meta-python/cdsl/test_package.py":"ffa53d20e023ecb89137294bb13614f4de9b09e1bf05d9772131570bf78f7987","meta-python/cdsl/test_ti.py":"04656e2da99ec37875f91172bb2fa423da1ee27bf523a4d41af311ea22492d1b","meta-python/cdsl/test_typevar.py":"768bf3c35481950264ad6fd7059a532ac62b121ac439983bb4fe1ae76a1d1248","meta-python/cdsl/test_xform.py":"ddb6633c7941bbf68570701cb887a81d6b4b27f4bc45eabccf2ce287ad9b77e9","meta-python/cdsl/ti.py":"566e91f0bb3ebacd5abf9f5a663caee69706c2e829dee1ed735d229198689f76","meta-python/cdsl/types.py":"adee4bbc1a9478288fa4b53ee1edeb5ee3296dba2c70bfbe01e923895064999e","meta-python/cdsl/typevar.py":"b5669934eddaf5b9cc0c27b966e2566b5f669f1c5a345f005960930fb499097e","meta-python/cdsl/xform.py":"bf200b711570b905f0fb30611ba64f131f98593060eedbe5575054cca4928593","meta-python/check.sh":"707cda14534882e8d4593f93c056390560394c9bc8a687e99f10a56d7b09cb92","meta-python/constant_hash.py":"c752e6dadf3a9a5bd00c978e85ab27a20c49138a1ccdc6fc9a1904797a4bfe48","meta-python/gen_binemit.py":"76472fb199a330b934ba9ad0a1bbacfb52f0eae7c9a66d83f0d7890970323a2d","meta-python/gen_build_deps.py":"53bbdd591c91f8e28da95e4da02c9299a01a32d8be6a0c7490b6b7c60a4fbebe","meta-python/gen_encoding.py":"471c5f4ecf24a2a173864c62a48920e5fbe1aacd2229b3eb4483637570bb26b2","meta-python/isa/__init__.py":"e499c1206cd095a926fa0ca7eb9d0a50a802ed71c8eb7598e5d3a0f939c8ada5","meta-python/isa/arm32/__init__.py":"eecba73231aa398ded7304690bdba3450dc163afd4360f1b0ad02a28e2380363","meta-python/isa/arm32/defs.py":"01c41dbd7406c624e26229df6befa0992194bddcc7d11e8f6174abfe2b33bf61","meta-python/isa/arm32/registers.py":"c03ca6435828ad5f262049e42f1f71bcf74903831f85daa92c3f322a6c1050ea","meta-python/isa/arm32/settings.py":"afd5a04a9d029f578d6f62dc7c539191886cc9f9dea15d65fc66bf37a63b8814","meta-python/isa/arm64/__init__.py":"f6877253cf786d7ee972881e7d9b3c78c11e6b024e4e227487340dd01d0c44e4","meta-python/isa/arm64/defs.py":"797c5bb6d11fc7a44afe67476136dbd11c40f5e13a1c8f52f9f96be4441677b2","meta-python/isa/arm64/registers.py":"9bdd06edaa382be96042e1ac36d63137e73292292b61dcf4becb7d1428130317","meta-python/isa/arm64/settings.py":"f7b1f8733e775ea8005372ee35f1c2a627b3a69d722e837295599e4cf1f5eb43","meta-python/isa/riscv/__init__.py":"c11607c9eef0bc2707daa3edd4174e934c7a0dcc8ce90cee2c9292a85b1ac596","meta-python/isa/riscv/defs.py":"e73740055c4fb123c45453fc149a807e9720466de848022d5375049bdcfc311c","meta-python/isa/riscv/encodings.py":"2f890f47d8ee13141c45b1126dd8cb1dfdcde96df03208ce19e96ea3ae53c5d2","meta-python/isa/riscv/recipes.py":"57eb830d0e01858c7f01cda71a26854eb8f69cb46aae6456873766e1e0a40389","meta-python/isa/riscv/registers.py":"ef9aca3a6ec2b08ee8f5952186d232861b64a919b671b41911a365e7672b01bd","meta-python/isa/riscv/settings.py":"dfe29722d67be0620a70e08cfb802829a26f5fd339a9342a8ac2dd419daf8a85","meta-python/isa/x86/__init__.py":"ad579de68ea7bf5dc2bce0e3a6f09e7978b1697f1afec8a5ce5dc591136e590d","meta-python/isa/x86/defs.py":"b5eb7889b6f5e5b221ed3923d0137bbb1566c55b5961448cc39e4ea2f13cf4b7","meta-python/isa/x86/encodings.py":"0130a8eb7e7415f538fd9ee5b15eea008b1cad609325fd7399750b402e5fc916","meta-python/isa/x86/instructions.py":"530cde78e6b9f6e4ea2192985f4c5c77a987cdc19001d50fb47fa8e36a62f52e","meta-python/isa/x86/legalize.py":"1375ded072c29459e7c0e40ecb02f28d5395d9d8c603eb70e338b2bf2991c9cd","meta-python/isa/x86/recipes.py":"5dc66c8e0d0ac3aff05dfe42822b4711c677d52177f9753b50daa73eeee4b690","meta-python/isa/x86/registers.py":"ff934491d07ec6b51fbfd454b865a7c7c191ffbd31b1804615735266b120f4b2","meta-python/isa/x86/settings.py":"7ef2e43521b9b11e90a93c1c60946e65d420ecf6e15ba17f933c7a24a5124e5b","meta-python/mypy.ini":"5ec2f7cc0bbc4fd0435643d6b72e715bd9568a3a0fe14c043f9e559c405b66fb","meta-python/semantics/__init__.py":"c9dd72fde0ab020d3328dde532d92b39e438e4147930e41df7613c27727e11eb","meta-python/semantics/elaborate.py":"3a3fbba83a6818c2d1ce236fd0413111380875a0307f7a5f4b5dd66d8ef714b1","meta-python/semantics/macros.py":"b218c52e1bd4f019dc14a27d315b4f3405a10e5bdc6f2523fe709c8faf91b418","meta-python/semantics/primitives.py":"4e5eb0c90fcc295686732c8c66ad7a793997645c9a676c97babf06823fd2b60d","meta-python/semantics/smtlib.py":"48ef80320f21682860bbf5f79f18739f1d10f0b1fe581ebb05541e90dc2f2f4f","meta-python/semantics/test_elaborate.py":"3a4c850a7385007422c7549661b211903cd1dd1606dad7a86262ae27e697bca6","meta-python/srcgen.py":"999557d683e808a2ca90688c489ec4aff65798f44ac321ecf7de34d307261913","meta-python/stubs/z3/__init__.pyi":"6aaeb80f783b29c4364dee21da45f6df041c0a4807189a15777ee5447f6515dc","meta-python/stubs/z3/z3core.pyi":"c01a41d468e07cc4f8b405c292ed7f8c82bc1077f8b82dfde1e474577ade3335","meta-python/stubs/z3/z3types.pyi":"30009c951af99b9028d47cd4cabae95ff9742b77b690bd8dd63f6b7dba580759","meta-python/test_constant_hash.py":"157cf4f8964e0f04c041ffd349e889ce565b144453436690578c5d03c3a60216","meta-python/test_srcgen.py":"d6d7775e19a5b2621360c00eb6d92dfcb4568e49220993e0ceaac9628dbfd661","meta-python/unique_table.py":"5bd500667430c15f6ae586603d8612fb3bda07b072e40d86286e08392bdc3127","src/abi.rs":"76ee030cf0780fe63ccbf855b1161f215e3e2991cb9abe71ca9aff25e5f1dbc2","src/binemit/memorysink.rs":"3ac1d77f178dabe3b2201735f9c7aa577fcc680424ad9ed435736b76fe583dfa","src/binemit/mod.rs":"ed63c382e6f58a9f7417d8913c15387f88d511a4ef02cba191c341496db50863","src/binemit/relaxation.rs":"697c4041b7e9605dd09b93be389cc18d54666ce16637383f2916a35788df32c9","src/binemit/shrink.rs":"63384c0eee75f0c0260cc385d7eb097dc67c85432f37dd28115a27fb17cfc3c9","src/bitset.rs":"d57a79058a31b094b4bbe9d34876a5543286df1e08b5ceadfd05a9efc5a3b1ce","src/cfg_printer.rs":"d285f1ce7d960089b9c28a3ab280bb1e6b3026f9f23ec0fac6b1a170b504d164","src/constant_hash.rs":"330e8289789ee351d0abeaf4b5e859b8db8772306e0820d34864fc9905d53b38","src/context.rs":"cf97e03ee2a5eaba6dd84208b937664a825e778aa49da34f5311b1f1c9a70a53","src/cursor.rs":"6643149791795257bd6bd8ce184dcb32e8aec835bd57711facfbe1f645c0d89e","src/dbg.rs":"1898d94cff0975815eb348651702e95c8f2f63886501d3b7043ee75668480472","src/dce.rs":"d8ab7c0cac0416f9d75afdacc60ba02e532361ec927c3f8bd171b1a53ec8b31a","src/divconst_magic_numbers.rs":"09691389c9055bef7a0cfd5d77fbfeba4be468d05d981d4de088516a94b8b28e","src/dominator_tree.rs":"7ee4114026011b11d49e48c5a9202970bafe3b22c2074f7c1390b98ebb2edb7a","src/flowgraph.rs":"bf520026c32c5454554d0b078b64a78bd44f3c0f4f198eddf71bcfd78cc963a3","src/fx.rs":"8a5d07487906d8316a179e826fcd817a92a4860686256a6fd9d78ba47c63f330","src/ir/builder.rs":"1a12c57f4168fa3c2fcf6be2f19d0d377eee40f24ae4390e6ba9d954f85a8a3e","src/ir/condcodes.rs":"5247c8d849e1372d2a22379c33a4a88226ec6187be18ca6f2c4e0f315d812aa8","src/ir/dfg.rs":"caa494cc32dbf27e87e5cfe3ed13e0116bf0f94f436cdeca75a59fe4b047b181","src/ir/entities.rs":"48a6fa7e43bd2d53bf7900e456fd80103088e16148e6ca859f71f0250df90ede","src/ir/extfunc.rs":"9806734eeb480724481128d8c1de78a3b1f80f1214c20f24131196a0df137872","src/ir/extname.rs":"ed2c0b52cdaecc7f0ba9a894ef9fffe139e09b520e43dcd6f0c887a3d41a31ac","src/ir/function.rs":"af8f8e09a2482865d8bd9be9f475fa5627c9a6886c2675286a47597fa54fcecd","src/ir/globalvalue.rs":"906d29f3d4190b811f66fc549c4e0408bdd2807eac98e33c0b3d5c2b876acc02","src/ir/heap.rs":"a59d3e5901412b53c0b53a8cdf10765ff5921de9c410ae9acea226c89827df3c","src/ir/immediates.rs":"029a8aa905e6fd0f3334e17a28e73ac36684df2ca0829dcae0158ea8cf64ca8c","src/ir/instructions.rs":"2180de1d127ab5878c5743d8e096d551edb973e0ff1d373c4239c32e7981364c","src/ir/jumptable.rs":"7764abc9aa027a5a89d22059b360372bd9a19686887c5a7830f7637d6f188e1e","src/ir/layout.rs":"bb45eefde16ac9423f637dfcc2796ae7b955a97f38a55f23a19cc45da5decce1","src/ir/libcall.rs":"413c46df13831c7d453ce2c833b2fa913f88f548bb6d840e55b716224e0b5499","src/ir/memflags.rs":"dbcf3798ab66dc764b73fb7f139a621c54cc6bcc683f1f70a33ed7e8c3486bfd","src/ir/mod.rs":"37685305acb21dc24896e5d7977784988fe723c09bdf8ab8cc7830ccabd76a11","src/ir/progpoint.rs":"49433f22bd6ff3a96ad0733ff612f3617b312e4492b6b663187141966f6aa701","src/ir/sourceloc.rs":"37ef5fd8cef1de99620797d7d5aba3630e737171853c8471495c685dafac19b6","src/ir/stackslot.rs":"2f54359339837bb1d0d817d3af21bb4b1b050c31703885dfaced29f6e41153c2","src/ir/table.rs":"dcc3b663a989b2b084402b08dc9a0e928dbd052e194a46a1886cc6f0cf1a5f2c","src/ir/trapcode.rs":"59e223193617b8c1043ddd3a907c6131f2987e8fe0965ebfd9f7c056c064b7c5","src/ir/types.rs":"1f644beba2c797f7bd89378d930c3eca1491ec5f82c4715945ac63a0a5754473","src/ir/valueloc.rs":"4c676c2d21d75611ef922a230ee82846afb565ce0f55bc71e33c70e1a1d92a07","src/isa/arm32/abi.rs":"74775c5f1eb95764e46815fa8b31891416a616fdd212972eb77aead43b3345a9","src/isa/arm32/binemit.rs":"52b2f4b3c6d8683ed6963c1f53907ac57b6aab7cc149464c9a12d6875aa3b5c6","src/isa/arm32/enc_tables.rs":"b5b7f2fdcaf1d1878a357c54ab757e94f0d06e5bd391ac5d876e96f5b30d6b7a","src/isa/arm32/mod.rs":"239eb819224af2c2edaa44355f5491cbab780b7427289a607162f5e0df500da8","src/isa/arm32/registers.rs":"254b568a02480f46bb4967a24a438390231014258f0c159f0a41dbafe8e66d56","src/isa/arm32/settings.rs":"188f3cc445168b472b488e73b011e83edd31ac17e3841dacda07a55ccf923468","src/isa/arm64/abi.rs":"52353ed2e2133dacddaad70a876ecebb9c179c19b911ffa823b5b89d3ee7a17c","src/isa/arm64/binemit.rs":"4465cceb68d03ae4d0fdf188c9b86870fb57b3617d67f0bb7d476e5afb581e81","src/isa/arm64/enc_tables.rs":"8c829c544daeed9adc8458891614a0be6f149e775bd22651465f2c165d4a9e56","src/isa/arm64/mod.rs":"46bc796d3420b252b7af843d60e16e0f51de524b0842c6e6fe1adcbadbb70752","src/isa/arm64/registers.rs":"308cfcfd9ff2191d7656e7350bb36e41803664eb86ae490fb4b4d3549b25b6a2","src/isa/arm64/settings.rs":"0dff47e995e5d9740deb0116b59e91fbcb725a7fa1bdbd802bf83c13381b17f7","src/isa/call_conv.rs":"833ac811ff78ab8d3a5052165e76c51c6da7686020d95462c18074750fb790ed","src/isa/constraints.rs":"bddb5c68e56b122a53d8be215e41d22ccf8c4563630b1486e6eb31c0d3337565","src/isa/enc_tables.rs":"3497f3d701f21d6f952424abf31515fde9e67aea1cde26236c9ee8b033c61ae6","src/isa/encoding.rs":"7ea5b4400530172f96e263561682886ea6c67e706398d44a83933ef7f0ac98a5","src/isa/mod.rs":"d9019b94d415113c782202a48d6c79d333fa6591539771cdc19e6dbee0047041","src/isa/registers.rs":"4a91d4888df5eeed1802f34c43a42b82aaf1f9928a58329b0cbc9c3c57c75485","src/isa/riscv/abi.rs":"36557b91ad16a1344c80fbb16a62b46eac88500d76cb9ebcd4eae224dd67b2de","src/isa/riscv/binemit.rs":"0bd76b005b53b71bdb59057a20671fbcd8ab1c37d767bfd4ab0a92d05e192d9a","src/isa/riscv/enc_tables.rs":"ab73c80fef6b1256fbd3c0e1bdd8e43a20f7d132a32236f6bfc028e9003adfe0","src/isa/riscv/mod.rs":"44932e33e3a6090bebe3c77e0237378d7808c61a331a7cc84ea22ec2f7f52ccb","src/isa/riscv/registers.rs":"666c2abe1a93db5f1573d1603db6c13c37f3fc877c0c93b64d1b971921bfa950","src/isa/riscv/settings.rs":"d018d23418ff3fb98571bcdeeddde3277bf213b4b8ac1e55b6573e128b3931ce","src/isa/stack.rs":"d023c57feb944c94c4dc8b7138dcbc9d37ff18ca23c23d83e9bab3c88299ffa0","src/isa/x86/abi.rs":"c36d9143f018af42c8c19f44e91510ccbcfa7be927357aff20ebd357de185fca","src/isa/x86/binemit.rs":"9b7a3a5aacbf382145ac39c2bfd767bdfa92a8d0447a84dcc19672f1db34d047","src/isa/x86/enc_tables.rs":"073fd2b33c412575e651d696c438429e53601a782d200470ffb86ee8249ac6b5","src/isa/x86/mod.rs":"c813127526b450f806b74837551deb0e7faae1e3cf74e618a4120c90eae59156","src/isa/x86/registers.rs":"bed70bbe1f56f3ef03ea7cd1bea68eb911913cb4c8b93167e044dfc639f7f461","src/isa/x86/settings.rs":"cd8f8c5255663f6e247f0634088b16b53d785ee8c62cb5c0926b3d27597c12ff","src/iterators.rs":"f85f52d3fa707a0eb974c92215b3e976923ce8f9481219f7812e0f2869c2bd37","src/legalizer/boundary.rs":"70a6819cbb116f07d0a09f8e5b0e2fe91145f423ad02e10225f8879ff4e61351","src/legalizer/call.rs":"be6074c64c1a00e5e81159dd94c8401fef62205b22c15e07e0c56cf922554d00","src/legalizer/globalvalue.rs":"59ab09a0faf593c7f228500b3fd3bacfc0412bdcb2864ec3621aa65adc4a5693","src/legalizer/heap.rs":"b83dc83a5876b024db058023692f71d8f910f6b212f34200e9bcf61a19daeb8e","src/legalizer/libcall.rs":"5c5a79709322a6562496c30af775ad255b27af67f7541fc1615f7deb891f8cff","src/legalizer/mod.rs":"d7ac361390308b605ee02d12d9bd6c0d46e36cf852115c0a71ddd88e8c7bd2bd","src/legalizer/split.rs":"13fe4d2cecea166ecdc1ebb11f5254374ee170518f1a61de7ac0a921bc8fb25d","src/legalizer/table.rs":"c36d03525312e3191aba8ee00c26a87c1ea200f9a9a0370f0cc84eeacff71786","src/lib.rs":"1e3a026f3ab6a1d133722227f1f9b8d2cd214e576e31c6c68d252326984dafc5","src/licm.rs":"1c14deeb4c86ef7bde39b16758825a774156609359724583ff8788be658abd8e","src/loop_analysis.rs":"58fc3cc0e700f05e3131ff1b16ff975d4f32a68c790f095d8445bd300356d3c0","src/nan_canonicalization.rs":"9619bb5554791bd1be75ecd98564d6c9f5b65132bc07c5c4d8c210cd79b66f82","src/partition_slice.rs":"bc13504e7658aab565918d965a0b67e941eb572e583870571bc6dbb2b9aad272","src/postopt.rs":"d4c487f0299fb905bb5a5822e38dea6f70afa4d4577288988b5bec8660bc1ba0","src/predicates.rs":"44bbc09ae0c7d5b54c05eb6061b062e92d1893edc7dda43ae2bccfedc6bb25e3","src/print_errors.rs":"3fbd77a01b5404a4bbcf2970e44299ad33948c71f4014d92026415daa8325314","src/ref_slice.rs":"421a61323c11858a596d50220487f399e1bcedeff0e8d1b716dd4b3531eb01a5","src/regalloc/affinity.rs":"19cec5495c8bddc1fcc8f3c8659d527a5a3ea373ffcc130e3fbd5b462ef15930","src/regalloc/coalescing.rs":"d83be1c1067eb56f2f8f16380450a327d6495b4c6f1f489ded68271c055aec07","src/regalloc/coloring.rs":"cd64fdf547e1c1a1ddcdf345d27b4ec6dfeaf6d34f69cab70082fb2b47c8e860","src/regalloc/context.rs":"e08cbd0dabaee5d9f78e8c6e3750ef61489c6517da7521043cad8dbb23f31581","src/regalloc/diversion.rs":"d46d733f6d00a8f536d5c7c8b8fc6f348c3d0605dd0ee77e1d8359367ba53347","src/regalloc/live_value_tracker.rs":"28823003dc72e8a4702776a8ab5ffd878712700a272b64376b0de2022e0ee31a","src/regalloc/liveness.rs":"a59673fda65d1e3c0e5b3f4468686d05a389c877bee7b10323264595c3c54677","src/regalloc/liverange.rs":"7a28454e5f70d570db439b966a01ead759b65eb65c5845f9c58bf2f230a5f2ab","src/regalloc/mod.rs":"6254df639f9289fd578e01b7dca99bc9c9e3c6680c6d031405e8df8d0cff31ad","src/regalloc/pressure.rs":"04738e95418f0f858885dfc45183efc3dfb59c8d2ad2fd88bbd9a73a62907730","src/regalloc/register_set.rs":"bc58f93f22f0adbe43260fe20c6089be1fca64f5bcc4acff85dc0a5ec5b61937","src/regalloc/reload.rs":"ccccb716a694b53103bd4d55efb2323e788c1127469233c17b648fa06baa67b1","src/regalloc/solver.rs":"43eebe2ae7f7e8b5510d161428152503ec37661f5083a36d925b4a247e1bd28a","src/regalloc/spilling.rs":"dff4af64409c9a1db7697423576826c3920c26c892fbdde89ee31c680d672e03","src/regalloc/virtregs.rs":"e5c8da6860ba9495f9396621530347e1dd6fc5b2fae2eb23c171ea77429356f1","src/result.rs":"c10354d615f93caa446c3c8c49d6ba3af762816af470f9c4accf04315cce9753","src/scoped_hash_map.rs":"5afafb3a4039094c3a2aad1582354220d21f399aa50046e7f4a1259e1976597e","src/settings.rs":"263d88ef1f976ecb5ee5656d95e77ca9cc49d91e9865f44d040d070a41a1bbfb","src/simple_gvn.rs":"c8feb380d4831badc59aa1e65efeafa6702711585817fe5f6b31de6b265fac24","src/simple_preopt.rs":"d2800d1345dc02e2ff5ef5c8b3d1bf9fcaee8f62e78df9f1681338ffc780d520","src/stack_layout.rs":"c5de271e296fc424f1a30017620bc88500369c8e553fef6e95beccb9c6640e7c","src/timing.rs":"a6808943eec68f5d3ff32132d40c07c142e6aa8073473561573a013978883e4f","src/topo_order.rs":"b01ed68a7300691f41ac434e58a5267b10a8b4a7056d65035e24aa8a6722122a","src/unreachable_code.rs":"40cc71a02887ee4065c76ce96dda0a363a8cc134ec784fe5ed1f276db76596ce","src/value_label.rs":"b860f1a5a35fbd562d9cce4ac38852139bd4f1d7425cda53c2529b0a361bd21c","src/verifier/cssa.rs":"e3e1d77b763c0ba82d3b59ab5b4667fd3152d5a08be50b58b0c82f86376bb062","src/verifier/flags.rs":"cac8ba7ed5fe621eaa425112b931423cb5f3523d580fcf0b7536deb252e96186","src/verifier/liveness.rs":"ac3413b464ee8b5aa5928bee724799b9a1e0cbbdce433c819b9d870483ed070a","src/verifier/locations.rs":"04635edc12bc741a23c9318611aac4abcb42f01effbebee6d858f108f9393a44","src/verifier/mod.rs":"de22e1274abfd3e85a58486912e1ef66c77b3c1f4b7c0cec56dd23fbc990e02f","src/write.rs":"e067ac97dffcace67545525c631d6df6930e96700019a1e4723f98e31333fc9a"},"package":null} \ No newline at end of file diff --git a/third_party/rust/cranelift-codegen/Cargo.toml b/third_party/rust/cranelift-codegen/Cargo.toml index 7a2f2505c851..1fa3e2221958 100644 --- a/third_party/rust/cranelift-codegen/Cargo.toml +++ b/third_party/rust/cranelift-codegen/Cargo.toml @@ -1,7 +1,7 @@ [package] authors = ["The Cranelift Project Developers"] name = "cranelift-codegen" -version = "0.30.0" +version = "0.32.0" description = "Low-level code generator library" license = "Apache-2.0 WITH LLVM-exception" documentation = "https://cranelift.readthedocs.io/" @@ -13,8 +13,8 @@ build = "build.rs" edition = "2018" [dependencies] -cranelift-entity = { path = "../cranelift-entity", version = "0.30.0", default-features = false } -cranelift-bforest = { path = "../cranelift-bforest", version = "0.30.0", default-features = false } +cranelift-entity = { path = "../cranelift-entity", version = "0.32.0", default-features = false } +cranelift-bforest = { path = "../cranelift-bforest", version = "0.32.0", default-features = false } failure = { version = "0.1.1", default-features = false, features = ["derive"] } failure_derive = { version = "0.1.1", default-features = false } hashmap_core = { version = "0.1.9", optional = true } @@ -26,7 +26,7 @@ log = { version = "0.4.6", default-features = false } # accomodated in `tests`. [build-dependencies] -cranelift-codegen-meta = { path = "meta", version = "0.30.0", default-features = false } +cranelift-codegen-meta = { path = "meta", version = "0.32.0", default-features = false } [features] default = ["std", "x86", "arm32", "arm64", "riscv"] diff --git a/third_party/rust/cranelift-codegen/src/verifier/mod.rs b/third_party/rust/cranelift-codegen/src/verifier/mod.rs index 7e8d7909cf68..694e5e46decf 100644 --- a/third_party/rust/cranelift-codegen/src/verifier/mod.rs +++ b/third_party/rust/cranelift-codegen/src/verifier/mod.rs @@ -267,6 +267,8 @@ struct Verifier<'a> { expected_cfg: ControlFlowGraph, expected_domtree: DominatorTree, isa: Option<&'a dyn TargetIsa>, + // To be removed when #796 is completed. + verify_encodable_as_bb: bool, } impl<'a> Verifier<'a> { @@ -278,6 +280,7 @@ impl<'a> Verifier<'a> { expected_cfg, expected_domtree, isa: fisa.isa, + verify_encodable_as_bb: std::env::var("CRANELIFT_BB").is_ok(), } } @@ -468,6 +471,53 @@ impl<'a> Verifier<'a> { Ok(()) } + /// Check that the given EBB can be encoded as a BB, by checking that only + /// branching instructions are ending the EBB. + fn encodable_as_bb(&self, ebb: Ebb, errors: &mut VerifierErrors) -> VerifierStepResult<()> { + // Skip this verification if the environment variable is not set. + if !self.verify_encodable_as_bb { + return Ok(()); + }; + + let dfg = &self.func.dfg; + let inst_iter = self.func.layout.ebb_insts(ebb); + // Skip non-branching instructions. + let mut inst_iter = inst_iter.skip_while(|&inst| !dfg[inst].opcode().is_branch()); + + let branch = match inst_iter.next() { + // There is no branch in the current EBB. + None => return Ok(()), + Some(br) => br, + }; + + let after_branch = match inst_iter.next() { + // The branch is also the terminator. + None => return Ok(()), + Some(inst) => inst, + }; + + let after_branch_opcode = dfg[after_branch].opcode(); + if !after_branch_opcode.is_terminator() { + return fatal!( + errors, + branch, + "branch followed by a non-terminator instruction." + ); + }; + + // Allow only one conditional branch and a fallthrough implemented with + // a jump or fallthrough instruction. Any other, which returns or check + // a different condition would have to be moved to a different EBB. + match after_branch_opcode { + Opcode::Fallthrough | Opcode::Jump => Ok(()), + _ => fatal!( + errors, + after_branch, + "terminator instruction not fallthrough or jump" + ), + } + } + fn ebb_integrity( &self, ebb: Ebb, @@ -1744,6 +1794,7 @@ impl<'a> Verifier<'a> { self.verify_encoding(inst, errors)?; self.immediate_constraints(inst, errors)?; } + self.encodable_as_bb(ebb, errors)?; } verify_flags(self.func, &self.expected_cfg, self.isa, errors)?; diff --git a/third_party/rust/cranelift-entity/.cargo-checksum.json b/third_party/rust/cranelift-entity/.cargo-checksum.json index d86cffc54e90..1f3f8e74dac6 100644 --- a/third_party/rust/cranelift-entity/.cargo-checksum.json +++ b/third_party/rust/cranelift-entity/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"48e037bea5be27018e3f98bfba7ca7b0af1322c2083c69a137ab3320cd64b9fb","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"96ceffbfd88fb06e3b41aa4d3087cffbbf8441d04eba7ab09662a72ab600a321","src/boxed_slice.rs":"687428ee0442013c0d5962dd78d0964830233bc4cb19aa530d30da0f1dc437a9","src/iter.rs":"4a4d3309fe9aad14fd7702f02459f4277b4ddb50dba700e58dcc75665ffebfb3","src/keys.rs":"b8c2fba26dee15bf3d1880bb2b41e8d66fe1428d242ee6d9fd30ee94bbd0407d","src/lib.rs":"f83cdc6c4a2cd0d75e85c355ee2c8b19b25194c86468c2285bde1f725656062f","src/list.rs":"fc3decc81bcef92e106aae53e586a0ef21d70916fa53a48f7b813c5da44b8dc2","src/map.rs":"f35031459aca446734726c132c0a571482f1ec2ca8221b352d2e18c74950e977","src/packed_option.rs":"9d47f5b8302ee685c096817e376144e363507d1c77ef562d3ae4dbddae568195","src/primary.rs":"e95e4b2ed36413d80c4c0dcfc19dcf8a9f52e34467aaec196c774fd639747028","src/set.rs":"ec0ff7a9ee674c90ff9d06ea1fd4ab05039369146c2d259f476c6f612417933f","src/sparse.rs":"cf345a81d69a5dddaed4778b6aaaf06c70da2c1fd4cd21e366ed6ca5906ffdab"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"f215748dacfbc0ef020fe578f893c71d7e7326c8888a3bc1c11687050f351a12","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"96ceffbfd88fb06e3b41aa4d3087cffbbf8441d04eba7ab09662a72ab600a321","src/boxed_slice.rs":"687428ee0442013c0d5962dd78d0964830233bc4cb19aa530d30da0f1dc437a9","src/iter.rs":"4a4d3309fe9aad14fd7702f02459f4277b4ddb50dba700e58dcc75665ffebfb3","src/keys.rs":"b8c2fba26dee15bf3d1880bb2b41e8d66fe1428d242ee6d9fd30ee94bbd0407d","src/lib.rs":"f83cdc6c4a2cd0d75e85c355ee2c8b19b25194c86468c2285bde1f725656062f","src/list.rs":"fc3decc81bcef92e106aae53e586a0ef21d70916fa53a48f7b813c5da44b8dc2","src/map.rs":"f35031459aca446734726c132c0a571482f1ec2ca8221b352d2e18c74950e977","src/packed_option.rs":"9d47f5b8302ee685c096817e376144e363507d1c77ef562d3ae4dbddae568195","src/primary.rs":"e95e4b2ed36413d80c4c0dcfc19dcf8a9f52e34467aaec196c774fd639747028","src/set.rs":"ec0ff7a9ee674c90ff9d06ea1fd4ab05039369146c2d259f476c6f612417933f","src/sparse.rs":"cf345a81d69a5dddaed4778b6aaaf06c70da2c1fd4cd21e366ed6ca5906ffdab"},"package":null} \ No newline at end of file diff --git a/third_party/rust/cranelift-entity/Cargo.toml b/third_party/rust/cranelift-entity/Cargo.toml index f050953a9438..d7119634f479 100644 --- a/third_party/rust/cranelift-entity/Cargo.toml +++ b/third_party/rust/cranelift-entity/Cargo.toml @@ -1,7 +1,7 @@ [package] authors = ["The Cranelift Project Developers"] name = "cranelift-entity" -version = "0.30.0" +version = "0.32.0" description = "Data structures using entity references as mapping keys" license = "Apache-2.0 WITH LLVM-exception" documentation = "https://cranelift.readthedocs.io/" diff --git a/third_party/rust/cranelift-frontend/.cargo-checksum.json b/third_party/rust/cranelift-frontend/.cargo-checksum.json index fc0c63df2bb0..d62e7db108f5 100644 --- a/third_party/rust/cranelift-frontend/.cargo-checksum.json +++ b/third_party/rust/cranelift-frontend/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"c92f07d9959d10331c6b4770a4db12f706927a18897dfed45472abcd6e58190e","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"dea43e8044284df50f8b8772e9b48ba8b109b45c74111ff73619775d57ad8d67","src/frontend.rs":"f2fcd908b6a3c9b4a925702a578c9b2f0c6af6ed53cfc3cd7070b6fa3b7d58cb","src/lib.rs":"1cc2e7aaffa45bccea9e59fcc9d9c5d295a9f7adacd6bd55933834e20e969aef","src/ssa.rs":"88cb07071943f3e72a91c91afb58960689b4d9c56352b3bb7cd5d69288066190","src/switch.rs":"b8f337966b540254feb5f979b4a146f5ef69ae199864da6332c9d7513ff3ec8b","src/variable.rs":"f082efaa4b2d3c5eb48f6344149408074e1e15cb581f7a63f549313c7a1037be"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"586eed003b2623981c5a96f9d1bab3421986ac9adc2fecc55b56eb66bbb8d100","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"dea43e8044284df50f8b8772e9b48ba8b109b45c74111ff73619775d57ad8d67","src/frontend.rs":"f2fcd908b6a3c9b4a925702a578c9b2f0c6af6ed53cfc3cd7070b6fa3b7d58cb","src/lib.rs":"1cc2e7aaffa45bccea9e59fcc9d9c5d295a9f7adacd6bd55933834e20e969aef","src/ssa.rs":"88cb07071943f3e72a91c91afb58960689b4d9c56352b3bb7cd5d69288066190","src/switch.rs":"b8f337966b540254feb5f979b4a146f5ef69ae199864da6332c9d7513ff3ec8b","src/variable.rs":"f082efaa4b2d3c5eb48f6344149408074e1e15cb581f7a63f549313c7a1037be"},"package":null} \ No newline at end of file diff --git a/third_party/rust/cranelift-frontend/Cargo.toml b/third_party/rust/cranelift-frontend/Cargo.toml index b46737cc7c7f..2c33167aa326 100644 --- a/third_party/rust/cranelift-frontend/Cargo.toml +++ b/third_party/rust/cranelift-frontend/Cargo.toml @@ -1,7 +1,7 @@ [package] authors = ["The Cranelift Project Developers"] name = "cranelift-frontend" -version = "0.30.0" +version = "0.32.0" description = "Cranelift IR builder helper" license = "Apache-2.0 WITH LLVM-exception" documentation = "https://cranelift.readthedocs.io/" @@ -11,7 +11,7 @@ readme = "README.md" edition = "2018" [dependencies] -cranelift-codegen = { path = "../cranelift-codegen", version = "0.30.0", default-features = false } +cranelift-codegen = { path = "../cranelift-codegen", version = "0.32.0", default-features = false } target-lexicon = { version = "0.4.0", default-features = false } log = { version = "0.4.6", default-features = false } hashmap_core = { version = "0.1.9", optional = true } diff --git a/third_party/rust/cranelift-wasm/.cargo-checksum.json b/third_party/rust/cranelift-wasm/.cargo-checksum.json index 6c566a1956c3..6b1638aaec9d 100644 --- a/third_party/rust/cranelift-wasm/.cargo-checksum.json +++ b/third_party/rust/cranelift-wasm/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"1988715f39ef56d0e40ffcb2ffde965a1753a8ed15375e8a30fccabba16bd701","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"87679cdb53e8cbec3b1aa45afb2124727c1c059f8bd10363d27daf318a9f9a36","src/code_translator.rs":"77040f6e49784aafce63a04057a3464651ed7a817ba055226d40ef5755914989","src/environ/dummy.rs":"ee4d8d4924b4b04027f8af07968d5098ecd72ee62b53622d30334d1a38b227b8","src/environ/mod.rs":"617c147485038dfd797ab0ea71b4cfa9574d95d5d5b1ca362c6b7b6a462cf577","src/environ/spec.rs":"f45b20f6f9e60d94eb13829168ce8f7078ac61282689d43f58e1fccf9815d488","src/func_translator.rs":"07e1ebda4949f744e7d7b5a679bf1951fbefd807a0f0748231353cf1ef536d82","src/lib.rs":"0897b0270e746961db3d4dc74e5f766aced0ef23f870399aa9e685f1ec62ea83","src/module_translator.rs":"2345a4ee009eb59a90898795f939b9c7b241604a44abb27278610257cce84156","src/sections_translator.rs":"8ad698652ec7741feea8c10badfd6891d27d9b5b2b06819b08ec009afa584e81","src/state.rs":"9e4f67900439f6aa18cfa3f16c694487374ddf42530db4504bccab0ebc360c96","src/translation_utils.rs":"cb6b1ab91b4dd4739e5282989c61e6778cd1150319c8c7466b32f6ecc5db7afe","tests/wasm_testsuite.rs":"9b4e008587c61377cf38f9d0e4635418ee38e32a865db8da5dfc6e0fae047436"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"24bff87297bfe329c58a4e7f72618bf4409dee48642ea5c210bf8c8cd931d840","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"87679cdb53e8cbec3b1aa45afb2124727c1c059f8bd10363d27daf318a9f9a36","src/code_translator.rs":"64c5828b0b93b789281f0ed79b732d1d521481e8a2a2f220d64a4549144290f8","src/environ/dummy.rs":"ee4d8d4924b4b04027f8af07968d5098ecd72ee62b53622d30334d1a38b227b8","src/environ/mod.rs":"617c147485038dfd797ab0ea71b4cfa9574d95d5d5b1ca362c6b7b6a462cf577","src/environ/spec.rs":"f45b20f6f9e60d94eb13829168ce8f7078ac61282689d43f58e1fccf9815d488","src/func_translator.rs":"07e1ebda4949f744e7d7b5a679bf1951fbefd807a0f0748231353cf1ef536d82","src/lib.rs":"0897b0270e746961db3d4dc74e5f766aced0ef23f870399aa9e685f1ec62ea83","src/module_translator.rs":"2345a4ee009eb59a90898795f939b9c7b241604a44abb27278610257cce84156","src/sections_translator.rs":"a36b68aae6317e1f0ed2a7b2b456add0e465382390fe4f82f13777eeb56eff0f","src/state.rs":"9e4f67900439f6aa18cfa3f16c694487374ddf42530db4504bccab0ebc360c96","src/translation_utils.rs":"801e732c53bb0f1c088d9528d39b42c5773ae530f8ab69b610d2ef840e1ee9c7","tests/wasm_testsuite.rs":"9b4e008587c61377cf38f9d0e4635418ee38e32a865db8da5dfc6e0fae047436"},"package":null} \ No newline at end of file diff --git a/third_party/rust/cranelift-wasm/Cargo.toml b/third_party/rust/cranelift-wasm/Cargo.toml index 7ad1c55d23ec..a61b52be1dbc 100644 --- a/third_party/rust/cranelift-wasm/Cargo.toml +++ b/third_party/rust/cranelift-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cranelift-wasm" -version = "0.30.0" +version = "0.32.0" authors = ["The Cranelift Project Developers"] description = "Translator from WebAssembly to Cranelift IR" repository = "https://github.com/CraneStation/cranelift" @@ -11,10 +11,10 @@ keywords = ["webassembly", "wasm"] edition = "2018" [dependencies] -wasmparser = { version = "0.31.0", default-features = false } -cranelift-codegen = { path = "../cranelift-codegen", version = "0.30.0", default-features = false } -cranelift-entity = { path = "../cranelift-entity", version = "0.30.0", default-features = false } -cranelift-frontend = { path = "../cranelift-frontend", version = "0.30.0", default-features = false } +wasmparser = { version = "0.32.1", default-features = false } +cranelift-codegen = { path = "../cranelift-codegen", version = "0.32.0", default-features = false } +cranelift-entity = { path = "../cranelift-entity", version = "0.32.0", default-features = false } +cranelift-frontend = { path = "../cranelift-frontend", version = "0.32.0", default-features = false } hashmap_core = { version = "0.1.9", optional = true } failure = { version = "0.1.1", default-features = false, features = ["derive"] } failure_derive = { version = "0.1.1", default-features = false } diff --git a/third_party/rust/cranelift-wasm/src/code_translator.rs b/third_party/rust/cranelift-wasm/src/code_translator.rs index 14b27b027551..6365ed7e6862 100644 --- a/third_party/rust/cranelift-wasm/src/code_translator.rs +++ b/third_party/rust/cranelift-wasm/src/code_translator.rs @@ -135,7 +135,7 @@ pub fn translate_operator( if let Ok(ty_cre) = blocktype_to_type(ty) { builder.append_ebb_param(next, ty_cre); } - state.push_block(next, num_return_values(ty)); + state.push_block(next, num_return_values(ty)?); } Operator::Loop { ty } => { let loop_body = builder.create_ebb(); @@ -144,7 +144,7 @@ pub fn translate_operator( builder.append_ebb_param(next, ty_cre); } builder.ins().jump(loop_body, &[]); - state.push_loop(loop_body, next, num_return_values(ty)); + state.push_loop(loop_body, next, num_return_values(ty)?); builder.switch_to_block(loop_body); environ.translate_loop_header(builder.cursor())?; } @@ -161,7 +161,7 @@ pub fn translate_operator( if let Ok(ty_cre) = blocktype_to_type(ty) { builder.append_ebb_param(if_not, ty_cre); } - state.push_if(jump_inst, if_not, num_return_values(ty)); + state.push_if(jump_inst, if_not, num_return_values(ty)?); } Operator::Else => { // We take the control frame pushed by the if, use its ebb as the else body @@ -1047,7 +1047,9 @@ pub fn translate_operator( | Operator::F32x4ConvertSI32x4 | Operator::F32x4ConvertUI32x4 | Operator::F64x2ConvertSI64x2 - | Operator::F64x2ConvertUI64x2 => { + | Operator::F64x2ConvertUI64x2 + | Operator::V8x16Shuffle1 + | Operator::V8x16Shuffle2Imm { .. } => { return Err(WasmError::Unsupported("proposed SIMD operators")); } }; diff --git a/third_party/rust/cranelift-wasm/src/sections_translator.rs b/third_party/rust/cranelift-wasm/src/sections_translator.rs index 1236e943dc56..f0975d964394 100644 --- a/third_party/rust/cranelift-wasm/src/sections_translator.rs +++ b/third_party/rust/cranelift-wasm/src/sections_translator.rs @@ -7,10 +7,10 @@ //! The special case of the initialize expressions for table elements offsets or global variables //! is handled, according to the semantics of WebAssembly, to only specific expressions that are //! interpreted on the fly. -use crate::environ::{ModuleEnvironment, WasmResult}; +use crate::environ::{ModuleEnvironment, WasmError, WasmResult}; use crate::translation_utils::{ - type_to_type, FuncIndex, Global, GlobalIndex, GlobalInit, Memory, MemoryIndex, SignatureIndex, - Table, TableElementType, TableIndex, + tabletype_to_type, type_to_type, FuncIndex, Global, GlobalIndex, GlobalInit, Memory, + MemoryIndex, SignatureIndex, Table, TableElementType, TableIndex, }; use core::convert::TryFrom; use cranelift_codegen::ir::{self, AbiParam, Signature}; @@ -51,7 +51,7 @@ pub fn parse_type_section( })); environ.declare_signature(sig); } - ref s => panic!("unsupported type: {:?}", s), + _ => return Err(WasmError::Unsupported("unsupported type in type section")), } } Ok(()) @@ -101,9 +101,9 @@ pub fn parse_import_section<'data>( ImportSectionEntryType::Table(ref tab) => { environ.declare_table_import( Table { - ty: match type_to_type(tab.element_type) { - Ok(t) => TableElementType::Val(t), - Err(()) => TableElementType::Func, + ty: match tabletype_to_type(tab.element_type)? { + Some(t) => TableElementType::Val(t), + None => TableElementType::Func, }, minimum: tab.limits.initial, maximum: tab.limits.maximum, @@ -144,9 +144,9 @@ pub fn parse_table_section( for entry in tables { let table = entry?; environ.declare_table(Table { - ty: match type_to_type(table.element_type) { - Ok(t) => TableElementType::Val(t), - Err(()) => TableElementType::Func, + ty: match tabletype_to_type(table.element_type)? { + Some(t) => TableElementType::Val(t), + None => TableElementType::Func, }, minimum: table.limits.initial, maximum: table.limits.maximum, diff --git a/third_party/rust/cranelift-wasm/src/translation_utils.rs b/third_party/rust/cranelift-wasm/src/translation_utils.rs index 18d69c7641e1..c221f751fffa 100644 --- a/third_party/rust/cranelift-wasm/src/translation_utils.rs +++ b/third_party/rust/cranelift-wasm/src/translation_utils.rs @@ -1,4 +1,5 @@ //! Helper functions and structures for the translation. +use crate::environ::{WasmError, WasmResult}; use core::u32; use cranelift_codegen::entity::entity_impl; use cranelift_codegen::ir; @@ -109,21 +110,36 @@ pub struct Memory { } /// Helper function translating wasmparser types to Cranelift types when possible. -pub fn type_to_type(ty: wasmparser::Type) -> Result { +pub fn type_to_type(ty: wasmparser::Type) -> WasmResult { Ok(match ty { wasmparser::Type::I32 => ir::types::I32, wasmparser::Type::I64 => ir::types::I64, wasmparser::Type::F32 => ir::types::F32, wasmparser::Type::F64 => ir::types::F64, - _ => return Err(()), + _ => return Err(WasmError::Unsupported("unsupported wasm type")), + }) +} + +/// Helper function translating wasmparser possible table types to Cranelift types when possible, +/// or None for Func tables. +pub fn tabletype_to_type(ty: wasmparser::Type) -> WasmResult> { + Ok(match ty { + wasmparser::Type::I32 => Some(ir::types::I32), + wasmparser::Type::I64 => Some(ir::types::I64), + wasmparser::Type::F32 => Some(ir::types::F32), + wasmparser::Type::F64 => Some(ir::types::F64), + wasmparser::Type::AnyFunc => None, + _ => return Err(WasmError::Unsupported("unsupported table wasm type")), }) } /// Helper function translating wasmparser block signatures to Cranelift types when possible. -pub fn blocktype_to_type(ty: wasmparser::TypeOrFuncType) -> Result { +pub fn blocktype_to_type(ty: wasmparser::TypeOrFuncType) -> WasmResult { match ty { wasmparser::TypeOrFuncType::Type(ty) => type_to_type(ty), - wasmparser::TypeOrFuncType::FuncType(_) => unimplemented!("multi-value block signatures"), + wasmparser::TypeOrFuncType::FuncType(_) => { + Err(WasmError::Unsupported("multi-value block signatures")) + } } } @@ -138,17 +154,19 @@ pub fn f64_translation(x: wasmparser::Ieee64) -> ir::immediates::Ieee64 { } /// Translate a `wasmparser` type into its `Cranelift` equivalent, when possible -pub fn num_return_values(ty: wasmparser::TypeOrFuncType) -> usize { +pub fn num_return_values(ty: wasmparser::TypeOrFuncType) -> WasmResult { match ty { wasmparser::TypeOrFuncType::Type(ty) => match ty { - wasmparser::Type::EmptyBlockType => 0, + wasmparser::Type::EmptyBlockType => Ok(0), wasmparser::Type::I32 | wasmparser::Type::F32 | wasmparser::Type::I64 - | wasmparser::Type::F64 => 1, - _ => panic!("unsupported return value type"), + | wasmparser::Type::F64 => Ok(1), + _ => Err(WasmError::Unsupported("unsupported return value type")), }, - wasmparser::TypeOrFuncType::FuncType(_) => unimplemented!("multi-value block signatures"), + wasmparser::TypeOrFuncType::FuncType(_) => { + Err(WasmError::Unsupported("multi-value block signatures")) + } } } diff --git a/third_party/rust/wasmparser/.cargo-checksum.json b/third_party/rust/wasmparser/.cargo-checksum.json index cff61fa24da6..17329aaaa12f 100644 --- a/third_party/rust/wasmparser/.cargo-checksum.json +++ b/third_party/rust/wasmparser/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"83c9345be6b7ac1c67bf7aa61e82fb440c299277dd02817a86e7dac7ba3ac7fa","LICENSE":"a6c48161a09acc75a0e25503bab66a731eb5fba5392ed4bb4743e4ba5085327a","README.md":"13ea373a411dfa7371cd994736289bb000db51957da92315fecbcc9fe7dcab92","benches/benchmark.rs":"25caa5e42e88412fdc443cdf1e870b100c9bf5e2907bbfd75f077757be3090bc","compare-master.sh":"165490eab36ef4eceb2913a6c5cdeff479a05e1e0119a7f4551b03dbcda51ad4","examples/dump.rs":"de2bbdba75e21b9ff92b32697b3d9941f8695b8f7e3a8dee8fc5d7f4c3a0649c","examples/simple.rs":"c79ae542913e72cfcd03711543d173b2e8f62783e6c206459953bdb94dbb8c0c","format-all.sh":"6b02a40629ef3d2c0b9671222582a6217d526317a41262ae06c7a95de53bcbeb","src/binary_reader.rs":"e523ef680480c5a106e0238b1fa4eb77ecaabc2652b65d5dc0f683ee0eed66d7","src/lib.rs":"bc786f619be99366d838c8837416c9008fa15beb873395e8b9ab98579a6b1c18","src/limits.rs":"4e4f9b7ed1d26e7a6727e36b136015cd9f4e38f596b3c8f82236789f45905cae","src/operators_validator.rs":"be295f7529ba863884a10d3236ee3e39c2b4b138ae5a1343b15612a367cd99ca","src/parser.rs":"9b1ab93de63117cfc43900cc99c9912dcd307b347ca982eb4e307331edab4ca2","src/primitives.rs":"9f1417b9dba839c548d9afd94488be7c1d179d243cfeca4f8b10c9805995af62","src/readers/code_section.rs":"2034c399b76428ac993c22f551f3c541b132d8b4ccc74e34f0043e25534d107b","src/readers/data_count_section.rs":"27ef37517b6beac21245008b14b5416b851c52d0af8e2ae85c1456674e1c9a9e","src/readers/data_section.rs":"e7e2a539d2d3049d4a8f68df9ea2f21d97e7061657bbd91845e1df3e9c1f2ebc","src/readers/element_section.rs":"e31e1d819c0b10acf58b8975238554245defe36db1c3206683b056c52978fb21","src/readers/export_section.rs":"7c74f7a11406a95c162f6ad4f77aafd0b1eee309f33b69f06bea12b23925e143","src/readers/function_section.rs":"57c0479ba8d7f61908ed74e86cbc26553fdd6d2d952f032ce29385a39f82efd3","src/readers/global_section.rs":"5fa18bed0fffadcc2dbdcbaedbe4e4398992fd1ce9e611b0319333a7681082ac","src/readers/import_section.rs":"1db4bf7290d04783d5cf526050d025b15a1daaf2bd97fca1a92ecb873d48f641","src/readers/init_expr.rs":"7020c80013dad4518a5f969c3ab4d624b46d778f03e632871cf343964f63441c","src/readers/linking_section.rs":"9df71f3ee5356f0d273c099212213353080001e261ca697caddf6b847fb5af09","src/readers/memory_section.rs":"83212f86cfc40d18fb392e9234c880afdf443f4af38a727ba346f9c740ef8718","src/readers/mod.rs":"13822fff4190b72f6ae14e29635d2c148a38ee972e148eb99a4688b0309bc2c9","src/readers/module.rs":"66473e7077b3d77ed01ed58d2796c8de7afdb2b90f2b0669c06fa90ca1b3434e","src/readers/name_section.rs":"297f57393d5fef745ec265438108aa6eb7ed2762c03c3beb539493612442f3da","src/readers/operators.rs":"da43ee8afcb0c1d6e7f1e19e8a10143101f0c598b1e533a394c7397f43881a82","src/readers/producers_section.rs":"674f402fc4545c94487f827153871b37adab44ed5eff4070a436eb18e514023a","src/readers/reloc_section.rs":"0ef818a8b83a4542c4c29c23642436a92d3e7c37bc0248e817ed5a9d65ec38ce","src/readers/section_reader.rs":"3d2260449fa0455d710ba6d97810372ec36cba70722c10dd236c3a18ca0eb56f","src/readers/sourcemappingurl_section.rs":"ababe84d51e4817ad19f827aa2b5239578e7f202e5ec06dd688b618885138434","src/readers/start_section.rs":"3eeae00e1aa0fcb2e0d93b7b0eaac30a60d3f1431c71c589cd3f73adb363d532","src/readers/table_section.rs":"e564876825a7b31df2b5dc850279b523e26dc50a08da935cc8d635a49e809951","src/readers/type_section.rs":"2fa33a7b793f3bfa01c259b5dbc38633b7343931886ab41f0cb96dd78db3bf6e","src/tests.rs":"927ed18fc70cf340a02b3e2f7f535a062003fcc3d6f66857093c431b88054dd3","src/validator.rs":"592db08da9b2f6a6cd658faac06d737434de98a09fd8bdc125e7a3c7f003d008","test-all.sh":"ff894f4e5e34389ad6ef697bd4ade28a2483dd456eabba8b757945546568f4c9","test-no_std.sh":"f8bc939b378fe618b7ec6297152708e7c8740858eb94e5756464934a38796b8c"},"package":"8a6f324afc05fd8282bbc49dae854a1c20f74aeff10a575b5a43453d1864db97"} \ No newline at end of file +{"files":{"Cargo.toml":"262449f0052477b2921b1eb9ec4356227b1d411ab704733542e1e6103e8474ad","LICENSE":"a6c48161a09acc75a0e25503bab66a731eb5fba5392ed4bb4743e4ba5085327a","README.md":"13ea373a411dfa7371cd994736289bb000db51957da92315fecbcc9fe7dcab92","benches/benchmark.rs":"6220edf25e89eac0073c4a9e75d1e483bbaf0059bd1dbad00100027ae1b360cf","compare-master.sh":"165490eab36ef4eceb2913a6c5cdeff479a05e1e0119a7f4551b03dbcda51ad4","examples/dump.rs":"de2bbdba75e21b9ff92b32697b3d9941f8695b8f7e3a8dee8fc5d7f4c3a0649c","examples/simple.rs":"c79ae542913e72cfcd03711543d173b2e8f62783e6c206459953bdb94dbb8c0c","format-all.sh":"6b02a40629ef3d2c0b9671222582a6217d526317a41262ae06c7a95de53bcbeb","src/binary_reader.rs":"8fcb019ecc10b364fa3cf705db44c76c35c5b0302164ab2cc3791041184934e3","src/lib.rs":"abcb8d4f9a604fbc0997add13a0213bc9abc163ac6c2d4534096a3d620a0bd0f","src/limits.rs":"4e4f9b7ed1d26e7a6727e36b136015cd9f4e38f596b3c8f82236789f45905cae","src/operators_validator.rs":"6b2e74d37b4ce205f3a4e94737cbe7bd818ef98fbbf5b3a3a860b91ca6ff00bb","src/parser.rs":"c5afcf039a62952f4e674773416d4c4507711d10b4248ed3bce5e1223cc97034","src/primitives.rs":"166390d1a8c00f17cd1c9a9bd1589fb3a9012df4f482b6d339d85198b31494f6","src/readers/code_section.rs":"2034c399b76428ac993c22f551f3c541b132d8b4ccc74e34f0043e25534d107b","src/readers/data_count_section.rs":"27ef37517b6beac21245008b14b5416b851c52d0af8e2ae85c1456674e1c9a9e","src/readers/data_section.rs":"e7e2a539d2d3049d4a8f68df9ea2f21d97e7061657bbd91845e1df3e9c1f2ebc","src/readers/element_section.rs":"e31e1d819c0b10acf58b8975238554245defe36db1c3206683b056c52978fb21","src/readers/export_section.rs":"7c74f7a11406a95c162f6ad4f77aafd0b1eee309f33b69f06bea12b23925e143","src/readers/function_section.rs":"57c0479ba8d7f61908ed74e86cbc26553fdd6d2d952f032ce29385a39f82efd3","src/readers/global_section.rs":"5fa18bed0fffadcc2dbdcbaedbe4e4398992fd1ce9e611b0319333a7681082ac","src/readers/import_section.rs":"1db4bf7290d04783d5cf526050d025b15a1daaf2bd97fca1a92ecb873d48f641","src/readers/init_expr.rs":"7020c80013dad4518a5f969c3ab4d624b46d778f03e632871cf343964f63441c","src/readers/linking_section.rs":"9df71f3ee5356f0d273c099212213353080001e261ca697caddf6b847fb5af09","src/readers/memory_section.rs":"83212f86cfc40d18fb392e9234c880afdf443f4af38a727ba346f9c740ef8718","src/readers/mod.rs":"13822fff4190b72f6ae14e29635d2c148a38ee972e148eb99a4688b0309bc2c9","src/readers/module.rs":"3b5e687874fd6211b8e083d7a8589c50dd80377eb85c605b21e505da5f546899","src/readers/name_section.rs":"297f57393d5fef745ec265438108aa6eb7ed2762c03c3beb539493612442f3da","src/readers/operators.rs":"da43ee8afcb0c1d6e7f1e19e8a10143101f0c598b1e533a394c7397f43881a82","src/readers/producers_section.rs":"674f402fc4545c94487f827153871b37adab44ed5eff4070a436eb18e514023a","src/readers/reloc_section.rs":"0ef818a8b83a4542c4c29c23642436a92d3e7c37bc0248e817ed5a9d65ec38ce","src/readers/section_reader.rs":"3d2260449fa0455d710ba6d97810372ec36cba70722c10dd236c3a18ca0eb56f","src/readers/sourcemappingurl_section.rs":"ababe84d51e4817ad19f827aa2b5239578e7f202e5ec06dd688b618885138434","src/readers/start_section.rs":"3eeae00e1aa0fcb2e0d93b7b0eaac30a60d3f1431c71c589cd3f73adb363d532","src/readers/table_section.rs":"e564876825a7b31df2b5dc850279b523e26dc50a08da935cc8d635a49e809951","src/readers/type_section.rs":"2fa33a7b793f3bfa01c259b5dbc38633b7343931886ab41f0cb96dd78db3bf6e","src/tests.rs":"f8aaad098140ed6e50f3273aa39d7dab825bef9ba5e24bbc6e2ec4156348c942","src/validator.rs":"1a85ab9028b937f43ba94cb2a38599179ce3fe79015377515c4307b6a39fc78c","test-all.sh":"ff894f4e5e34389ad6ef697bd4ade28a2483dd456eabba8b757945546568f4c9","test-no_std.sh":"f8bc939b378fe618b7ec6297152708e7c8740858eb94e5756464934a38796b8c"},"package":"22d1801de30f112ddaf665291097694ee33a36d1cb414b53a921d05b3519674a"} \ No newline at end of file diff --git a/third_party/rust/wasmparser/Cargo.toml b/third_party/rust/wasmparser/Cargo.toml index f60d0fda42f9..aab64ca38e97 100644 --- a/third_party/rust/wasmparser/Cargo.toml +++ b/third_party/rust/wasmparser/Cargo.toml @@ -11,8 +11,9 @@ # will likely look very different (and much more reasonable) [package] +edition = "2018" name = "wasmparser" -version = "0.31.1" +version = "0.32.1" authors = ["Yury Delendik "] exclude = ["fuzz/**/*", "tests/**/*"] description = "A simple event-driven library for parsing WebAssembly binary files.\n" @@ -23,14 +24,14 @@ repository = "https://github.com/yurydelendik/wasmparser.rs" [[bench]] name = "benchmark" harness = false -[dependencies.hashmap_core] -version = "0.1.10" +[dependencies.hashbrown] +version = "0.5.0" optional = true [dev-dependencies.criterion] version = "0.2" [features] -core = ["hashmap_core"] +core = ["hashbrown"] default = ["std"] std = [] [badges.travis-ci] diff --git a/third_party/rust/wasmparser/benches/benchmark.rs b/third_party/rust/wasmparser/benches/benchmark.rs index dc806099a1c9..510d7e4e12ba 100644 --- a/third_party/rust/wasmparser/benches/benchmark.rs +++ b/third_party/rust/wasmparser/benches/benchmark.rs @@ -11,6 +11,7 @@ const VALIDATOR_CONFIG: Option = Some(ValidatingParserCo enable_reference_types: true, enable_simd: true, enable_bulk_memory: true, + enable_multi_value: true, }, mutable_global_imports: true, }); diff --git a/third_party/rust/wasmparser/src/binary_reader.rs b/third_party/rust/wasmparser/src/binary_reader.rs index 296125ae5ce6..48e9e51d34d4 100644 --- a/third_party/rust/wasmparser/src/binary_reader.rs +++ b/third_party/rust/wasmparser/src/binary_reader.rs @@ -17,15 +17,15 @@ use std::boxed::Box; use std::str; use std::vec::Vec; -use limits::{ +use crate::limits::{ MAX_WASM_FUNCTION_LOCALS, MAX_WASM_FUNCTION_PARAMS, MAX_WASM_FUNCTION_RETURNS, MAX_WASM_FUNCTION_SIZE, MAX_WASM_STRING_SIZE, }; -use primitives::{ +use crate::primitives::{ BinaryReaderError, BrTable, CustomSectionKind, ExternalKind, FuncType, GlobalType, Ieee32, Ieee64, LinkingType, MemoryImmediate, MemoryType, NameType, Operator, RelocType, - ResizableLimits, Result, SIMDLineIndex, SectionCode, TableType, Type, TypeOrFuncType, V128, + ResizableLimits, Result, SIMDLaneIndex, SectionCode, TableType, Type, TypeOrFuncType, V128, }; const MAX_WASM_BR_TABLE_SIZE: usize = MAX_WASM_FUNCTION_SIZE; @@ -814,7 +814,7 @@ impl<'a> BinaryReader<'a> { } else { self.position = position; let idx = self.read_var_s33()?; - if idx < 0 || idx > (::std::u32::MAX as i64) { + if idx < 0 || idx > (core::u32::MAX as i64) { return Err(BinaryReaderError { message: "invalid function type", offset: position, @@ -1218,15 +1218,15 @@ impl<'a> BinaryReader<'a> { }) } - fn read_line_index(&mut self, max: u32) -> Result { + fn read_lane_index(&mut self, max: u32) -> Result { let index = self.read_u8()?; if index >= max { return Err(BinaryReaderError { - message: "line index out of range", + message: "lane index out of range", offset: self.original_position() - 1, }); } - Ok(index as SIMDLineIndex) + Ok(index as SIMDLaneIndex) } fn read_v128(&mut self) -> Result { @@ -1248,59 +1248,59 @@ impl<'a> BinaryReader<'a> { value: self.read_v128()?, }, 0x03 => { - let mut lines = [0 as SIMDLineIndex; 16]; + let mut lanes = [0 as SIMDLaneIndex; 16]; for i in 0..16 { - lines[i] = self.read_line_index(32)? + lanes[i] = self.read_lane_index(32)? } - Operator::V8x16Shuffle { lines } + Operator::V8x16Shuffle { lanes } } 0x04 => Operator::I8x16Splat, 0x05 => Operator::I8x16ExtractLaneS { - line: self.read_line_index(16)?, + lane: self.read_lane_index(16)?, }, 0x06 => Operator::I8x16ExtractLaneU { - line: self.read_line_index(16)?, + lane: self.read_lane_index(16)?, }, 0x07 => Operator::I8x16ReplaceLane { - line: self.read_line_index(16)?, + lane: self.read_lane_index(16)?, }, 0x08 => Operator::I16x8Splat, 0x09 => Operator::I16x8ExtractLaneS { - line: self.read_line_index(8)?, + lane: self.read_lane_index(8)?, }, 0x0a => Operator::I16x8ExtractLaneU { - line: self.read_line_index(8)?, + lane: self.read_lane_index(8)?, }, 0x0b => Operator::I16x8ReplaceLane { - line: self.read_line_index(8)?, + lane: self.read_lane_index(8)?, }, 0x0c => Operator::I32x4Splat, 0x0d => Operator::I32x4ExtractLane { - line: self.read_line_index(4)?, + lane: self.read_lane_index(4)?, }, 0x0e => Operator::I32x4ReplaceLane { - line: self.read_line_index(4)?, + lane: self.read_lane_index(4)?, }, 0x0f => Operator::I64x2Splat, 0x10 => Operator::I64x2ExtractLane { - line: self.read_line_index(2)?, + lane: self.read_lane_index(2)?, }, 0x11 => Operator::I64x2ReplaceLane { - line: self.read_line_index(2)?, + lane: self.read_lane_index(2)?, }, 0x12 => Operator::F32x4Splat, 0x13 => Operator::F32x4ExtractLane { - line: self.read_line_index(4)?, + lane: self.read_lane_index(4)?, }, 0x14 => Operator::F32x4ReplaceLane { - line: self.read_line_index(4)?, + lane: self.read_lane_index(4)?, }, 0x15 => Operator::F64x2Splat, 0x16 => Operator::F64x2ExtractLane { - line: self.read_line_index(2)?, + lane: self.read_lane_index(2)?, }, 0x17 => Operator::F64x2ReplaceLane { - line: self.read_line_index(2)?, + lane: self.read_lane_index(2)?, }, 0x18 => Operator::I8x16Eq, 0x19 => Operator::I8x16Ne, @@ -1418,6 +1418,14 @@ impl<'a> BinaryReader<'a> { 0xb0 => Operator::F32x4ConvertUI32x4, 0xb1 => Operator::F64x2ConvertSI64x2, 0xb2 => Operator::F64x2ConvertUI64x2, + 0xc0 => Operator::V8x16Shuffle1, + 0xc1 => { + let mut lanes = [0 as SIMDLaneIndex; 16]; + for i in 0..16 { + lanes[i] = self.read_lane_index(32)? + } + Operator::V8x16Shuffle2Imm { lanes } + } _ => { return Err(BinaryReaderError { message: "Unknown 0xfd opcode", diff --git a/third_party/rust/wasmparser/src/lib.rs b/third_party/rust/wasmparser/src/lib.rs index e1e6e48e38dc..545cceae8371 100644 --- a/third_party/rust/wasmparser/src/lib.rs +++ b/third_party/rust/wasmparser/src/lib.rs @@ -26,95 +26,100 @@ #![cfg_attr(not(feature = "std"), no_std)] #[cfg(not(feature = "std"))] -extern crate hashmap_core; +#[macro_use] +extern crate alloc as std; +#[cfg(feature = "std")] +#[macro_use] +extern crate std; #[cfg(not(feature = "std"))] -#[macro_use] -extern crate alloc; +use hashbrown::HashSet; +#[cfg(feature = "std")] +use std::collections::HashSet; -pub use binary_reader::BinaryReader; -pub use binary_reader::Range; -use binary_reader::SectionHeader; +pub use crate::binary_reader::BinaryReader; +pub use crate::binary_reader::Range; +use crate::binary_reader::SectionHeader; -pub use parser::LocalName; -pub use parser::NameEntry; -pub use parser::Parser; -pub use parser::ParserInput; -pub use parser::ParserState; -pub use parser::RelocEntry; -pub use parser::WasmDecoder; +pub use crate::parser::LocalName; +pub use crate::parser::NameEntry; +pub use crate::parser::Parser; +pub use crate::parser::ParserInput; +pub use crate::parser::ParserState; +pub use crate::parser::RelocEntry; +pub use crate::parser::WasmDecoder; -pub use primitives::BinaryReaderError; -pub use primitives::BrTable; -pub use primitives::CustomSectionKind; -pub use primitives::ExternalKind; -pub use primitives::FuncType; -pub use primitives::GlobalType; -pub use primitives::Ieee32; -pub use primitives::Ieee64; -pub use primitives::ImportSectionEntryType; -pub use primitives::LinkingType; -pub use primitives::MemoryImmediate; -pub use primitives::MemoryType; -pub use primitives::NameType; -pub use primitives::Naming; -pub use primitives::Operator; -pub use primitives::RelocType; -pub use primitives::ResizableLimits; -pub use primitives::Result; -pub use primitives::SectionCode; -pub use primitives::TableType; -pub use primitives::Type; -pub use primitives::TypeOrFuncType; -pub use primitives::V128; +pub use crate::primitives::BinaryReaderError; +pub use crate::primitives::BrTable; +pub use crate::primitives::CustomSectionKind; +pub use crate::primitives::ExternalKind; +pub use crate::primitives::FuncType; +pub use crate::primitives::GlobalType; +pub use crate::primitives::Ieee32; +pub use crate::primitives::Ieee64; +pub use crate::primitives::ImportSectionEntryType; +pub use crate::primitives::LinkingType; +pub use crate::primitives::MemoryImmediate; +pub use crate::primitives::MemoryType; +pub use crate::primitives::NameType; +pub use crate::primitives::Naming; +pub use crate::primitives::Operator; +pub use crate::primitives::RelocType; +pub use crate::primitives::ResizableLimits; +pub use crate::primitives::Result; +pub use crate::primitives::SectionCode; +pub use crate::primitives::TableType; +pub use crate::primitives::Type; +pub use crate::primitives::TypeOrFuncType; +pub use crate::primitives::V128; -pub use validator::validate; -pub use validator::validate_function_body; -pub use validator::ValidatingOperatorParser; -pub use validator::ValidatingParser; -pub use validator::ValidatingParserConfig; +pub use crate::validator::validate; +pub use crate::validator::validate_function_body; +pub use crate::validator::ValidatingOperatorParser; +pub use crate::validator::ValidatingParser; +pub use crate::validator::ValidatingParserConfig; -pub use operators_validator::OperatorValidatorConfig; -pub use operators_validator::WasmModuleResources; +pub use crate::operators_validator::OperatorValidatorConfig; +pub use crate::operators_validator::WasmModuleResources; -pub use readers::CodeSectionReader; -pub use readers::Data; -pub use readers::DataKind; -pub use readers::DataSectionReader; -pub use readers::Element; -pub use readers::ElementItems; -pub use readers::ElementItemsReader; -pub use readers::ElementKind; -pub use readers::ElementSectionReader; -pub use readers::Export; -pub use readers::ExportSectionReader; -pub use readers::FunctionBody; -pub use readers::FunctionSectionReader; -pub use readers::Global; -pub use readers::GlobalSectionReader; -pub use readers::Import; -pub use readers::ImportSectionReader; -pub use readers::InitExpr; -pub use readers::LinkingSectionReader; -pub use readers::LocalsReader; -pub use readers::MemorySectionReader; -pub use readers::ModuleReader; -pub use readers::Name; -pub use readers::NameSectionReader; -pub use readers::NamingReader; -pub use readers::OperatorsReader; -pub use readers::ProducersField; -pub use readers::ProducersFieldValue; -pub use readers::ProducersSectionReader; -pub use readers::Reloc; -pub use readers::RelocSectionReader; -pub use readers::Section; -pub use readers::SectionIterator; -pub use readers::SectionIteratorLimited; -pub use readers::SectionReader; -pub use readers::SectionWithLimitedItems; -pub use readers::TableSectionReader; -pub use readers::TypeSectionReader; +pub use crate::readers::CodeSectionReader; +pub use crate::readers::Data; +pub use crate::readers::DataKind; +pub use crate::readers::DataSectionReader; +pub use crate::readers::Element; +pub use crate::readers::ElementItems; +pub use crate::readers::ElementItemsReader; +pub use crate::readers::ElementKind; +pub use crate::readers::ElementSectionReader; +pub use crate::readers::Export; +pub use crate::readers::ExportSectionReader; +pub use crate::readers::FunctionBody; +pub use crate::readers::FunctionSectionReader; +pub use crate::readers::Global; +pub use crate::readers::GlobalSectionReader; +pub use crate::readers::Import; +pub use crate::readers::ImportSectionReader; +pub use crate::readers::InitExpr; +pub use crate::readers::LinkingSectionReader; +pub use crate::readers::LocalsReader; +pub use crate::readers::MemorySectionReader; +pub use crate::readers::ModuleReader; +pub use crate::readers::Name; +pub use crate::readers::NameSectionReader; +pub use crate::readers::NamingReader; +pub use crate::readers::OperatorsReader; +pub use crate::readers::ProducersField; +pub use crate::readers::ProducersFieldValue; +pub use crate::readers::ProducersSectionReader; +pub use crate::readers::Reloc; +pub use crate::readers::RelocSectionReader; +pub use crate::readers::Section; +pub use crate::readers::SectionIterator; +pub use crate::readers::SectionIteratorLimited; +pub use crate::readers::SectionReader; +pub use crate::readers::SectionWithLimitedItems; +pub use crate::readers::TableSectionReader; +pub use crate::readers::TypeSectionReader; mod binary_reader; mod limits; @@ -124,12 +129,3 @@ mod primitives; mod readers; mod tests; mod validator; - -#[cfg(not(feature = "std"))] -mod std { - pub use alloc::{boxed, string, vec}; - pub use core::*; - pub mod collections { - pub use hashmap_core::HashSet; - } -} diff --git a/third_party/rust/wasmparser/src/operators_validator.rs b/third_party/rust/wasmparser/src/operators_validator.rs index e7d8309a1ed0..24f273ab8e3a 100644 --- a/third_party/rust/wasmparser/src/operators_validator.rs +++ b/third_party/rust/wasmparser/src/operators_validator.rs @@ -13,13 +13,13 @@ * limitations under the License. */ -use std::cmp::min; -use std::result; +use core::cmp::min; +use core::result; use std::str; use std::vec::Vec; -use primitives::{ - FuncType, GlobalType, MemoryImmediate, MemoryType, Operator, SIMDLineIndex, TableType, Type, +use crate::primitives::{ + FuncType, GlobalType, MemoryImmediate, MemoryType, Operator, SIMDLaneIndex, TableType, Type, TypeOrFuncType, }; @@ -455,7 +455,7 @@ impl OperatorValidator { resources: &dyn WasmModuleResources, ) -> OperatorValidatorResult<()> { if memory_index as usize >= resources.memories().len() { - return Err("no liner memories are present"); + return Err("no linear memories are present"); } Ok(()) } @@ -466,7 +466,7 @@ impl OperatorValidator { resources: &dyn WasmModuleResources, ) -> OperatorValidatorResult<()> { if memory_index as usize >= resources.memories().len() { - return Err("no liner memories are present"); + return Err("no linear memories are present"); } if !resources.memories()[memory_index as usize].shared { return Err("atomic accesses require shared memory"); @@ -525,7 +525,7 @@ impl OperatorValidator { Ok(()) } - fn check_simd_line_index(&self, index: SIMDLineIndex, max: u8) -> OperatorValidatorResult<()> { + fn check_simd_lane_index(&self, index: SIMDLaneIndex, max: u8) -> OperatorValidatorResult<()> { if index >= max { return Err("SIMD index out of bounds"); } @@ -1250,11 +1250,11 @@ impl OperatorValidator { self.check_simd_enabled()?; self.func_state.change_frame_with_type(0, Type::V128)?; } - Operator::V8x16Shuffle { ref lines } => { + Operator::V8x16Shuffle { ref lanes } => { self.check_simd_enabled()?; self.check_operands_2(Type::V128, Type::V128)?; - for i in lines { - self.check_simd_line_index(*i, 32)?; + for i in lanes { + self.check_simd_lane_index(*i, 32)?; } self.func_state.change_frame_with_type(2, Type::V128)?; } @@ -1278,75 +1278,75 @@ impl OperatorValidator { self.check_operands_1(Type::F64)?; self.func_state.change_frame_with_type(1, Type::V128)?; } - Operator::I8x16ExtractLaneS { line } | Operator::I8x16ExtractLaneU { line } => { + Operator::I8x16ExtractLaneS { lane } | Operator::I8x16ExtractLaneU { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 16)?; + self.check_simd_lane_index(lane, 16)?; self.check_operands_1(Type::V128)?; self.func_state.change_frame_with_type(1, Type::I32)?; } - Operator::I16x8ExtractLaneS { line } | Operator::I16x8ExtractLaneU { line } => { + Operator::I16x8ExtractLaneS { lane } | Operator::I16x8ExtractLaneU { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 8)?; + self.check_simd_lane_index(lane, 8)?; self.check_operands_1(Type::V128)?; self.func_state.change_frame_with_type(1, Type::I32)?; } - Operator::I32x4ExtractLane { line } => { + Operator::I32x4ExtractLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 4)?; + self.check_simd_lane_index(lane, 4)?; self.check_operands_1(Type::V128)?; self.func_state.change_frame_with_type(1, Type::I32)?; } - Operator::I8x16ReplaceLane { line } => { + Operator::I8x16ReplaceLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 16)?; + self.check_simd_lane_index(lane, 16)?; self.check_operands_2(Type::V128, Type::I32)?; self.func_state.change_frame_with_type(2, Type::V128)?; } - Operator::I16x8ReplaceLane { line } => { + Operator::I16x8ReplaceLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 8)?; + self.check_simd_lane_index(lane, 8)?; self.check_operands_2(Type::V128, Type::I32)?; self.func_state.change_frame_with_type(2, Type::V128)?; } - Operator::I32x4ReplaceLane { line } => { + Operator::I32x4ReplaceLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 4)?; + self.check_simd_lane_index(lane, 4)?; self.check_operands_2(Type::V128, Type::I32)?; self.func_state.change_frame_with_type(2, Type::V128)?; } - Operator::I64x2ExtractLane { line } => { + Operator::I64x2ExtractLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 2)?; + self.check_simd_lane_index(lane, 2)?; self.check_operands_1(Type::V128)?; self.func_state.change_frame_with_type(1, Type::I64)?; } - Operator::I64x2ReplaceLane { line } => { + Operator::I64x2ReplaceLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 2)?; + self.check_simd_lane_index(lane, 2)?; self.check_operands_2(Type::V128, Type::I64)?; self.func_state.change_frame_with_type(2, Type::V128)?; } - Operator::F32x4ExtractLane { line } => { + Operator::F32x4ExtractLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 4)?; + self.check_simd_lane_index(lane, 4)?; self.check_operands_1(Type::V128)?; self.func_state.change_frame_with_type(1, Type::F32)?; } - Operator::F32x4ReplaceLane { line } => { + Operator::F32x4ReplaceLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 4)?; + self.check_simd_lane_index(lane, 4)?; self.check_operands_2(Type::V128, Type::F32)?; self.func_state.change_frame_with_type(2, Type::V128)?; } - Operator::F64x2ExtractLane { line } => { + Operator::F64x2ExtractLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 2)?; + self.check_simd_lane_index(lane, 2)?; self.check_operands_1(Type::V128)?; self.func_state.change_frame_with_type(1, Type::F64)?; } - Operator::F64x2ReplaceLane { line } => { + Operator::F64x2ReplaceLane { lane } => { self.check_simd_enabled()?; - self.check_simd_line_index(line, 2)?; + self.check_simd_lane_index(lane, 2)?; self.check_operands_2(Type::V128, Type::F64)?; self.func_state.change_frame_with_type(2, Type::V128)?; } @@ -1456,7 +1456,7 @@ impl OperatorValidator { Operator::V128Bitselect => { self.check_simd_enabled()?; self.check_operands(&[Type::V128, Type::V128, Type::V128])?; - self.func_state.change_frame_with_type(2, Type::V128)?; + self.func_state.change_frame_with_type(3, Type::V128)?; } Operator::I8x16AnyTrue | Operator::I8x16AllTrue @@ -1484,7 +1484,20 @@ impl OperatorValidator { | Operator::I64x2ShrU => { self.check_simd_enabled()?; self.check_operands_2(Type::V128, Type::I32)?; - self.func_state.change_frame_with_type(1, Type::V128)?; + self.func_state.change_frame_with_type(2, Type::V128)?; + } + Operator::V8x16Shuffle1 => { + self.check_simd_enabled()?; + self.check_operands_2(Type::V128, Type::V128)?; + self.func_state.change_frame_with_type(2, Type::V128)?; + } + Operator::V8x16Shuffle2Imm { ref lanes } => { + self.check_simd_enabled()?; + self.check_operands_2(Type::V128, Type::V128)?; + for i in lanes { + self.check_simd_lane_index(*i, 32)?; + } + self.func_state.change_frame_with_type(2, Type::V128)?; } Operator::MemoryInit { segment } => { diff --git a/third_party/rust/wasmparser/src/parser.rs b/third_party/rust/wasmparser/src/parser.rs index 589c4fa96c91..ee6dbf8b2927 100644 --- a/third_party/rust/wasmparser/src/parser.rs +++ b/third_party/rust/wasmparser/src/parser.rs @@ -17,17 +17,17 @@ use std::boxed::Box; use std::vec::Vec; -use limits::{ +use crate::limits::{ MAX_WASM_FUNCTIONS, MAX_WASM_FUNCTION_LOCALS, MAX_WASM_STRING_SIZE, MAX_WASM_TABLE_ENTRIES, }; -use primitives::{ +use crate::primitives::{ BinaryReaderError, CustomSectionKind, ExternalKind, FuncType, GlobalType, ImportSectionEntryType, LinkingType, MemoryType, Naming, Operator, RelocType, Result, SectionCode, TableType, Type, }; -use readers::{ +use crate::readers::{ CodeSectionReader, Data, DataKind, DataSectionReader, Element, ElementItems, ElementKind, ElementSectionReader, Export, ExportSectionReader, FunctionBody, FunctionSectionReader, Global, GlobalSectionReader, Import, ImportSectionReader, LinkingSectionReader, MemorySectionReader, @@ -35,7 +35,7 @@ use readers::{ RelocSectionReader, Section, SectionReader, TableSectionReader, TypeSectionReader, }; -use binary_reader::{BinaryReader, Range}; +use crate::binary_reader::{BinaryReader, Range}; const MAX_DATA_CHUNK_SIZE: usize = MAX_WASM_STRING_SIZE; diff --git a/third_party/rust/wasmparser/src/primitives.rs b/third_party/rust/wasmparser/src/primitives.rs index 4b087c70598b..a10cc9cd8abd 100644 --- a/third_party/rust/wasmparser/src/primitives.rs +++ b/third_party/rust/wasmparser/src/primitives.rs @@ -13,9 +13,9 @@ * limitations under the License. */ +use core::result; use std::boxed::Box; use std::fmt; -use std::result; #[cfg(feature = "std")] use std::error::Error; @@ -227,7 +227,7 @@ impl V128 { } } -pub type SIMDLineIndex = u8; +pub type SIMDLaneIndex = u8; /// Instructions as defined [here]. /// @@ -513,27 +513,27 @@ pub enum Operator<'a> { V128Load { memarg: MemoryImmediate }, V128Store { memarg: MemoryImmediate }, V128Const { value: V128 }, - V8x16Shuffle { lines: [SIMDLineIndex; 16] }, + V8x16Shuffle { lanes: [SIMDLaneIndex; 16] }, I8x16Splat, - I8x16ExtractLaneS { line: SIMDLineIndex }, - I8x16ExtractLaneU { line: SIMDLineIndex }, - I8x16ReplaceLane { line: SIMDLineIndex }, + I8x16ExtractLaneS { lane: SIMDLaneIndex }, + I8x16ExtractLaneU { lane: SIMDLaneIndex }, + I8x16ReplaceLane { lane: SIMDLaneIndex }, I16x8Splat, - I16x8ExtractLaneS { line: SIMDLineIndex }, - I16x8ExtractLaneU { line: SIMDLineIndex }, - I16x8ReplaceLane { line: SIMDLineIndex }, + I16x8ExtractLaneS { lane: SIMDLaneIndex }, + I16x8ExtractLaneU { lane: SIMDLaneIndex }, + I16x8ReplaceLane { lane: SIMDLaneIndex }, I32x4Splat, - I32x4ExtractLane { line: SIMDLineIndex }, - I32x4ReplaceLane { line: SIMDLineIndex }, + I32x4ExtractLane { lane: SIMDLaneIndex }, + I32x4ReplaceLane { lane: SIMDLaneIndex }, I64x2Splat, - I64x2ExtractLane { line: SIMDLineIndex }, - I64x2ReplaceLane { line: SIMDLineIndex }, + I64x2ExtractLane { lane: SIMDLaneIndex }, + I64x2ReplaceLane { lane: SIMDLaneIndex }, F32x4Splat, - F32x4ExtractLane { line: SIMDLineIndex }, - F32x4ReplaceLane { line: SIMDLineIndex }, + F32x4ExtractLane { lane: SIMDLaneIndex }, + F32x4ReplaceLane { lane: SIMDLaneIndex }, F64x2Splat, - F64x2ExtractLane { line: SIMDLineIndex }, - F64x2ReplaceLane { line: SIMDLineIndex }, + F64x2ExtractLane { lane: SIMDLaneIndex }, + F64x2ReplaceLane { lane: SIMDLaneIndex }, I8x16Eq, I8x16Ne, I8x16LtS, @@ -650,4 +650,6 @@ pub enum Operator<'a> { F32x4ConvertUI32x4, F64x2ConvertSI64x2, F64x2ConvertUI64x2, + V8x16Shuffle1, + V8x16Shuffle2Imm { lanes: [SIMDLaneIndex; 16] }, } diff --git a/third_party/rust/wasmparser/src/readers/module.rs b/third_party/rust/wasmparser/src/readers/module.rs index dcceccf9cc63..535d99b66903 100644 --- a/third_party/rust/wasmparser/src/readers/module.rs +++ b/third_party/rust/wasmparser/src/readers/module.rs @@ -13,7 +13,7 @@ * limitations under the License. */ -use std::iter::{IntoIterator, Iterator}; +use core::iter::{IntoIterator, Iterator}; use super::{ BinaryReader, BinaryReaderError, CustomSectionKind, Range, Result, SectionCode, SectionHeader, diff --git a/third_party/rust/wasmparser/src/tests.rs b/third_party/rust/wasmparser/src/tests.rs index f805e9a9c38e..b5975c981fe5 100644 --- a/third_party/rust/wasmparser/src/tests.rs +++ b/third_party/rust/wasmparser/src/tests.rs @@ -16,13 +16,13 @@ #[cfg(feature = "std")] #[cfg(test)] mod simple_tests { - use operators_validator::OperatorValidatorConfig; - use parser::{Parser, ParserInput, ParserState, WasmDecoder}; - use primitives::{Operator, SectionCode}; + use crate::operators_validator::OperatorValidatorConfig; + use crate::parser::{Parser, ParserInput, ParserState, WasmDecoder}; + use crate::primitives::{Operator, SectionCode}; + use crate::validator::{ValidatingParser, ValidatingParserConfig}; use std::fs::{read_dir, File}; use std::io::prelude::*; use std::path::PathBuf; - use validator::{ValidatingParser, ValidatingParserConfig}; const VALIDATOR_CONFIG: Option = Some(ValidatingParserConfig { operator_config: OperatorValidatorConfig { diff --git a/third_party/rust/wasmparser/src/validator.rs b/third_party/rust/wasmparser/src/validator.rs index dd0b7e9e583f..aa66b07a5883 100644 --- a/third_party/rust/wasmparser/src/validator.rs +++ b/third_party/rust/wasmparser/src/validator.rs @@ -13,32 +13,32 @@ * limitations under the License. */ -use std::collections::HashSet; -use std::result; +use super::HashSet; +use core::result; use std::str; use std::string::String; use std::vec::Vec; -use limits::{ +use crate::limits::{ MAX_WASM_FUNCTIONS, MAX_WASM_FUNCTION_LOCALS, MAX_WASM_GLOBALS, MAX_WASM_MEMORIES, MAX_WASM_MEMORY_PAGES, MAX_WASM_TABLES, MAX_WASM_TYPES, }; -use binary_reader::BinaryReader; +use crate::binary_reader::BinaryReader; -use primitives::{ +use crate::primitives::{ BinaryReaderError, ExternalKind, FuncType, GlobalType, ImportSectionEntryType, MemoryType, Operator, ResizableLimits, Result, SectionCode, TableType, Type, }; -use parser::{Parser, ParserInput, ParserState, WasmDecoder}; +use crate::parser::{Parser, ParserInput, ParserState, WasmDecoder}; -use operators_validator::{ +use crate::operators_validator::{ FunctionEnd, OperatorValidator, OperatorValidatorConfig, WasmModuleResources, DEFAULT_OPERATOR_VALIDATOR_CONFIG, }; -use readers::FunctionBody; +use crate::readers::FunctionBody; type ValidatorResult<'a, T> = result::Result>; @@ -222,7 +222,11 @@ impl<'a> ValidatingParser<'a> { if let Type::Func = func_type.form { self.check_value_types(&*func_type.params)?; self.check_value_types(&*func_type.returns)?; - Ok(()) + if !self.config.operator_config.enable_multi_value && func_type.returns.len() > 1 { + self.create_error("func type returns multiple values") + } else { + Ok(()) + } } else { self.create_error("type signature is not a func") }