Title: [154324] trunk/Source/_javascript_Core
Revision
154324
Author
[email protected]
Date
2013-08-20 06:38:14 -0700 (Tue, 20 Aug 2013)

Log Message

<https://webkit.org/b/120062> Missing ensureSpace call in sh4 baseline JIT.

Patch by Julien Brianceau <[email protected]> on 2013-08-20
Reviewed by Allan Sandfeld Jensen.

branchPtrWithPatch() of baseline JIT must ensure that space is available for its
instructions and two constants now DFG is enabled for sh4 architecture.
These missing ensureSpace calls lead to random crashes.

* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::branchPtrWithPatch):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (154323 => 154324)


--- trunk/Source/_javascript_Core/ChangeLog	2013-08-20 12:47:57 UTC (rev 154323)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-08-20 13:38:14 UTC (rev 154324)
@@ -1,3 +1,16 @@
+2013-08-20  Julien Brianceau  <[email protected]>
+
+        <https://webkit.org/b/120062> Missing ensureSpace call in sh4 baseline JIT.
+
+        Reviewed by Allan Sandfeld Jensen.
+
+        branchPtrWithPatch() of baseline JIT must ensure that space is available for its
+        instructions and two constants now DFG is enabled for sh4 architecture.
+        These missing ensureSpace calls lead to random crashes.
+
+        * assembler/MacroAssemblerSH4.h:
+        (JSC::MacroAssemblerSH4::branchPtrWithPatch):
+
 2013-08-19  Gavin Barraclough  <[email protected]>
 
         https://bugs.webkit.org/show_bug.cgi?id=120034

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h (154323 => 154324)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2013-08-20 12:47:57 UTC (rev 154323)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2013-08-20 13:38:14 UTC (rev 154324)
@@ -2334,6 +2334,7 @@
     {
         RegisterID dataTempRegister = claimScratch();
 
+        m_assembler.ensureSpace(m_assembler.maxInstructionSize + 10, 2 * sizeof(uint32_t));
         dataLabel = moveWithPatch(initialRightValue, dataTempRegister);
         m_assembler.cmplRegReg(dataTempRegister, left, SH4Condition(cond));
         releaseScratch(dataTempRegister);
@@ -2351,6 +2352,7 @@
         m_assembler.addlRegReg(left.base, scr);
         m_assembler.movlMemReg(scr, scr);
         RegisterID scr1 = claimScratch();
+        m_assembler.ensureSpace(m_assembler.maxInstructionSize + 10, 2 * sizeof(uint32_t));
         dataLabel = moveWithPatch(initialRightValue, scr1);
         m_assembler.cmplRegReg(scr1, scr, SH4Condition(cond));
         releaseScratch(scr);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to