Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 8892142cb1b7411ffbe085ea7ba1a43b2703084d..c3319d9057205a3c25fe60a86d644d052b4fc022 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -896,6 +896,11 @@ void LCodeGen::DeoptimizeIf(Condition cc, LEnvironment* environment) { |
} else { |
__ jmp(entry, RelocInfo::RUNTIME_ENTRY); |
} |
+ } else if (!needs_lazy_deopt && frame_is_built_) { |
+ // Optimization for ia32 only that skips the indirection through a |
+ // jump table entry for conditional deopts if possible. |
+ ASSERT(cc != no_condition); |
+ __ j(cc, entry, RelocInfo::RUNTIME_ENTRY); |
} else { |
// We often have several deopts to the same entry, reuse the last |
// jump entry if this is the case. |