Index: src/compiler/ia32/instruction-scheduler-ia32.cc |
diff --git a/src/compiler/ia32/instruction-scheduler-ia32.cc b/src/compiler/ia32/instruction-scheduler-ia32.cc |
index 1c62de5792fe24bba7788a763baedca7978cbdf1..ad7535c7c7a9bba52b754d7c6a810aec7eb2ba35 100644 |
--- a/src/compiler/ia32/instruction-scheduler-ia32.cc |
+++ b/src/compiler/ia32/instruction-scheduler-ia32.cc |
@@ -28,8 +28,6 @@ int InstructionScheduler::GetTargetInstructionFlags( |
case kIA32Imul: |
case kIA32ImulHigh: |
case kIA32UmulHigh: |
- case kIA32Idiv: |
- case kIA32Udiv: |
case kIA32Not: |
case kIA32Neg: |
case kIA32Shl: |
@@ -103,6 +101,12 @@ int InstructionScheduler::GetTargetInstructionFlags( |
? kNoOpcodeFlags |
: kIsLoadOperation | kHasSideEffect; |
+ case kIA32Idiv: |
+ case kIA32Udiv: |
+ return (instr->addressing_mode() == kMode_None) |
+ ? kMayNeedDeoptCheck |
+ : kMayNeedDeoptCheck | kIsLoadOperation | kHasSideEffect; |
+ |
case kIA32Movsxbl: |
case kIA32Movzxbl: |
case kIA32Movb: |