Title: [278928] trunk/Source/_javascript_Core
Revision
278928
Author
commit-qu...@webkit.org
Date
2021-06-16 02:45:05 -0700 (Wed, 16 Jun 2021)

Log Message

Unreviewed, reverting r278846.
https://bugs.webkit.org/show_bug.cgi?id=227060

Speculative revert based on failure history of Speedometer2

Reverted changeset:

"Add Air opcode sub32/64(Reg, Imm, Reg) form for ARM64 and
select this instruction in Air"
https://bugs.webkit.org/show_bug.cgi?id=226937
https://trac.webkit.org/changeset/278846

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (278927 => 278928)


--- trunk/Source/_javascript_Core/ChangeLog	2021-06-16 08:56:30 UTC (rev 278927)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-06-16 09:45:05 UTC (rev 278928)
@@ -1,3 +1,17 @@
+2021-06-16  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, reverting r278846.
+        https://bugs.webkit.org/show_bug.cgi?id=227060
+
+        Speculative revert based on failure history of Speedometer2
+
+        Reverted changeset:
+
+        "Add Air opcode sub32/64(Reg, Imm, Reg) form for ARM64 and
+        select this instruction in Air"
+        https://bugs.webkit.org/show_bug.cgi?id=226937
+        https://trac.webkit.org/changeset/278846
+
 2021-06-15  Yusuke Suzuki  <ysuz...@apple.com>
 
         [JSC] Optimize JSON.parse with small content by dropping single character Identifier pool

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h (278927 => 278928)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h	2021-06-16 08:56:30 UTC (rev 278927)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h	2021-06-16 09:45:05 UTC (rev 278928)
@@ -893,24 +893,17 @@
 
     void sub32(TrustedImm32 imm, RegisterID dest)
     {
-        sub32(dest, imm, dest);
-    }
-
-    void sub32(RegisterID left, TrustedImm32 imm, RegisterID dest)
-    {
-        intptr_t immediate = imm.m_value;
-
-        if (isUInt12(immediate)) {
-            m_assembler.sub<32>(dest, left, UInt12(immediate));
+        if (isUInt12(imm.m_value)) {
+            m_assembler.sub<32>(dest, dest, UInt12(imm.m_value));
             return;
         }
-        if (isUInt12(-immediate)) {
-            m_assembler.add<32>(dest, left, UInt12(-immediate));
+        if (isUInt12(-imm.m_value)) {
+            m_assembler.add<32>(dest, dest, UInt12(-imm.m_value));
             return;
         }
 
         move(imm, getCachedDataTempRegisterIDAndInvalidate());
-        m_assembler.sub<32>(dest, left, dataTempRegister);
+        m_assembler.sub<32>(dest, dest, dataTempRegister);
     }
 
     void sub32(TrustedImm32 imm, Address address)
@@ -961,53 +954,41 @@
         m_assembler.sub<64>(dest, dest, src);
     }
 
-    void sub64(RegisterID left, RegisterID right, RegisterID dest)
+    void sub64(RegisterID a, RegisterID b, RegisterID dest)
     {
-        m_assembler.sub<64>(dest, left, right);
+        m_assembler.sub<64>(dest, a, b);
     }
-
+    
     void sub64(TrustedImm32 imm, RegisterID dest)
     {
-        sub64(dest, imm, dest);
-    }
-
-    void sub64(RegisterID left, TrustedImm32 imm, RegisterID dest)
-    {
-        intptr_t immediate = imm.m_value;
-
-        if (isUInt12(immediate)) {
-            m_assembler.sub<64>(dest, left, UInt12(immediate));
+        if (isUInt12(imm.m_value)) {
+            m_assembler.sub<64>(dest, dest, UInt12(imm.m_value));
             return;
         }
-        if (isUInt12(-immediate)) {
-            m_assembler.add<64>(dest, left, UInt12(-immediate));
+        if (isUInt12(-imm.m_value)) {
+            m_assembler.add<64>(dest, dest, UInt12(-imm.m_value));
             return;
         }
 
         signExtend32ToPtr(imm, getCachedDataTempRegisterIDAndInvalidate());
-        m_assembler.sub<64>(dest, left, dataTempRegister);
+        m_assembler.sub<64>(dest, dest, dataTempRegister);
     }
-
+    
     void sub64(TrustedImm64 imm, RegisterID dest)
     {
-        sub64(dest, imm, dest);
-    }
-
-    void sub64(RegisterID left, TrustedImm64 imm, RegisterID dest)
-    {
         intptr_t immediate = imm.m_value;
 
         if (isUInt12(immediate)) {
-            m_assembler.sub<64>(dest, left, UInt12(static_cast<int32_t>(immediate)));
+            m_assembler.sub<64>(dest, dest, UInt12(static_cast<int32_t>(immediate)));
             return;
         }
         if (isUInt12(-immediate)) {
-            m_assembler.add<64>(dest, left, UInt12(static_cast<int32_t>(-immediate)));
+            m_assembler.add<64>(dest, dest, UInt12(static_cast<int32_t>(-immediate)));
             return;
         }
 
         move(imm, getCachedDataTempRegisterIDAndInvalidate());
-        m_assembler.sub<64>(dest, left, dataTempRegister);
+        m_assembler.sub<64>(dest, dest, dataTempRegister);
     }
 
     void urshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)

Modified: trunk/Source/_javascript_Core/assembler/testmasm.cpp (278927 => 278928)


--- trunk/Source/_javascript_Core/assembler/testmasm.cpp	2021-06-16 08:56:30 UTC (rev 278927)
+++ trunk/Source/_javascript_Core/assembler/testmasm.cpp	2021-06-16 09:45:05 UTC (rev 278928)
@@ -920,128 +920,6 @@
             CHECK_EQ(invoke<long int>(mul, value, value2), ((long int) value) * ((long int) value2));
     }
 }
