Index: src/arm64/macro-assembler-arm64.h |
diff --git a/src/arm64/macro-assembler-arm64.h b/src/arm64/macro-assembler-arm64.h |
index 965d1dbfd9d5ef125b40d84ad83063079d40fcc3..177e4781aa604d2ba95b8353abd04f3b906e432c 100644 |
--- a/src/arm64/macro-assembler-arm64.h |
+++ b/src/arm64/macro-assembler-arm64.h |
@@ -778,12 +778,22 @@ class MacroAssembler : public Assembler { |
// |
// This is necessary when pushing or otherwise adding things to the stack, to |
// satisfy the AAPCS64 constraint that the memory below the system stack |
- // pointer is not accessed. |
+ // pointer is not accessed. The amount pushed will be increased as necessary |
+ // to ensure csp remains aligned to 16 bytes. |
// |
// This method asserts that StackPointer() is not csp, since the call does |
// not make sense in that context. |
inline void BumpSystemStackPointer(const Operand& space); |
+ // Re-synchronizes the system stack pointer (csp) with the current stack |
+ // pointer (according to StackPointer()). This function will ensure the |
+ // new value of the system stack pointer is remains aligned to 16 bytes, and |
+ // is lower than or equal to the value of the current stack pointer. |
+ // |
+ // This method asserts that StackPointer() is not csp, since the call does |
+ // not make sense in that context. |
+ inline void SyncSystemStackPointer(); |
+ |
// Helpers ------------------------------------------------------------------ |
// Root register. |
inline void InitializeRootRegister(); |