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


Ignore:
Timestamp:
Jul 17, 2008, 9:00:28 PM (17 years ago)
Author:
[email protected]
Message:

2008-07-17 Geoffrey Garen <[email protected]>

Reviewed by Oliver Hunt.


Next step toward putting doubles in registers: Store constant pool
entries as registers, not JSValue*s.


SunSpider reports no change.

File:
1 edited

Legend:

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

    r35217 r35231  
    575575}
    576576
    577 NEVER_INLINE bool Machine::unwindCallFrame(ExecState* exec, JSValue* exceptionValue, const Instruction*& vPC, CodeBlock*& codeBlock, JSValue**& k, ScopeChainNode*& scopeChain, Register*& r)
     577NEVER_INLINE bool Machine::unwindCallFrame(ExecState* exec, JSValue* exceptionValue, const Instruction*& vPC, CodeBlock*& codeBlock, Register*& k, ScopeChainNode*& scopeChain, Register*& r)
    578578{
    579579    CodeBlock* oldCodeBlock = codeBlock;
     
    608608        return false;
    609609
    610     k = codeBlock->jsValues.data();
     610    k = codeBlock->registers.data();
    611611    scopeChain = callFrame[RegisterFile::CallerScopeChain].scopeChain();
    612612    r = callFrame[RegisterFile::CallerRegisters].r();
     
    617617}
    618618
    619 NEVER_INLINE Instruction* Machine::throwException(ExecState* exec, JSValue* exceptionValue, const Instruction* vPC, CodeBlock*& codeBlock, JSValue**& k, ScopeChainNode*& scopeChain, Register*& r)
     619NEVER_INLINE Instruction* Machine::throwException(ExecState* exec, JSValue* exceptionValue, const Instruction* vPC, CodeBlock*& codeBlock, Register*& k, ScopeChainNode*& scopeChain, Register*& r)
    620620{
    621621    // Set up the exception object
     
    978978    Register* registerBase = registerFile->base();
    979979    Instruction* vPC = codeBlock->instructions.begin();
    980     JSValue** k = codeBlock->jsValues.data();
     980    Register* k = codeBlock->registers.data();
    981981    Profiler** enabledProfilerReference = Profiler::enabledProfilerReference();
    982982    unsigned tickCount = m_ticksUntilNextTimeoutCheck + 1;
     
    22482248            codeBlock = newCodeBlock;
    22492249            setScopeChain(exec, scopeChain, scopeChainForCall(exec, functionBodyNode, codeBlock, callDataScopeChain, r));
    2250             k = codeBlock->jsValues.data();
     2250            k = codeBlock->registers.data();
    22512251            vPC = codeBlock->instructions.begin();
    22522252
     
    23172317            return returnValue;
    23182318
    2319         k = codeBlock->jsValues.data();
     2319        k = codeBlock->registers.data();
    23202320        vPC = callFrame[RegisterFile::ReturnVPC].vPC();
    23212321        setScopeChain(exec, scopeChain, callFrame[RegisterFile::CallerScopeChain].scopeChain());
     
    23792379            codeBlock = newCodeBlock;
    23802380            setScopeChain(exec, scopeChain, scopeChainForCall(exec, functionBodyNode, codeBlock, callDataScopeChain, r));
    2381             k = codeBlock->jsValues.data();
     2381            k = codeBlock->registers.data();
    23822382            vPC = codeBlock->instructions.begin();
    23832383
     
    25502550        int message = (++vPC)->u.operand;
    25512551
    2552         r[dst] = Error::create(exec, (ErrorType)type, k[message]->toString(exec), codeBlock->lineNumberForVPC(vPC), codeBlock->ownerNode->sourceId(), codeBlock->ownerNode->sourceURL());
     2552        r[dst] = Error::create(exec, (ErrorType)type, k[message].toString(exec), codeBlock->lineNumberForVPC(vPC), codeBlock->ownerNode->sourceId(), codeBlock->ownerNode->sourceURL());
    25532553
    25542554        ++vPC;
Note: See TracChangeset for help on using the changeset viewer.