Ignore:
Timestamp:
Oct 19, 2013, 7:07:39 PM (12 years ago)
Author:
[email protected]
Message:

Restructure LinkBuffer to allow for alternate allocation strategies
https://bugs.webkit.org/show_bug.cgi?id=123071

Reviewed by Oliver Hunt.

The idea is to eventually allow a LinkBuffer to place the code into an already
allocated region of memory. That region of memory could be the nop-slide left behind
by a llvm.webkit.patchpoint.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::buffer):

  • assembler/AssemblerBuffer.h:
  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::linkCode):
(JSC::LinkBuffer::allocate):
(JSC::LinkBuffer::shrink):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::LinkBuffer):
(JSC::LinkBuffer::didFailToAllocate):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::buffer):
(JSC::X86Assembler::X86InstructionFormatter::memoryModRM):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/X86Assembler.h

    r157264 r157690  
    334334    {
    335335    }
     336   
     337    AssemblerBuffer& buffer() { return m_formatter.m_buffer; }
    336338
    337339    // Stack operations:
     
    21232125    }
    21242126   
    2125     PassRefPtr<ExecutableMemoryHandle> executableCopy(VM& vm, void* ownerUID, JITCompilationEffort effort)
    2126     {
    2127         return m_formatter.executableCopy(vm, ownerUID, effort);
    2128     }
    2129 
    21302127    unsigned debugOffset() { return m_formatter.debugOffset(); }
    21312128
     
    24812478        void* data() const { return m_buffer.data(); }
    24822479
    2483         PassRefPtr<ExecutableMemoryHandle> executableCopy(VM& vm, void* ownerUID, JITCompilationEffort effort)
    2484         {
    2485             return m_buffer.executableCopy(vm, ownerUID, effort);
    2486         }
    2487 
    24882480        unsigned debugOffset() { return m_buffer.debugOffset(); }
    24892481
     
    26592651#endif
    26602652
     2653    public:
    26612654        AssemblerBuffer m_buffer;
    26622655    } m_formatter;
Note: See TracChangeset for help on using the changeset viewer.