Ignore:
Timestamp:
May 9, 2010, 4:42:22 AM (15 years ago)
Author:
[email protected]
Message:

2010-05-09 Oliver Hunt <[email protected]>

Reviewed by Maciej Stachowiak.

Improve string indexing performance
https://bugs.webkit.org/show_bug.cgi?id=38814

Add an assembly stub to do indexed loads from strings much
more cheaply than the current stub dispatch logic. We can
do this because we are able to make guarantees about the
register contents when entering the stub so the call overhead
is negligible.

  • jit/JIT.h:
  • jit/JITInlineMethods.h:
  • jit/JITOpcodes.cpp:
  • jit/JITPropertyAccess.cpp: (JSC::JIT::stringGetByValStubGenerator): (JSC::JIT::emitSlow_op_get_by_val):

Moved from JITOpcodes.cpp to keep the slowcase next to
the normal case codegen as we do for everything else.

  • jit/JITPropertyAccess32_64.cpp: (JSC::JIT::stringGetByValStubGenerator): (JSC::JIT::emitSlow_op_get_by_val):
  • jit/JSInterfaceJIT.h: (JSC::JSInterfaceJIT::emitFastArithImmToInt):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/jit/JITInlineMethods.h

    r58902 r59056  
    821821}
    822822
    823 ALWAYS_INLINE void JIT::emitFastArithImmToInt(RegisterID reg)
    824 {
    825 #if USE(JSVALUE64)
    826     UNUSED_PARAM(reg);
    827 #else
    828     rshift32(Imm32(JSImmediate::IntegerPayloadShift), reg);
    829 #endif
    830 }
    831 
    832823// operand is int32_t, must have been zero-extended if register is 64-bit.
    833824ALWAYS_INLINE void JIT::emitFastArithIntToImmNoCheck(RegisterID src, RegisterID dest)
Note: See TracChangeset for help on using the changeset viewer.