Difference between revisions of "Registers"
From Mill Computing Wiki
m (Protected "Registers": generated ([Edit=<protect-level-bot>] (indefinite) [Move=<protect-level-bot>] (indefinite))) | |||
Line 35: | Line 35: | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |style="padding:0 1em"| | + | |style="padding:0 1em"| task switch |
|| global address of code address region | || global address of code address region | ||
|- | |- | ||
Line 46: | Line 46: | ||
|- | |- | ||
| codePointer || cp | | codePointer || cp | ||
− | |style="text-align:center"| &# | + | |style="text-align:center"| ✘ |
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |style="padding:0 1em"| | + | |style="padding:0 1em"| task switch |
|| local address of code address region | || local address of code address region | ||
|- | |- | ||
Line 63: | Line 63: | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |style="padding:0 1em"| | + | |style="padding:0 1em"| task switch |
|| upper bound of code address region | || upper bound of code address region | ||
|- | |- | ||
Line 77: | Line 77: | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |style="padding:0 1em"| | + | |style="padding:0 1em"| task switch |
|| global address of data address region | || global address of data address region | ||
|- | |- | ||
Line 84: | Line 84: | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |style="padding:0 1em"| | + | |style="padding:0 1em"| task switch |
|| local address of data address region | || local address of data address region | ||
|- | |- | ||
Line 91: | Line 91: | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |style="padding:0 1em"| | + | |style="padding:0 1em"| task switch |
|| upper bound of data address region | || upper bound of data address region | ||
|- | |- | ||
| ebbEntry || | | ebbEntry || | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
|style="padding:0 1em"| call, task switch | |style="padding:0 1em"| call, task switch | ||
− | || | + | || offset from cpReg of head byte of current ebb |
|- | |- | ||
| faultBase || | | faultBase || | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |style="text-align:center"| &# | + | |style="text-align:center"| ✔ |
− | |style="text-align:center"| &# | + | |style="text-align:center"| ✔ |
|style="padding:0 1em"| call, task switch | |style="padding:0 1em"| call, task switch | ||
|| fault vector base address | || fault vector base address | ||
|- | |- | ||
− | | | + | | floatControl || |
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
− | |style="text-align:center"| &# | + | |style="text-align:center"| ✔ |
|style="padding:0 1em"| call, task switch | |style="padding:0 1em"| call, task switch | ||
− | || floating point | + | || floating point mode control |
|- | |- | ||
− | | | + | | floatStatus || |
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
− | |style="text-align:center"| &# | + | |style="text-align:center"| ✔ |
|style="padding:0 1em"| call, task switch | |style="padding:0 1em"| call, task switch | ||
− | || | + | || floating point status |
|- | |- | ||
| framePointer || fp | | framePointer || fp | ||
Line 136: | Line 129: | ||
|| address of current stack frame | || address of current stack frame | ||
|- | |- | ||
− | | | + | | functionEntry || func |
+ | |style="text-align:center"| ✘ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
|style="padding:0 1em"| call, task switch | |style="padding:0 1em"| call, task switch | ||
− | || | + | || offset from cpReg of function entry address |
|- | |- | ||
− | | | + | | globalObjectTable || gotp |
+ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | + | |style="padding:0 1em"| task switch | |
− | |style="padding:0 1em"| | + | || address of GOT (Global Object Table) |
− | || | + | |
|- | |- | ||
| inboundArguments || inp | | inboundArguments || inp | ||
Line 184: | Line 177: | ||
|style="padding:0 1em"| | |style="padding:0 1em"| | ||
|| global address of upper bound of the MMIO aperture | || global address of upper bound of the MMIO aperture | ||
+ | |- | ||
+ | | outboundArguments || outp | ||
+ | |style="text-align:center"| ✔ | ||
+ | |style="text-align:center"| ✔ | ||
+ | |style="text-align:center"| ✘ | ||
+ | |style="padding:0 1em"| call, task switch | ||
+ | || outbound memory arguments address | ||
|- | |- | ||
| processID || | | processID || | ||
Line 273: | Line 273: | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |style="padding:0 1em"| | + | |style="padding:0 1em"| task switch |
|| address of per-thread data | || address of per-thread data | ||
|- | |- | ||
Line 280: | Line 280: | ||
|style="text-align:center"| ✔ | |style="text-align:center"| ✔ | ||
|style="text-align:center"| ✘ | |style="text-align:center"| ✘ | ||
− | |style="padding:0 1em"| | + | |style="padding:0 1em"| task switch |
|| address of receiver of method call | || address of receiver of method call | ||
|- | |- | ||
Line 289: | Line 289: | ||
|style="padding:0 1em"| task switch | |style="padding:0 1em"| task switch | ||
|| trap vector base address | || trap vector base address | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} |
Latest revision as of 13:24, 23 February 2021
Name | ID | Base | Reader | Writer | Spilled On | Description |
---|---|---|---|---|---|---|
argsSize | ✘ | ✘ | ✘ | call, task switch | size of memory argument block for next dynamic call | |
atomicStatus | ✘ | ✘ | ✘ | status if in an atomic extent | ||
backCount | ✘ | ✘ | ✘ | pending stalls for atomic backoff | ||
backoff | ✘ | ✘ | ✘ | backoff increment on atomic failure | ||
codeLowerBound | ✘ | ✔ | ✘ | task switch | global address of code address region | |
coreNum | ✘ | ✔ | ✘ | ordinal number of this core on the chip | ||
codePointer | cp | ✘ | ✔ | ✘ | task switch | local address of code address region |
constantPool | cpp | ✔ | ✔ | ✘ | call, task switch | address of constant pool |
codeUpperBound | ✘ | ✔ | ✘ | task switch | upper bound of code address region | |
cycleCounter | ✘ | ✔ | ✘ | task switch | instruction cycle counter | |
dataLowerBound | ✘ | ✔ | ✘ | task switch | global address of data address region | |
dataPointer | dp | ✔ | ✔ | ✘ | task switch | local address of data address region |
dataUpperBound | ✘ | ✔ | ✘ | task switch | upper bound of data address region | |
ebbEntry | ✘ | ✔ | ✘ | call, task switch | offset from cpReg of head byte of current ebb | |
faultBase | ✘ | ✔ | ✔ | call, task switch | fault vector base address | |
floatControl | ✘ | ✔ | ✔ | call, task switch | floating point mode control | |
floatStatus | ✘ | ✔ | ✔ | call, task switch | floating point status | |
framePointer | fp | ✔ | ✔ | ✘ | call, task switch | address of current stack frame |
functionEntry | func | ✘ | ✘ | ✘ | call, task switch | offset from cpReg of function entry address |
globalObjectTable | gotp | ✔ | ✘ | ✘ | task switch | address of GOT (Global Object Table) |
inboundArguments | inp | ✔ | ✔ | ✘ | call, task switch | inbound memory arguments address |
issueCounter | ✘ | ✔ | ✘ | task switch | instruction issue counter | |
localSpace | ✘ | ✘ | ✘ | base of process local space within global space | ||
noCacheLowerBound | ✘ | ✘ | ✘ | global address of MMIO aperture (bypasses caches) | ||
noCacheUpperBound | ✘ | ✘ | ✘ | global address of upper bound of the MMIO aperture | ||
outboundArguments | outp | ✔ | ✔ | ✘ | call, task switch | outbound memory arguments address |
processID | ✘ | ✔ | ✘ | task switch | current process number | |
realTimeClock | rtc | ✘ | ✔ | ✘ | real time clock | |
startStop | ✘ | ✘ | ✘ | true to start, false to stall | ||
scratchBase | ✘ | ✘ | ✘ | call, task switch | base address of extended scratchpad | |
scratchSize | ✘ | ✘ | ✘ | call, task switch | size (extent) of extended scratchpad | |
segExtent | ✘ | ✘ | ✘ | size in bytes of top stack segment | ||
ssegmentBase | ✘ | ✘ | ✘ | address of start of top stack segment in memory | ||
spillerSp | ✘ | ✘ | ✘ | spiller stack pointer | ||
stackPointer | ✘ | ✘ | ✘ | call, task switch | address of current top of stack and upper address of stack address region | |
stacklets | ✘ | ✘ | ✘ | address of start of stacklets region in memory | ||
stepsInEbb | ✘ | ✔ | ✘ | call, task switch | issue cycles executed within current ebb | |
threadID | ✘ | ✔ | ✘ | task switch | current thread number | |
threadPointer | tlp | ✔ | ✔ | ✘ | task switch | address of per-thread data |
thisPointer | tp | ✔ | ✔ | ✘ | task switch | address of receiver of method call |
trapBase | ✘ | ✘ | ✘ | task switch | trap vector base address |