| Line | |
|---|
| 1 | ! Miscellaneous constants used in assembler code.
|
|---|
| 2 | W = _WORD_SIZE ! Machine word size.
|
|---|
| 3 |
|
|---|
| 4 | ! Offsets in struct proc. They MUST match proc.h.
|
|---|
| 5 | P_STACKBASE = 0
|
|---|
| 6 | #if _WORD_SIZE == 2
|
|---|
| 7 | ESREG = P_STACKBASE
|
|---|
| 8 | #else
|
|---|
| 9 | GSREG = P_STACKBASE
|
|---|
| 10 | FSREG = GSREG + 2 ! 386 introduces FS and GS segments
|
|---|
| 11 | ESREG = FSREG + 2
|
|---|
| 12 | #endif
|
|---|
| 13 | DSREG = ESREG + 2
|
|---|
| 14 | DIREG = DSREG + 2
|
|---|
| 15 | SIREG = DIREG + W
|
|---|
| 16 | BPREG = SIREG + W
|
|---|
| 17 | STREG = BPREG + W ! hole for another SP
|
|---|
| 18 | BXREG = STREG + W
|
|---|
| 19 | DXREG = BXREG + W
|
|---|
| 20 | CXREG = DXREG + W
|
|---|
| 21 | AXREG = CXREG + W
|
|---|
| 22 | RETADR = AXREG + W ! return address for save() call
|
|---|
| 23 | PCREG = RETADR + W
|
|---|
| 24 | CSREG = PCREG + W
|
|---|
| 25 | PSWREG = CSREG + W
|
|---|
| 26 | SPREG = PSWREG + W
|
|---|
| 27 | SSREG = SPREG + W
|
|---|
| 28 | P_STACKTOP = SSREG + W
|
|---|
| 29 | P_LDT_SEL = P_STACKTOP
|
|---|
| 30 | P_LDT = P_LDT_SEL + W
|
|---|
| 31 |
|
|---|
| 32 | #if _WORD_SIZE == 2
|
|---|
| 33 | Msize = 12 ! size of a message in 16-bit words
|
|---|
| 34 | #else
|
|---|
| 35 | Msize = 9 ! size of a message in 32-bit words
|
|---|
| 36 | #endif
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.