Bug 22063 - Calls have to make a CTI call, if they are not linked.
Summary: Calls have to make a CTI call, if they are not linked.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Gavin Barraclough
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-11-03 20:26 PST by Gavin Barraclough
Modified: 2008-11-06 17:32 PST (History)
0 users

See Also:


Attachments
the patch (18.55 KB, patch)
2008-11-03 20:28 PST, Gavin Barraclough
no flags Details | Formatted Diff | Diff
Now with new improved changelogy goodness! (19.58 KB, patch)
2008-11-03 20:33 PST, Gavin Barraclough
oliver: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Gavin Barraclough 2008-11-03 20:26:29 PST
On the unlinked path, stop making a cti call – unless the codeblock needs JITting, or the number of parameters passed does not match the callee arity.
Comment 1 Gavin Barraclough 2008-11-03 20:28:47 PST
Created attachment 24881 [details]
the patch

~ 1% progression on sunspider --v8
Comment 2 Gavin Barraclough 2008-11-03 20:33:29 PST
Created attachment 24882 [details]
Now with new improved changelogy goodness!
Comment 3 Oliver Hunt 2008-11-03 20:40:36 PST
Comment on attachment 24882 [details]
Now with new improved changelogy goodness!

Bad boy, commneted out code:
>  
> @@ -679,6 +676,7 @@ void CTI::compileOpCall(OpcodeID opcodeI
>      m_jit.addl_i32r(registerOffset * sizeof(Register), X86::edi);
>  
>      // Call to the callee
> +//    m_jit.movl_i32r(argCount, X86::edx);
>      m_callStructureStubCompilationInfo[callLinkInfoIndex].hotPathOther = emitNakedCall(i, unreachable);

r=me
Comment 4 Gavin Barraclough 2008-11-06 17:32:16 PST
Sending        JavaScriptCore/ChangeLog
Sending        JavaScriptCore/VM/CTI.cpp
Sending        JavaScriptCore/VM/CTI.h
Sending        JavaScriptCore/VM/Machine.cpp
Sending        JavaScriptCore/VM/Machine.h
Sending        JavaScriptCore/parser/Nodes.h
Transmitting file data ......
Committed revision 38209.