Title: [92986] trunk/Source/_javascript_Core
- Revision
- 92986
- Author
- [email protected]
- Date
- 2011-08-12 13:33:25 -0700 (Fri, 12 Aug 2011)
Log Message
REGRESSION (r91610?): Bing Maps fail to initialize (InvalidOperation:
Matrix3D.invert)
https://bugs.webkit.org/show_bug.cgi?id=66038
Patch by Filip Pizlo <[email protected]> on 2011-08-12
Reviewed by Gavin Barraclough.
Simplest and lowest-impact fix for the case where the spilled format
of a DFG node differs from the register format: if the format is
converted then indicate that the spilled value is no longer valid
("kill the spill").
* dfg/DFGGenerationInfo.h:
(JSC::DFG::GenerationInfo::killSpilled):
* dfg/DFGJITCodeGenerator.cpp:
(JSC::DFG::JITCodeGenerator::fillDouble):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (92985 => 92986)
--- trunk/Source/_javascript_Core/ChangeLog 2011-08-12 20:33:04 UTC (rev 92985)
+++ trunk/Source/_javascript_Core/ChangeLog 2011-08-12 20:33:25 UTC (rev 92986)
@@ -1,3 +1,23 @@
+2011-08-12 Filip Pizlo <[email protected]>
+
+ REGRESSION (r91610?): Bing Maps fail to initialize (InvalidOperation:
+ Matrix3D.invert)
+ https://bugs.webkit.org/show_bug.cgi?id=66038
+
+ Reviewed by Gavin Barraclough.
+
+ Simplest and lowest-impact fix for the case where the spilled format
+ of a DFG node differs from the register format: if the format is
+ converted then indicate that the spilled value is no longer valid
+ ("kill the spill").
+
+ * dfg/DFGGenerationInfo.h:
+ (JSC::DFG::GenerationInfo::killSpilled):
+ * dfg/DFGJITCodeGenerator.cpp:
+ (JSC::DFG::JITCodeGenerator::fillDouble):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
+
2011-08-12 Sam Weinig <[email protected]>
Move compiler specific macros to their own header
Modified: trunk/Source/_javascript_Core/dfg/DFGGenerationInfo.h (92985 => 92986)
--- trunk/Source/_javascript_Core/dfg/DFGGenerationInfo.h 2011-08-12 20:33:04 UTC (rev 92985)
+++ trunk/Source/_javascript_Core/dfg/DFGGenerationInfo.h 2011-08-12 20:33:25 UTC (rev 92986)
@@ -238,6 +238,12 @@
ASSERT(m_canFill && m_registerFormat != DataFormatNone);
m_registerFormat = DataFormatNone;
}
+
+ void killSpilled()
+ {
+ m_spillFormat = DataFormatNone;
+ m_canFill = false;
+ }
// Record that this value is filled into machine registers,
// tracking which registers, and what format the value has.
Modified: trunk/Source/_javascript_Core/dfg/DFGJITCodeGenerator.cpp (92985 => 92986)
--- trunk/Source/_javascript_Core/dfg/DFGJITCodeGenerator.cpp 2011-08-12 20:33:04 UTC (rev 92985)
+++ trunk/Source/_javascript_Core/dfg/DFGJITCodeGenerator.cpp 2011-08-12 20:33:25 UTC (rev 92986)
@@ -182,6 +182,7 @@
m_gprs.unlock(tempGpr);
m_fprs.retain(fpr, virtualRegister, SpillOrderDouble);
info.fillDouble(fpr);
+ info.killSpilled();
return fpr;
}
Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (92985 => 92986)
--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp 2011-08-12 20:33:04 UTC (rev 92985)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp 2011-08-12 20:33:25 UTC (rev 92986)
@@ -255,6 +255,7 @@
m_gprs.unlock(tempGpr);
m_fprs.retain(fpr, virtualRegister, SpillOrderDouble);
info.fillDouble(fpr);
+ info.killSpilled();
return fpr;
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes