1 /* Unicorn Emulator Engine */
2 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2015 */
3 
4 module unicorn.sparc;
5 
6 import unicorn.unicorn;
7 
8 extern(C):
9 
10 /// SPARC registers
11 enum uc_sparc_reg {
12 	INVALID = 0,
13 
14 	F0,
15 	F1,
16 	F2,
17 	F3,
18 	F4,
19 	F5,
20 	F6,
21 	F7,
22 	F8,
23 	F9,
24 	F10,
25 	F11,
26 	F12,
27 	F13,
28 	F14,
29 	F15,
30 	F16,
31 	F17,
32 	F18,
33 	F19,
34 	F20,
35 	F21,
36 	F22,
37 	F23,
38 	F24,
39 	F25,
40 	F26,
41 	F27,
42 	F28,
43 	F29,
44 	F30,
45 	F31,
46 	F32,
47 	F34,
48 	F36,
49 	F38,
50 	F40,
51 	F42,
52 	F44,
53 	F46,
54 	F48,
55 	F50,
56 	F52,
57 	F54,
58 	F56,
59 	F58,
60 	F60,
61 	F62,
62 	FCC0,	// Floating condition codes
63 	FCC1,
64 	FCC2,
65 	FCC3,
66 	G0,
67 	G1,
68 	G2,
69 	G3,
70 	G4,
71 	G5,
72 	G6,
73 	G7,
74 	I0,
75 	I1,
76 	I2,
77 	I3,
78 	I4,
79 	I5,
80 	FP,
81 	I7,
82 	ICC,	// Integer condition codes
83 	L0,
84 	L1,
85 	L2,
86 	L3,
87 	L4,
88 	L5,
89 	L6,
90 	L7,
91 	O0,
92 	O1,
93 	O2,
94 	O3,
95 	O4,
96 	O5,
97 	SP,
98 	O7,
99 	Y,
100 
101 	// special register
102 	XCC,
103 
104 	// pseudo register
105 	PC,   // program counter register
106 
107 	ENDING,   // <-- mark the end of the list of registers
108 
109 	// extras
110 	O6 = SP,
111 	I6 = FP,
112 }