Changeset 38286 in webkit for trunk/JavaScriptCore/VM/Machine.h


Ignore:
Timestamp:
Nov 10, 2008, 9:09:46 PM (17 years ago)
Author:
[email protected]
Message:

2008-11-10 Gavin Barraclough <[email protected]>

Reviewed by Camron Zwarich.

Batch compile the set of static trampolines at the point Machine is constructed, using a single allocation.
Refactor out m_callFrame from CTI, since this is only needed to access the global data (instead store a
pointer to the global data directly, since this is available at the point the Machine is constructed).
Add a method to align the code buffer, to allow JIT generation for multiple trampolines in one block.

  • VM/CTI.cpp: (JSC::CTI::getConstant): (JSC::CTI::emitGetArg): (JSC::CTI::emitGetPutArg): (JSC::CTI::getConstantImmediateNumericArg): (JSC::CTI::printOpcodeOperandTypes): (JSC::CTI::CTI): (JSC::CTI::compileBinaryArithOp): (JSC::CTI::privateCompileMainPass): (JSC::CTI::privateCompileGetByIdProto): (JSC::CTI::privateCompileGetByIdChain): (JSC::CTI::privateCompileCTIMachineTrampolines): (JSC::CTI::freeCTIMachineTrampolines):
  • VM/CTI.h: (JSC::CTI::compile): (JSC::CTI::compileGetByIdSelf): (JSC::CTI::compileGetByIdProto): (JSC::CTI::compileGetByIdChain): (JSC::CTI::compilePutByIdReplace): (JSC::CTI::compilePutByIdTransition): (JSC::CTI::compileCTIMachineTrampolines): (JSC::CTI::compilePatchGetArrayLength):
  • VM/Machine.cpp: (JSC::Machine::initialize): (JSC::Machine::~Machine): (JSC::Machine::execute): (JSC::Machine::tryCTICachePutByID): (JSC::Machine::tryCTICacheGetByID): (JSC::Machine::cti_op_call_JSFunction): (JSC::Machine::cti_vm_lazyLinkCall):
  • VM/Machine.h:
  • masm/X86Assembler.h: (JSC::JITCodeBuffer::isAligned): (JSC::X86Assembler::): (JSC::X86Assembler::align):
  • runtime/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/Machine.h

    r38209 r38286  
    107107        Machine();
    108108        ~Machine();
     109
     110        void initialize(JSGlobalData*);
    109111       
    110112        RegisterFile& registerFile() { return m_registerFile; }
     
    324326        void tryCTICachePutByID(CallFrame*, CodeBlock*, void* returnAddress, JSValue* baseValue, const PutPropertySlot&);
    325327
    326         void* getCTIArrayLengthTrampoline(CallFrame*, CodeBlock*);
    327         void* getCTIStringLengthTrampoline(CallFrame*, CodeBlock*);
    328 
    329328        JITCodeBuffer* jitCodeBuffer() const { return m_jitCodeBuffer.get(); }
    330329#endif
Note: See TracChangeset for help on using the changeset viewer.