Ignore:
Timestamp:
Jul 21, 2009, 5:37:03 PM (16 years ago)
Author:
[email protected]
Message:

2009-07-21 Gavin Barraclough <[email protected]>

Reviewed by Oliver Hunt.

Move LinkBuffer/RepatchBuffer out of AbstractMacroAssembler.
( https://bugs.webkit.org/show_bug.cgi?id=27485 )

This change is the first step in a process to move code that should be in
the architecture-specific MacroAssembler classes up out of Assmbler and
AbstractMacroAssembler.


  • assembler/ARMAssembler.h: (JSC::ARMAssembler::linkPointer):
    • rename patchPointer to bring it in line with the current link/repatch naming scheme


  • assembler/ARMv7Assembler.h: (JSC::ARMv7Assembler::linkCall): (JSC::ARMv7Assembler::linkPointer): (JSC::ARMv7Assembler::relinkCall): (JSC::ARMv7Assembler::repatchInt32): (JSC::ARMv7Assembler::repatchPointer): (JSC::ARMv7Assembler::setInt32): (JSC::ARMv7Assembler::setPointer):
    • rename patchPointer to bring it in line with the current link/repatch naming scheme
  • assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::linkJump): (JSC::AbstractMacroAssembler::linkCall): (JSC::AbstractMacroAssembler::linkPointer): (JSC::AbstractMacroAssembler::getLinkerAddress): (JSC::AbstractMacroAssembler::getLinkerCallReturnOffset): (JSC::AbstractMacroAssembler::repatchJump): (JSC::AbstractMacroAssembler::repatchCall): (JSC::AbstractMacroAssembler::repatchNearCall): (JSC::AbstractMacroAssembler::repatchInt32): (JSC::AbstractMacroAssembler::repatchPointer): (JSC::AbstractMacroAssembler::repatchLoadPtrToLEA):
    • remove the LinkBuffer/RepatchBuffer classes, but leave a set of (private, friended) methods to interface to the Assembler
  • assembler/LinkBuffer.h: Added. (JSC::LinkBuffer::LinkBuffer): (JSC::LinkBuffer::~LinkBuffer): (JSC::LinkBuffer::link): (JSC::LinkBuffer::patch): (JSC::LinkBuffer::locationOf): (JSC::LinkBuffer::locationOfNearCall): (JSC::LinkBuffer::returnAddressOffset): (JSC::LinkBuffer::finalizeCode): (JSC::LinkBuffer::finalizeCodeAddendum): (JSC::LinkBuffer::code): (JSC::LinkBuffer::performFinalization):
    • new file containing the LinkBuffer class, previously a member of AbstractMacroAssembler
  • assembler/RepatchBuffer.h: Added. (JSC::RepatchBuffer::RepatchBuffer): (JSC::RepatchBuffer::relink): (JSC::RepatchBuffer::repatch): (JSC::RepatchBuffer::repatchLoadPtrToLEA): (JSC::RepatchBuffer::relinkCallerToTrampoline): (JSC::RepatchBuffer::relinkCallerToFunction): (JSC::RepatchBuffer::relinkNearCallerToTrampoline):
    • new file containing the RepatchBuffer class, previously a member of AbstractMacroAssembler
  • assembler/X86Assembler.h: (JSC::X86Assembler::linkJump): (JSC::X86Assembler::linkCall): (JSC::X86Assembler::linkPointerForCall): (JSC::X86Assembler::linkPointer): (JSC::X86Assembler::relinkJump): (JSC::X86Assembler::relinkCall): (JSC::X86Assembler::repatchInt32): (JSC::X86Assembler::repatchPointer): (JSC::X86Assembler::setPointer): (JSC::X86Assembler::setInt32): (JSC::X86Assembler::setRel32):
    • rename patchPointer to bring it in line with the current link/repatch naming scheme
  • jit/JIT.cpp: (JSC::ctiPatchNearCallByReturnAddress): (JSC::ctiPatchCallByReturnAddress):
    • include new headers
    • remove MacroAssembler:: specification from RepatchBuffer usage
  • jit/JITPropertyAccess.cpp:
  • yarr/RegexJIT.cpp:
    • include new headers
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r46180 r46202  
    140140                86D3B2C510156BDE002865E7 /* AssemblerBufferWithConstantPool.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D3B2C110156BDE002865E7 /* AssemblerBufferWithConstantPool.h */; };
    141141                86D3B2C610156BDE002865E7 /* MacroAssemblerARM.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D3B2C210156BDE002865E7 /* MacroAssemblerARM.h */; };
     142                86D3B3C310159D7F002865E7 /* LinkBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D3B3C110159D7F002865E7 /* LinkBuffer.h */; };
     143                86D3B3C410159D7F002865E7 /* RepatchBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D3B3C210159D7F002865E7 /* RepatchBuffer.h */; };
    142144                86DB64640F95C6FC00D7D921 /* ExecutableAllocatorFixedVMPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 86DB64630F95C6FC00D7D921 /* ExecutableAllocatorFixedVMPool.cpp */; };
    143145                86E116B10FE75AC800B512BC /* CodeLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 86E116B00FE75AC800B512BC /* CodeLocation.h */; };
     
    649651                86D3B2C110156BDE002865E7 /* AssemblerBufferWithConstantPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssemblerBufferWithConstantPool.h; sourceTree = "<group>"; };
    650652                86D3B2C210156BDE002865E7 /* MacroAssemblerARM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacroAssemblerARM.h; sourceTree = "<group>"; };
     653                86D3B3C110159D7F002865E7 /* LinkBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinkBuffer.h; sourceTree = "<group>"; };
     654                86D3B3C210159D7F002865E7 /* RepatchBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RepatchBuffer.h; sourceTree = "<group>"; };
    651655                86DB645F0F954E9100D7D921 /* ExecutableAllocatorWin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExecutableAllocatorWin.cpp; sourceTree = "<group>"; };
    652656                86DB64630F95C6FC00D7D921 /* ExecutableAllocatorFixedVMPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExecutableAllocatorFixedVMPool.cpp; sourceTree = "<group>"; };
     
    15691573                                860161E10F3A83C100F84710 /* MacroAssemblerX86_64.h */,
    15701574                                86C36EE90EE1289D00B3DF59 /* MacroAssembler.h */,
     1575                                86D3B3C110159D7F002865E7 /* LinkBuffer.h */,
     1576                                86D3B3C210159D7F002865E7 /* RepatchBuffer.h */,
    15711577                        );
    15721578                        path = assembler;
     
    18791885                                86D3B2C510156BDE002865E7 /* AssemblerBufferWithConstantPool.h in Headers */,
    18801886                                86D3B2C610156BDE002865E7 /* MacroAssemblerARM.h in Headers */,
     1887                                86D3B3C310159D7F002865E7 /* LinkBuffer.h in Headers */,
     1888                                86D3B3C410159D7F002865E7 /* RepatchBuffer.h in Headers */,
    18811889                        );
    18821890                        runOnlyForDeploymentPostprocessing = 0;
Note: See TracChangeset for help on using the changeset viewer.