Index: runtime/vm/intrinsifier.cc |
diff --git a/runtime/vm/intrinsifier.cc b/runtime/vm/intrinsifier.cc |
index f42d85e3e66b6f5590395ad44882b42a6d00ee2b..5615e58a699678252d77386790ad6c8f537160c8 100644 |
--- a/runtime/vm/intrinsifier.cc |
+++ b/runtime/vm/intrinsifier.cc |
@@ -119,6 +119,9 @@ void Intrinsifier::InitializeState() { |
} |
#endif // defined(DART_NO_SNAPSHOT). |
+ |
+// DBC does not use graph intrinsics. |
+#if !defined(TARGET_ARCH_DBC) |
static void EmitCodeFor(FlowGraphCompiler* compiler, |
FlowGraph* graph) { |
// The FlowGraph here is constructed by the intrinsics builder methods, and |
@@ -154,10 +157,12 @@ static void EmitCodeFor(FlowGraphCompiler* compiler, |
} |
compiler->assembler()->Comment("Graph intrinsic end"); |
} |
+#endif |
bool Intrinsifier::GraphIntrinsify(const ParsedFunction& parsed_function, |
FlowGraphCompiler* compiler) { |
+#if !defined(TARGET_ARCH_DBC) |
ZoneGrowableArray<const ICData*>* ic_data_array = |
new ZoneGrowableArray<const ICData*>(); |
FlowGraphBuilder builder(parsed_function, |
@@ -204,6 +209,9 @@ bool Intrinsifier::GraphIntrinsify(const ParsedFunction& parsed_function, |
} |
EmitCodeFor(compiler, graph); |
return true; |
+#else |
+ return false; |
+#endif // !defined(TARGET_ARCH_DBC) |
} |
@@ -235,10 +243,22 @@ void Intrinsifier::Intrinsify(const ParsedFunction& parsed_function, |
default: |
break; |
} |
+ |
+ // On DBC all graph intrinsics are handled in the same way as non-graph |
+ // intrinsics. |
+#if defined(TARGET_ARCH_DBC) |
+ switch (function.recognized_kind()) { |
+ GRAPH_INTRINSICS_LIST(EMIT_CASE) |
+ default: |
+ break; |
+ } |
+#endif |
+ |
#undef EMIT_INTRINSIC |
} |
+#if !defined(TARGET_ARCH_DBC) |
static intptr_t CidForRepresentation(Representation rep) { |
switch (rep) { |
case kUnboxedDouble: |
@@ -1138,5 +1158,7 @@ bool Intrinsifier::Build_DoubleRound(FlowGraph* flow_graph) { |
return BuildInvokeMathCFunction(&builder, |
MethodRecognizer::kDoubleRound); |
} |
+#endif // !defined(TARGET_ARCH_DBC) |
+ |
} // namespace dart |