Title: [99765] trunk/Source/_javascript_Core
Revision
99765
Author
[email protected]
Date
2011-11-09 15:05:03 -0800 (Wed, 09 Nov 2011)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=71873

Reviewed by Geoff Garen.

Incrementally re-landing these changes, trying to determine what went wrong.
(The whole patch failed tests on the build bot but worked locally.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::absDouble):
* assembler/MacroAssemblerARMv7.h:
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::absDouble):
* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::absDouble):
* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::absDouble):
* assembler/MacroAssemblerX86Common.h:
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::absDouble):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/ThunkGenerators.cpp:
(JSC::absThunkGenerator):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (99764 => 99765)


--- trunk/Source/_javascript_Core/ChangeLog	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-11-09 23:05:03 UTC (rev 99765)
@@ -1,3 +1,31 @@
+2011-11-09  Gavin Barraclough  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=71873
+
+        Reviewed by Geoff Garen.
+
+        Incrementally re-landing these changes, trying to determine what went wrong.
+        (The whole patch failed tests on the build bot but worked locally.
+
+        * assembler/MacroAssemblerARM.h:
+        (JSC::MacroAssemblerARM::absDouble):
+        * assembler/MacroAssemblerARMv7.h:
+        * assembler/MacroAssemblerMIPS.h:
+        (JSC::MacroAssemblerMIPS::absDouble):
+        * assembler/MacroAssemblerSH4.h:
+        (JSC::MacroAssemblerSH4::absDouble):
+        * assembler/MacroAssemblerX86.h:
+        (JSC::MacroAssemblerX86::absDouble):
+        * assembler/MacroAssemblerX86Common.h:
+        * assembler/MacroAssemblerX86_64.h:
+        (JSC::MacroAssemblerX86_64::absDouble):
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+        * dfg/DFGSpeculativeJIT64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+        * jit/ThunkGenerators.cpp:
+        (JSC::absThunkGenerator):
+
 2011-11-09  Mark Hahnenberg  <[email protected]>
 
         De-virtualize JSObject::getOwnPropertyDescriptor

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h (99764 => 99765)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2011-11-09 23:05:03 UTC (rev 99765)
@@ -862,7 +862,7 @@
         m_assembler.vsqrt_f64_r(dest, src);
     }
     
-    void andnotDouble(FPRegisterID, FPRegisterID)
+    void absDouble(FPRegisterID, FPRegisterID)
     {
         ASSERT_NOT_REACHED();
     }

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h (99764 => 99765)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2011-11-09 23:05:03 UTC (rev 99765)
@@ -663,7 +663,7 @@
         ASSERT_NOT_REACHED();
     }
     
-    void andnotDouble(FPRegisterID, FPRegisterID) NO_RETURN_DUE_TO_ASSERT
+    void absDouble(FPRegisterID, FPRegisterID) NO_RETURN_DUE_TO_ASSERT
     {
         ASSERT_NOT_REACHED();
     }

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (99764 => 99765)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2011-11-09 23:05:03 UTC (rev 99765)
@@ -471,7 +471,7 @@
         m_assembler.sqrtd(dst, src);
     }
     
-    void andnotDouble(FPRegisterID, FPRegisterID)
+    void absDouble(FPRegisterID, FPRegisterID)
     {
         ASSERT_NOT_REACHED();
     }

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h (99764 => 99765)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2011-11-09 23:05:03 UTC (rev 99765)
@@ -1129,7 +1129,7 @@
         m_assembler.dsqrt(dest);
     }
     
-    void andnotDouble(FPRegisterID, FPRegisterID)
+    void absDouble(FPRegisterID, FPRegisterID)
     {
         ASSERT_NOT_REACHED();
     }

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h (99764 => 99765)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h	2011-11-09 23:05:03 UTC (rev 99765)
@@ -108,6 +108,14 @@
         m_assembler.cvtsi2sd_mr(src.m_ptr, dest);
     }
 
