Title: [241214] trunk/Source/_javascript_Core
Revision
241214
Author
[email protected]
Date
2019-02-08 15:06:41 -0800 (Fri, 08 Feb 2019)

Log Message

Use maxSingleCharacterString in comparisons instead of literal constants.
https://bugs.webkit.org/show_bug.cgi?id=194452

Reviewed by Yusuke Suzuki.

This way, if we ever change maxSingleCharacterString, it won't break all this code
that relies on it being 0xff implicitly.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileStringSlice):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
* jit/ThunkGenerators.cpp:
(JSC::stringGetByValGenerator):
(JSC::charToString):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (241213 => 241214)


--- trunk/Source/_javascript_Core/ChangeLog	2019-02-08 22:54:05 UTC (rev 241213)
+++ trunk/Source/_javascript_Core/ChangeLog	2019-02-08 23:06:41 UTC (rev 241214)
@@ -1,5 +1,25 @@
 2019-02-08  Mark Lam  <[email protected]>
 
+        Use maxSingleCharacterString in comparisons instead of literal constants.
+        https://bugs.webkit.org/show_bug.cgi?id=194452
+
+        Reviewed by Yusuke Suzuki.
+
+        This way, if we ever change maxSingleCharacterString, it won't break all this code
+        that relies on it being 0xff implicitly.
+
+        * dfg/DFGSpeculativeJIT.cpp:
+        (JSC::DFG::SpeculativeJIT::compileStringSlice):
+        (JSC::DFG::SpeculativeJIT::compileGetByValOnString):
+        * ftl/FTLLowerDFGToB3.cpp:
+        (JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
+        (JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
+        * jit/ThunkGenerators.cpp:
+        (JSC::stringGetByValGenerator):
+        (JSC::charToString):
+
+2019-02-08  Mark Lam  <[email protected]>
+
         Fix DFG's doesGC() for CheckTierUp*, GetByVal, PutByVal*, and StringCharAt nodes.
         https://bugs.webkit.org/show_bug.cgi?id=194446
         <rdar://problem/47926792>

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (241213 => 241214)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2019-02-08 22:54:05 UTC (rev 241213)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2019-02-08 23:06:41 UTC (rev 241214)
@@ -1577,7 +1577,7 @@
     is16Bit.link(&m_jit);
     m_jit.load16(MacroAssembler::BaseIndex(tempGPR, startIndexGPR, MacroAssembler::TimesTwo, 0), tempGPR);
 
-    auto bigCharacter = m_jit.branch32(MacroAssembler::AboveOrEqual, tempGPR, TrustedImm32(0x100));
+    auto bigCharacter = m_jit.branch32(MacroAssembler::Above, tempGPR, TrustedImm32(maxSingleCharacterString));
 
     // 8 bit string values don't need the isASCII check.
     cont8Bit.link(&m_jit);
@@ -2194,7 +2194,7 @@
     m_jit.load16(MacroAssembler::BaseIndex(storageReg, propertyReg, MacroAssembler::TimesTwo, 0), scratchReg);
 
     JITCompiler::Jump bigCharacter =
-        m_jit.branch32(MacroAssembler::AboveOrEqual, scratchReg, TrustedImm32(0x100));
+        m_jit.branch32(MacroAssembler::Above, scratchReg, TrustedImm32(maxSingleCharacterString));
 
     // 8 bit string values don't need the isASCII check.
     cont8Bit.link(&m_jit);

Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp (241213 => 241214)


--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp	2019-02-08 22:54:05 UTC (rev 241213)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp	2019-02-08 23:06:41 UTC (rev 241214)
@@ -6612,7 +6612,7 @@
                 provenValue(m_graph.child(m_node, 1))));
         ValueFromBlock char16Bit = m_out.anchor(char16BitValue);
         m_out.branch(
-            m_out.aboveOrEqual(char16BitValue, m_out.constInt32(0x100)),
+            m_out.above(char16BitValue, m_out.constInt32(maxSingleCharacterString)),
             rarely(bigCharacter), usually(bitsContinuation));
             
         m_out.appendTo(bigCharacter, bitsContinuation);
@@ -11973,7 +11973,7 @@
         LValue char16BitValue = m_out.load16ZeroExt32(m_out.baseIndex(m_heaps.characters16, storage, m_out.zeroExtPtr(from)));
         ValueFromBlock char16Bit = m_out.anchor(char16BitValue);
         m_out.branch(
-            m_out.aboveOrEqual(char16BitValue, m_out.constInt32(0x100)),
+            m_out.above(char16BitValue, m_out.constInt32(maxSingleCharacterString)),
             rarely(bigCharacter), usually(bitsContinuation));
 
         m_out.appendTo(bigCharacter, bitsContinuation);

Modified: trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp (241213 => 241214)


--- trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2019-02-08 22:54:05 UTC (rev 241213)
+++ trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2019-02-08 23:06:41 UTC (rev 241214)
@@ -656,7 +656,7 @@
     jit.load16(JSInterfaceJIT::BaseIndex(stringGPR, indexGPR, JSInterfaceJIT::TimesTwo, 0), stringGPR);
     cont8Bit.link(&jit);
 
-    failures.append(jit.branch32(JSInterfaceJIT::AboveOrEqual, stringGPR, JSInterfaceJIT::TrustedImm32(0x100)));
+    failures.append(jit.branch32(JSInterfaceJIT::Above, stringGPR, JSInterfaceJIT::TrustedImm32(maxSingleCharacterString)));
     jit.move(JSInterfaceJIT::TrustedImmPtr(vm->smallStrings.singleCharacterStrings()), indexGPR);
     jit.loadPtr(JSInterfaceJIT::BaseIndex(indexGPR, stringGPR, JSInterfaceJIT::ScalePtr, 0), stringGPR);
     jit.ret();
@@ -701,7 +701,7 @@
 
 static void charToString(SpecializedThunkJIT& jit, VM* vm, MacroAssembler::RegisterID src, MacroAssembler::RegisterID dst, MacroAssembler::RegisterID scratch)
 {
-    jit.appendFailure(jit.branch32(MacroAssembler::AboveOrEqual, src, MacroAssembler::TrustedImm32(0x100)));
+    jit.appendFailure(jit.branch32(MacroAssembler::Above, src, MacroAssembler::TrustedImm32(maxSingleCharacterString)));
     jit.move(MacroAssembler::TrustedImmPtr(vm->smallStrings.singleCharacterStrings()), scratch);
     jit.loadPtr(MacroAssembler::BaseIndex(scratch, src, MacroAssembler::ScalePtr, 0), dst);
     jit.appendFailure(jit.branchTestPtr(MacroAssembler::Zero, dst));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to