Rev 146 | Rev 157 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 146 | Rev 151 | ||
|---|---|---|---|
| Line 231... | Line 231... | ||
| 231 | data. Overally it is the same as on the MIPS architecture.</para> |
231 | data. Overally it is the same as on the MIPS architecture.</para> |
| 232 | </section> |
232 | </section> |
| 233 | </section> |
233 | </section> |
| 234 | 234 | ||
| 235 | <section> |
235 | <section> |
| 236 | <title>IA64</title> |
236 | <title>IA-64</title> |
| 237 | 237 | ||
| - | 238 | <para>The ia64 kernel uses 16K pages.</para> |
|
| - | 239 | ||
| - | 240 | <section> |
|
| - | 241 | <title>Two IA-64 Stacks</title> |
|
| - | 242 | ||
| - | 243 | <para>The architecture makes use of a pair of stacks. One stack is the |
|
| - | 244 | ordinary memory stack while the other is a special register stack. This |
|
| - | 245 | makes the ia64 architecture unique. HelenOS on ia64 solves the problem |
|
| - | 246 | by allocating two physical memory frames for thread and scheduler |
|
| - | 247 | stacks. The upper frame is used by the register stack while the first |
|
| - | 248 | frame is used by the conventional memory stack. The generic kernel and |
|
| - | 249 | userspace code had to be adjusted to cope with the possibility of |
|
| - | 250 | allocating more frames for the stack.</para> |
|
| 238 | <para></para> |
251 | </section> |
| 239 | 252 | ||
| 240 | <section> |
253 | <section> |
| 241 | <title>Thread Local Storage</title> |
254 | <title>Thread Local Storage</title> |
| 242 | 255 | ||
| 243 | <para>Although thread local storage is not officially supported in |
256 | <para>Although thread local storage is not officially supported in |
| 244 | statically linked binaries, GCC supports it without any major obstacles. |
257 | statically linked binaries, GCC supports it without any major obstacles. |
| 245 | As a thread pointer is designated register r13, the thread local data |
258 | The r13 register is used as a thread pointer, the thread local data |
| 246 | section starts at an address r13+16.</para> |
259 | section starts at address r13+16.</para> |
| 247 | 260 | ||
| 248 | <para><figure float="1"> |
261 | <para><figure float="1"> |
| 249 | <title>IA64</title> |
262 | <title>IA64</title> |
| 250 | 263 | ||
| 251 | <mediaobject id="tldia64"> |
264 | <mediaobject id="tldia64"> |