Go to the source code of this file.
MIPS R4000 CP0 registers | |
#define | index 0 |
#define | random 1 |
#define | entrylo0 2 |
#define | entrylo1 3 |
#define | context 4 |
#define | pagemask 5 |
#define | wired 6 |
#define | badvaddr 8 |
#define | count 9 |
#define | entryhi 10 |
#define | compare 11 |
#define | status 12 |
#define | cause 13 |
#define | epc 14 |
#define | config 16 |
#define | lladdr 17 |
#define | xcontext 20 |
#define | eepc 30 |
Defines | |
#define | zero 0 |
#define | at 1 |
#define | v0 2 |
#define | v1 3 |
#define | a0 4 |
#define | a1 5 |
#define | a2 6 |
#define | a3 7 |
#define | t0 8 |
#define | t1 9 |
#define | t2 10 |
#define | t3 11 |
#define | t4 12 |
#define | t5 13 |
#define | t6 14 |
#define | t7 15 |
#define | s0 16 |
#define | s1 17 |
#define | s2 18 |
#define | s3 19 |
#define | s4 20 |
#define | s5 21 |
#define | s6 22 |
#define | s7 23 |
#define | t8 24 |
#define | t9 25 |
#define | gp 28 |
#define | sp 29 |
#define | fp 30 |
#define | ra 31 |
#define | k0 26 |
#define | k1 27 |
#define a0 4 |
function arguments
#define a1 5 |
#define a2 6 |
#define a3 7 |
#define at 1 |
Register no 1 is used by the assembler macros as a temporary register. Assembler temporary (at) can be also used as a normal register when the ".set noat" pseudo op-code is specified.
#define badvaddr 8 |
Bad Virtual Address Register
#define cause 13 |
Cause Register
#define compare 11 |
Compare Register
#define config 16 |
Config Register
#define context 4 |
Context Register
#define count 9 |
Count Register
#define eepc 30 |
Error Exception Program Counter Register
#define entryhi 10 |
EntryHi Register
#define entrylo0 2 |
EntryLo0 Register
#define entrylo1 3 |
EntryLo1 Register
#define epc 14 |
Exception Program Counter Register
#define fp 30 |
pointer to frame
#define gp 28 |
pointer to global
#define index 0 |
Index Register
#define k0 26 |
Registers 26 and 27 (k0 and k1) are reserved for the operating system. Their context may be randomly overwritten and the application should not use them.
#define k1 27 |
#define lladdr 17 |
Load Linked Address Register
#define pagemask 5 |
PageMask Register
#define ra 31 |
Register no 31 is used by the jump-linked instructions as a pointer to the next (return) instruction. Note that it is up to calling code to do not lost it.
#define random 1 |
Random Register
#define s0 16 |
#define s1 17 |
#define s2 18 |
#define s3 19 |
#define s4 20 |
#define s5 21 |
#define s6 22 |
#define s7 23 |
#define sp 29 |
pointer to stack
#define status 12 |
Status Register
#define t0 8 |
temporary register
#define t1 9 |
#define t2 10 |
#define t3 11 |
#define t4 12 |
#define t5 13 |
#define t6 14 |
#define t7 15 |
#define t8 24 |
#define t9 25 |
#define v0 2 |
a return value
#define v1 3 |
#define wired 6 |
Wired Register
#define xcontext 20 |
XContext Register
#define zero 0 |
Register no 0 is always 0 for reading. It is so-called as a wired zero.