WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
141577.patch (text/plain), 3.08 KB, created by
Michael Saboff
on 2015-02-13 14:39:44 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Michael Saboff
Created:
2015-02-13 14:39:44 PST
Size:
3.08 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 180081) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,17 @@ >+2015-02-13 Michael Saboff <msaboff@apple.com> >+ >+ REGRESSION(r180060) New js/regress-141098 crashes when LLInt is disabled. >+ https://bugs.webkit.org/show_bug.cgi?id=141577 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Changed the prologue of the baseline JIT to check for stack space for all >+ types of code blocks. Previously, it was only checking Function. Now >+ it checks Program and Eval as well. >+ >+ * jit/JIT.cpp: >+ (JSC::JIT::privateCompile): >+ > 2015-02-13 Benjamin Poulain <bpoulain@apple.com> > > Generate incq instead of addq when the immediate value is one >Index: Source/JavaScriptCore/jit/JIT.cpp >=================================================================== >--- Source/JavaScriptCore/jit/JIT.cpp (revision 180073) >+++ Source/JavaScriptCore/jit/JIT.cpp (working copy) >@@ -523,7 +523,6 @@ CompilationResult JIT::privateCompile(JI > sampleInstruction(m_codeBlock->instructions().begin()); > #endif > >- Jump stackOverflow; > if (m_codeBlock->codeType() == FunctionCode) { > ASSERT(m_bytecodeOffset == (unsigned)-1); > if (shouldEmitProfiling()) { >@@ -542,12 +541,12 @@ CompilationResult JIT::privateCompile(JI > emitValueProfilingSite(m_codeBlock->valueProfileForArgument(argument)); > } > } >- >- addPtr(TrustedImm32(stackPointerOffsetFor(m_codeBlock) * sizeof(Register)), callFrameRegister, regT1); >- stackOverflow = branchPtr(Above, AbsoluteAddress(m_vm->addressOfStackLimit()), regT1); > } > >- addPtr(TrustedImm32(stackPointerOffsetFor(m_codeBlock) * sizeof(Register)), callFrameRegister, stackPointerRegister); >+ addPtr(TrustedImm32(stackPointerOffsetFor(m_codeBlock) * sizeof(Register)), callFrameRegister, regT1); >+ Jump stackOverflow = branchPtr(Above, AbsoluteAddress(m_vm->addressOfStackLimit()), regT1); >+ >+ move(regT1, stackPointerRegister); > checkStackPointerAlignment(); > > privateCompileMainPass(); >@@ -557,14 +556,14 @@ CompilationResult JIT::privateCompile(JI > if (m_disassembler) > m_disassembler->setEndOfSlowPath(label()); > >+ stackOverflow.link(this); >+ m_bytecodeOffset = 0; >+ if (maxFrameExtentForSlowPathCall) >+ addPtr(TrustedImm32(-maxFrameExtentForSlowPathCall), stackPointerRegister); >+ callOperationWithCallFrameRollbackOnException(operationThrowStackOverflowError, m_codeBlock); >+ > Label arityCheck; > if (m_codeBlock->codeType() == FunctionCode) { >- stackOverflow.link(this); >- m_bytecodeOffset = 0; >- if (maxFrameExtentForSlowPathCall) >- addPtr(TrustedImm32(-maxFrameExtentForSlowPathCall), stackPointerRegister); >- callOperationWithCallFrameRollbackOnException(operationThrowStackOverflowError, m_codeBlock); >- > arityCheck = label(); > store8(TrustedImm32(0), &m_codeBlock->m_shouldAlwaysBeInlined); > emitFunctionPrologue();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
benjamin
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 141577
: 246550