Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Unified Diff: src/ia32/lithium-codegen-ia32.cc

Issue 12340113: Reapply optimization of DeoptimizeIf for ia32 broken in r13633. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698