gecko-dev/third_party/rust/cranelift-codegen
Chris Fallin 35cf81d389 Bug 1648885 and Bug 1649432: vendor latest Cranelift to get Spectre mitigations and fix fuzzbug. r=bbouvier
This patch pulls in Cranelift revision
47a218f908e6bdeb7a0fb65ed74e58a0b608080d, which incorporates several
relevant changes:

- It includes the Spectre mitigation for explicit heap bounds checks
  merged in PR bytecodealliance/wasmtime#1930, resolving Bug 1648885.

- It includes the fix for an out-of-bounds subtraction on large shift
  amounts merged in PR bytecodealliance/wasmtime#1954, resolving Bug
  1649432.

We need to temporarily disable the `wasm/limits.js` jit-test on
Cranelift configurations because it now needs shared memory to work, and
the Cranelift backend does not support this yet. Given that this should
be ready in the next month at most (requires atomics support on AArch64,
which is currently being examined), it seems simpler to temporarily
disable the test on aarch64 than to try to disentangle the bits that
depend on shared memories explicitly.

This patch also edits the `regexp/bug1445907.js` jit-test to run only if
Wasm debugging is supported. This is needed for the test not to fail
with `--wasm-compiler=cranelift` (which disables Baseline, the only Wasm
compiler that supports debugging).

Differential Revision: https://phabricator.services.mozilla.com/D81936
2020-07-02 15:47:56 +00:00
..
src Bug 1648885 and Bug 1649432: vendor latest Cranelift to get Spectre mitigations and fix fuzzbug. r=bbouvier 2020-07-02 15:47:56 +00:00
.cargo-checksum.json Bug 1648885 and Bug 1649432: vendor latest Cranelift to get Spectre mitigations and fix fuzzbug. r=bbouvier 2020-07-02 15:47:56 +00:00
Cargo.toml Bug 1645336: Bump Cranelift to 238ae3bf2111847f60089656eb97fc9345295b1f; r=jseward 2020-06-15 10:16:20 +00:00
LICENSE
README.md
build.rs Bug 1641504: Bump Cranelift to 4d5fdfcbba1a8f38002a4223d7a329fc795d0e9f. r=bbouvier 2020-06-11 23:34:39 +00:00

README.md

This crate contains the core Cranelift code generator. It translates code from an intermediate representation into executable machine code.