Changeset 59056 in webkit for trunk/JavaScriptCore/jit/JIT.h


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/JIT.h

    r58986 r59056  
    448448#endif
    449449        void emitFastArithReTagImmediate(RegisterID src, RegisterID dest);
    450         void emitFastArithImmToInt(RegisterID);
    451450        void emitFastArithIntToImmNoCheck(RegisterID src, RegisterID dest);
    452451
     
    905904#endif
    906905#endif
     906        static PassRefPtr<NativeExecutable> stringGetByValStubGenerator(JSGlobalData* globalData, ExecutablePool* pool);
    907907    } JIT_CLASS_ALIGNMENT;
    908908
Note: See TracChangeset for help on using the changeset viewer.