REGRESSION(r225913): about 30 JSC test failures on ARMv7
authorzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 9 Jan 2018 07:17:06 +0000 (07:17 +0000)
committerzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 9 Jan 2018 07:17:06 +0000 (07:17 +0000)
https://bugs.webkit.org/show_bug.cgi?id=181162
<rdar://problem/36261349>

Unreviewed follow-up to r226298. Enable the fast case in
DFG::SpeculativeJIT::compileArraySlice() for any 64-bit platform,
assuming in good faith that enough GP registers are available on any
such configuration. The accompanying comment is adjusted to describe
this assumption.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArraySlice):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226616 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp

index a0ee902..72b92d7 100644 (file)
@@ -1,3 +1,18 @@
+2018-01-08  Zan Dobersek  <zdobersek@igalia.com>
+
+        REGRESSION(r225913): about 30 JSC test failures on ARMv7
+        https://bugs.webkit.org/show_bug.cgi?id=181162
+        <rdar://problem/36261349>
+
+        Unreviewed follow-up to r226298. Enable the fast case in
+        DFG::SpeculativeJIT::compileArraySlice() for any 64-bit platform,
+        assuming in good faith that enough GP registers are available on any
+        such configuration. The accompanying comment is adjusted to describe
+        this assumption.
+
+        * dfg/DFGSpeculativeJIT.cpp:
+        (JSC::DFG::SpeculativeJIT::compileArraySlice):
+
 2018-01-08  JF Bastien  <jfbastien@apple.com>
 
         WebAssembly: mask indexed accesses to Table
index 95cea97..a9f6a2c 100644 (file)
@@ -7639,8 +7639,9 @@ void SpeculativeJIT::compileArraySlice(Node* node)
 
         MacroAssembler::JumpList slowCases;
         m_jit.move(TrustedImmPtr(0), storageResultGPR);
-        // X86 only has 6 GP registers, which is not enough for the fast case here. At least without custom code, which is not currently worth the extra code maintenance.
-        if (isARM64() || isX86_64()) {
+        // Enable the fast case on 64-bit platforms, where a sufficient amount of GP registers should be available.
+        // Other platforms could support the same approach with custom code, but that is not currently worth the extra code maintenance.
+        if (is64Bit()) {
             GPRTemporary scratch(this);
             GPRTemporary scratch2(this);
             GPRTemporary indexingMask(this);