Summary: | fourthTier: DFG should support switch_string | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | barraclough, ggaren, mark.lam, mhahnenberg, msaboff, oliver, sam | ||||||||||
Priority: | P2 | ||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||
Hardware: | All | ||||||||||||
OS: | All | ||||||||||||
Attachments: |
|
Description
Filip Pizlo
2013-06-24 18:16:50 PDT
Created attachment 205353 [details]
work in progress
*** Bug 117861 has been marked as a duplicate of this bug. *** Created attachment 205356 [details]
work in progress
Created attachment 205421 [details]
the patch
Comment on attachment 205421 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=205421&action=review > Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4969 > + // == commonChars. Hence we know that it now must be >= minLength, i.e., that Should say: "Hence we know that it now must be > minLength, ..." Comment on attachment 205421 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=205421&action=review > Source/JavaScriptCore/dfg/DFGBinarySwitch.h:46 > +// Use this like so: > +// > +// BinarySwitch switch(valueReg, casesVector, BinarySwitch::Int32); > +// while (switch.advance(jit)) { > +// int value = switch.caseValue(); > +// unsigned index = switch.caseIndex(); // index into casesVector, above > +// ... // generate code for this case > +// } > +// switch.fallThrough().link(&jit); I think this could use a description of what a BinarySwitch is going to be used for. (In reply to comment #6) > (From update of attachment 205421 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=205421&action=review > > > Source/JavaScriptCore/dfg/DFGBinarySwitch.h:46 > > +// Use this like so: > > +// > > +// BinarySwitch switch(valueReg, casesVector, BinarySwitch::Int32); > > +// while (switch.advance(jit)) { > > +// int value = switch.caseValue(); > > +// unsigned index = switch.caseIndex(); // index into casesVector, above > > +// ... // generate code for this case > > +// } > > +// switch.fallThrough().link(&jit); > > I think this could use a description of what a BinarySwitch is going to be used for. Will do! Created attachment 205445 [details]
patch for landing
Landed in http://trac.webkit.org/changeset/151979 |