Skip to content
  • barraclough@apple.com's avatar
    https://bugs.webkit.org/show_bug.cgi?id=39039 · 83c4e8c4
    barraclough@apple.com authored
    Provide support for separate bytecode/JIT code translations for call/construct usage
    This will allow us to produce code generated specifically for use as a constructor, not for general function use.
    
    Reviewed by Oliver Hunt.
    
    * bytecode/CodeBlock.cpp:
    (JSC::CodeBlock::CodeBlock):
    (JSC::CodeBlock::unlinkCallers):
    * bytecode/CodeBlock.h:
    (JSC::CodeBlock::getBytecodeIndex):
    (JSC::CodeBlock::getJITCode):
    (JSC::CodeBlock::executablePool):
    (JSC::GlobalCodeBlock::GlobalCodeBlock):
    (JSC::FunctionCodeBlock::FunctionCodeBlock):
    * interpreter/Interpreter.cpp:
    (JSC::Interpreter::executeCall):
    (JSC::Interpreter::executeConstruct):
    (JSC::Interpreter::prepareForRepeatCall):
    (JSC::Interpreter::execute):
    (JSC::Interpreter::privateExecute):
    * interpreter/Interpreter.h:
    * jit/JIT.cpp:
    (JSC::JIT::unlinkCallOrConstruct):
    (JSC::JIT::linkConstruct):
    * jit/JIT.h:
    * jit/JITCall.cpp:
    (JSC::JIT::compileOpCall):
    (JSC::JIT::compileOpCallSlowCase):
    * jit/JITOpcodes.cpp:
    (JSC::JIT::privateCompileCTIMachineTrampolines):
    * jit/JITOpcodes32_64.cpp:
    (JSC::JIT::privateCompileCTIMachineTrampolines):
    * 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::DEFINE_STUB_FUNCTION):
    * jit/JITStubs.h:
    (JSC::JITThunks::ctiVirtualConstructLink):
    (JSC::JITThunks::ctiVirtualConstruct):
    (JSC::):
    * jit/SpecializedThunkJIT.h:
    (JSC::SpecializedThunkJIT::finalize):
    * runtime/Arguments.h:
    (JSC::JSActivation::copyRegisters):
    * runtime/ArrayPrototype.cpp:
    (JSC::isNumericCompareFunction):
    * runtime/Executable.cpp:
    (JSC::FunctionExecutable::~FunctionExecutable):
    (JSC::FunctionExecutable::compileForCall):
    (JSC::FunctionExecutable::compileForConstruct):
    (JSC::EvalExecutable::generateJITCode):
    (JSC::ProgramExecutable::generateJITCode):
    (JSC::FunctionExecutable::generateJITCodeForCall):
    (JSC::FunctionExecutable::generateJITCodeForConstruct):
    (JSC::FunctionExecutable::markAggregate):
    (JSC::FunctionExecutable::reparseExceptionInfo):
    (JSC::EvalExecutable::reparseExceptionInfo):
    (JSC::FunctionExecutable::recompile):
    * runtime/Executable.h:
    (JSC::ExecutableBase::ExecutableBase):
    (JSC::ExecutableBase::isHostFunction):
    (JSC::ExecutableBase::generatedJITCodeForCall):
    (JSC::ExecutableBase::generatedJITCodeForConstruct):
    (JSC::NativeExecutable::NativeExecutable):
    (JSC::EvalExecutable::jitCode):
    (JSC::ProgramExecutable::jitCode):
    (JSC::FunctionExecutable::bytecodeForCall):
    (JSC::FunctionExecutable::isGeneratedForCall):
    (JSC::FunctionExecutable::generatedBytecodeForCall):
    (JSC::FunctionExecutable::bytecodeForConstruct):
    (JSC::FunctionExecutable::isGeneratedForConstruct):
    (JSC::FunctionExecutable::generatedBytecodeForConstruct):
    (JSC::FunctionExecutable::symbolTable):
    (JSC::FunctionExecutable::FunctionExecutable):
    (JSC::FunctionExecutable::jitCodeForCall):
    (JSC::FunctionExecutable::jitCodeForConstruct):
    * runtime/JSActivation.h:
    (JSC::JSActivation::JSActivationData::JSActivationData):
    * runtime/JSFunction.cpp:
    (JSC::JSFunction::~JSFunction):
    (JSC::JSFunction::call):
    (JSC::JSFunction::construct):
    * runtime/JSGlobalData.cpp:
    (JSC::JSGlobalData::numericCompareFunction):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@59339 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    83c4e8c4