alexcrichton commented on issue #5819:
Ok I think the two new commits should address the
produces_const
expansion in addition to theGpr
-vs-Xmm
types. There's still more instructions that do conditional register allocation but I can try to tackle those separately.
github-actions[bot] commented on issue #5819:
Subscribe to Label Action
cc @cfallin, @fitzgen
<details>
This issue or pull request has been labeled: "cranelift", "cranelift:area:x64", "isle"Thus the following users have been cc'd because of the following labels:
- cfallin: isle
- fitzgen: isle
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
alexcrichton commented on issue #5819:
Local fuzzing has found an issue so taking this out of the merge queue.
alexcrichton commented on issue #5819:
Turned out to be a benign mistake where I forgot to call
add_trap
for VEX-encoded instructions with memory operands. Before merging this though I'm going to let the fuzzer run overnight.I've intentionally introduced an encoding bug where
vsprad
is encoded asvspraw
and I'm hoping to see thedifferential
fuzzer find this bug eventually with differential execution against v8.
alexcrichton commented on issue #5819:
Well score one for fuzzing. It took a few hours but the minimal test case was
(module (type (;0;) (func (param v128 i32) (result v128))) (func (;0;) (type 0) (param v128 i32) (result v128) local.get 0 local.get 1 i32x4.shr_s ) (export "test" (func 0)) )
where the differential difference was between wasmtime with avx and wasmtime without avx. That's exactly the bug I wanted the fuzzer to find, so yay confidence that fuzzing can find real bugs! I'll still let it run overnight to make sure nothing else crops up.
Last updated: Nov 22 2024 at 16:03 UTC