Title: [168461] trunk/Source/_javascript_Core
Revision
168461
Author
commit-qu...@webkit.org
Date
2014-05-07 21:10:21 -0700 (Wed, 07 May 2014)

Log Message

Unreviewed, rolling out r168451.
https://bugs.webkit.org/show_bug.cgi?id=132670

Not a speed-up, just do what other compilers do. (Requested by
kling on #webkit).

Reverted changeset:

"[X86] Emit BT instruction for single-bit tests."
https://bugs.webkit.org/show_bug.cgi?id=132650
http://trac.webkit.org/changeset/168451

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (168460 => 168461)


--- trunk/Source/_javascript_Core/ChangeLog	2014-05-08 02:51:55 UTC (rev 168460)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-05-08 04:10:21 UTC (rev 168461)
@@ -1,3 +1,17 @@
+2014-05-07  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r168451.
+        https://bugs.webkit.org/show_bug.cgi?id=132670
+
+        Not a speed-up, just do what other compilers do. (Requested by
+        kling on #webkit).
+
+        Reverted changeset:
+
+        "[X86] Emit BT instruction for single-bit tests."
+        https://bugs.webkit.org/show_bug.cgi?id=132650
+        http://trac.webkit.org/changeset/168451
+
 2014-05-07  Filip Pizlo  <fpi...@apple.com>
 
         Make Executable::clearCode() actually clear all of the entrypoints, and

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h (168460 => 168461)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h	2014-05-08 02:51:55 UTC (rev 168460)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h	2014-05-08 04:10:21 UTC (rev 168461)
@@ -1163,65 +1163,14 @@
         return Jump(m_assembler.jCC(x86Condition(cond)));
     }
 
-    int singleBitIndex(unsigned mask)
-    {
-        switch (mask) {
-        case 0x00000001: return 0;
-        case 0x00000002: return 1;
-        case 0x00000004: return 2;
-        case 0x00000008: return 3;
-        case 0x00000010: return 4;
-        case 0x00000020: return 5;
-        case 0x00000040: return 6;
-        case 0x00000080: return 7;
-        case 0x00000100: return 8;
-        case 0x00000200: return 9;
-        case 0x00000400: return 10;
-        case 0x00000800: return 11;
-        case 0x00001000: return 12;
-        case 0x00002000: return 13;
-        case 0x00004000: return 14;
-        case 0x00008000: return 15;
-        case 0x00010000: return 16;
-        case 0x00020000: return 17;
-        case 0x00040000: return 18;
-        case 0x00080000: return 19;
-        case 0x00100000: return 20;
-        case 0x00200000: return 21;
-        case 0x00400000: return 22;
-        case 0x00800000: return 23;
-        case 0x01000000: return 24;
-        case 0x02000000: return 25;
-        case 0x04000000: return 26;
-        case 0x08000000: return 27;
-        case 0x10000000: return 28;
-        case 0x20000000: return 29;
-        case 0x40000000: return 30;
-        case 0x80000000: return 31;
-        default: return -1;
-        }
-    }
-
     Jump branchTest32(ResultCondition cond, RegisterID reg, TrustedImm32 mask = TrustedImm32(-1))
     {
-        int bitIndex = singleBitIndex(mask.m_value);
-        if ((cond == Zero || cond == NonZero) && bitIndex != -1) {
-            m_assembler.bt_i8r(bitIndex, reg);
-            return Jump(m_assembler.jCC(cond == Zero ? X86Assembler::ConditionNC : X86Assembler::ConditionC));
-        }
-
         test32(cond, reg, mask);
         return branch(cond);
     }
 
     Jump branchTest32(ResultCondition cond, Address address, TrustedImm32 mask = TrustedImm32(-1))
     {
-        int bitIndex = singleBitIndex(mask.m_value);
-        if ((cond == Zero || cond == NonZero) && bitIndex != -1) {
-            m_assembler.bt_i8m(bitIndex, address.offset, address.base);
-            return Jump(m_assembler.jCC(cond == Zero ? X86Assembler::ConditionNC : X86Assembler::ConditionC));
-        }
-
         generateTest32(address, mask);
         return Jump(m_assembler.jCC(x86Condition(cond)));
     }

Modified: trunk/Source/_javascript_Core/assembler/X86Assembler.h (168460 => 168461)


--- trunk/Source/_javascript_Core/assembler/X86Assembler.h	2014-05-08 02:51:55 UTC (rev 168460)
+++ trunk/Source/_javascript_Core/assembler/X86Assembler.h	2014-05-08 04:10:21 UTC (rev 168461)
@@ -278,7 +278,6 @@
         OP_SETCC            = 0x90,
         OP2_3BYTE_ESCAPE    = 0xAE,
         OP2_IMUL_GvEv       = 0xAF,
-        OP2_GROUP_BT        = 0xBA,
         OP2_MOVZX_GvEb      = 0xB6,
         OP2_MOVSX_GvEb      = 0xBE,
         OP2_MOVZX_GvEw      = 0xB7,
@@ -337,8 +336,6 @@
         GROUP14_OP_PSLLQ = 6,
         GROUP14_OP_PSRLQ = 2,
 
-        GROUP_BT_OP_BT = 4,
-
         ESCAPE_DD_FSTP_doubleReal = 3,
     } GroupOpcodeID;
     
@@ -1224,18 +1221,6 @@
         m_formatter.immediate8(imm);
     }
 
-    void bt_i8r(int bitIndex, RegisterID src)
-    {
-        m_formatter.twoByteOp(OP2_GROUP_BT, GROUP_BT_OP_BT, src);
-        m_formatter.immediate8(bitIndex);
-    }
-
-    void bt_i8m(int bitIndex, int offset, RegisterID base)
-    {
-        m_formatter.twoByteOp(OP2_GROUP_BT, GROUP_BT_OP_BT, base, offset);
-        m_formatter.immediate8(bitIndex);
-    }
-
     void setCC_r(Condition cond, RegisterID dst)
     {
         m_formatter.twoByteOp8(setccOpcode(cond), (GroupOpcodeID)0, dst);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to