Changeset 36566 in webkit for trunk/JavaScriptCore/VM/Machine.cpp


Ignore:
Timestamp:
Sep 17, 2008, 3:40:23 PM (17 years ago)
Author:
[email protected]
Message:

2008-09-17 Gavin Barraclough <[email protected]>

Reviewed by Geoff Garen.

Implement JIT generation of CallFrame initialization, for op_call.

1% sunspider 2.5% v8-tests.

  • VM/CTI.cpp: (JSC::CTI::compileOpCall):
  • VM/Machine.cpp: (JSC::Machine::cti_op_call_JSFunction): (JSC::Machine::cti_op_call_NotJSFunction):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/Machine.cpp

    r36546 r36566  
    43194319    RegisterFile* registerFile = ARG_registerFile;
    43204320    Register* r = ARG_r;
    4321     CodeBlock* codeBlock = ARG_codeBlock;
    4322     ScopeChainNode* scopeChain = ARG_scopeChain;
    4323 
    4324     Machine* machine = exec->machine();
     4321
    43254322    JSValue* exceptionValue = 0;
    43264323    Register* registerBase = registerFile->base();
     
    43494346
    43504347    Register* callFrame = r + firstArg - RegisterFile::CallFrameHeaderSize;
    4351     machine->initializeCallFrame(callFrame, codeBlock, ARG_instr5, scopeChain, r, 0/*dst*/, firstArg, argCount, funcVal);
    43524348    exec->m_callFrame = callFrame;
    43534349
     
    44014397
    44024398    if (callType == CallTypeHost) {
    4403         CodeBlock* codeBlock = ARG_codeBlock;
    4404         ScopeChainNode* scopeChain = ARG_scopeChain;
    4405         Machine* machine = exec->machine();
    4406 
    44074399        Register* oldCallFrame = exec->m_callFrame;
    44084400        Register* callFrame = r + firstArg - RegisterFile::CallFrameHeaderSize;
    4409         machine->initializeCallFrame(callFrame, codeBlock, ARG_instr5, scopeChain, r, 0/*dst*/, firstArg, argCount, funcVal);
    44104401        exec->m_callFrame = callFrame;
    44114402
     
    45034494    RegisterFile* registerFile = ARG_registerFile;
    45044495    Register* r = ARG_r;
    4505     CodeBlock* codeBlock = ARG_codeBlock;
    45064496    ScopeChainNode* scopeChain = ARG_scopeChain;
    45074497
    4508     Machine* machine = exec->machine();
    45094498    JSValue* exceptionValue = 0;
    45104499    Register* registerBase = registerFile->base();
     
    45444533
    45454534    Register* callFrame = r + firstArg - RegisterFile::CallFrameHeaderSize;
    4546     machine->initializeCallFrame(callFrame, codeBlock, ARG_instr5, scopeChain, r, 0/*dst*/, firstArg, argCount, constructor);
    45474535    exec->m_callFrame = callFrame;
    45484536
     
    45894577
    45904578    if (constructType == ConstructTypeHost) {
    4591         CodeBlock* codeBlock = ARG_codeBlock;
    4592         ScopeChainNode* scopeChain = ARG_scopeChain;
    4593         Machine* machine = exec->machine();
    4594 
    45954579        Register* oldCallFrame = exec->m_callFrame;
    45964580        Register* callFrame = r + firstArg - RegisterFile::CallFrameHeaderSize;
    4597         machine->initializeCallFrame(callFrame, codeBlock, ARG_instr5, scopeChain, r, 0/*dst*/, firstArg, argCount, constrVal);
    45984581        exec->m_callFrame = callFrame;
    45994582
Note: See TracChangeset for help on using the changeset viewer.