Armadillo  0.1.1
TheexpandableOS
All Data Structures Files Functions Typedefs Enumerations Macros Pages
registers.h
Go to the documentation of this file.
1 
6 #ifndef __REGISTERS_H__
7 #define __REGISTERS_H__
8 
9 #define ZERO $0 // Constant zero
10 
11 #define AT $1 // Assembler temp
12 
13 #define V0 $2 // Function return 0
14 #define V1 $3 // Function return 1
15 
16 #define A0 $4 // Function argument 0
17 #define A1 $5 // Function argument 1
18 #define A2 $6 // Function argument 2
19 #define A3 $7 // Function argument 3
20 
21 #define T0 $8 // Temporary register 0
22 #define T1 $9 // Temporary register 1
23 #define T2 $10 // Temporary register 2
24 #define T3 $11 // Temporary register 3
25 #define T4 $12 // Temporary register 4
26 #define T5 $13 // Temporary register 5
27 #define T6 $14 // Temporary register 6
28 #define T7 $15 // Temporary register 7
29 
30 #define S0 $16 // Saved register 0
31 #define S1 $17 // Saved register 1
32 #define S2 $18 // Saved register 2
33 #define S3 $19 // Saved register 3
34 #define S4 $20 // Saved register 4
35 #define S5 $21 // Saved register 5
36 #define S6 $22 // Saved register 6
37 #define S7 $23 // Saved register 7
38 
39 #define T8 $24 // Temporary register 8
40 #define T9 $25 // Temporary register 9
41 
42 #define K0 $26 // Kernel register 0
43 #define K1 $27 // Kernel register 1
44 
45 #define GP $gp // Global pointer
46 #define SP $sp // Stack pointer
47 #define FP $fp // Frame pointer
48 
49 #define RA $ra // Return address
50 
51 // -----------------------------------
52 // Coprocessor 0 registers
53 // -----------------------------------
54 
55 #define C0_INDEX $0 // Select TLB entry for read / write
56 #define C0_RANDOM $1
57 #define C0_ENTRYLO0 $2
58 #define C0_ENTRYLO1 $3
59 #define C0_CONTEXT $4
60 #define C0_PAGEMASK $5
61 #define C0_WIRED $6
62 #define C0_BADVADDR $8 // Bad virtual address
63 #define C0_ENTRYHI $10
64 
65 #define C0_COUNT $9 // Timer count
66 #define C0_COMPARE $11 // Timer compare
67 
68 #define C0_STATUS $12 // Status register
69 #define C0_CAUSE $13 // Cause register
70 
71 #define C0_EPC $14 // Exception Program Counter
72 
73 #define C0_EBASE $15,1 // Exception entry point base address
74 
75 #define C0_CONFIG $16 // CPU Config
76 #define C0_CONFIG1 $16,1 // Config 1 (contains TLB size)
77 #define C0_CONFIG2 $16,2
78 #define C0_CONFIG3 $16,3
79 
80 #endif