Closed
Bug 1592983
Opened 6 years ago
Closed 6 years ago
Only validate WebAssembly baseline stack in live code
Categories
(Core :: JavaScript: WebAssembly, defect, P3)
Core
JavaScript: WebAssembly
Tracking
()
RESOLVED
FIXED
mozilla72
| Tracking | Status | |
|---|---|---|
| firefox72 | --- | fixed |
People
(Reporter: wingo, Assigned: wingo)
References
Details
Attachments
(1 file)
Given this test (to be committed):
wasmFullPass(`
(module
(func (export "run") (result i32)
(i32.add
(block (result i32 i32)
(i32.const 32)
(i32.const 10)
(br 0)))))`,
42);
After the (br 0) -- which is right before the i32.add, in terms of instruction flow -- the assertStackInvariants check barfed because the Stk value stack no longer corresponded to the dynamic frame height:
Assertion failure: size == fr.dynamicHeight(), at /home/wingo/src/mozilla-unified/js/src/wasm/WasmBaselineCompile.cpp:4412
This is because writing the stack args for the branch resulted in codegen reserving some stack space, but the Stk stack was only reset once the block actually ended.
I think simply avoiding the debug check in dead code might be the right thing.
| Assignee | ||
Comment 1•6 years ago
|
||
Updated•6 years ago
|
Priority: -- → P3
Pushed by nbeleuzu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/39bc5b23a7a9
Only validate WebAssembly baseline stack in live code r=lth
Comment 3•6 years ago
|
||
| bugherder | ||
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox72:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
You need to log in
before you can comment on or make changes to this bug.
Description
•