genode/base/include
Christian Prochaska 4b420f6e71 Fix stack pointer alignment for x86_64 platforms
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.
2014-02-03 11:34:30 +01:00
..
32bit/base Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
64bit/base Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
arm base: ARM-FPU 'memcpy_cpu' implementation 2013-06-24 11:48:37 +02:00
base Fix stack pointer alignment for x86_64 platforms 2014-02-03 11:34:30 +01:00
cap_session Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
cpu_session cpu_session: follow-up fix for scale_priority 2013-11-26 14:32:07 +01:00
dataspace Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
drivers hw: basic support for ODROID XU board (Fix #991) 2013-12-03 11:30:07 +01:00
io_mem_session Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
io_port_session Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
irq_session Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
log_session Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
pager Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
parent Add resource-balancing support to parent interface 2013-10-05 12:44:35 +02:00
pd_session nova: extend pd_session by assign_pci function 2013-02-21 11:52:02 +01:00
platform hw: basic support for ODROID XU board (Fix #991) 2013-12-03 11:30:07 +01:00
ram_session Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
rm_session Fix warning about initializer of 'Local_addr' 2013-05-06 11:11:03 +02:00
rom_session Use filename as default label for ROM connections 2014-01-27 18:54:07 +01:00
root base: show size as %zu instead %zd 2013-12-20 15:16:19 +01:00
session Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
signal_session hw & signal: consider initial SLAB blocks 2013-08-13 17:08:26 +02:00
thread Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
trace_session base: show size as %zu instead %zd 2013-12-20 15:16:19 +01:00
util Move Bit_allocator from base-nova to base 2014-01-27 18:54:09 +01:00
x86/cpu Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
x86_32/cpu Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
x86_64/cpu Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
README Imported Genode release 11.11 2011-12-22 16:19:25 +01:00

This directory contains include files of interfaces that are exported
by components to be used by other components. Each subdirectory corresponds
to the component exporting the interface.