Linux Kernel Architecture

(Jacob Rumans) #1
Mauerer runapp01.tex V1 - 09/04/2008 6:08pm Page 1124

Appendix A: Architecture Specifics


long twd;
long fip;
long fcs;
long foo;
long fos;
long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */
long status; /* software status information */
};

More recent processor versions use slightly wider registers and also support a second set of registers
known as XMM.

include/asm-x86/processor_32.h
struct i387_fxsave_struct {
u16 cwd;
u16 swd;
u16 twd;
u16 fop;
u64 rip;
u64 rdp;
u32 mxcsr;
u32 mxcsr_mask;
u32 st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg = 128 bytes */
u32 padding[24];
} __attribute__ ((aligned (16)));

A.7.2 IA-64


In the design of IA-64, the designated successor of the aging IA-32 architecture, Intel has kept abreast of
the times and has given the processor a much bigger register set (with a more systematic name).

include/asm-ia64/processor.h
struct pt_regs {
/ The following registers are saved by SAVE_MIN: /
unsigned long b6; / scratch /
unsigned long b7; / scratch /


unsigned long ar_csd; /* used by cmp8xchg16 (scratch) */
unsigned long ar_ssd; /* reserved for future use (scratch) */

unsigned long r8; /* scratch (return value register 0) */
unsigned long r9; /* scratch (return value register 1) */
unsigned long r10; /* scratch (return value register 2) */
unsigned long r11; /* scratch (return value register 3) */

unsigned long cr_ipsr; /* interrupted task’s psr */
unsigned long cr_iip; /* interrupted task’s instruction pointer */
/*
* interrupted task’s function state; if bit 63 is cleared, it
* contains syscall’s ar.pfs.pfm:
*/
unsigned long cr_ifs;
Free download pdf