Index: runtime/vm/runtime_entry_x64.cc |
=================================================================== |
--- runtime/vm/runtime_entry_x64.cc (revision 2185) |
+++ runtime/vm/runtime_entry_x64.cc (working copy) |
@@ -7,14 +7,35 @@ |
#include "vm/runtime_entry.h" |
+#include "vm/assembler.h" |
+#include "vm/stub_code.h" |
+ |
namespace dart { |
+#define __ assembler-> |
+ |
+ |
+// Generate code to call into the stub which will call the runtime |
+// function. Input for the stub is as follows: |
+// RSP : points to the arguments and return value array. |
+// RBX : address of the runtime function to call. |
+// R10 : number of arguments to the call. |
void RuntimeEntry::CallFromDart(Assembler* assembler) const { |
- UNIMPLEMENTED(); |
+ __ movq(RBX, Immediate(GetEntryPoint())); |
+ __ movq(R10, Immediate(argument_count())); |
+ __ call(&StubCode::DartCallToRuntimeLabel()); |
} |
+ |
+// Generate code to call into the stub which will call the runtime |
+// function. Input for the stub is as follows: |
+// RSP : points to the arguments and return value array. |
+// RBX : address of the runtime function to call. |
+// R10 : number of arguments to the call. |
void RuntimeEntry::CallFromStub(Assembler* assembler) const { |
- UNIMPLEMENTED(); |
+ __ movq(RBX, Immediate(GetEntryPoint())); |
+ __ movq(R10, Immediate(argument_count())); |
+ __ call(&StubCode::StubCallToRuntimeLabel()); |
} |
} // namespace dart |