summaryrefslogtreecommitdiff
path: root/libcpu/aarch64/common/stack.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcpu/aarch64/common/stack.c')
-rw-r--r--libcpu/aarch64/common/stack.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libcpu/aarch64/common/stack.c b/libcpu/aarch64/common/stack.c
index 18d6271a79..c554ab077d 100644
--- a/libcpu/aarch64/common/stack.c
+++ b/libcpu/aarch64/common/stack.c
@@ -31,7 +31,8 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter,
{
rt_ubase_t *stk;
- stk = (rt_ubase_t *)stack_addr;
+ /* The AAPCS64 requires 128-bit (16 byte) stack alignment */
+ stk = (rt_ubase_t*)RT_ALIGN_DOWN((rt_ubase_t)stack_addr, 16);
for (int i = 0; i < 32; ++i)
{