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

Unified Diff: runtime/vm/flow_graph_compiler_x64.cc

Issue 10071016: Eliminated last bailout (except for type checked mode) in the new compiler: generate type arguments… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 8 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 | « runtime/vm/flow_graph_compiler_x64.h ('k') | runtime/vm/intermediate_language.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_compiler_x64.cc
===================================================================
--- runtime/vm/flow_graph_compiler_x64.cc (revision 6466)
+++ runtime/vm/flow_graph_compiler_x64.cc (working copy)
@@ -442,12 +442,6 @@
}
-void FlowGraphCompiler::GenerateInstantiatorTypeArguments(
- intptr_t token_index) {
- Bailout("FlowGraphCompiler::GenerateInstantiatorTypeArguments");
-}
-
-
// Copied from CodeGenerator.
// If instanceof type test cannot be performed successfully at compile time and
// therefore eliminated, optimize it by adding inlined tests for:
@@ -456,6 +450,7 @@
// - Class equality (only if class is not parameterized).
// Inputs:
// - RAX: object.
+// - RDX: optional type-arguments.
// Destroys RCX.
// Returns:
// - true or false in RAX.
@@ -618,7 +613,7 @@
__ pushq(RAX); // Push the instance.
__ PushObject(type); // Push the type.
if (!type.IsInstantiated()) {
- GenerateInstantiatorTypeArguments(token_index);
+ __ pushq(RDX); // Type arguments.
} else {
__ pushq(raw_null); // Null instantiator.
}
@@ -642,6 +637,9 @@
void FlowGraphCompiler::VisitInstanceOf(InstanceOfComp* comp) {
+ if (comp->type_arguments() != NULL) {
+ __ popq(RDX);
+ }
__ popq(RAX);
GenerateInstanceOf(comp->node_id(),
comp->token_index(),
@@ -944,7 +942,6 @@
if (instr->HasTryIndex()) {
exception_handlers_list_->AddHandler(instr->try_index(),
assembler_->CodeSize());
- // Bailout("Untested CatchEntry");
}
}
« no previous file with comments | « runtime/vm/flow_graph_compiler_x64.h ('k') | runtime/vm/intermediate_language.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698