Ignore:
Timestamp:
Sep 19, 2013, 3:10:26 PM (12 years ago)
Author:
[email protected]
Message:

Move CCallHelpers and AssemblyHelpers into jit/ and have JSInterfaceJIT use them
https://bugs.webkit.org/show_bug.cgi?id=121637

Rubber stamped by Michael Saboff.

Also moved GPRInfo/FPRInfo into jit/.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • bytecode/ValueRecovery.h:

(JSC::ValueRecovery::dumpInContext):

  • dfg/DFGAssemblyHelpers.cpp: Removed.
  • dfg/DFGAssemblyHelpers.h: Removed.
  • dfg/DFGBinarySwitch.h:
  • dfg/DFGByteCodeParser.cpp:
  • dfg/DFGCCallHelpers.h: Removed.
  • dfg/DFGDisassembler.cpp:
  • dfg/DFGFPRInfo.h: Removed.
  • dfg/DFGGPRInfo.h: Removed.
  • dfg/DFGGraph.cpp:
  • dfg/DFGGraph.h:
  • dfg/DFGJITCompiler.h:
  • dfg/DFGOSRExit.cpp:
  • dfg/DFGOSRExit.h:
  • dfg/DFGOSRExitCompiler.h:
  • dfg/DFGOSRExitCompilerCommon.h:
  • dfg/DFGRegisterBank.h:
  • dfg/DFGRegisterSet.h:
  • dfg/DFGRepatch.cpp:
  • dfg/DFGSilentRegisterSavePlan.h:
  • dfg/DFGThunks.cpp:
  • dfg/DFGVariableEvent.cpp:
  • ftl/FTLCArgumentGetter.h:

(JSC::FTL::CArgumentGetter::CArgumentGetter):
(JSC::FTL::CArgumentGetter::loadNext8):
(JSC::FTL::CArgumentGetter::loadNext32):
(JSC::FTL::CArgumentGetter::loadNext64):
(JSC::FTL::CArgumentGetter::loadNextPtr):
(JSC::FTL::CArgumentGetter::loadNextDouble):

  • ftl/FTLCompile.cpp:
  • ftl/FTLExitThunkGenerator.h:
  • ftl/FTLLink.cpp:
  • ftl/FTLThunks.cpp:
  • jit/AssemblyHelpers.cpp: Copied from Source/JavaScriptCore/dfg/DFGAssemblyHelpers.cpp.
  • jit/AssemblyHelpers.h: Copied from Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h.

(JSC::AssemblyHelpers::AssemblyHelpers):
(JSC::AssemblyHelpers::debugCall):

  • jit/CCallHelpers.h: Copied from Source/JavaScriptCore/dfg/DFGCCallHelpers.h.
  • jit/FPRInfo.h: Copied from Source/JavaScriptCore/dfg/DFGFPRInfo.h.

(WTF::printInternal):

  • jit/GPRInfo.h: Copied from Source/JavaScriptCore/dfg/DFGGPRInfo.h.

(WTF::printInternal):

  • jit/JIT.cpp:

(JSC::JIT::JIT):

  • jit/JIT.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::stringGetByValStubGenerator):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::stringGetByValStubGenerator):

  • jit/JSInterfaceJIT.h:

(JSC::JSInterfaceJIT::JSInterfaceJIT):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::SpecializedThunkJIT):
(JSC::SpecializedThunkJIT::finalize):

  • jit/ThunkGenerators.cpp:

(JSC::linkForGenerator):
(JSC::virtualForGenerator):
(JSC::stringLengthTrampolineGenerator):
(JSC::nativeForGenerator):
(JSC::arityFixup):
(JSC::charCodeAtThunkGenerator):
(JSC::charAtThunkGenerator):
(JSC::fromCharCodeThunkGenerator):
(JSC::sqrtThunkGenerator):
(JSC::floorThunkGenerator):
(JSC::ceilThunkGenerator):
(JSC::roundThunkGenerator):
(JSC::expThunkGenerator):
(JSC::logThunkGenerator):
(JSC::absThunkGenerator):
(JSC::powThunkGenerator):
(JSC::imulThunkGenerator):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):

  • runtime/JSCJSValue.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h

    r154075 r156120  
    2828
    2929#include "BytecodeConventions.h"
     30#include "CCallHelpers.h"
    3031#include "JITCode.h"
    3132#include "JITStubs.h"
     
    3940
    4041namespace JSC {
    41     class JSInterfaceJIT : public MacroAssembler {
     42    class JSInterfaceJIT : public CCallHelpers {
    4243    public:
     44        JSInterfaceJIT(VM* vm, CodeBlock* codeBlock = 0)
     45            : CCallHelpers(vm, codeBlock)
     46        {
     47        }
     48       
    4349        // NOTES:
    4450        //
     
    207213        void emitPutCellToCallFrameHeader(RegisterID from, JSStack::CallFrameHeaderEntry);
    208214
    209         void preserveReturnAddressAfterCall(RegisterID);
    210         void restoreReturnAddressBeforeReturn(RegisterID);
    211         void restoreReturnAddressBeforeReturn(Address);
    212215        void restoreArgumentReference();
    213216
     
    397400    }
    398401
    399 #if CPU(ARM)
    400 
    401     ALWAYS_INLINE void JSInterfaceJIT::preserveReturnAddressAfterCall(RegisterID reg)
    402     {
    403         move(linkRegister, reg);
    404     }
    405    
    406     ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(RegisterID reg)
    407     {
    408         move(reg, linkRegister);
    409     }
    410    
    411     ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(Address address)
    412     {
    413         loadPtr(address, linkRegister);
    414     }
    415 #elif CPU(SH4)
    416 
    417     ALWAYS_INLINE void JSInterfaceJIT::preserveReturnAddressAfterCall(RegisterID reg)
    418     {
    419         m_assembler.stspr(reg);
    420     }
    421    
    422     ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(RegisterID reg)
    423     {
    424         m_assembler.ldspr(reg);
    425     }
    426    
    427     ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(Address address)
    428     {
    429         loadPtrLinkReg(address);
    430     }
    431    
    432 #elif CPU(MIPS)
    433 
    434     ALWAYS_INLINE void JSInterfaceJIT::preserveReturnAddressAfterCall(RegisterID reg)
    435     {
    436         move(returnAddressRegister, reg);
    437     }
    438    
    439     ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(RegisterID reg)
    440     {
    441         move(reg, returnAddressRegister);
    442     }
    443    
    444     ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(Address address)
    445     {
    446         loadPtr(address, returnAddressRegister);
    447     }
    448    
    449 #else // CPU(X86) || CPU(X86_64)
    450 
    451     ALWAYS_INLINE void JSInterfaceJIT::preserveReturnAddressAfterCall(RegisterID reg)
    452     {
    453         pop(reg);
    454     }
    455    
    456     ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(RegisterID reg)
    457     {
    458         push(reg);
    459     }
    460    
    461     ALWAYS_INLINE void JSInterfaceJIT::restoreReturnAddressBeforeReturn(Address address)
    462     {
    463         push(address);
    464     }
    465    
    466 #endif
    467 
    468402    ALWAYS_INLINE void JSInterfaceJIT::restoreArgumentReference()
    469403    {
Note: See TracChangeset for help on using the changeset viewer.