Title: [278662] trunk/Source/_javascript_Core
Revision
278662
Author
[email protected]
Date
2021-06-09 09:31:25 -0700 (Wed, 09 Jun 2021)

Log Message

[JSC] Fix incorrect register reuse in 32bit after r278568
https://bugs.webkit.org/show_bug.cgi?id=226817

Patch by Xan Lopez <[email protected]> on 2021-06-09
Reviewed by Caio Araujo Neponoceno de Lima.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
The JSVALUE32_64 branch potentially needs both the tag and payload
registers for both left/right nodes, so we cannot reuse any of
them for the result since the first thing the code does is set it
zero. Just remove the Reuse construction.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (278661 => 278662)


--- trunk/Source/_javascript_Core/ChangeLog	2021-06-09 16:02:23 UTC (rev 278661)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-06-09 16:31:25 UTC (rev 278662)
@@ -1,3 +1,17 @@
+2021-06-09  Xan Lopez  <[email protected]>
+
+        [JSC] Fix incorrect register reuse in 32bit after r278568
+        https://bugs.webkit.org/show_bug.cgi?id=226817
+
+        Reviewed by Caio Araujo Neponoceno de Lima.
+
+        * dfg/DFGSpeculativeJIT.cpp:
+        (JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
+        The JSVALUE32_64 branch potentially needs both the tag and payload
+        registers for both left/right nodes, so we cannot reuse any of
+        them for the result since the first thing the code does is set it
+        zero. Just remove the Reuse construction.
+
 2021-06-09  Mikhail R. Gadelha  <[email protected]>
 
         Fix inadvertent tag corruption in functionAddressOf

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (278661 => 278662)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2021-06-09 16:02:23 UTC (rev 278661)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2021-06-09 16:31:25 UTC (rev 278662)
@@ -7385,7 +7385,7 @@
 #if USE(JSVALUE64)
     GPRTemporary result(this, Reuse, left, right);
 #else
-    GPRTemporary result(this, Reuse, left, PayloadWord);
+    GPRTemporary result(this);
 #endif
     JSValueRegs leftRegs = left.jsValueRegs();
     JSValueRegs rightRegs = right.jsValueRegs();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to