Ignore:
Timestamp:
Oct 9, 2012, 12:12:56 AM (13 years ago)
Author:
[email protected]
Message:

Renamed RegisterFile to JSStack, and removed prototype of the
previously deleted Interpreter::privateExecute().
https://bugs.webkit.org/show_bug.cgi?id=98717.

Reviewed by Filip Pizlo.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.order:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • bytecode/BytecodeConventions.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::nameForRegister):

  • bytecode/CodeBlock.h:

(CodeBlock):

  • bytecode/ValueRecovery.h:

(JSC::ValueRecovery::alreadyInJSStack):
(JSC::ValueRecovery::alreadyInJSStackAsUnboxedInt32):
(JSC::ValueRecovery::alreadyInJSStackAsUnboxedCell):
(JSC::ValueRecovery::alreadyInJSStackAsUnboxedBoolean):
(JSC::ValueRecovery::alreadyInJSStackAsUnboxedDouble):
(JSC::ValueRecovery::displacedInJSStack):
(JSC::ValueRecovery::isAlreadyInJSStack):
(JSC::ValueRecovery::virtualRegister):
(JSC::ValueRecovery::dump):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::resolveCallee):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::registerFor):

  • dfg/DFGAbstractState.h:

(AbstractState):

  • dfg/DFGAssemblyHelpers.h:

(JSC::DFG::AssemblyHelpers::emitGetFromCallFrameHeaderPtr):
(JSC::DFG::AssemblyHelpers::emitPutToCallFrameHeader):
(JSC::DFG::AssemblyHelpers::emitPutImmediateToCallFrameHeader):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::getDirect):
(JSC::DFG::ByteCodeParser::findArgumentPositionForLocal):
(JSC::DFG::ByteCodeParser::addCall):
(JSC::DFG::ByteCodeParser::InlineStackEntry::remapOperand):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGGenerationInfo.h:

(GenerationInfo):
(JSC::DFG::GenerationInfo::needsSpill):

  • dfg/DFGGraph.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileEntry):
(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::beginCall):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGRepatch.cpp:

(JSC::DFG::tryBuildGetByIDList):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::checkArgumentTypes):
(JSC::DFG::SpeculativeJIT::computeValueRecoveryFor):

  • dfg/DFGSpeculativeJIT.h:

(SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::spill):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillInteger):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGThunks.cpp:

(JSC::DFG::throwExceptionFromCallSlowPathGenerator):
(JSC::DFG::slowPathFor):
(JSC::DFG::virtualForThunkGenerator):

  • dfg/DFGValueSource.cpp:

(JSC::DFG::ValueSource::dump):

  • dfg/DFGValueSource.h:

(JSC::DFG::dataFormatToValueSourceKind):
(JSC::DFG::valueSourceKindToDataFormat):
(JSC::DFG::isInJSStack):
(JSC::DFG::ValueSource::forSpeculation):
(JSC::DFG::ValueSource::isInJSStack):
(JSC::DFG::ValueSource::valueRecovery):

  • dfg/DFGVariableEventStream.cpp:

(JSC::DFG::VariableEventStream::reconstruct):

  • heap/Heap.cpp:

(JSC::Heap::stack):
(JSC::Heap::getConservativeRegisterRoots):
(JSC::Heap::markRoots):

  • heap/Heap.h:

(JSC):
(Heap):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::stack):

  • interpreter/CallFrame.h:

(JSC::ExecState::calleeAsValue):
(JSC::ExecState::callee):
(JSC::ExecState::codeBlock):
(JSC::ExecState::scope):
(JSC::ExecState::callerFrame):
(JSC::ExecState::returnPC):
(JSC::ExecState::hasReturnPC):
(JSC::ExecState::clearReturnPC):
(JSC::ExecState::bytecodeOffsetForNonDFGCode):
(JSC::ExecState::setBytecodeOffsetForNonDFGCode):
(JSC::ExecState::inlineCallFrame):
(JSC::ExecState::codeOriginIndexForDFG):
(JSC::ExecState::currentVPC):
(JSC::ExecState::setCurrentVPC):
(JSC::ExecState::setCallerFrame):
(JSC::ExecState::setScope):
(JSC::ExecState::init):
(JSC::ExecState::argumentCountIncludingThis):
(JSC::ExecState::offsetFor):
(JSC::ExecState::setArgumentCountIncludingThis):
(JSC::ExecState::setCallee):
(JSC::ExecState::setCodeBlock):
(JSC::ExecState::setReturnPC):
(JSC::ExecState::setInlineCallFrame):
(ExecState):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::slideRegisterWindowForCall):
(JSC::eval):
(JSC::loadVarargs):
(JSC::Interpreter::dumpRegisters):
(JSC::Interpreter::throwException):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
(JSC::Interpreter::endRepeatCall):

  • interpreter/Interpreter.h:

