Changeset 148893 in webkit for trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp
- Timestamp:
- Apr 22, 2013, 10:37:29 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp
r148711 r148893 482 482 } 483 483 484 void JIT::emit_op_loop_hint(Instruction*) 485 { 486 // Emit the watchdog timer check: 487 if (m_vm->watchdog.isEnabled()) 488 addSlowCase(branchTest8(NonZero, AbsoluteAddress(m_vm->watchdog.timerDidFireAddress()))); 489 490 // Emit the JIT optimization check: 491 if (canBeOptimized()) 492 addSlowCase(branchAdd32(PositiveOrZero, TrustedImm32(Options::executionCounterIncrementForLoop()), 493 AbsoluteAddress(m_codeBlock->addressOfJITExecuteCounter()))); 494 } 495 496 void JIT::emitSlow_op_loop_hint(Instruction*, Vector<SlowCaseEntry>::iterator& iter) 497 { 498 // Emit the slow path of the watchdog timer check: 499 if (m_vm->watchdog.isEnabled()) { 500 linkSlowCase(iter); 501 502 JITStubCall stubCall(this, cti_handle_watchdog_timer); 503 stubCall.call(); 504 505 #if ENABLE(DFG_JIT) 506 if (canBeOptimized()) { 507 Jump doOptimize = branchAdd32(PositiveOrZero, TrustedImm32(Options::executionCounterIncrementForLoop()), 508 AbsoluteAddress(m_codeBlock->addressOfJITExecuteCounter())); 509 emitJumpSlowToHot(jump(), OPCODE_LENGTH(op_loop_hint)); 510 doOptimize.link(this); 511 } else 512 #endif 513 emitJumpSlowToHot(jump(), OPCODE_LENGTH(op_loop_hint)); 514 } 515 516 #if ENABLE(DFG_JIT) 517 // Emit the slow path for the JIT optimization check: 518 if (canBeOptimized()) { 519 linkSlowCase(iter); 520 521 JITStubCall stubCall(this, cti_optimize); 522 stubCall.addArgument(TrustedImm32(m_bytecodeOffset)); 523 stubCall.call(); 524 525 emitJumpSlowToHot(jump(), OPCODE_LENGTH(op_loop_hint)); 526 } 527 #endif 528 } 529 484 530 void JIT::emit_op_neq(Instruction* currentInstruction) 485 531 { … … 864 910 void JIT::emit_op_enter(Instruction*) 865 911 { 866 emit OptimizationCheck(EnterOptimizationCheck);912 emitEnterOptimizationCheck(); 867 913 868 914 // Even though CTI doesn't use them, we initialize our constant
Note:
See TracChangeset
for help on using the changeset viewer.