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"> |