Ignore:
Timestamp:
Dec 13, 2008, 3:58:58 PM (16 years ago)
Author:
[email protected]
Message:

2008-12-13 Gavin Barraclough <[email protected]>

Reviewed by Cameron Zwarich.

Port the remainder of the JIT, bar calling convention related code, and code
implementing optimizations which can be disabled, to use the MacroAssembler.

  • assembler/MacroAssembler.h: (JSC::MacroAssembler::DataLabelPtr::DataLabelPtr): (JSC::MacroAssembler::RepatchBuffer::RepatchBuffer): (JSC::MacroAssembler::RepatchBuffer::link): (JSC::MacroAssembler::RepatchBuffer::addressOf): (JSC::MacroAssembler::RepatchBuffer::setPtr): (JSC::MacroAssembler::addPtr): (JSC::MacroAssembler::lshift32): (JSC::MacroAssembler::mod32): (JSC::MacroAssembler::rshift32): (JSC::MacroAssembler::storePtrWithRepatch): (JSC::MacroAssembler::jnzPtr): (JSC::MacroAssembler::jzPtr): (JSC::MacroAssembler::jump): (JSC::MacroAssembler::label):
  • assembler/X86Assembler.h: (JSC::X86Assembler::): (JSC::X86Assembler::xchgl_rr): (JSC::X86Assembler::jmp_m): (JSC::X86Assembler::repatchAddress): (JSC::X86Assembler::getRelocatedAddress):
  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::CodeBlock):
  • bytecode/CodeBlock.h: (JSC::JITCodeRef::JITCodeRef): (JSC::CodeBlock::setJITCode): (JSC::CodeBlock::jitCode): (JSC::CodeBlock::executablePool):
  • jit/JIT.cpp: (JSC::JIT::privateCompileMainPass): (JSC::JIT::privateCompileLinkPass): (JSC::JIT::privateCompile): (JSC::JIT::privateCompileCTIMachineTrampolines):
  • jit/JIT.h: (JSC::CallRecord::CallRecord): (JSC::JumpTable::JumpTable): (JSC::JIT::emitCTICall): (JSC::JIT::JSRInfo::JSRInfo):
  • jit/JITArithmetic.cpp:
  • jit/JITCall.cpp:
  • jit/JITInlineMethods.h: (JSC::JIT::emitNakedCall): (JSC::JIT::emitCTICall_internal): (JSC::JIT::checkStructure): (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero): (JSC::JIT::addSlowCase): (JSC::JIT::addJump): (JSC::JIT::emitJumpSlowToHot):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::privateCompileGetByIdChainList): (JSC::JIT::privateCompileGetByIdChain):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/bytecode/CodeBlock.h

    r39255 r39284  
    6363    };
    6464
     65    // The code, and the associated pool from which it was allocated.
     66    struct JITCodeRef {
     67        void* code;
     68        RefPtr<ExecutablePool> executablePool;
     69       
     70        JITCodeRef()
     71            : code(0)
     72        {
     73        }
     74       
     75        JITCodeRef(void* code, PassRefPtr<ExecutablePool> executablePool)
     76            : code(code)
     77            , executablePool(executablePool)
     78        {
     79        }
     80    };
     81
    6582    struct ExpressionRangeInfo {
    6683        enum {
     
    277294
    278295#if ENABLE(JIT)
    279         void setJITCode(void* jitCode) { m_jitCode = jitCode; }
    280         void* jitCode() { return m_jitCode; }
    281         ExecutablePool* executablePool() { return m_executablePool.get(); }
    282         void setExecutablePool(ExecutablePool* pool) { m_executablePool = pool; }
     296        void setJITCode(JITCodeRef& jitCode) { m_jitCode = jitCode; }
     297        void* jitCode() { return m_jitCode.code; }
     298        ExecutablePool* executablePool() { return m_jitCode.executablePool.get(); }
    283299#endif
    284300
     
    408424        Vector<Instruction> m_instructions;
    409425#if ENABLE(JIT)
    410         void* m_jitCode;
    411         RefPtr<ExecutablePool> m_executablePool;
     426        JITCodeRef m_jitCode;
    412427#endif
    413428
Note: See TracChangeset for help on using the changeset viewer.