Ignore:
Timestamp:
Apr 18, 2011, 2:08:28 PM (14 years ago)
Author:
[email protected]
Message:

Bug 58817 - DFG JIT - if speculative compilation fails, throw away code.

Reviewed by Geoff Garen.

If we detect a logical conflict, throw away generated code,
and only compile through the NonSpeculativeJIT.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::rewindToLabel):

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerBuffer::rewindToOffset):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branchAdd32):
(JSC::MacroAssemblerX86Common::branchSub32):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::rewindToLabel):
(JSC::X86Assembler::X86InstructionFormatter::rewindToLabel):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::linkSpeculationChecks):
(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGNode.h:
  • dfg/DFGNonSpeculativeJIT.cpp:

(JSC::DFG::NonSpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculationCheckIndexIterator::SpeculationCheckIndexIterator):

File:
1 edited

Legend:

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

    r82130 r84182  
    10051005    }
    10061006
    1007     Jump branchAdd32(Condition cond, TrustedImm32 imm, RegisterID src, RegisterID dest)
     1007    Jump branchAdd32(Condition cond, RegisterID src, TrustedImm32 imm, RegisterID dest)
    10081008    {
    10091009        move(src, dest);
     
    10801080        ASSERT(src1 == dest || src2 != dest);
    10811081
     1082        move(src1, dest);
     1083        return branchSub32(cond, src2, dest);
     1084    }
     1085
     1086    Jump branchSub32(Condition cond, RegisterID src1, TrustedImm32 src2, RegisterID dest)
     1087    {
    10821088        move(src1, dest);
    10831089        return branchSub32(cond, src2, dest);
Note: See TracChangeset for help on using the changeset viewer.