Summary: | Rationalize the handling of PutById transitions a bit | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | commit-queue, keith_miller, mark.lam, msaboff, saam | ||||||
Priority: | P2 | ||||||||
Version: | WebKit Nightly Build | ||||||||
Hardware: | All | ||||||||
OS: | All | ||||||||
Attachments: |
|
Description
Filip Pizlo
2016-04-06 21:37:12 PDT
Created attachment 275862 [details]
work in progress
Created attachment 275894 [details]
the patch
Comment on attachment 275894 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=275894&action=review r=me with fix. > Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:1050 > - if (newStructure()->outOfLineCapacity() != structure()->outOfLineCapacity() > - && structure()->outOfLineCapacity()) > + if (allocating) This should be "if (reallocating)". (In reply to comment #3) > Comment on attachment 275894 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=275894&action=review > > r=me with fix. > > > Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:1050 > > - if (newStructure()->outOfLineCapacity() != structure()->outOfLineCapacity() > > - && structure()->outOfLineCapacity()) > > + if (allocating) > > This should be "if (reallocating)". Actually, it needs to be "allocating" because we now use scratchGPR3 in the store barrier slow path, which happens when we're either allocating or reallocating. Comment on attachment 275894 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=275894&action=review >>> Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:1050 >>> + if (allocating) >> >> This should be "if (reallocating)". > > Actually, it needs to be "allocating" because we now use scratchGPR3 in the store barrier slow path, which happens when we're either allocating or reallocating. Oh, I missed that. LGTM. Landed in http://trac.webkit.org/changeset/199162 |