(JSC::Interpreter::stack):
(Interpreter):
(JSC::Interpreter::execute):
(JSC):

  • interpreter/JSStack.cpp: Copied from Source/JavaScriptCore/interpreter/RegisterFile.cpp.

(JSC::stackStatisticsMutex):
(JSC::JSStack::~JSStack):
(JSC::JSStack::growSlowCase):
(JSC::JSStack::gatherConservativeRoots):
(JSC::JSStack::releaseExcessCapacity):
(JSC::JSStack::initializeThreading):
(JSC::JSStack::committedByteCount):
(JSC::JSStack::addToCommittedByteCount):

  • interpreter/JSStack.h: Copied from Source/JavaScriptCore/interpreter/RegisterFile.h.

(JSStack):
(JSC::JSStack::JSStack):
(JSC::JSStack::shrink):
(JSC::JSStack::grow):

  • interpreter/RegisterFile.cpp: Removed.
  • interpreter/RegisterFile.h: Removed.
  • interpreter/VMInspector.cpp:

(JSC::VMInspector::dumpFrame):

  • jit/JIT.cpp:

(JSC::JIT::JIT):
(JSC::JIT::privateCompile):

  • jit/JIT.h:

(JSC):
(JIT):

  • jit/JITCall.cpp:

(JSC::JIT::compileLoadVarargs):
(JSC::JIT::compileCallEval):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::emit_op_ret):
(JSC::JIT::emit_op_ret_object_or_this):
(JSC::JIT::compileLoadVarargs):
(JSC::JIT::compileCallEval):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):

  • jit/JITCode.h:

(JSC):
(JSC::JITCode::execute):

  • jit/JITInlineMethods.h:

(JSC::JIT::emitPutToCallFrameHeader):
(JSC::JIT::emitPutCellToCallFrameHeader):
(JSC::JIT::emitPutIntToCallFrameHeader):
(JSC::JIT::emitPutImmediateToCallFrameHeader):
(JSC::JIT::emitGetFromCallFrameHeaderPtr):
(JSC::JIT::emitGetFromCallFrameHeader32):
(JSC::JIT::updateTopCallFrame):
(JSC::JIT::unmap):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileCTIMachineTrampolines):
(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_end):
(JSC::JIT::emit_op_ret):
(JSC::JIT::emit_op_ret_object_or_this):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emit_op_get_arguments_length):
(JSC::JIT::emit_op_get_argument_by_val):
(JSC::JIT::emit_op_resolve_global_dynamic):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTIMachineTrampolines):
(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_end):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emit_op_get_arguments_length):
(JSC::JIT::emit_op_get_argument_by_val):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_scoped_var):
(JSC::JIT::emit_op_put_scoped_var):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_scoped_var):
(JSC::JIT::emit_op_put_scoped_var):

  • jit/JITStubs.cpp:

(JSC::ctiTrampoline):
(JSC::JITThunks::JITThunks):
(JSC):
(JSC::DEFINE_STUB_FUNCTION):

  • jit/JITStubs.h:

(JSC):
(JITStackFrame):

  • jit/JSInterfaceJIT.h:
  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::SpecializedThunkJIT):
(JSC::SpecializedThunkJIT::returnJSValue):
(JSC::SpecializedThunkJIT::returnDouble):
(JSC::SpecializedThunkJIT::returnInt32):
(JSC::SpecializedThunkJIT::returnJSCell):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::genericCall):

  • llint/LLIntSlowPaths.h:

(LLInt):

  • llint/LowLevelInterpreter.asm:
  • runtime/Arguments.cpp:

(JSC::Arguments::tearOffForInlineCallFrame):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreadingOnce):

  • runtime/JSActivation.cpp:

(JSC::JSActivation::visitChildren):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::globalExec):

  • runtime/JSGlobalObject.h:

(JSC):
(JSGlobalObject):

  • runtime/JSLock.cpp:

(JSC):

  • runtime/JSVariableObject.h:

(JSVariableObject):

  • runtime/MemoryStatistics.cpp:

