Index: runtime/vm/assembler_mips.cc |
=================================================================== |
--- runtime/vm/assembler_mips.cc (revision 20788) |
+++ runtime/vm/assembler_mips.cc (working copy) |
@@ -6,6 +6,9 @@ |
#if defined(TARGET_ARCH_MIPS) |
#include "vm/assembler.h" |
+#include "vm/runtime_entry.h" |
+#include "vm/simulator.h" |
+#include "vm/stub_code.h" |
namespace dart { |
@@ -145,6 +148,11 @@ |
} |
+void Assembler::CallRuntime(const RuntimeEntry& entry) { |
+ entry.Call(this); |
+} |
+ |
+ |
void Assembler::EnterDartFrame(intptr_t frame_size) { |
const intptr_t offset = CodeSize(); |
@@ -201,6 +209,17 @@ |
} |
+void Assembler::ReserveAlignedFrameSpace(intptr_t frame_space) { |
+ // Reserve space for arguments and align frame before entering |
+ // the C++ world. |
+ addiu(SP, SP, Immediate(-frame_space)); |
+ if (OS::ActivationFrameAlignment() > 0) { |
+ LoadImmediate(TMP, ~(OS::ActivationFrameAlignment() - 1)); |
+ and_(SP, SP, TMP); |
+ } |
+} |
+ |
+ |
int32_t Assembler::AddExternalLabel(const ExternalLabel* label) { |
if (object_pool_.IsNull()) { |
// The object pool cannot be used in the vm isolate. |