[JSC] Use Data CallIC in unlinked DFG
Created attachment 455309 [details] Patch
Created attachment 455566 [details] Patch
Created attachment 455590 [details] Patch
Created attachment 455595 [details] Patch
Created attachment 455630 [details] Patch
Created attachment 455685 [details] Patch
Created attachment 455709 [details] Patch
Comment on attachment 455709 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=455709&action=review r=me with comments > Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:836 > + GPRTemporary callLinkInfoTemp(this, JITCompiler::selectScratchGPR(calleeGPR, GPRInfo::regT0)); This looks wrong to me. I think we want this GPRTemporary to stay around longer than the scope of this if statement, otherwise we might reuse this register. > Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:889 > + GPRTemporary callLinkInfoTemp(this, JITCompiler::selectScratchGPR(calleeGPR, GPRInfo::regT0)); This looks wrong to me. I think we want this GPRTemporary to stay around longer than the scope of this if statement, otherwise we might reuse this register.
Comment on attachment 455709 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=455709&action=review >> Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:836 >> + GPRTemporary callLinkInfoTemp(this, JITCompiler::selectScratchGPR(calleeGPR, GPRInfo::regT0)); > > This looks wrong to me. I think we want this GPRTemporary to stay around longer than the scope of this if statement, otherwise we might reuse this register. Discussed with Saam. This is intentional one to allocate non-callee-save register from DFG register bank. >> Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:889 >> + GPRTemporary callLinkInfoTemp(this, JITCompiler::selectScratchGPR(calleeGPR, GPRInfo::regT0)); > > This looks wrong to me. I think we want this GPRTemporary to stay around longer than the scope of this if statement, otherwise we might reuse this register. Ditto.
Committed r291875 (248877@trunk): <https://commits.webkit.org/248877@trunk>
<rdar://problem/90850205>