-
-void testSub32Args()
-{
-    for (auto value : int32Operands()) {
-        auto sub = compile([=] (CCallHelpers& jit) {
-            emitFunctionPrologue(jit);
-
-            jit.sub32(GPRInfo::argumentGPR0, GPRInfo::argumentGPR1, GPRInfo::returnValueGPR);
-
-            emitFunctionEpilogue(jit);
-            jit.ret();
-        });
-
-        for (auto value2 : int32Operands())
-            CHECK_EQ(invoke<uint32_t>(sub, value, value2), static_cast<uint32_t>(value - value2));
-    }
-}
-
-void testSub32Imm()
-{
-    for (auto immediate : int32Operands()) {
-        for (auto immediate2 : int32Operands()) {
-            auto sub = compile([=] (CCallHelpers& jit) {
-                emitFunctionPrologue(jit);
-
-                jit.move(CCallHelpers::TrustedImm32(immediate), GPRInfo::returnValueGPR);
-                jit.sub32(CCallHelpers::TrustedImm32(immediate2), GPRInfo::returnValueGPR);
-
-                emitFunctionEpilogue(jit);
-                jit.ret();
-            });
-            CHECK_EQ(invoke<uint32_t>(sub), static_cast<uint32_t>(immediate - immediate2));
-        }
-    }
-}
-
-void testSub32ArgImm()
-{
-    for (auto immediate : int32Operands()) {
-        auto sub = compile([=] (CCallHelpers& jit) {
-            emitFunctionPrologue(jit);
-
-            jit.sub32(GPRInfo::argumentGPR0, CCallHelpers::TrustedImm32(immediate), GPRInfo::returnValueGPR);
-
-            emitFunctionEpilogue(jit);
-            jit.ret();
-        });
-
-        for (auto value : int32Operands())
-            CHECK_EQ(invoke<uint32_t>(sub, value), static_cast<uint32_t>(value - immediate));
-    }
-}
-
-void testSub64Imm32()
-{
-    for (auto immediate : int64Operands()) {
-        for (auto immediate2 : int32Operands()) {
-            auto sub = compile([=] (CCallHelpers& jit) {
-                emitFunctionPrologue(jit);
-
-                jit.move(CCallHelpers::TrustedImm64(immediate), GPRInfo::returnValueGPR);
-                jit.sub64(CCallHelpers::TrustedImm32(immediate2), GPRInfo::returnValueGPR);
-
-                emitFunctionEpilogue(jit);
-                jit.ret();
-            });
-            CHECK_EQ(invoke<uint64_t>(sub), static_cast<uint64_t>(immediate - immediate2));
-        }
-    }
-}
-
-void testSub64ArgImm32()
-{
-    for (auto immediate : int32Operands()) {
-        auto sub = compile([=] (CCallHelpers& jit) {
-            emitFunctionPrologue(jit);
-
-            jit.sub64(GPRInfo::argumentGPR0, CCallHelpers::TrustedImm32(immediate), GPRInfo::returnValueGPR);
-
-            emitFunctionEpilogue(jit);
-            jit.ret();
-        });
-
-        for (auto value : int64Operands())
-            CHECK_EQ(invoke<int64_t>(sub, value), static_cast<int64_t>(value - immediate));
-    }
-}
-
-void testSub64Imm64()
-{
-    for (auto immediate : int64Operands()) {
-        for (auto immediate2 : int64Operands()) {
-            auto sub = compile([=] (CCallHelpers& jit) {
-                emitFunctionPrologue(jit);
-
-                jit.move(CCallHelpers::TrustedImm64(immediate), GPRInfo::returnValueGPR);
-                jit.sub64(CCallHelpers::TrustedImm64(immediate2), GPRInfo::returnValueGPR);
-
-                emitFunctionEpilogue(jit);
-                jit.ret();
-            });
-            CHECK_EQ(invoke<uint64_t>(sub), static_cast<uint64_t>(immediate - immediate2));
-        }
-    }
-}
-
-void testSub64ArgImm64()
-{
-    for (auto immediate : int64Operands()) {
-        auto sub = compile([=] (CCallHelpers& jit) {
-            emitFunctionPrologue(jit);
-
-            jit.sub64(GPRInfo::argumentGPR0, CCallHelpers::TrustedImm64(immediate), GPRInfo::returnValueGPR);
-
-            emitFunctionEpilogue(jit);
-            jit.ret();
-        });
-
-        for (auto value : int64Operands())
-            CHECK_EQ(invoke<int64_t>(sub, value), static_cast<int64_t>(value - immediate));
-    }
-}
 #endif
 
 #if CPU(X86) || CPU(X86_64) || CPU(ARM64)
@@ -3199,13 +3077,6 @@
     RUN(testLoadStorePair64Int64());
     RUN(testLoadStorePair64Double());
     RUN(testMul32SignExtend());
-    RUN(testSub32Args());
-    RUN(testSub32Imm());
-    RUN(testSub32ArgImm());
-    RUN(testSub64Imm32());
-    RUN(testSub64ArgImm32());
-    RUN(testSub64Imm64());
-    RUN(testSub64ArgImm64());
 #endif
 
 #if CPU(X86) || CPU(X86_64) || CPU(ARM64)

Modified: trunk/Source/_javascript_Core/b3/B3ReduceStrength.cpp (278927 => 278928)


--- trunk/Source/_javascript_Core/b3/B3ReduceStrength.cpp	2021-06-16 08:56:30 UTC (rev 278927)
+++ trunk/Source/_javascript_Core/b3/B3ReduceStrength.cpp	2021-06-16 09:45:05 UTC (rev 278928)
@@ -633,7 +633,7 @@
                         Add, m_value->origin(), m_value->child(0), negatedConstant);
                     break;
                 }
-
+                
                 // Turn this: Sub(0, value)
                 // Into this: Neg(value)
                 if (m_value->child(0)->isInt(0)) {

Modified: trunk/Source/_javascript_Core/b3/air/AirOpcode.opcodes (278927 => 278928)


--- trunk/Source/_javascript_Core/b3/air/AirOpcode.opcodes	2021-06-16 08:56:30 UTC (rev 278927)
+++ trunk/Source/_javascript_Core/b3/air/AirOpcode.opcodes	2021-06-16 09:45:05 UTC (rev 278928)
@@ -179,7 +179,6 @@
 
 arm64: Sub32 U:G:32, U:G:32, ZD:G:32
     Tmp, Tmp, Tmp
-    Tmp, Imm, Tmp
 
 64: Sub64 U:G:64, UD:G:64
     Tmp, Tmp
@@ -193,7 +192,6 @@
 
 arm64: Sub64 U:G:64, U:G:64, D:G:64
     Tmp, Tmp, Tmp
-    Tmp, Imm, Tmp
 
 SubDouble U:F:64, U:F:64, D:F:64
     arm64: Tmp, Tmp, Tmp

Modified: trunk/Source/_javascript_Core/b3/testb3.h (278927 => 278928)


--- trunk/Source/_javascript_Core/b3/testb3.h	2021-06-16 08:56:30 UTC (rev 278927)
+++ trunk/Source/_javascript_Core/b3/testb3.h	2021-06-16 09:45:05 UTC (rev 278928)
@@ -1027,7 +1027,6 @@
 void testSubImmMem(int64_t, int64_t);
 void testSubMemImm(int64_t, int64_t);
 void testSubArgs32(int, int);
-void testSubArgs32ZeroExtend(int, int);
 void testSubArgImm32(int, int);
 void testSubImmArg32(int, int);
 void testSubMemArg32(int32_t, int32_t);

Modified: trunk/Source/_javascript_Core/b3/testb3_2.cpp (278927 => 278928)


--- trunk/Source/_javascript_Core/b3/testb3_2.cpp	2021-06-16 08:56:30 UTC (rev 278927)
+++ trunk/Source/_javascript_Core/b3/testb3_2.cpp	2021-06-16 09:45:05 UTC (rev 278928)
@@ -2092,28 +2092,6 @@
     CHECK(compileAndRun<int>(proc, a, b) == a - b);
 }
 
