From WikiChip
Coprocessor 0 - MIPS

Coprocessor 0 (also known as the CP0 or system control coprocessor) is a required coprocessor part of the MIPS32 and MIPS64 ISA which provides the facilities needed for an operating system.

Coprocessor 0 instructions[edit]

The following instructions can be used to read and write from CP0 registers.

Mnemonic Description
MFC0 Move from Coprocessor 0
MTC0 Move to Coprocessor 0

Control Registers[edit]

Register Mnemonic Register Number Description
Context 0 memory management (TLB)
Random 1
EntryLo0 2
EntryLo1 3
Context 4
PageMask 5
Wired 6
EntryHi 10
HWREna 7.0 Sets user-privilege programs permissions
BadVAddr 8 Program address of the violation
Count 9 high-resolution time
Compare 11
SR 12 Status Register
IntCtl 12.1 Interrupt vector setup
SRSCtl 12.2 Shadow register control
SRSMap 12.3 Shadow register map
Cause 13 Cause Register
EPC 14 Exception Program Counter
PRId 15 Product ID register
EBase 15.1 Exception entry point base address
Config 16 CPU setup
Config1 16.1
Config2 16.2
Config3 16.3
LLAddr 17.0 Cache address
Debug 23.0 EJTAG debug
DEPC 24.0
DESAVE 31.0
CacheErr 27 Memory error analysis registers
ECC 26
ErrorEPC 30
TagLo 28 Cache manipulation
DataLo 28.1
TagHi 29.0
DataHi 29.1
WatchLo 18.0 Data watchpoint facility
WatchHi 19.0
PerfCtl 25.0 Performance counter registers
PerfCnt 25.1