Rev | Line | |
---|
[9] | 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.