Unify stack alignment among all platforms

The alignment is now done in Thread_base::Context. Implementations are
forced to use Context::stack_top(), which aligns the stack top.
This commit is contained in:
Christian Helmuth
2014-01-17 17:22:32 +01:00
parent 6ec36350d6
commit 7e517179c9
18 changed files with 52 additions and 56 deletions

View File

@ -64,9 +64,7 @@ void Thread_base::start()
env()->cpu_session()->set_pager(_thread_cap, _pager_cap);
/* register initial IP and SP at core */
addr_t thread_sp = (addr_t)&_context->stack[-4];
thread_sp &= ~0xf; /* align initial stack to 16 byte boundary */
env()->cpu_session()->start(_thread_cap, (addr_t)_thread_start, thread_sp);
env()->cpu_session()->start(_thread_cap, (addr_t)_thread_start, _context->stack_top());
}