(JSC::globalMemoryStatistics):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/bytecode/ValueRecovery.h

    r124404 r130726  
    3939// code point.
    4040enum ValueRecoveryTechnique {
    41     // It's already in the register file at the right location.
    42     AlreadyInRegisterFile,
    43     // It's already in the register file but unboxed.
    44     AlreadyInRegisterFileAsUnboxedInt32,
    45     AlreadyInRegisterFileAsUnboxedCell,
    46     AlreadyInRegisterFileAsUnboxedBoolean,
    47     AlreadyInRegisterFileAsUnboxedDouble,
     41    // It's already in the stack at the right location.
     42    AlreadyInJSStack,
     43    // It's already in the stack but unboxed.
     44    AlreadyInJSStackAsUnboxedInt32,
     45    AlreadyInJSStackAsUnboxedCell,
     46    AlreadyInJSStackAsUnboxedBoolean,
     47    AlreadyInJSStackAsUnboxedDouble,
    4848    // It's in a register.
    4949    InGPR,
     
    5555    InFPR,
    5656    UInt32InGPR,
    57     // It's in the register file, but at a different location.
    58     DisplacedInRegisterFile,
    59     // It's in the register file, at a different location, and it's unboxed.
    60     Int32DisplacedInRegisterFile,
    61     DoubleDisplacedInRegisterFile,
    62     CellDisplacedInRegisterFile,
    63     BooleanDisplacedInRegisterFile,
     57    // It's in the stack, but at a different location.
     58    DisplacedInJSStack,
     59    // It's in the stack, at a different location, and it's unboxed.
     60    Int32DisplacedInJSStack,
     61    DoubleDisplacedInJSStack,
     62    CellDisplacedInJSStack,
     63    BooleanDisplacedInJSStack,
    6464    // It's an Arguments object.
    6565    ArgumentsThatWereNotCreated,
     
    8080    bool operator!() const { return !isSet(); }
    8181   
    82     static ValueRecovery alreadyInRegisterFile()
    83     {
    84         ValueRecovery result;
    85         result.m_technique = AlreadyInRegisterFile;
    86         return result;
    87     }
    88    
    89     static ValueRecovery alreadyInRegisterFileAsUnboxedInt32()
    90     {
    91         ValueRecovery result;
    92         result.m_technique = AlreadyInRegisterFileAsUnboxedInt32;
    93         return result;
    94     }
    95    
    96     static ValueRecovery alreadyInRegisterFileAsUnboxedCell()
    97     {
    98         ValueRecovery result;
    99         result.m_technique = AlreadyInRegisterFileAsUnboxedCell;
    100         return result;
    101     }
    102    
    103     static ValueRecovery alreadyInRegisterFileAsUnboxedBoolean()
    104     {
    105         ValueRecovery result;
    106         result.m_technique = AlreadyInRegisterFileAsUnboxedBoolean;
    107         return result;
    108     }
    109    
    110     static ValueRecovery alreadyInRegisterFileAsUnboxedDouble()
    111     {
    112         ValueRecovery result;
    113         result.m_technique = AlreadyInRegisterFileAsUnboxedDouble;
     82    static ValueRecovery alreadyInJSStack()
     83    {
     84        ValueRecovery result;
     85        result.m_technique = AlreadyInJSStack;
     86        return result;
     87    }
     88   
     89    static ValueRecovery alreadyInJSStackAsUnboxedInt32()
     90    {
     91        ValueRecovery result;
     92        result.m_technique = AlreadyInJSStackAsUnboxedInt32;
     93        return result;
     94    }
     95   
     96    static ValueRecovery alreadyInJSStackAsUnboxedCell()
     97    {
     98        ValueRecovery result;
     99        result.m_technique = AlreadyInJSStackAsUnboxedCell;
     100        return result;
     101    }
     102   
     103    static ValueRecovery alreadyInJSStackAsUnboxedBoolean()
     104    {
     105        ValueRecovery result;
     106        result.m_technique = AlreadyInJSStackAsUnboxedBoolean;
     107        return result;
     108    }
     109   
     110    static ValueRecovery alreadyInJSStackAsUnboxedDouble()
     111    {
     112        ValueRecovery result;
     113        result.m_technique = AlreadyInJSStackAsUnboxedDouble;
    114114        return result;
    115115    }
     
    159159    }
    160160   
    161     static ValueRecovery displacedInRegisterFile(VirtualRegister virtualReg, DataFormat dataFormat)
     161    static ValueRecovery displacedInJSStack(VirtualRegister virtualReg, DataFormat dataFormat)
    162162    {
    163163        ValueRecovery result;
    164164        switch (dataFormat) {
    165165        case DataFormatInteger:
    166             result.m_technique = Int32DisplacedInRegisterFile;
     166            result.m_technique = Int32DisplacedInJSStack;
    167167            break;
    168168           
    169169        case DataFormatDouble:
    170             result.m_technique = DoubleDisplacedInRegisterFile;
     170            result.m_technique = DoubleDisplacedInJSStack;
    171171            break;
    172172
    173173        case DataFormatCell:
    174             result.m_technique = CellDisplacedInRegisterFile;
     174            result.m_technique = CellDisplacedInJSStack;
    175175            break;
    176176           
    177177        case DataFormatBoolean:
    178             result.m_technique = BooleanDisplacedInRegisterFile;
     178            result.m_technique = BooleanDisplacedInJSStack;
    179179            break;
    180180           
    181181        default:
    182182            ASSERT(dataFormat != DataFormatNone && dataFormat != DataFormatStorage);
    183             result.m_technique = DisplacedInRegisterFile;
     183            result.m_technique = DisplacedInJSStack;
    184184            break;
    185185        }
     
    223223    }
    224224   
    225     bool isAlreadyInRegisterFile() const
     225    bool isAlreadyInJSStack() const
    226226    {
    227227        switch (technique()) {
    228         case AlreadyInRegisterFile:
    229         case AlreadyInRegisterFileAsUnboxedInt32:
    230         case AlreadyInRegisterFileAsUnboxedCell:
    231         case AlreadyInRegisterFileAsUnboxedBoolean:
    232         case AlreadyInRegisterFileAsUnboxedDouble:
     228        case AlreadyInJSStack:
     229        case AlreadyInJSStackAsUnboxedInt32:
     230        case AlreadyInJSStackAsUnboxedCell:
     231        case AlreadyInJSStackAsUnboxedBoolean:
     232        case AlreadyInJSStackAsUnboxedDouble:
    233233            return true;
    234234        default:
     
    265265    VirtualRegister virtualRegister() const
    266266    {
    267         ASSERT(m_technique == DisplacedInRegisterFile || m_technique == Int32DisplacedInRegisterFile || m_technique == DoubleDisplacedInRegisterFile || m_technique == CellDisplacedInRegisterFile || m_technique == BooleanDisplacedInRegisterFile);
     267        ASSERT(m_technique == DisplacedInJSStack || m_technique == Int32DisplacedInJSStack || m_technique == DoubleDisplacedInJSStack || m_technique == CellDisplacedInJSStack || m_technique == BooleanDisplacedInJSStack);
    268268        return m_source.virtualReg;
    269269    }
     
    278278    {
    279279        switch (technique()) {
    280         case AlreadyInRegisterFile:
     280        case AlreadyInJSStack:
    281281            fprintf(out, "-");
    282282            break;
    283         case AlreadyInRegisterFileAsUnboxedInt32:
     283        case AlreadyInJSStackAsUnboxedInt32:
    284284            fprintf(out, "(int32)");
    285285            break;
    286         case AlreadyInRegisterFileAsUnboxedCell:
     286        case AlreadyInJSStackAsUnboxedCell:
    287287            fprintf(out, "(cell)");
    288288            break;
    289         case AlreadyInRegisterFileAsUnboxedBoolean:
     289        case AlreadyInJSStackAsUnboxedBoolean:
    290290            fprintf(out, "(bool)");
    291291            break;
    292         case AlreadyInRegisterFileAsUnboxedDouble:
     292        case AlreadyInJSStackAsUnboxedDouble:
    293293            fprintf(out, "(double)");
    294294            break;
     
    313313            break;
    314314#endif
    315         case DisplacedInRegisterFile:
     315        case DisplacedInJSStack:
    316316            fprintf(out, "*%d", virtualRegister());
    317317            break;
    318         case Int32DisplacedInRegisterFile:
     318        case Int32DisplacedInJSStack:
    319319            fprintf(out, "*int32(%d)", virtualRegister());
    320320            break;
    321         case DoubleDisplacedInRegisterFile:
     321        case DoubleDisplacedInJSStack:
    322322            fprintf(out, "*double(%d)", virtualRegister());
    323323            break;
    324         case CellDisplacedInRegisterFile:
     324        case CellDisplacedInJSStack:
    325325            fprintf(out, "*cell(%d)", virtualRegister());
    326326            break;
    327         case BooleanDisplacedInRegisterFile:
     327        case BooleanDisplacedInJSStack:
    328328            fprintf(out, "*bool(%d)", virtualRegister());
    329329            break;
Note: See TracChangeset for help on using the changeset viewer.