Ignore:
Timestamp:
Oct 17, 2008, 4:55:09 AM (17 years ago)
Author:
[email protected]
Message:

2008-10-17 Maciej Stachowiak <[email protected]>

Reviewed by Cameron Zwarich.


  • speed up transitions that resize the property storage a fair bit


~3% speedup on v8 RayTrace benchmark, ~1% on DeltaBlue

  • VM/CTI.cpp: (JSC::resizePropertyStorage): renamed from transitionObject, and reduced to just resize the object's property storage with one inline call. (JSC::CTI::privateCompilePutByIdTransition): Use a separate function for property storage resize, but still do all the rest of the work in assembly in that case, and pass the known compile-time constants of old and new size rather than structureIDs, saving a bunch of redundant memory access.
  • kjs/JSObject.cpp: (JSC::JSObject::allocatePropertyStorage): Just call the inline version.
  • kjs/JSObject.h: (JSC::JSObject::allocatePropertyStorageInline): Inline version of allocatePropertyStorage
  • masm/X86Assembler.h: (JSC::X86Assembler::): (JSC::X86Assembler::pushl_i32): Add code to assmeble push of a constant; code originally by Cameron Zwarich.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/masm/X86Assembler.h

    r37652 r37653  
    197197        PRE_OPERAND_SIZE                = 0x66,
    198198        PRE_SSE_66                      = 0x66,
     199        OP_PUSH_Iz                      = 0x68,
    199200        OP_IMUL_GvEvIz                  = 0x69,
    200201        OP_GROUP1_EvIz                  = 0x81,
     
    293294        emitModRm_opm(GROUP5_OP_PUSH, base, offset);
    294295    }
     296
     297    void pushl_i32(int imm)
     298    {
     299        m_buffer->putByte(OP_PUSH_Iz);
     300        m_buffer->putInt(imm);
     301    }
    295302   
    296303    void popl_r(RegisterID reg)
Note: See TracChangeset for help on using the changeset viewer.