1 // Copyright 2013 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef V8_ARM64_CODE_STUBS_ARM64_H_ 6 #define V8_ARM64_CODE_STUBS_ARM64_H_ 7 8 namespace v8 { 9 namespace internal { 10 11 // Helper to call C++ functions from generated code. The caller must prepare 12 // the exit frame before doing the call with GenerateCall. 13 class DirectCEntryStub: public PlatformCodeStub { 14 public: DirectCEntryStub(Isolate * isolate)15 explicit DirectCEntryStub(Isolate* isolate) : PlatformCodeStub(isolate) {} 16 void GenerateCall(MacroAssembler* masm, Register target); 17 18 private: NeedsImmovableCode()19 Movability NeedsImmovableCode() override { return kImmovable; } 20 21 DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR(); 22 DEFINE_PLATFORM_CODE_STUB(DirectCEntry, PlatformCodeStub); 23 }; 24 25 } // namespace internal 26 } // namespace v8 27 28 #endif // V8_ARM64_CODE_STUBS_ARM64_H_ 29