Skip to content
  • barraclough@apple.com's avatar
    Bug 39343 - Dynamically generate a native call thunk per NativeFunction · 8cc46690
    barraclough@apple.com authored
            
    Reviewed by Geoff Garen.
    
    https://bugs.webkit.org/show_bug.cgi?id=39252 regressed performance on i386,
    by adding an extra indirection to making a native call.  By introducing per-
    NativeFunction thunks we can hard code the function pointer into the thunk
    so that it need not be loaded from the callee.
    
    * jit/JIT.h:
    (JSC::JIT::compileCTINativeCall):
    * jit/JITOpcodes.cpp:
    (JSC::JIT::privateCompileCTINativeCall):
    * jit/JITOpcodes32_64.cpp:
    (JSC::JIT::privateCompileCTINativeCall):
    * jit/JITPropertyAccess.cpp:
    (JSC::JIT::emitSlow_op_get_by_val):
    * jit/JITPropertyAccess32_64.cpp:
    (JSC::JIT::emitSlow_op_get_by_val):
    * jit/JITStubs.cpp:
    (JSC::JITThunks::ctiStub):
    (JSC::JITThunks::hostFunctionStub):
    * jit/JITStubs.h:
    * jit/SpecializedThunkJIT.h:
    (JSC::SpecializedThunkJIT::finalize):
    * jit/ThunkGenerators.cpp:
    (JSC::charCodeAtThunkGenerator):
    (JSC::charAtThunkGenerator):
    (JSC::fromCharCodeThunkGenerator):
    (JSC::sqrtThunkGenerator):
    (JSC::powThunkGenerator):
    * runtime/JSFunction.cpp:
    (JSC::JSFunction::JSFunction):
    * runtime/JSGlobalData.cpp:
    (JSC::JSGlobalData::getHostFunction):
    * runtime/JSGlobalData.h:
    (JSC::JSGlobalData::getCTIStub):
    * runtime/Lookup.cpp:
    (JSC::setUpStaticFunctionSlot):
    * runtime/StringConstructor.cpp:
    (JSC::StringConstructor::StringConstructor):
    * wtf/Platform.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@59746 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    8cc46690