Title: [153207] trunk/Source/_javascript_Core
- Revision
- 153207
- Author
- oli...@apple.com
- Date
- 2013-07-24 21:01:59 -0700 (Wed, 24 Jul 2013)
Log Message
fourthTier: The DFG JIT should populate frame bytecodeOffsets on OSR exit.
https://bugs.webkit.org/show_bug.cgi?id=117103.
Reviewed by Geoffrey Garen.
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::reifyInlinedCallFrames):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (153206 => 153207)
--- trunk/Source/_javascript_Core/ChangeLog 2013-07-25 04:01:56 UTC (rev 153206)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-07-25 04:01:59 UTC (rev 153207)
@@ -1,3 +1,13 @@
+2013-06-04 Mark Lam <mark....@apple.com>
+
+ The DFG JIT should populate frame bytecodeOffsets on OSR exit.
+ https://bugs.webkit.org/show_bug.cgi?id=117103.
+
+ Reviewed by Geoffrey Garen.
+
+ * dfg/DFGOSRExitCompilerCommon.cpp:
+ (JSC::DFG::reifyInlinedCallFrames):
+
2013-06-03 Filip Pizlo <fpi...@apple.com>
fourthTier: all cached put_by_id transitions, even ones that weren't inlined by the DFG, should be propagated by the GC
Modified: trunk/Source/_javascript_Core/dfg/DFGOSRExitCompilerCommon.cpp (153206 => 153207)
--- trunk/Source/_javascript_Core/dfg/DFGOSRExitCompilerCommon.cpp 2013-07-25 04:01:56 UTC (rev 153206)
+++ trunk/Source/_javascript_Core/dfg/DFGOSRExitCompilerCommon.cpp 2013-07-25 04:01:59 UTC (rev 153207)
@@ -79,8 +79,9 @@
{
ASSERT(jit.baselineCodeBlock()->jitType() == JITCode::BaselineJIT);
jit.storePtr(AssemblyHelpers::TrustedImmPtr(jit.baselineCodeBlock()), AssemblyHelpers::addressFor((VirtualRegister)JSStack::CodeBlock));
-
- for (CodeOrigin codeOrigin = exit.m_codeOrigin; codeOrigin.inlineCallFrame; codeOrigin = codeOrigin.inlineCallFrame->caller) {
+
+ CodeOrigin codeOrigin;
+ for (codeOrigin = exit.m_codeOrigin; codeOrigin.inlineCallFrame; codeOrigin = codeOrigin.inlineCallFrame->caller) {
InlineCallFrame* inlineCallFrame = codeOrigin.inlineCallFrame;
CodeBlock* baselineCodeBlock = jit.baselineCodeBlockFor(codeOrigin);
CodeBlock* baselineCodeBlockForCaller = jit.baselineCodeBlockFor(inlineCallFrame->caller);
@@ -125,7 +126,11 @@
if (!inlineCallFrame->isClosureCall())
jit.storePtr(AssemblyHelpers::TrustedImmPtr(inlineCallFrame->callee.get()), AssemblyHelpers::payloadFor((VirtualRegister)(inlineCallFrame->stackOffset + JSStack::Callee)));
#endif // USE(JSVALUE64) // ending the #else part, so directly above is the 32-bit part
+
+ jit.store32(AssemblyHelpers::TrustedImm32(codeOrigin.bytecodeIndex), AssemblyHelpers::tagFor((VirtualRegister)(inlineCallFrame->stackOffset + JSStack::ArgumentCount)));
}
+
+ jit.store32(AssemblyHelpers::TrustedImm32(codeOrigin.bytecodeIndex), AssemblyHelpers::tagFor((VirtualRegister)(JSStack::ArgumentCount)));
}
void adjustAndJumpToTarget(CCallHelpers& jit, const OSRExitBase& exit)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes