Title: [230577] trunk/Source/_javascript_Core
Revision
230577
Author
utatane....@gmail.com
Date
2018-04-12 09:11:22 -0700 (Thu, 12 Apr 2018)

Log Message

[DFG] Remove compileBigIntEquality in DFG 32bit
https://bugs.webkit.org/show_bug.cgi?id=184535

Reviewed by Saam Barati.

We can have the unified implementation for compileBigIntEquality.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileBigIntEquality):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileBigIntEquality): Deleted.
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileBigIntEquality): Deleted.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (230576 => 230577)


--- trunk/Source/_javascript_Core/ChangeLog	2018-04-12 15:51:10 UTC (rev 230576)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-04-12 16:11:22 UTC (rev 230577)
@@ -1,3 +1,19 @@
+2018-04-12  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [DFG] Remove compileBigIntEquality in DFG 32bit
+        https://bugs.webkit.org/show_bug.cgi?id=184535
+
+        Reviewed by Saam Barati.
+
+        We can have the unified implementation for compileBigIntEquality.
+
+        * dfg/DFGSpeculativeJIT.cpp:
+        (JSC::DFG::SpeculativeJIT::compileBigIntEquality):
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::compileBigIntEquality): Deleted.
+        * dfg/DFGSpeculativeJIT64.cpp:
+        (JSC::DFG::SpeculativeJIT::compileBigIntEquality): Deleted.
+
 2018-04-12  Michael Catanzaro  <mcatanz...@igalia.com>
 
         [WPE] Improve include hierarchy

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (230576 => 230577)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2018-04-12 15:51:10 UTC (rev 230576)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2018-04-12 16:11:22 UTC (rev 230577)
@@ -12940,6 +12940,40 @@
     m_currentNode = branchNode;
 }
 
+void SpeculativeJIT::compileBigIntEquality(Node* node)
+{
+    // FIXME: [ESNext][BigInt] Create specialized version of strict equals for BigIntUse
+    // https://bugs.webkit.org/show_bug.cgi?id=182895
+    SpeculateCellOperand left(this, node->child1());
+    SpeculateCellOperand right(this, node->child2());
+    GPRTemporary result(this, Reuse, left);
+    GPRReg leftGPR = left.gpr();
+    GPRReg rightGPR = right.gpr();
+    GPRReg resultGPR = result.gpr();
+
+    left.use();
+    right.use();
+
+    speculateBigInt(node->child1(), leftGPR);
+    speculateBigInt(node->child2(), rightGPR);
+
+    JITCompiler::Jump notEqualCase = m_jit.branchPtr(JITCompiler::NotEqual, leftGPR, rightGPR);
+
+    m_jit.move(JITCompiler::TrustedImm32(1), resultGPR);
+
+    JITCompiler::Jump done = m_jit.jump();
+
+    notEqualCase.link(&m_jit);
+
+    silentSpillAllRegisters(resultGPR);
+    callOperation(operationCompareStrictEqCell, resultGPR, leftGPR, rightGPR);
+    silentFillAllRegisters();
+
+    done.link(&m_jit);
+
+    unblessedBooleanResult(resultGPR, node, UseChildrenCalledExplicitly);
+}
+
 } } // namespace JSC::DFG
 
 #endif

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (230576 => 230577)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2018-04-12 15:51:10 UTC (rev 230576)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2018-04-12 16:11:22 UTC (rev 230577)
@@ -4267,42 +4267,6 @@
     doubleResult(result.fpr(), node);
 }
 
-void SpeculativeJIT::compileBigIntEquality(Node* node)
-{
-    // FIXME: [ESNext][BigInt] Create specialized version of strict equals for BigIntUse
-    // https://bugs.webkit.org/show_bug.cgi?id=182895
-    SpeculateCellOperand left(this, node->child1());
-    SpeculateCellOperand right(this, node->child2());
-    GPRReg leftPayloadGPR = left.gpr();
-    GPRReg rightPayloadGPR = right.gpr();
-
-    GPRTemporary resultPayload(this, Reuse, left);
-    GPRReg resultPayloadGPR = resultPayload.gpr();
-
-    left.use();
-    right.use();
-
-    speculateBigInt(node->child1(), leftPayloadGPR);
-    speculateBigInt(node->child2(), rightPayloadGPR);
-
-    JITCompiler::Jump notEqualCase = m_jit.branchPtr(JITCompiler::NotEqual, leftPayloadGPR, rightPayloadGPR);
-
-    m_jit.move(JITCompiler::TrustedImm32(true), resultPayloadGPR);
-    JITCompiler::Jump done = m_jit.jump();
-
-    notEqualCase.link(&m_jit);
-
-    silentSpillAllRegisters(resultPayloadGPR);
-    callOperation(operationCompareStrictEqCell, resultPayloadGPR, leftPayloadGPR, rightPayloadGPR);
-    silentFillAllRegisters();
-
-    m_jit.andPtr(JITCompiler::TrustedImm32(1), resultPayloadGPR);
-
-    done.link(&m_jit);
-
-    booleanResult(resultPayloadGPR, node, UseChildrenCalledExplicitly);
-}
-
 #endif
 
 } } // namespace JSC::DFG

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp (230576 => 230577)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2018-04-12 15:51:10 UTC (rev 230576)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2018-04-12 16:11:22 UTC (rev 230577)
@@ -4907,43 +4907,6 @@
     doubleResult(result.fpr(), node);
 }
 
-void SpeculativeJIT::compileBigIntEquality(Node* node)
-{
-    // FIXME: [ESNext][BigInt] Create specialized version of strict equals for BigIntUse
-    // https://bugs.webkit.org/show_bug.cgi?id=182895
-    SpeculateCellOperand left(this, node->child1());
-    SpeculateCellOperand right(this, node->child2());
-    GPRTemporary result(this);
-    GPRReg leftGPR = left.gpr();
-    GPRReg rightGPR = right.gpr();
-    GPRReg resultGPR = result.gpr();
-
-    left.use();
-    right.use();
-
-    speculateBigInt(node->child1(), leftGPR);
-    speculateBigInt(node->child2(), rightGPR);
-
-    JITCompiler::Jump notEqualCase = m_jit.branch64(JITCompiler::NotEqual, leftGPR, rightGPR);
-
-    m_jit.move(JITCompiler::TrustedImm64(JSValue::encode(jsBoolean(true))), resultGPR);
-
-    JITCompiler::Jump done = m_jit.jump();
-
-    notEqualCase.link(&m_jit);
-
-    silentSpillAllRegisters(resultGPR);
-    callOperation(operationCompareStrictEqCell, resultGPR, leftGPR, rightGPR);
-    silentFillAllRegisters();
-
-    m_jit.and64(JITCompiler::TrustedImm32(1), resultGPR);
-    m_jit.or32(JITCompiler::TrustedImm32(ValueFalse), resultGPR);
-
-    done.link(&m_jit);
-
-    jsValueResult(resultGPR, m_currentNode, DataFormatJSBoolean, UseChildrenCalledExplicitly);
-}
-
 #endif
 
 } } // namespace JSC::DFG
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to