| 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");
|
| }
|
| }
|
|
|
|
|