Ignore:
Timestamp:
May 29, 2008, 10:45:16 PM (17 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

2008-05-29 Maciej Stachowiak <[email protected]>

Reviewed by Oliver.

  • fixed <rdar://problem/5972943> REGRESSION(r33979): Flash clips do not play on cnn.com


Finally blocks could clobber registers that had to remain live
until they returned. This patch takes a conservative approach and
makes sure that finally blocks do not reuse any registers that
were previously allocated for the function. In the future this
could probably be tightened up to be less profligate with the
register allocation.


  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::highestUsedRegister):
  • VM/CodeGenerator.h:
  • kjs/nodes.cpp: (KJS::TryNode::emitCode):

LayoutTests:

2008-05-29 Maciej Stachowiak <[email protected]>

Reviewed by Oliver. Test by Geoff Garen.


  • fixed <rdar://problem/5972943> REGRESSION(r33979): Flash clips do not play on cnn.com
  • fast/js/finally-codegen-failure-expected.txt: Added.
  • fast/js/finally-codegen-failure.html: Added.
File:
1 edited

Legend:

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

    r34089 r34250  
    364364}
    365365
     366
     367RegisterID* CodeGenerator::highestUsedRegister()
     368{
     369    while (m_temporaries.size() < static_cast<unsigned>(m_codeBlock->numTemporaries))
     370        m_temporaries.append(m_temporaries.size());
     371    return &m_temporaries.last();
     372}
     373
    366374PassRefPtr<LabelID> CodeGenerator::newLabel()
    367375{
Note: See TracChangeset for help on using the changeset viewer.