1781: Cranelift upgrade r=syrusakbary a=syrusakbary
<!--
Prior to submitting a PR, review the CONTRIBUTING.md document for recommendations on how to test:
https://github.com/wasmerio/wasmer/blob/master/CONTRIBUTING.md#pull-requests
-->
# Description
Upgrade Cranelift to `0.67`. This upgrade also enables all SIMD tests (with one small exception operator that is still not fixed in Cranelift).
<!--
Provide details regarding the change including motivation,
links to related issues, and the context of the PR.
-->
Co-authored-by: Syrus <me@syrusakbary.com>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
A new Arm64Linux ABI is added but it's an unedited copy of the X86_64SystemV one so far.
A bunch of cleanups from clippy. Use matches! more, don't pass &Box<dyn Abi>.
Use a load instruction before the store to ensure that all the memory is addressable. The loaded value is discarded.
NB. We don't apply this to atomics. It's not clear whether atomic stores can be half-committed.
Fixes align.wast and memory_trap.wast on aarch64.
Dynamic memory has the same struct as static memory, in particular the length field is not a pointer to a length field.
Also, send the correct trap code.
This is the first alpha release of `1.0.0`: expect breaking changes.
The version suffix `alpha01.0` was chosen so that we can ship updates
that automatically update with the latter number and can prevent
auto-updates by incrementing the former number (which is not actually
a number as far as semver is concerned).
Also because crates.io sorts versions lexicographically, it will
display the wrong readme if we get to alpha10, so we pad with an extra
0 just in case we need more than 9 releases of alpha.