+    void absDouble(FPRegisterID src, FPRegisterID dst)
+    {
+        ASSERT(src != dst);
+        static const double negativeZeroConstant = -0.0;
+        loadDouble(&negativeZeroConstant, dst);
+        m_assembler.andnpd_rr(src, dst);
+    }
+
     void store32(TrustedImm32 imm, void* address)
     {
         m_assembler.movl_i32m(imm.m_value, address);

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h (99764 => 99765)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h	2011-11-09 23:05:03 UTC (rev 99765)
@@ -424,11 +424,6 @@
         m_assembler.sqrtsd_rr(src, dst);
     }
 
-    void andnotDouble(FPRegisterID src, FPRegisterID dst)
-    {
-        m_assembler.andnpd_rr(src, dst);
-    }
-
     // Memory access operations:
     //
     // Loads are of the form load(address, destination) and stores of the form

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h (99764 => 99765)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2011-11-09 23:05:03 UTC (rev 99765)
@@ -105,6 +105,14 @@
         m_assembler.cvtsi2sd_rr(scratchRegister, dest);
     }
 
+    void absDouble(FPRegisterID src, FPRegisterID dst)
+    {
+        ASSERT(src != dst);
+        static const double negativeZeroConstant = -0.0;
+        loadDouble(&negativeZeroConstant, dst);
+        m_assembler.andnpd_rr(src, dst);
+    }
+
     void store32(TrustedImm32 imm, void* address)
     {
         move(TrustedImmPtr(address), scratchRegister);

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (99764 => 99765)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-11-09 23:05:03 UTC (rev 99765)
@@ -1258,10 +1258,7 @@
         SpeculateDoubleOperand op1(this, node.child1());
         FPRTemporary result(this);
         
-        static const double negativeZeroConstant = -0.0;
-        
-        m_jit.loadDouble(&negativeZeroConstant, result.fpr());
-        m_jit.andnotDouble(op1.fpr(), result.fpr());
+        m_jit.absDouble(op1.fpr(), result.fpr());
         doubleResult(result.fpr(), m_compileIndex);
         break;
     }

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp (99764 => 99765)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2011-11-09 23:05:03 UTC (rev 99765)
@@ -1308,10 +1308,7 @@
         SpeculateDoubleOperand op1(this, node.child1());
         FPRTemporary result(this);
         
-        static const double negativeZeroConstant = -0.0;
-        
-        m_jit.loadDouble(&negativeZeroConstant, result.fpr());
-        m_jit.andnotDouble(op1.fpr(), result.fpr());
+        m_jit.absDouble(op1.fpr(), result.fpr());
         doubleResult(result.fpr(), m_compileIndex);
         break;
     }

Modified: trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp (99764 => 99765)


--- trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2011-11-09 22:58:30 UTC (rev 99764)
+++ trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2011-11-09 23:05:03 UTC (rev 99765)
@@ -225,7 +225,6 @@
     return jit.finalize(*globalData, globalData->jitStubs->ctiNativeCall());
 }
 
-static const double negativeZeroConstant = -0.0;
 static const double _oneConstant_ = 1.0;
 static const double negativeHalfConstant = -0.5;
     
@@ -288,9 +287,8 @@
     jit.returnInt32(SpecializedThunkJIT::regT0);
     nonIntJump.link(&jit);
     // Shame about the double int conversion here.
-    jit.loadDouble(&negativeZeroConstant, SpecializedThunkJIT::fpRegT1);
     jit.loadDoubleArgument(0, SpecializedThunkJIT::fpRegT0, SpecializedThunkJIT::regT0);
-    jit.andnotDouble(SpecializedThunkJIT::fpRegT0, SpecializedThunkJIT::fpRegT1);
+    jit.absDouble(SpecializedThunkJIT::fpRegT0, SpecializedThunkJIT::fpRegT1);
     jit.returnDouble(SpecializedThunkJIT::fpRegT1);
     return jit.finalize(*globalData, globalData->jitStubs->ctiNativeCall());
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to