Title: [102200] trunk/Source/_javascript_Core
Revision
102200
Author
[email protected]
Date
2011-12-06 17:29:47 -0800 (Tue, 06 Dec 2011)

Log Message

DFG 32_64 call linking does not handle non-cell callees correctly
https://bugs.webkit.org/show_bug.cgi?id=73965

Reviewed by Sam Weinig.

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (102199 => 102200)


--- trunk/Source/_javascript_Core/ChangeLog	2011-12-07 01:29:05 UTC (rev 102199)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-12-07 01:29:47 UTC (rev 102200)
@@ -1,3 +1,13 @@
+2011-12-06  Filip Pizlo  <[email protected]>
+
+        DFG 32_64 call linking does not handle non-cell callees correctly
+        https://bugs.webkit.org/show_bug.cgi?id=73965
+
+        Reviewed by Sam Weinig.
+
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::emitCall):
+
 2011-12-06  Sam Weinig  <[email protected]>
 
         Remove unintentional type name shadowing in the Interpreter

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (102199 => 102200)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-12-07 01:29:05 UTC (rev 102199)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-12-07 01:29:47 UTC (rev 102200)
@@ -1303,9 +1303,10 @@
     GPRReg resultTagGPR = resultTag.gpr();
 
     JITCompiler::DataLabelPtr targetToCheck;
-    JITCompiler::Jump slowPath;
+    JITCompiler::JumpList slowPath;
 
-    slowPath = m_jit.branchPtrWithPatch(MacroAssembler::NotEqual, calleePayloadGPR, targetToCheck);
+    slowPath.append(m_jit.branchPtrWithPatch(MacroAssembler::NotEqual, calleePayloadGPR, targetToCheck));
+    slowPath.append(m_jit.branch32(MacroAssembler::NotEqual, calleeTagGPR, TrustedImm32(JSValue::CellTag)));
     m_jit.loadPtr(MacroAssembler::Address(calleePayloadGPR, OBJECT_OFFSETOF(JSFunction, m_scopeChain)), resultPayloadGPR);
     m_jit.storePtr(resultPayloadGPR, payloadOfCallData(RegisterFile::ScopeChain));
     m_jit.store32(MacroAssembler::TrustedImm32(JSValue::CellTag), tagOfCallData(RegisterFile::ScopeChain));
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to