Bug 72201 - Fix silent spilling/filling GPRs in DFG 32_64
Summary: Fix silent spilling/filling GPRs in DFG 32_64
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-11 18:52 PST by Yuqiang Xian
Modified: 2011-11-13 14:44 PST (History)
3 users (show)

See Also:


Attachments
the patch (16.15 KB, patch)
2011-11-11 18:57 PST, Yuqiang Xian
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yuqiang Xian 2011-11-11 18:52:12 PST
Current silentSpillGPR/silentFillGPR may not work as expected for some cases in 32_64. If there's a JSValue which was retained by two GPRs, we may end up failing to spill/fill some GPRs or redundantly spilling/filling some GPRs. For example, if we tend to exclude "eax" from spilling while a JSValue is retained by both "eax" and "edx", then "edx" won't be spilled as well (wrong). And if another JSValue is retained by "ecx" and "ebx", both "ecx" and "ebx" will be spilled twice. The similar problem applies to silentFillGPR.
The fix is to make silentSpillGPR/silentFillGPR more straightforward, i.e., spilling/filling based on the GPR instead of the virtual register. FPR spilling/filling is also modified accordingly to make it consistent with GPR spilling/filling.
Comment 1 Yuqiang Xian 2011-11-11 18:57:50 PST
Created attachment 114812 [details]
the patch
Comment 2 WebKit Review Bot 2011-11-13 14:44:33 PST
Comment on attachment 114812 [details]
the patch

Clearing flags on attachment: 114812

Committed r100095: <http://trac.webkit.org/changeset/100095>
Comment 3 WebKit Review Bot 2011-11-13 14:44:37 PST
All reviewed patches have been landed.  Closing bug.