-void testSubArgs32ZeroExtend(int a, int b)
-{
-    Procedure proc;
-    if (proc.optLevel() < 1)
-        return;
-    BasicBlock* root = proc.addBlock();
-    root->appendNewControlValue(
-        proc, Return, Origin(),
-        root->appendNew<Value>(
-            proc, ZExt32, Origin(),
-            root->appendNew<Value>(
-                proc, Sub, Origin(),
-                root->appendNew<Value>(
-                    proc, Trunc, Origin(),
-                    root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0)),
-                root->appendNew<Value>(
-                    proc, Trunc, Origin(),
-                    root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1)))));
-
-    CHECK(compileAndRun<uint64_t>(proc, a, b) == static_cast<uint64_t>(static_cast<uint32_t>(a - b)));
-}
-
 void testSubArgImm32(int a, int b)
 {
     Procedure proc;

Modified: trunk/Source/_javascript_Core/b3/testb3_3.cpp (278927 => 278928)


--- trunk/Source/_javascript_Core/b3/testb3_3.cpp	2021-06-16 08:56:30 UTC (rev 278927)
+++ trunk/Source/_javascript_Core/b3/testb3_3.cpp	2021-06-16 09:45:05 UTC (rev 278928)
@@ -3301,10 +3301,6 @@
     RUN(testSubArgs32(1, 2));
     RUN(testSubArgs32(13, -42));
     RUN(testSubArgs32(-13, 42));
-    RUN(testSubArgs32ZeroExtend(1, 1));
-    RUN(testSubArgs32ZeroExtend(1, 2));
-    RUN(testSubArgs32ZeroExtend(13, -42));
-    RUN(testSubArgs32ZeroExtend(-13, 42));
     RUN(testSubArgImm32(1, 1));
     RUN(testSubArgImm32(1, 2));
     RUN(testSubArgImm32(13, -42));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to