From 78d6a23ad35dd9e50ff4c5aabfef1237db41dd87 Mon Sep 17 00:00:00 2001 From: q66 Date: Wed, 15 Mar 2017 00:59:26 +0100 Subject: [PATCH] align the stack pointer by 16 bytes --- ostd/internal/context.hh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ostd/internal/context.hh b/ostd/internal/context.hh index f1c26ee..57a92f1 100644 --- a/ostd/internal/context.hh +++ b/ostd/internal/context.hh @@ -107,8 +107,10 @@ protected: void make_context(SA &sa) { p_stack = sa.allocate(); - constexpr size_t salign = alignof(SA); + /* 16 byte stack pointer alignment */ + constexpr size_t salign = 16; constexpr size_t sasize = sizeof(SA); + void *sp = static_cast(p_stack.ptr) - sasize - salign; size_t space = sasize + salign; sp = std::align(salign, sasize, sp, space);