Closed Bug 838535 Opened 7 years ago Closed 7 years ago

BaselineCompiler: Fix decompiler test failures

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(1 file)

Atm we have a fully synced stack when calling into the VM, except for values popped by the current op, which may be passed as arguments but are not necessarily on the stack.

To fix DVG, the IC fallback stubs have to push these before calling into the VM.

Should fix most jit-test and jsreftest failures.
Attached patch PatchSplinter Review
For every op the expression decompiler supports, this modifies the fallback IC stub to ensure the stack is fully synced (by pushing the values on the stack). The VM wrapper pops these extra values when it returns, so that we can still use a tail call and don't need a stub frame (entering/leaving a stub frame is a lot more overhead, esp if it's only for the decompiler...).
Attachment #710819 - Flags: review?(kvijayan)
Comment on attachment 710819 [details] [diff] [review]
Patch

Review of attachment 710819 [details] [diff] [review]:
-----------------------------------------------------------------

Quite an elegant solution.
Attachment #710819 - Flags: review?(kvijayan) → review+
Thanks for the quick review.

https://hg.mozilla.org/projects/ionmonkey/rev/fa4a6a5ae486
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.