-
ggaren@apple.com authored
punished some patterns of array access too much, and made things too complex for inlining in some cases. Patch by Geoffrey Garen <ggaren@apple.com> on 2009-10-02 Reviewed by Sam Weinig. 1.3% speedup on SunSpider. * jit/JITOpcodes.cpp: (JSC::JIT::emitSlow_op_get_by_val): (JSC::JIT::emitSlow_op_put_by_val): * jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emitSlow_op_get_by_val): (JSC::JIT::emit_op_put_by_val): (JSC::JIT::emitSlow_op_put_by_val): * jit/JITStubs.cpp: * jit/JITStubs.h: (JSC::): Check m_vectorLength instead of m_fastAccessCutoff when getting / putting from / to an array. Inline putting past the end of the array. * runtime/JSArray.cpp: (JSC::JSArray::JSArray): (JSC::JSArray::getOwnPropertySlot): (JSC::JSArray::getOwnPropertyDescriptor): (JSC::JSArray::put): (JSC::JSArray::putSlowCase): (JSC::JSArray::deleteProperty): (JSC::JSArray::getOwnPropertyNames): (JSC::JSArray::increaseVectorLength): (JSC::JSArray::setLength): (JSC::JSArray::pop): (JSC::JSArray::push): (JSC::JSArray::sort): (JSC::JSArray::fillArgList): (JSC::JSArray::copyToRegisters): (JSC::JSArray::compactForSorting): (JSC::JSArray::checkConsistency): * runtime/JSArray.h: (JSC::JSArray::canGetIndex): (JSC::JSArray::canSetIndex): (JSC::JSArray::setIndex): (JSC::JSArray::markChildrenDirect): Removed m_fastAccessCutoff, and replaced with checks for JSValue() to detect reads and writes from / to uninitialized parts of the array. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49065 268f45cc-cd09-0410-ab3c-d52691b4dbfc
570483e7