Title: [96569] trunk/Source/_javascript_Core
Revision
96569
Author
fpi...@apple.com
Date
2011-10-03 20:20:05 -0700 (Mon, 03 Oct 2011)

Log Message

DFG should inline Array.push and Array.pop
https://bugs.webkit.org/show_bug.cgi?id=69314

Reviewed by Geoff Garen.
        
Fix 32-bit.

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (96568 => 96569)


--- trunk/Source/_javascript_Core/ChangeLog	2011-10-04 03:10:54 UTC (rev 96568)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-10-04 03:20:05 UTC (rev 96569)
@@ -3,6 +3,18 @@
         DFG should inline Array.push and Array.pop
         https://bugs.webkit.org/show_bug.cgi?id=69314
 
+        Reviewed by Geoff Garen.
+        
+        Fix 32-bit.
+
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+
+2011-10-03  Filip Pizlo  <fpi...@apple.com>
+
+        DFG should inline Array.push and Array.pop
+        https://bugs.webkit.org/show_bug.cgi?id=69314
+
         Reviewed by Oliver Hunt.
         
         1% speed-up in V8 due to 6% speed-up in V8-deltablue.

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (96568 => 96569)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-10-04 03:10:54 UTC (rev 96568)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-10-04 03:20:05 UTC (rev 96569)
@@ -1342,13 +1342,11 @@
         
         m_jit.store32(storageLengthGPR, MacroAssembler::Address(storageGPR, OBJECT_OFFSETOF(ArrayStorage, m_length)));
 
-        MacroAssembler::Jump notHole = m_jit.branchTestPtr(MacroAssembler::NonZero, valueTagGPR);
-        MacroAssembler::Jump holeCase = m_jit.branchTestPtr(MacroAssembler::Zero, valuePayloadGPR);
-        notHole.link(&m_jit);
+        MacroAssembler::Jump holeCase = m_jit.branch32(MacroAssembler::Equal, Imm32(JSValue::EmptyValueTag), valueTagGPR);
         
-        m_jit.move(Imm32(0), storageLengthGPR);
+        m_jit.move(Imm32(JSValue::EmptyValueTag), storageLengthGPR);
         m_jit.store32(storageLengthGPR, MacroAssembler::BaseIndex(storageGPR, storageLengthGPR, MacroAssembler::ScalePtr, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)));
-        m_jit.store32(storageLengthGPR, MacroAssembler::BaseIndex(storageGPR, storageLengthGPR, MacroAssembler::ScalePtr, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)));
+
         m_jit.sub32(MacroAssembler::Imm32(1), MacroAssembler::Address(storageGPR, OBJECT_OFFSETOF(ArrayStorage, m_numValuesInVector)));
         
         MacroAssembler::JumpList done;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to