Title: [159670] trunk/Source/_javascript_Core
- Revision
- 159670
- Author
- [email protected]
- Date
- 2013-11-21 19:12:13 -0800 (Thu, 21 Nov 2013)
Log 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):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (159669 => 159670)
--- trunk/Source/_javascript_Core/ChangeLog 2013-11-22 03:04:12 UTC (rev 159669)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-11-22 03:12:13 UTC (rev 159670)
@@ -1,3 +1,15 @@
+2013-11-21 Mark Lam <[email protected]>
+
+ 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):
+
2013-11-21 Mark Rowe <[email protected]>
<https://webkit.org/b/124702> Stop overriding VALID_ARCHS.
Modified: trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp (159669 => 159670)
--- trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2013-11-22 03:04:12 UTC (rev 159669)
+++ trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2013-11-22 03:12:13 UTC (rev 159670)
@@ -38,6 +38,7 @@
#include "LowLevelInterpreter.h"
#include "Operations.h"
#include "Options.h"
+#include "StackAlignment.h"
#include "StrongInlines.h"
#include "UnlinkedCodeBlock.h"
#include <wtf/StdLibExtras.h>
@@ -545,7 +546,9 @@
RegisterID* BytecodeGenerator::newRegister()
{
m_calleeRegisters.append(virtualRegisterForLocal(m_calleeRegisters.size()));
- m_codeBlock->m_numCalleeRegisters = max<int>(m_codeBlock->m_numCalleeRegisters, m_calleeRegisters.size());
+ int numCalleeRegisters = max<int>(m_codeBlock->m_numCalleeRegisters, m_calleeRegisters.size());
+ numCalleeRegisters = WTF::roundUpToMultipleOf(stackAlignmentRegisters(), numCalleeRegisters);
+ m_codeBlock->m_numCalleeRegisters = numCalleeRegisters;
return &m_calleeRegisters.last();
}
Modified: trunk/Source/_javascript_Core/dfg/DFGVirtualRegisterAllocationPhase.cpp (159669 => 159670)
--- trunk/Source/_javascript_Core/dfg/DFGVirtualRegisterAllocationPhase.cpp 2013-11-22 03:04:12 UTC (rev 159669)
+++ trunk/Source/_javascript_Core/dfg/DFGVirtualRegisterAllocationPhase.cpp 2013-11-22 03:12:13 UTC (rev 159670)
@@ -31,6 +31,8 @@
#include "DFGGraph.h"
#include "DFGScoreBoard.h"
#include "JSCellInlines.h"
+#include "StackAlignment.h"
+#include <wtf/StdLibExtras.h>
namespace JSC { namespace DFG {
@@ -132,6 +134,7 @@
if (requiredCalleeRegisters > calleeRegisters)
calleeRegisters = requiredCalleeRegisters;
}
+ calleeRegisters = WTF::roundUpToMultipleOf(stackAlignmentRegisters(), calleeRegisters);
if ((unsigned)codeBlock()->m_numCalleeRegisters < calleeRegisters)
codeBlock()->m_numCalleeRegisters = calleeRegisters;
#if DFG_ENABLE(DEBUG_VERBOSE)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes