Index: src/arm/code-stubs-arm.h |
diff --git a/src/arm/code-stubs-arm.h b/src/arm/code-stubs-arm.h |
index 0b1c59e19dc107156694ad7ed22d67be9165182d..bf7d63548733b69a06ed102dea5f7ddc01b3d16c 100644 |
--- a/src/arm/code-stubs-arm.h |
+++ b/src/arm/code-stubs-arm.h |
@@ -571,6 +571,24 @@ class RegExpCEntryStub: public CodeStub { |
}; |
+// Trampoline stub to call into native code. To call safely into native code |
+// in the presence of compacting GC (which can move code objects) we need to |
+// keep the code which called into native pinned in the memory. Currently the |
+// simplest approach is to generate such stub early enough so it can never be |
+// moved by GC |
+class DirectCEntryStub: public CodeStub { |
+ public: |
+ DirectCEntryStub() {} |
+ void Generate(MacroAssembler* masm); |
+ void GenerateCall(MacroAssembler* masm, ApiFunction *function); |
+ |
+ private: |
+ Major MajorKey() { return DirectCEntry; } |
+ int MinorKey() { return 0; } |
+ const char* GetName() { return "DirectCEntryStub"; } |
+}; |
+ |
+ |
// Generate code the to load an element from a pixel array. The receiver is |
// assumed to not be a smi and to have elements, the caller must guarantee this |
// precondition. If the receiver does not have elements that are pixel arrays, |