Index: src/arm64/code-stubs-arm64.h |
diff --git a/src/arm64/code-stubs-arm64.h b/src/arm64/code-stubs-arm64.h |
index e9862294a0a618c530f40a04bc653b2149623461..7e09ffa57c1817f61f53a8216bb7b37a883a950a 100644 |
--- a/src/arm64/code-stubs-arm64.h |
+++ b/src/arm64/code-stubs-arm64.h |
@@ -77,6 +77,37 @@ class StringHelper : public AllStatic { |
}; |
+class StoreRegistersStateStub: public PlatformCodeStub { |
+ public: |
+ explicit StoreRegistersStateStub(SaveFPRegsMode with_fp) |
+ : save_doubles_(with_fp) {} |
+ |
+ static Register to_be_pushed_lr() { return ip0; } |
+ static void GenerateAheadOfTime(Isolate* isolate); |
+ private: |
+ Major MajorKey() { return StoreRegistersState; } |
+ int MinorKey() { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; } |
+ SaveFPRegsMode save_doubles_; |
+ |
+ void Generate(MacroAssembler* masm); |
+}; |
+ |
+ |
+class RestoreRegistersStateStub: public PlatformCodeStub { |
+ public: |
+ explicit RestoreRegistersStateStub(SaveFPRegsMode with_fp) |
+ : save_doubles_(with_fp) {} |
+ |
+ static void GenerateAheadOfTime(Isolate* isolate); |
+ private: |
+ Major MajorKey() { return RestoreRegistersState; } |
+ int MinorKey() { return (save_doubles_ == kSaveFPRegs) ? 1 : 0; } |
+ SaveFPRegsMode save_doubles_; |
+ |
+ void Generate(MacroAssembler* masm); |
+}; |
+ |
+ |
class RecordWriteStub: public PlatformCodeStub { |
public: |
// Stub to record the write of 'value' at 'address' in 'object'. |