Title: [281324] trunk/Source/_javascript_Core
Revision
281324
Author
[email protected]
Date
2021-08-20 10:47:48 -0700 (Fri, 20 Aug 2021)

Log Message

Fix DFG compilation of StringCharAt in 32 bits jsc debug build
https://bugs.webkit.org/show_bug.cgi?id=229293

Patch by Mikhail R. Gadelha <[email protected]> on 2021-08-20
Reviewed by Keith Miller.

In SpeculativeJIT::compileGetByValOnString the format can be either DataFormatJS
or DataFormatCell so assert either value when compiling it in 32 bits.
It's the same assert already present in the DFG 64 bits counterpart

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

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (281323 => 281324)


--- trunk/Source/_javascript_Core/ChangeLog	2021-08-20 17:31:33 UTC (rev 281323)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-08-20 17:47:48 UTC (rev 281324)
@@ -1,3 +1,17 @@
+2021-08-20  Mikhail R. Gadelha  <[email protected]>
+
+        Fix DFG compilation of StringCharAt in 32 bits jsc debug build
+        https://bugs.webkit.org/show_bug.cgi?id=229293
+
+        Reviewed by Keith Miller.
+
+        In SpeculativeJIT::compileGetByValOnString the format can be either DataFormatJS
+        or DataFormatCell so assert either value when compiling it in 32 bits.
+        It's the same assert already present in the DFG 64 bits counterpart
+
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+
 2021-08-20  Mark Lam  <[email protected]>
 
         Add some offlineasm enhancements.

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (281323 => 281324)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2021-08-20 17:31:33 UTC (rev 281323)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2021-08-20 17:47:48 UTC (rev 281324)
@@ -2565,7 +2565,7 @@
         JSValueRegsTemporary result;
         compileGetByValOnString(node, scopedLambda<std::tuple<JSValueRegs, DataFormat>(DataFormat preferredFormat)>([&] (DataFormat preferredFormat) {
             result = JSValueRegsTemporary(this);
-            ASSERT(preferredFormat & DataFormatJS);
+            ASSERT(preferredFormat == DataFormatJS || preferredFormat == DataFormatCell);
             return std::make_pair(result.regs(), preferredFormat);
         }));
         break;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to