Changeset 96569 in webkit


Ignore:
Timestamp:
Oct 3, 2011 8:20:05 PM (12 years ago)
Author:
fpizlo@apple.com
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):

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r96567 r96569  
     12011-10-03  Filip Pizlo  <fpizlo@apple.com>
     2
     3        DFG should inline Array.push and Array.pop
     4        https://bugs.webkit.org/show_bug.cgi?id=69314
     5
     6        Reviewed by Geoff Garen.
     7       
     8        Fix 32-bit.
     9
     10        * dfg/DFGSpeculativeJIT32_64.cpp:
     11        (JSC::DFG::SpeculativeJIT::compile):
     12
    1132011-10-03  Filip Pizlo  <fpizlo@apple.com>
    214
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp

    r96567 r96569  
    13431343        m_jit.store32(storageLengthGPR, MacroAssembler::Address(storageGPR, OBJECT_OFFSETOF(ArrayStorage, m_length)));
    13441344
    1345         MacroAssembler::Jump notHole = m_jit.branchTestPtr(MacroAssembler::NonZero, valueTagGPR);
    1346         MacroAssembler::Jump holeCase = m_jit.branchTestPtr(MacroAssembler::Zero, valuePayloadGPR);
    1347         notHole.link(&m_jit);
    1348        
    1349         m_jit.move(Imm32(0), storageLengthGPR);
     1345        MacroAssembler::Jump holeCase = m_jit.branch32(MacroAssembler::Equal, Imm32(JSValue::EmptyValueTag), valueTagGPR);
     1346       
     1347        m_jit.move(Imm32(JSValue::EmptyValueTag), storageLengthGPR);
    13501348        m_jit.store32(storageLengthGPR, MacroAssembler::BaseIndex(storageGPR, storageLengthGPR, MacroAssembler::ScalePtr, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)));
    1351         m_jit.store32(storageLengthGPR, MacroAssembler::BaseIndex(storageGPR, storageLengthGPR, MacroAssembler::ScalePtr, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)));
     1349
    13521350        m_jit.sub32(MacroAssembler::Imm32(1), MacroAssembler::Address(storageGPR, OBJECT_OFFSETOF(ArrayStorage, m_numValuesInVector)));
    13531351       
Note: See TracChangeset for help on using the changeset viewer.