The Arm AArch64 stack grows upwards.
The Arm stack grows downwards, towards lower addresses.
The stack pointer must always be aligned to a 4-byte boundary.
The AArch64 PCS ABI specifies that the stack pointer must always be aligned to a 16-byte boundary.