Ignore:
Timestamp:
Apr 22, 2013, 10:37:29 AM (12 years ago)
Author:
[email protected]
Message:

Change baseline JIT watchdog timer check to use the proper fast slow path
infrastructure.
https://bugs.webkit.org/show_bug.cgi?id=114963.

Reviewed by Oliver Hunt.

SH4 parts contributed by Julien Brianceau.

  • assembler/ARMAssembler.h:
  • assembler/MacroAssemblerARM.h:
  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchAdd32):

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::branchAdd32):

  • assembler/MacroAssemblerX86Common.h:
  • assembler/SH4Assembler.h:
  • jit/JIT.cpp:

(JSC::JIT::emitEnterOptimizationCheck):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:

(JSC::JIT::emitEnterOptimizationCheck):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_loop_hint):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emit_op_enter):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_enter):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JIT.cpp

    r148696 r148893  
    104104
    105105#if ENABLE(DFG_JIT)
    106 void JIT::emitOptimizationCheck(OptimizationCheckKind kind)
     106void JIT::emitEnterOptimizationCheck()
    107107{
    108108    if (!canBeOptimized())
    109109        return;
    110    
    111     Jump skipOptimize = branchAdd32(Signed, TrustedImm32(kind == LoopOptimizationCheck ? Options::executionCounterIncrementForLoop() : Options::executionCounterIncrementForReturn()), AbsoluteAddress(m_codeBlock->addressOfJITExecuteCounter()));
     110
     111    Jump skipOptimize = branchAdd32(Signed, TrustedImm32(Options::executionCounterIncrementForReturn()), AbsoluteAddress(m_codeBlock->addressOfJITExecuteCounter()));
    112112    JITStubCall stubCall(this, cti_optimize);
    113113    stubCall.addArgument(TrustedImm32(m_bytecodeOffset));
    114     if (kind == EnterOptimizationCheck)
    115         ASSERT(!m_bytecodeOffset);
     114    ASSERT(!m_bytecodeOffset);
    116115    stubCall.call();
    117116    skipOptimize.link(this);
    118117}
    119118#endif
    120 
    121 void JIT::emitWatchdogTimerCheck()
    122 {
    123     if (!m_vm->watchdog.isEnabled())
    124         return;
    125 
    126     Jump skipCheck = branchTest8(Zero, AbsoluteAddress(m_vm->watchdog.timerDidFireAddress()));
    127     JITStubCall stubCall(this, cti_handle_watchdog_timer);
    128     stubCall.call();
    129     skipCheck.link(this);
    130 }
    131119
    132120#define NEXT_OPCODE(name) \
     
    474462        DEFINE_SLOWCASE_OP(op_jngreatereq)
    475463        DEFINE_SLOWCASE_OP(op_jtrue)
     464        DEFINE_SLOWCASE_OP(op_loop_hint)
    476465        DEFINE_SLOWCASE_OP(op_lshift)
    477466        DEFINE_SLOWCASE_OP(op_mod)
Note: See TracChangeset for help on using the changeset viewer.