Summary: | Implement switch statements in WebAssembly | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Sukolsak Sakshuwong <sukolsak> | ||||
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | commit-queue, fpizlo, ggaren, sukolsak | ||||
Priority: | P2 | ||||||
Version: | WebKit Nightly Build | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 146064 | ||||||
Attachments: |
|
Description
Sukolsak Sakshuwong
2015-09-10 17:02:39 PDT
Created attachment 260972 [details]
Patch
Here's what buildSwitch() in the LLVM IR generator will look like: void buildSwitch(LValue expression, const Vector<int64_t>& cases, const Vector<LBasicBlock>& targets, LBasicBlock defaultTarget) { Vector<FTL::SwitchCase> switchCases; switchCases.reserveInitialCapacity(cases.size()); for (size_t i = 0; i < cases.size(); ++i) switchCases.uncheckedAppend(FTL::SwitchCase(m_out.constInt32(static_cast<int32_t>(cases[i])), targets[i])); m_out.switchInstruction(expression, switchCases, defaultTarget, FTL::Weight()); } Comment on attachment 260972 [details]
Patch
r=me
Comment on attachment 260972 [details] Patch Clearing flags on attachment: 260972 Committed r189599: <http://trac.webkit.org/changeset/189599> All reviewed patches have been landed. Closing bug. |