Changeset 159670 in webkit


Ignore:
Timestamp:
Nov 21, 2013, 7:12:13 PM (12 years ago)
Author:
mark.lam@apple.com
Message:

CodeBlock::m_numCalleeRegisters need to honor native stack alignment.
https://bugs.webkit.org/show_bug.cgi?id=124754.

Reviewed by Filip Pizlo.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::newRegister):

  • dfg/DFGVirtualRegisterAllocationPhase.cpp:

(JSC::DFG::VirtualRegisterAllocationPhase::run):

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r159669 r159670  
     12013-11-21  Mark Lam  <mark.lam@apple.com>
     2
     3        CodeBlock::m_numCalleeRegisters need to honor native stack alignment.
     4        https://bugs.webkit.org/show_bug.cgi?id=124754.
     5
     6        Reviewed by Filip Pizlo.
     7
     8        * bytecompiler/BytecodeGenerator.cpp:
     9        (JSC::BytecodeGenerator::newRegister):
     10        * dfg/DFGVirtualRegisterAllocationPhase.cpp:
     11        (JSC::DFG::VirtualRegisterAllocationPhase::run):
     12
    1132013-11-21  Mark Rowe  <mrowe@apple.com>
    214
  • trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp

    r159652 r159670  
    3939#include "Operations.h"
    4040#include "Options.h"
     41#include "StackAlignment.h"
    4142#include "StrongInlines.h"
    4243#include "UnlinkedCodeBlock.h"
     
    546547{
    547548    m_calleeRegisters.append(virtualRegisterForLocal(m_calleeRegisters.size()));
    548     m_codeBlock->m_numCalleeRegisters = max<int>(m_codeBlock->m_numCalleeRegisters, m_calleeRegisters.size());
     549    int numCalleeRegisters = max<int>(m_codeBlock->m_numCalleeRegisters, m_calleeRegisters.size());
     550    numCalleeRegisters = WTF::roundUpToMultipleOf(stackAlignmentRegisters(), numCalleeRegisters);
     551    m_codeBlock->m_numCalleeRegisters = numCalleeRegisters;
    549552    return &m_calleeRegisters.last();
    550553}
  • trunk/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp

    r158237 r159670  
    3232#include "DFGScoreBoard.h"
    3333#include "JSCellInlines.h"
     34#include "StackAlignment.h"
     35#include <wtf/StdLibExtras.h>
    3436
    3537namespace JSC { namespace DFG {
     
    133135                calleeRegisters = requiredCalleeRegisters;
    134136        }
     137        calleeRegisters = WTF::roundUpToMultipleOf(stackAlignmentRegisters(), calleeRegisters);
    135138        if ((unsigned)codeBlock()->m_numCalleeRegisters < calleeRegisters)
    136139            codeBlock()->m_numCalleeRegisters = calleeRegisters;
Note: See TracChangeset for help on using the changeset viewer.