Ignore:
Timestamp:
Feb 5, 2014, 1:27:13 PM (12 years ago)
Author:
[email protected]
Message:

Can no longer run OctaneV2 in browser, crashes in speculationFromCell
https://bugs.webkit.org/show_bug.cgi?id=128266

Reviewed by Filip Pizlo.

Move the OSR exit write barriers into OSRExitCompilerCommon. Also reorganize some
of the code to be in more appropriate places.

  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::osrWriteBarrier):
(JSC::DFG::adjustAndJumpToTarget):

  • dfg/DFGSpeculativeJIT.cpp:
  • dfg/DFGSpeculativeJIT.h:
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::genericWriteBarrier):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp

    r163027 r163471  
    55195519}
    55205520
    5521 void SpeculativeJIT::osrWriteBarrier(CCallHelpers& jit, GPRReg owner, GPRReg scratch1, GPRReg scratch2)
    5522 {
    5523     JITCompiler::Jump definitelyNotMarked = genericWriteBarrier(jit, owner, scratch1, scratch2);
    5524 
    5525     // We need these extra slots because setupArgumentsWithExecState will use poke on x86.
    5526 #if CPU(X86)
    5527     jit.subPtr(TrustedImm32(sizeof(void*) * 3), MacroAssembler::stackPointerRegister);
    5528 #endif
    5529 
    5530     jit.setupArgumentsWithExecState(owner);
    5531     jit.move(TrustedImmPtr(reinterpret_cast<void*>(operationOSRWriteBarrier)), scratch1);
    5532     jit.call(scratch1);
    5533 
    5534 #if CPU(X86)
    5535     jit.addPtr(TrustedImm32(sizeof(void*) * 3), MacroAssembler::stackPointerRegister);
    5536 #endif
    5537 
    5538     definitelyNotMarked.link(&jit);
    5539 }
    5540 
    55415521void SpeculativeJIT::writeBarrier(GPRReg ownerGPR, GPRReg scratch1, GPRReg scratch2)
    55425522{
Note: See TracChangeset for help on using the changeset viewer.