233,17 → 233,30 |
</section> |
|
<section> |
<title>IA64</title> |
<title>IA-64</title> |
|
<para></para> |
<para>The ia64 kernel uses 16K pages.</para> |
|
<section> |
<title>Two IA-64 Stacks</title> |
|
<para>The architecture makes use of a pair of stacks. One stack is the |
ordinary memory stack while the other is a special register stack. This |
makes the ia64 architecture unique. HelenOS on ia64 solves the problem |
by allocating two physical memory frames for thread and scheduler |
stacks. The upper frame is used by the register stack while the first |
frame is used by the conventional memory stack. The generic kernel and |
userspace code had to be adjusted to cope with the possibility of |
allocating more frames for the stack.</para> |
</section> |
|
<section> |
<title>Thread Local Storage</title> |
|
<para>Although thread local storage is not officially supported in |
statically linked binaries, GCC supports it without any major obstacles. |
As a thread pointer is designated register r13, the thread local data |
section starts at an address r13+16.</para> |
The r13 register is used as a thread pointer, the thread local data |
section starts at address r13+16.</para> |
|
<para><figure float="1"> |
<title>IA64</title> |