mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-29 18:18:54 +00:00
4b420f6e71
The x86_64 ABI requires the stack pointer to be 16-byte aligned before the call of a function and decreased by 8 at the function entrypoint (after the return address has been pushed to the stack). Currently, when a new Genode thread gets created, the initial stack pointer is aligned to 16 byte. On Genode/Linux, the thread entry function is entered by a 'call' instruction, so the stack pointer alignment at the function entrypoint is correct. On Fiasco.OC and NOVA, however, the thread entry function gets executed without a return address being pushed to the stack, so at the function entrypoint the stack pointer is still aligned to 16 byte, which can cause problems with compiler-generated SSE instructions. With this patch, the stack pointer given to a new thread gets aligned to 16 bytes and decreased by 8 by default, since most of the currently supported base platforms execute the thread entry function without pushing a return address to the stack. For base-linux, the stack pointer gets realigned to 16 bytes before the thread entry function gets called. Fixes #1043. |
||
---|---|---|
.. | ||
config | ||
doc | ||
etc | ||
include | ||
lib/mk | ||
mk | ||
run | ||
src | ||
Makefile | ||
README |
This repository contains the port of Genode to the Fiasco.OC microkernel. For further information, please refer to the following documents: :[http://genode.org/community/wiki/GenodeOnFiascoOC - Genode on Fiasco.OC Wiki page]: This Wiki page contains the information on how to build and use Genode with Fiasco.OC. :[http://os.inf.tu-dresden.de/fiasco]: Official website for the Fiasco.OC microkernel.