Ignore:
Timestamp:
Oct 12, 2012, 8:56:09 PM (13 years ago)
Author:
[email protected]
Message:

Contiguous array allocation should always be inlined
https://bugs.webkit.org/show_bug.cgi?id=98608

Reviewed by Oliver Hunt and Mark Hahnenberg.

This inlines contiguous array allocation in the most obvious way possible.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::branchSubPtr):
(MacroAssembler):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::branchSubPtr):
(MacroAssemblerX86_64):

  • dfg/DFGAbstractState.cpp:

(JSC::DFG::AbstractState::execute):

  • dfg/DFGCCallHelpers.h:

(JSC::DFG::CCallHelpers::setupArgumentsWithExecState):
(CCallHelpers):

  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h: Added.

(DFG):
(CallArrayAllocatorSlowPathGenerator):
(JSC::DFG::CallArrayAllocatorSlowPathGenerator::CallArrayAllocatorSlowPathGenerator):
(JSC::DFG::CallArrayAllocatorSlowPathGenerator::generateInternal):
(CallArrayAllocatorWithVariableSizeSlowPathGenerator):
(JSC::DFG::CallArrayAllocatorWithVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableSizeSlowPathGenerator):
(JSC::DFG::CallArrayAllocatorWithVariableSizeSlowPathGenerator::generateInternal):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateJSArray):
(DFG):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::emitAllocateBasicStorage):
(JSC::DFG::SpeculativeJIT::emitAllocateBasicJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateJSFinalObject):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp

    r131210 r131249  
    11111111    JSGlobalData* globalData = &exec->globalData();
    11121112    NativeCallFrameTracer tracer(globalData, exec);
    1113 
     1113   
    11141114    return bitwise_cast<char*>(constructArray(exec, arrayStructure, static_cast<JSValue*>(buffer), size));
    11151115}
     
    11171117char* DFG_OPERATION operationNewEmptyArray(ExecState* exec, Structure* arrayStructure)
    11181118{
    1119     return bitwise_cast<char*>(JSArray::create(exec->globalData(), arrayStructure));
     1119    JSGlobalData* globalData = &exec->globalData();
     1120    NativeCallFrameTracer tracer(globalData, exec);
     1121   
     1122    return bitwise_cast<char*>(JSArray::create(*globalData, arrayStructure));
    11201123}
    11211124
    11221125char* DFG_OPERATION operationNewArrayWithSize(ExecState* exec, Structure* arrayStructure, int32_t size)
    11231126{
    1124     return bitwise_cast<char*>(JSArray::create(exec->globalData(), arrayStructure, size));
     1127    JSGlobalData* globalData = &exec->globalData();
     1128    NativeCallFrameTracer tracer(globalData, exec);
     1129   
     1130    return bitwise_cast<char*>(JSArray::create(*globalData, arrayStructure, size));
    11251131}
    11261132
Note: See TracChangeset for help on using the changeset viewer.