]>
Commit | Line | Data |
---|---|---|
cd56d314 JG |
1 | |
2 | /* operand format specifiers. */ | |
3 | ||
4 | #define TO 1 | |
5 | #define RA 2 | |
6 | #define SI 3 | |
7 | #define RT 4 | |
8 | #define UI 5 | |
9 | #define BF 6 | |
10 | #define BFA 7 | |
11 | #define BT 8 | |
12 | #define BA 9 | |
13 | #define BB 10 | |
14 | #define BO 11 | |
15 | #define BI 12 | |
16 | #define RB 13 | |
17 | #define RS 14 | |
18 | #define SH 15 | |
19 | #define MB 16 | |
20 | #define ME 17 | |
21 | #define SPR 18 | |
22 | #define DIS 19 | |
23 | #define FXM 21 | |
24 | #define FRT 22 | |
25 | #define NB 23 | |
26 | #define FRS 24 | |
27 | #define FRA 25 | |
28 | #define FRB 26 | |
29 | #define FRC 27 | |
30 | #define FLM 28 | |
31 | #define I 29 | |
32 | #define LI 30 | |
33 | #define A2 31 | |
34 | #define TA14 32 /* 14 bit representation of target address */ | |
35 | #define TA24 33 /* 24 bit representation of target address */ | |
36 | #define FL1 34 | |
37 | #define FL2 35 | |
38 | #define LEV 36 | |
39 | ||
40 | #if 0 | |
41 | ||
42 | RS6000 INSTRUCTION SET | |
43 | (sorted on first primary and second extended opcode) | |
44 | ||
45 | oprtr primary ext. | |
46 | operator ext format opcode opcode operand format | |
47 | ------- ------- ------ ------- ------ --------------- | |
48 | #endif /* 0 */ | |
49 | ||
50 | {"ti", 0, "d", 3, -1, {TO,RA,SI,0} }, | |
51 | {"muli", 0, "d", 7, -1, {RT,RA,SI,0} }, | |
52 | {"sfi", 0, "d", 8, -1, {RT,RA,SI,0} }, | |
53 | {"dozi", 0, "d", 9, -1, {RT,RA,SI,0} }, | |
54 | {"cmpli", 0, "d", 10, -1, {BF,RA,UI,0} }, | |
55 | {"cmpi", 0, "d", 11, -1, {BF,RA,SI,0} }, | |
56 | {"ai", 0, "d", 12, -1, {RT,RA,SI,0} }, | |
57 | {"ai.", 0, "d", 13, -1, {RT,RA,SI,0} }, | |
58 | {"lil", 0, "d", 14, -1, {RT,SI,0} }, /* same as `cal' */ | |
59 | {"cal", 0, "d", 14, -1, {RT,DIS,RA,0} }, | |
60 | {"liu", 0, "d", 15, -1, {RT, UI,0} }, /* same as `cau' */ | |
61 | {"cau", 0, "d", 15, -1, {RT,RA,UI,0} }, | |
62 | {"bb", "1tfl", "b", 16, -1, {LI,A2,0} }, | |
63 | /* ^^^^^ | |
64 | exception #1. Either fix this, or document what you are doing here. FIXMEmgo. | |
65 | */ | |
66 | {"bc", "la", "b", 16, -1, {BO,BI,TA14,0} }, | |
67 | {"svc", "la", "sc", 17, -1, {LEV,FL1,FL2,0} }, | |
68 | {"b", "la", "i", 18, -1, {TA24,0} }, | |
69 | {"mcrf", 0, "xl", 19, 0, {BF,BFA,0} }, | |
70 | {"bcr", "l", "xl", 19, 16, {BO,BI,0} }, | |
71 | {"cror", 0, "xl", 19, 33, {BT,BA,BB,0} }, | |
72 | {"crandc", 0, "xl", 19, 129, {BT,BA,BB,0} }, | |
73 | {"bcc", "l", "xl", 19, 193, {BO,BI,0} }, | |
74 | {"crnor", 0, "xl", 19, 225, {BT,BA,BB,0} }, | |
75 | {"crand", 0, "xl", 19, 257, {BT,BA,BB,0} }, | |
76 | {"creqv", 0, "xl", 19, 289, {BT,BA,BB,0} }, | |
77 | {"crnand", 0, "xl", 19, 289, {BT,BA,BB,0} }, | |
78 | {"crxor", 0, "xl", 19, 417, {BT,BA,BB,0} }, | |
79 | {"crorc", 0, "xl", 19, 449, {BT,BA,BB,0} }, | |
80 | {"bcr", "l", "xl", 19, 528, {BO,BI,0} }, | |
81 | {"rlimi", ".", "m", 20, -1, {RA,RS,SH,MB,ME,0} /*??*/}, | |
82 | {"rlinm", ".", "m", 21, -1, {RA,RS,SH,MB,ME,0} /*??*/}, | |
83 | {"rlmi", ".", "m", 22, -1, {RA,RS,RB,MB,ME,0} /*??*/}, | |
84 | {"rlnm", ".", "m", 23, -1, {RA,RS,RB,MB,ME,0} /*??*/}, | |
85 | {"oril", 0, "d", 24, -1, {RA,RS,UI,0} }, | |
86 | {"oriu", 0, "d", 25, -1, {RA,RS,UI,0} }, | |
87 | {"xoril", 0, "d", 26, -1, {RA,RS,UI,0} }, | |
88 | {"xoriu", 0, "d", 27, -1, {RA,RS,UI,0} }, | |
89 | {"andil.", 0, "d", 28, -1, {RA,RS,UI,0} }, | |
90 | {"andiu.", 0, "d", 29, -1, {RA,RS,UI,0} }, | |
91 | {"cmp", 0, "x", 31, 0, {BF,RA,RB,0} }, | |
92 | {"t", 0, "x", 31, 4, {TO,RA,RB,0} }, | |
93 | {"sf", "o.", "xo", 31, 8, {RT,RA,RB,0} }, | |
94 | {"a", "o.", "xo", 31, 10, {RT,RA,RB,0} }, | |
95 | {"mfcr", 0, "x", 31, 19, {RT,0} }, | |
96 | {"lx", 0, "x", 31, 23, {RT,RA,RB,0} }, | |
97 | {"sl", ".", "x", 31, 24, {RA,RS,RB,0} }, | |
98 | {"cntlz", ".", "xo", 31, 26, {RA,RS,0} }, | |
99 | {"and", ".", "x", 31, 28, {RA,RS,RB,0} }, | |
100 | {"maskg", ".", "x", 31, 29, {RA,RS,RB,0} }, | |
101 | {"cmpl", 0, "x", 31, 32, {BF,RA,RB,0} }, | |
102 | {"sfe", "o.", "xo", 31, 36, {RT,RA,RB,0} }, | |
103 | {"lux", 0, "x", 31, 55, {RT,RA,RB,0} }, | |
104 | {"andc", ".", "x", 31, 60, {RA,RS,RB,0} }, | |
105 | {"mfmsr", 0, "x", 31, 83, {RT,0} }, | |
106 | {"lbzx", 0, "x", 31, 87, {RT,RA,RB,0} }, | |
107 | {"neg", "o.", "xo", 31, 104, {RT,RA,0} }, | |
108 | {"mul", "o.", "xo", 31, 107, {RT,RA,RB,0} }, | |
109 | {"lbzux", 0, "x", 31, 119, {RT,RA,RB,0} }, | |
110 | {"nor", ".", "x", 31, 124, {RA,RS,RB,0} }, | |
111 | {"ae", "o.", "xo", 31, 138, {RT,RA,RB,0} }, | |
112 | {"mtcrf", 0, "xfx", 31, 144, {FXM,RS,0} }, | |
113 | {"stx", 0, "x", 31, 151, {RS,RA,RB,0} }, | |
114 | {"slq", ".", "x", 31, 152, {RA,RS,RB,0} }, | |
115 | {"sle", ".", "x", 31, 153, {RA,RS,RB,0} }, | |
116 | {"stux", 0, "x", 31, 183, {RS,RA,RB,0} }, | |
117 | {"sliq", ".", "x", 31, 184, {RA,RS,SH,0} }, | |
118 | {"sfze", "o.", "xo", 31, 200, {RT,RA,0} }, | |
119 | {"aze", "o.", "xo", 31, 202, {RT,RA,0} }, | |
120 | {"stbx", 0, "x", 31, 215, {RS,RA,RB,0} }, | |
121 | {"sllq", ".", "x", 31, 216, {RA,RS,RB,0} }, | |
122 | {"sleq", ".", "x", 31, 217, {RA,RS,RB,0} }, | |
123 | {"sfme", "o.", "xo", 31, 232, {RT,RA,0} }, | |
124 | {"ame", "o.", "xo", 31, 234, {RT,RA,0} }, | |
125 | {"muls", "o.", "xo", 31, 235, {RT,RA,RB,0} }, | |
126 | {"stbux", 0, "x", 31, 247, {RS,RA,RB,0} }, | |
127 | {"slliq", ".", "x", 31, 248, {RA,RS,SH,0} }, | |
128 | {"doz", "o.", "x", 31, 264, {RT,RA,RB,0} }, | |
129 | {"cax", "o.", "xo", 31, 266, {RT,RA,RB,0} }, | |
130 | {"lscbx", ".", "x", 31, 277, {RT,RA,RB,0} }, | |
131 | {"lhzx", 0, "x", 31, 279, {RT,RA,RB,0} }, | |
132 | {"eqv", ".", "x", 31, 284, {RA,RS,RB,0} }, | |
133 | {"lhzux", 0, "x", 31, 311, {RT,RA,RB,0} }, | |
134 | {"xor", ".", "x", 31, 316, {RA,RS,RB,0} }, | |
135 | {"div", "o.", "xo", 31, 331, {RT,RA,RB,0} }, | |
136 | {"mfspr", 0, "x", 31, 339, {RT,SPR,0} }, | |
137 | {"lhax", 0, "x", 31, 343, {RT,RA,RB,0} }, | |
138 | {"abs", "o.", "xo", 31, 360, {RT,RA,0} }, | |
139 | {"divs", "o.", "xo", 31, 363, {RT,RA,RB,0} }, | |
140 | {"lhaux", 0, "x", 31, 375, {RT,RA,RB,0} }, | |
141 | {"sthx", 0, "x", 31, 407, {RS,RA,RB,0} }, | |
142 | {"orc", ".", "x", 31, 412, {RA,RS,RB,0} }, | |
143 | {"sthux", 0, "x", 31, 439, {RS,RA,RB,0} }, | |
144 | {"or", ".", "x", 31, 444, {RA,RS,RB,0} }, | |
145 | {"mtspr", 0, "x", 31, 467, {SPR,RS,0} }, | |
146 | {"nand", ".", "x", 31, 476, {RA,RS,RB,0} }, | |
147 | {"nabs", "o.", "xo", 31, 488, {RT,RA,0} }, | |
148 | {"mcrxr", 0, "x", 31, 512, {BF,0} }, | |
149 | {"lsx", 0, "x", 31, 533, {RT,RA,RB,0} }, | |
150 | {"lbrx", 0, "x", 31, 534, {RT,RA,RB,0} }, | |
151 | {"lfsx", 0, "x", 31, 535, {FRT,RA,RB,0} }, | |
152 | {"sr", ".", "x", 31, 536, {RA,RS,RB,0} }, | |
153 | {"rrib", ".", "x", 31, 537, {RA,RS,RB,0} }, | |
154 | {"maskir", ".", "x", 31, 541, {RA,RS,RB,0} }, | |
155 | {"lfsux", 0, "x", 31, 567, {FRT,RA,RB,0} }, | |
156 | {"lsi", 0, "x", 31, 597, {RT,RA,NB,0} }, | |
157 | {"lfdx", 0, "x", 31, 599, {FRT,RA,RB,0} }, | |
158 | {"lfdux", 0, "x", 31, 631, {FRT,RA,RB,0} }, | |
159 | {"stsx", 0, "x", 31, 661, {RS,RA,RB,0} }, | |
160 | {"stbrx", 0, "x", 31, 662, {RA,RA,RB,0} }, | |
161 | {"stfsx", 0, "x", 31, 663, {FRS,RA,RB,0} }, | |
162 | {"srq", ".", "x", 31, 664, {RA,RS,RB,0} }, | |
163 | {"sre", ".", "x", 31, 665, {RA,RS,RB,0} }, | |
164 | {"stfsux", 0, "x", 31, 695, {FRS,RA,RB,0} }, | |
165 | {"sriq", ".", "x", 31, 696, {RA,RS,SH,0} }, | |
166 | {"stsi", 0, "x", 31, 725, {RS,RA,NB,0} }, | |
167 | {"stfdx", 0, "x", 31, 727, {FRS,RA,RB,0} }, | |
168 | {"srlq", ".", "x", 31, 728, {RA,RS,RB,0} }, | |
169 | {"sreq", ".", "x", 31, 729, {RA,RS,RB,0} }, | |
170 | {"stfdux", 0, "x", 31, 759, {FRS,RA,RB,0} }, | |
171 | {"srliq", ".", "x", 31, 760, {RA,RS,SH,0} }, | |
172 | {"lhbrx", 0, "x", 31, 790, {RT,RA,RB,0} }, | |
173 | {"sra", ".", "x", 31, 792, {RA,RS,RB,0} }, | |
174 | {"srai", ".", "x", 31, 824, {RA,RS,SH,0} }, | |
175 | {"sthbrx", 0, "x", 31, 918, {RS,RA,RB,0} }, | |
176 | {"sraq", ".", "x", 31, 920, {RA,RS,RB,0} }, | |
177 | {"srea", ".", "x", 31, 921, {RA,RS,RB,0} }, | |
178 | {"exts", ".", "x", 31, 922, {RA,RS,0} }, | |
179 | {"sraiq", ".", "x", 31, 952, {RA,RS,SH,0} }, | |
180 | {"l", 0, "d", 32, -1, {RT,DIS,RA,0} }, | |
181 | {"lu", 0, "d", 33, -1, {RT,DIS,RA,0} }, | |
182 | {"lbz", 0, "d", 34, -1, {RT,DIS,RA,0} }, | |
183 | {"lbzu", 0, "d", 35, -1, {RT,DIS,RA,0} }, | |
184 | {"st", 0, "d", 36, -1, {RS,DIS,RA,0} }, | |
185 | {"stu", 0, "d", 37, -1, {RS,DIS,RA,0} }, | |
186 | {"stb", 0, "d", 38, -1, {RS,DIS,RA,0} }, | |
187 | {"stbu", 0, "d", 39, -1, {RS,DIS,RA,0} }, | |
188 | {"lhz", 0, "d", 40, -1, {RT,DIS,RA,0} }, | |
189 | {"lhzu", 0, "d", 41, -1, {RT,DIS,RA,0} }, | |
190 | {"lha", 0, "d", 42, -1, {RT,DIS,RA,0} }, | |
191 | {"lhau", 0, "d", 43, -1, {RT,DIS,RA,0} }, | |
192 | {"sth", 0, "d", 44, -1, {RS,DIS,RA,0} }, | |
193 | {"sthu", 0, "d", 45, -1, {RS,DIS,RA,0} }, | |
194 | {"lm", 0, "d", 46, -1, {RT,DIS,RA,0} }, | |
195 | {"stm", 0, "d", 47, -1, {RS,DIS,RA,0} }, | |
196 | {"lfs", 0, "d", 48, -1, {FRT,DIS,RA,0} }, | |
197 | {"lfsu", 0, "d", 49, -1, {FRT,DIS,RA,0} }, | |
198 | {"lfd", 0, "d", 50, -1, {FRT,DIS,RA,0} }, | |
199 | {"lfdu", 0, "d", 51, -1, {FRT,DIS,RA,0} }, | |
200 | {"stfs", 0, "d", 52, -1, {FRS,DIS,RA,0} }, | |
201 | {"stfsu", 0, "d", 53, -1, {FRS,DIS,RA,0} }, | |
202 | {"stfd", 0, "d", 54, -1, {FRS,DIS,RA,0} }, | |
203 | {"stfdu", 0, "d", 55, -1, {FRS,DIS,RA,0} }, | |
204 | {"fcmpu", 0, "x", 63, 0, {BF,FRA,FRB,0} }, | |
205 | {"fm", ".", "a", 63, 5, {FRT,FRA,FRC,0} }, | |
206 | {"fd", ".", "a", 63, 8, {FRT,FRA,FRB,0} }, | |
207 | {"frsp", ".", "x", 63, 12, {FRT,FRB,0} }, | |
208 | {"fs", ".", "a", 63, 20, {FRT,FRA,FRB,0} }, | |
209 | {"fa", ".", "a", 63, 21, {FRT,FRA,FRB,0} }, | |
210 | {"fms", ".", "a", 63, 28, {FRT,FRA,FRC,FRB,0} }, | |
211 | {"fma", ".", "a", 63, 29, {FRT,FRA,FRC,FRB,0} }, | |
212 | {"fnms", ".", "a", 63, 30, {FRT,FRA,FRC,FRB,0} }, | |
213 | {"fnma", ".", "a", 63, 31, {FRT,FRA,FRC,FRB,0} }, | |
214 | {"fcmpo", 0, "x", 63, 32, {BF,FRA,FRB,0} }, | |
215 | {"mtfsb1", ".", "x", 63, 38, {BT,0} }, | |
216 | {"fneg", ".", "x", 63, 40, {FRT,FRB,0} }, | |
217 | {"mcrfs", 0, "x", 63, 64, {BF,BFA,0} }, | |
218 | {"mtfsb0", ".", "x", 63, 70, {BT,0} }, | |
219 | {"fmr", ".", "x", 63, 72, {FRT,FRB,0} }, | |
220 | {"mtfsfi", ".", "x", 63, 134, {BF,I,0} }, | |
221 | {"fnabs", ".", "x", 63, 136, {FRT,FRB,0} }, | |
222 | {"fabs", ".", "x", 63, 264, {FRT,FRB,0} }, | |
223 | {"mffs", ".", "x", 63, 583, {FRT,0} }, | |
224 | {"mtfsf", ".", "xfl", 63, 711, {FLM,FRB,0} }, |