Index: runtime/vm/dart_entry.cc |
diff --git a/runtime/vm/dart_entry.cc b/runtime/vm/dart_entry.cc |
index 3845949f8f9e14e9473f7830043f7c81a612e230..a653db328499e4332442660ef6ab9f0bcdd4ffb6 100644 |
--- a/runtime/vm/dart_entry.cc |
+++ b/runtime/vm/dart_entry.cc |
@@ -105,15 +105,22 @@ RawObject* DartEntry::InvokeFunction(const Function& function, |
} |
} |
// Now Call the invoke stub which will invoke the dart function. |
+#if !defined(TARGET_ARCH_DBC) |
invokestub entrypoint = reinterpret_cast<invokestub>( |
zra
2016/04/08 22:37:34
Maybe move into #elif and #else below.
Vyacheslav Egorov (Google)
2016/04/11 10:49:10
That would cause it to be duplicated twice. Not su
|
StubCode::InvokeDartCode_entry()->EntryPoint()); |
+#endif |
const Code& code = Code::Handle(zone, function.CurrentCode()); |
ASSERT(!code.IsNull()); |
ASSERT(thread->no_callback_scope_depth() == 0); |
ScopedIsolateStackLimits stack_limit(thread); |
SuspendLongJumpScope suspend_long_jump_scope(thread); |
TransitionToGenerated transition(thread); |
-#if defined(USING_SIMULATOR) |
+#if defined(TARGET_ARCH_DBC) |
+ return Simulator::Current()->Call(code, |
+ arguments_descriptor, |
+ arguments, |
+ thread); |
+#elif defined(USING_SIMULATOR) |
return bit_copy<RawObject*, int64_t>(Simulator::Current()->Call( |
reinterpret_cast<intptr_t>(entrypoint), |
reinterpret_cast<intptr_t>(&code), |