1#include <stdint.h>
2
3/* operands types */
4enum optype {
5    NONE,	/* no operand */
6    JBSR,	/* jbsr pseudo op */
7    PCREL,	/* PC relative (branch offset) */
8    BADDR,	/* Branch address (sign extended absolute address) */
9    D,		/* 16 bit displacement */
10    DS,		/* 14 bit displacement (double word) */
11    SI,		/* signed 16 bit immediate */
12    UI,		/* unsigned 16 bit immediate */
13    HI,		/* high 16 bit immediate (with truncation) */
14    GREG,	/* general register */
15    G0REG,	/* general register r1-r31 or 0 */
16    FREG,	/* float register */
17    VREG,	/* vector register */
18    SGREG,	/* segment register */
19    SPREG,	/* special register (or 10 bit number, 5 bit halves reversed) */
20    BCND,	/* branch condition opcode */
21    CRF,	/* condition register field */
22    CRFONLY,	/* condition register field only no expression allowed */
23    sh,		/* 6 bit number (0 - 63) (sh field, split and reversed) */
24    mb,		/* 6 bit number (0 - 63) (mb field, mb5 || mb0:4 reversed) */
25    NUM,	/* number */
26    SNUM,	/* signed number */
27    NUM0,	/* number (where 1<<width is the same as 0) */
28    MBE,	/* mask defined by MB and ME fields */
29    FXM,	/* 8-bit mask with only one bit set */
30    ZERO	/* the number zero */
31};
32
33struct op {
34   uint32_t offset:5;
35   uint32_t width:5;
36   enum optype   type:6;
37};
38
39/*
40 * These defines are use in the cpus field of the instructions.  If the field
41 * is zero it can execute on all cpus.  The defines are or'ed together.  This
42 * information is used to set the cpusubtype in the resulting object file.
43 */
44#define CPU601		0x1
45#define IMPL64		0x2
46#define OPTIONAL	0x4
47#define VMX		0x8
48#define CPU970		0x10 /* added to OPTIONAL insts that the 970 has */
49
50struct ppc_opcode {
51   uint32_t opcode;
52   char         *name;
53   struct op	 ops[5];
54   uint32_t cpus;
55};
56
57#define IS_BRANCH_CONDITIONAL(opcode) \
58	(((((opcode) & 0xfc0003fe) == 0x4c000020) || \
59	  (((opcode) & 0xfc000000) == 0x40000000)) && \
60	   (((opcode) & 0x03e00000) != 0x02800000) )
61#define Y_BIT (1 << 21)
62
63static const struct ppc_opcode ppc_opcodes[] = {
64 { 0x38000000, "addi",    {{21,5,GREG}, {16,5,G0REG},{0,16,SI}} },
65 { 0x38000000, "li",      {{21,5,GREG}, {0,16,SI}} },
66 { 0x3c000000, "addis",   {{21,5,GREG}, {16,5,G0REG},{0,16,HI}} },
67 { 0x3c000000, "lis",     {{21,5,GREG}, {0,16,HI}} },
68 { 0x30000000, "addic",   {{21,5,GREG}, {16,5,GREG}, {0,16,SI}} },
69 { 0x34000000, "addic.",  {{21,5,GREG}, {16,5,GREG}, {0,16,SI}} },
70 { 0x7c000214, "add",     {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
71 { 0x7c000215, "add.",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
72 { 0x7c000614, "addo",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
73 { 0x7c000615, "addo.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
74
75 { 0x7c000014, "addc",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
76 { 0x7c000015, "addc.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
77 { 0x7c000414, "addco",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
78 { 0x7c000415, "addco.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
79
80 { 0x7c000114, "adde",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
81 { 0x7c000115, "adde.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
82 { 0x7c000514, "addeo",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
83 { 0x7c000515, "addeo.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
84
85 { 0x7c0001d4, "addme",   {{21,5,GREG}, {16,5,GREG}} },
86 { 0x7c0001d5, "addme.",  {{21,5,GREG}, {16,5,GREG}} },
87 { 0x7c0005d4, "addmeo",  {{21,5,GREG}, {16,5,GREG}} },
88 { 0x7c0005d5, "addmeo.", {{21,5,GREG}, {16,5,GREG}} },
89
90 { 0x7c000194, "addze",   {{21,5,GREG}, {16,5,GREG}} },
91 { 0x7c000195, "addze.",  {{21,5,GREG}, {16,5,GREG}} },
92 { 0x7c000594, "addzeo",  {{21,5,GREG}, {16,5,GREG}} },
93 { 0x7c000595, "addzeo.", {{21,5,GREG}, {16,5,GREG}} },
94
95 { 0x70000000, "andi.",   {{16,5,GREG}, {21,5,GREG}, {0,16,UI}} },
96 { 0x74000000, "andis.",  {{16,5,GREG}, {21,5,GREG}, {0,16,UI}} },
97 { 0x7c000038, "and",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
98 { 0x7c000039, "and.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
99
100 { 0x7c000078, "andc",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
101 { 0x7c000079, "andc.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
102
103 { 0x48000000, "b",       {{2,24,PCREL}} },
104 { 0x48000002, "ba",      {{2,24,BADDR}} },
105 { 0x48000001, "bl",      {{2,24,PCREL}} },
106 { 0x48000003, "bla",     {{2,24,BADDR}} },
107
108 { 0x48000001, "jbsr",    {{0,0,JBSR}, {2,24,PCREL}} },
109 { 0x48000000, "jmp",     {{0,0,JBSR}, {2,24,PCREL}} },
110
111 { 0x40000000, "bc",      {{21,5,NUM},  {16,5,NUM}, {2,14,PCREL}} },
112 { 0x40000002, "bca",     {{21,5,NUM},  {16,5,NUM}, {2,14,BADDR}} },
113 { 0x40000001, "bcl",     {{21,5,NUM},  {16,5,NUM}, {2,14,PCREL}} },
114 { 0x40000003, "bcla",    {{21,5,NUM},  {16,5,NUM}, {2,14,BADDR}} },
115
116 { 0x4c000420, "bcctr",   {{21,5,NUM},  {16,5,NUM}} },
117 { 0x4c000420, "bcctr",   {{21,5,NUM},  {16,5,NUM}, {11,2,NUM}} },
118 { 0x4c000421, "bcctrl",  {{21,5,NUM},  {16,5,NUM}} },
119 { 0x4c000421, "bcctrl",  {{21,5,NUM},  {16,5,NUM}, {11,2,NUM}} },
120 { 0x4c000020, "bclr",    {{21,5,NUM},  {16,5,NUM}} },
121 { 0x4c000020, "bclr",    {{21,5,NUM},  {16,5,NUM}, {11,2,NUM}} },
122 { 0x4c000021, "bclrl",   {{21,5,NUM},  {16,5,NUM}} },
123 { 0x4c000021, "bclrl",   {{21,5,NUM},  {16,5,NUM}, {11,2,NUM}} },
124
125/* Basic branch mnemonics (assember extended mnemonics) */
126/* { 0x42800000, "b",       {{2,14,PCREL}} }, overlaps */
127/* { 0x42800001, "bl",      {{2,14,PCREL}} }, overlaps */
128 { 0x41800000, "bt",      {{16,5,BCND}, {2,14,PCREL}} },
129 { 0x41800001, "btl",     {{16,5,BCND}, {2,14,PCREL}} },
130 { 0x40800000, "bf",      {{16,5,BCND}, {2,14,PCREL}} },
131 { 0x40800001, "bfl",     {{16,5,BCND}, {2,14,PCREL}} },
132 { 0x42000000, "bdnz",    {{2,14,PCREL}} },
133 { 0x42000001, "bdnzl",   {{2,14,PCREL}} },
134 { 0x41000000, "bdnzt",   {{16,5,BCND}, {2,14,PCREL}} },
135 { 0x41000001, "bdnztl",  {{16,5,BCND}, {2,14,PCREL}} },
136 { 0x40000000, "bdnzf",   {{16,5,BCND}, {2,14,PCREL}} },
137 { 0x40000001, "bdnzfl",  {{16,5,BCND}, {2,14,PCREL}} },
138 { 0x42400000, "bdz",     {{2,14,PCREL}} },
139 { 0x42400001, "bdzl",    {{2,14,PCREL}} },
140 { 0x41400000, "bdzt",    {{16,5,BCND}, {2,14,PCREL}} },
141 { 0x41400001, "bdztl",   {{16,5,BCND}, {2,14,PCREL}} },
142 { 0x40400000, "bdzf",    {{16,5,BCND}, {2,14,PCREL}} },
143 { 0x40400001, "bdzfl",   {{16,5,BCND}, {2,14,PCREL}} },
144
145/* { 0x42800002, "ba",      {{2,14,BADDR}} }, overlaps */
146/* { 0x42800003, "bla",     {{2,14,BADDR}} }, overlaps */
147 { 0x41800002, "bta",     {{16,5,BCND}, {2,14,BADDR}} },
148 { 0x41800003, "btla",    {{16,5,BCND}, {2,14,BADDR}} },
149 { 0x40800002, "bfa",     {{16,5,BCND}, {2,14,BADDR}} },
150 { 0x40800003, "bfla",    {{16,5,BCND}, {2,14,BADDR}} },
151 { 0x42000002, "bdnza",   {{2,14,BADDR}} },
152 { 0x42000003, "bdnzla",  {{2,14,BADDR}} },
153 { 0x41000002, "bdnzta",  {{16,5,BCND}, {2,14,BADDR}} },
154 { 0x41000003, "bdnztla", {{16,5,BCND}, {2,14,BADDR}} },
155 { 0x40000002, "bdnzfa",  {{16,5,BCND}, {2,14,BADDR}} },
156 { 0x40000003, "bdnzfla", {{16,5,BCND}, {2,14,BADDR}} },
157 { 0x42400002, "bdza",    {{2,14,BADDR}} },
158 { 0x42400003, "bdzla",   {{2,14,BADDR}} },
159 { 0x41400002, "bdzta",   {{16,5,BCND}, {2,14,BADDR}} },
160 { 0x41400003, "bdztla",  {{16,5,BCND}, {2,14,BADDR}} },
161 { 0x40400002, "bdzfa",   {{16,5,BCND}, {2,14,BADDR}} },
162 { 0x40400003, "bdzfla",  {{16,5,BCND}, {2,14,BADDR}} },
163
164 { 0x4e800020, "blr",     },
165 { 0x4e800020, "blr",     {{11,2,NUM}} },
166 { 0x4e800021, "blrl",    },
167 { 0x4e800021, "blrl",    {{11,2,NUM}} },
168 { 0x4d800020, "btlr",    {{16,5,BCND}} },
169 { 0x4d800020, "btlr",    {{16,5,BCND}, {11,2,NUM}} },
170 { 0x4d800021, "btlrl",   {{16,5,BCND}} },
171 { 0x4d800021, "btlrl",   {{16,5,BCND}, {11,2,NUM}} },
172 { 0x4c800020, "bflr",    {{16,5,BCND}} },
173 { 0x4c800020, "bflr",    {{16,5,BCND}, {11,2,NUM}} },
174 { 0x4c800021, "bflrl",   {{16,5,BCND}} },
175 { 0x4c800021, "bflrl",   {{16,5,BCND}, {11,2,NUM}} },
176 { 0x4e000020, "bdnzlr",  },
177 { 0x4e000020, "bdnzlr",  {{11,2,NUM}} },
178 { 0x4e000021, "bdnzlrl", },
179 { 0x4e000021, "bdnzlrl", {{11,2,NUM}} },
180 { 0x4d000020, "bdnztlr", {{16,5,BCND}} },
181 { 0x4d000020, "bdnztlr", {{16,5,BCND}, {11,2,NUM}} },
182 { 0x4d000021, "bdnztlrl",{{16,5,BCND}} },
183 { 0x4d000021, "bdnztlrl",{{16,5,BCND}, {11,2,NUM}} },
184 { 0x4c000020, "bdnzflr", {{16,5,BCND}} },
185 { 0x4c000020, "bdnzflr", {{16,5,BCND}, {11,2,NUM}} },
186 { 0x4c000021, "bdnzflrl",{{16,5,BCND}} },
187 { 0x4c000021, "bdnzflrl",{{16,5,BCND}, {11,2,NUM}} },
188 { 0x4e400020, "bdzlr",   },
189 { 0x4e400020, "bdzlr",   {{11,2,NUM}} },
190 { 0x4e400021, "bdzlrl",  },
191 { 0x4e400021, "bdzlrl",  {{11,2,NUM}} },
192 { 0x4d400020, "bdztlr",  {{16,5,BCND}} },
193 { 0x4d400020, "bdztlr",  {{16,5,BCND}, {11,2,NUM}} },
194 { 0x4d400021, "bdztlrl", {{16,5,BCND}} },
195 { 0x4d400021, "bdztlrl", {{16,5,BCND}, {11,2,NUM}} },
196 { 0x4c400020, "bdzflr",  {{16,5,BCND}} },
197 { 0x4c400020, "bdzflr",  {{16,5,BCND}, {11,2,NUM}} },
198 { 0x4c400021, "bdzflrl", {{16,5,BCND}} },
199 { 0x4c400021, "bdzflrl", {{16,5,BCND}, {11,2,NUM}} },
200
201 { 0x4c000420, "bctr",    {{21,5,NUM},  {16,5,NUM}} },
202 { 0x4e800420, "bctr",    },
203 { 0x4e800420, "bctr",    {{11,2,NUM}} },
204 { 0x4c000421, "bctrl",   {{21,5,NUM},  {16,5,NUM}} },
205 { 0x4e800421, "bctrl",   },
206 { 0x4e800421, "bctrl",   {{11,2,NUM}} },
207 { 0x4d800420, "btctr",   {{16,5,BCND}} },
208 { 0x4d800420, "btctr",   {{16,5,BCND}, {11,2,NUM}} },
209 { 0x4d800421, "btctrl",  {{16,5,BCND}} },
210 { 0x4d800421, "btctrl",  {{16,5,BCND}, {11,2,NUM}} },
211 { 0x4c800420, "bfctr",   {{16,5,BCND}} },
212 { 0x4c800420, "bfctr",   {{16,5,BCND}, {11,2,NUM}} },
213 { 0x4c800421, "bfctrl",  {{16,5,BCND}} },
214 { 0x4c800421, "bfctrl",  {{16,5,BCND}, {11,2,NUM}} },
215
216/* branch mnemonics incorporating conditions (assember extended mnemonics) */
217 { 0x41800000, "blt",     {{16,5,CRF}, {2,14,PCREL}} },
218 { 0x41800000, "blt",     {{2,14,PCREL}} },
219 { 0x41800001, "bltl",    {{16,5,CRF}, {2,14,PCREL}} },
220 { 0x41800001, "bltl",    {{2,14,PCREL}} },
221 { 0x40810000, "ble",     {{16,5,CRF}, {2,14,PCREL}} },
222 { 0x40810000, "ble",     {{2,14,PCREL}} },
223 { 0x40810001, "blel",    {{16,5,CRF}, {2,14,PCREL}} },
224 { 0x40810001, "blel",    {{2,14,PCREL}} },
225 { 0x41820000, "beq",     {{16,5,CRF}, {2,14,PCREL}} },
226 { 0x41820000, "beq",     {{2,14,PCREL}} },
227 { 0x41820001, "beql",    {{16,5,CRF}, {2,14,PCREL}} },
228 { 0x41820001, "beql",    {{2,14,PCREL}} },
229 { 0x40800000, "bge",     {{16,5,CRF}, {2,14,PCREL}} },
230 { 0x40800000, "bge",     {{2,14,PCREL}} },
231 { 0x40800001, "bgel",    {{16,5,CRF}, {2,14,PCREL}} },
232 { 0x40800001, "bgel",    {{2,14,PCREL}} },
233 { 0x41810000, "bgt",     {{16,5,CRF}, {2,14,PCREL}} },
234 { 0x41810000, "bgt",     {{2,14,PCREL}} },
235 { 0x41810001, "bgtl",    {{16,5,CRF}, {2,14,PCREL}} },
236 { 0x41810001, "bgtl",    {{2,14,PCREL}} },
237 { 0x40800000, "bnl",     {{16,5,CRF}, {2,14,PCREL}} },
238 { 0x40800000, "bnl",     {{2,14,PCREL}} },
239 { 0x40800001, "bnll",    {{16,5,CRF}, {2,14,PCREL}} },
240 { 0x40800001, "bnll",    {{2,14,PCREL}} },
241 { 0x40820000, "bne",     {{16,5,CRF}, {2,14,PCREL}} },
242 { 0x40820000, "bne",     {{2,14,PCREL}} },
243 { 0x40820001, "bnel",    {{16,5,CRF}, {2,14,PCREL}} },
244 { 0x40820001, "bnel",    {{2,14,PCREL}} },
245 { 0x40810000, "bng",     {{16,5,CRF}, {2,14,PCREL}} },
246 { 0x40810000, "bng",     {{2,14,PCREL}} },
247 { 0x40810001, "bngl",    {{16,5,CRF}, {2,14,PCREL}} },
248 { 0x40810001, "bngl",    {{2,14,PCREL}} },
249 { 0x41830000, "bso",     {{16,5,CRF}, {2,14,PCREL}} },
250 { 0x41830000, "bso",     {{2,14,PCREL}} },
251 { 0x41830001, "bsol",    {{16,5,CRF}, {2,14,PCREL}} },
252 { 0x41830001, "bsol",    {{2,14,PCREL}} },
253 { 0x40830000, "bns",     {{16,5,CRF}, {2,14,PCREL}} },
254 { 0x40830000, "bns",     {{2,14,PCREL}} },
255 { 0x40830001, "bnsl",    {{16,5,CRF}, {2,14,PCREL}} },
256 { 0x40830001, "bnsl",    {{2,14,PCREL}} },
257 { 0x41830000, "bun",     {{16,5,CRF}, {2,14,PCREL}} },
258 { 0x41830000, "bun",     {{2,14,PCREL}} },
259 { 0x41830001, "bunl",    {{16,5,CRF}, {2,14,PCREL}} },
260 { 0x41830001, "bunl",    {{2,14,PCREL}} },
261 { 0x40830000, "bnu",     {{16,5,CRF}, {2,14,PCREL}} },
262 { 0x40830000, "bnu",     {{2,14,PCREL}} },
263 { 0x40830001, "bnul",    {{16,5,CRF}, {2,14,PCREL}} },
264 { 0x40830001, "bnul",    {{2,14,PCREL}} },
265
266 { 0x41800002, "blta",    {{16,5,CRF}, {2,14,BADDR}} },
267 { 0x41800002, "blta",    {{2,14,BADDR}} },
268 { 0x41800003, "bltla",   {{16,5,CRF}, {2,14,BADDR}} },
269 { 0x41800003, "bltla",   {{2,14,BADDR}} },
270 { 0x40810002, "blea",    {{16,5,CRF}, {2,14,BADDR}} },
271 { 0x40810002, "blea",    {{2,14,BADDR}} },
272 { 0x40810003, "blela",   {{16,5,CRF}, {2,14,BADDR}} },
273 { 0x40810003, "blela",   {{2,14,BADDR}} },
274 { 0x41820002, "beqa",    {{16,5,CRF}, {2,14,BADDR}} },
275 { 0x41820002, "beqa",    {{2,14,BADDR}} },
276 { 0x41820003, "beqla",   {{16,5,CRF}, {2,14,BADDR}} },
277 { 0x41820003, "beqla",   {{2,14,BADDR}} },
278 { 0x40800002, "bgea",    {{16,5,CRF}, {2,14,BADDR}} },
279 { 0x40800002, "bgea",    {{2,14,BADDR}} },
280 { 0x40800003, "bgela",   {{16,5,CRF}, {2,14,BADDR}} },
281 { 0x40800003, "bgela",   {{2,14,BADDR}} },
282 { 0x41810002, "bgta",    {{16,5,CRF}, {2,14,BADDR}} },
283 { 0x41810002, "bgta",    {{2,14,BADDR}} },
284 { 0x41810003, "bgtla",   {{16,5,CRF}, {2,14,BADDR}} },
285 { 0x41810003, "bgtla",   {{2,14,BADDR}} },
286 { 0x40800002, "bnla",    {{16,5,CRF}, {2,14,BADDR}} },
287 { 0x40800002, "bnla",    {{2,14,BADDR}} },
288 { 0x40800003, "bnlla",   {{16,5,CRF}, {2,14,BADDR}} },
289 { 0x40800003, "bnlla",   {{2,14,BADDR}} },
290 { 0x40820002, "bnea",    {{16,5,CRF}, {2,14,BADDR}} },
291 { 0x40820002, "bnea",    {{2,14,BADDR}} },
292 { 0x40820003, "bnela",   {{16,5,CRF}, {2,14,BADDR}} },
293 { 0x40820003, "bnela",   {{2,14,BADDR}} },
294 { 0x40810002, "bnga",    {{16,5,CRF}, {2,14,BADDR}} },
295 { 0x40810002, "bnga",    {{2,14,BADDR}} },
296 { 0x40810003, "bngla",   {{16,5,CRF}, {2,14,BADDR}} },
297 { 0x40810003, "bngla",   {{2,14,BADDR}} },
298 { 0x41830002, "bsoa",    {{16,5,CRF}, {2,14,BADDR}} },
299 { 0x41830002, "bsoa",    {{2,14,BADDR}} },
300 { 0x41830003, "bsola",   {{16,5,CRF}, {2,14,BADDR}} },
301 { 0x41830003, "bsola",   {{2,14,BADDR}} },
302 { 0x40830002, "bnsa",    {{16,5,CRF}, {2,14,BADDR}} },
303 { 0x40830002, "bnsa",    {{2,14,BADDR}} },
304 { 0x40830003, "bnsla",   {{16,5,CRF}, {2,14,BADDR}} },
305 { 0x40830003, "bnsla",   {{2,14,BADDR}} },
306 { 0x41830002, "buna",    {{16,5,CRF}, {2,14,BADDR}} },
307 { 0x41830002, "buna",    {{2,14,BADDR}} },
308 { 0x41830003, "bunla",   {{16,5,CRF}, {2,14,BADDR}} },
309 { 0x41830003, "bunla",   {{2,14,BADDR}} },
310 { 0x40830002, "bnua",    {{16,5,CRF}, {2,14,BADDR}} },
311 { 0x40830002, "bnua",    {{2,14,BADDR}} },
312 { 0x40830003, "bnula",   {{16,5,CRF}, {2,14,BADDR}} },
313 { 0x40830003, "bnula",   {{2,14,BADDR}} },
314
315 { 0x4d800020, "bltlr",   {{16,5,CRF}} },
316 { 0x4d800020, "bltlr",   {{16,5,CRF}, {11,2,NUM}} },
317 { 0x4d800020, "bltlr",   },
318 { 0x4d800021, "bltlrl",  {{16,5,CRF}} },
319 { 0x4d800021, "bltlrl",  {{16,5,CRF}, {11,2,NUM}} },
320 { 0x4d800021, "bltlrl",  },
321 { 0x4c810020, "blelr",   {{16,5,CRF}} },
322 { 0x4c810020, "blelr",   {{16,5,CRF}, {11,2,NUM}} },
323 { 0x4c810020, "blelr",   },
324 { 0x4c810021, "blelrl",  {{16,5,CRF}} },
325 { 0x4c810021, "blelrl",  {{16,5,CRF}, {11,2,NUM}} },
326 { 0x4c810021, "blelrl",  },
327 { 0x4d820020, "beqlr",   {{16,5,CRF}} },
328 { 0x4d820020, "beqlr",   {{16,5,CRF}, {11,2,NUM}} },
329 { 0x4d820020, "beqlr",   },
330 { 0x4d820021, "beqlrl",  {{16,5,CRF}} },
331 { 0x4d820021, "beqlrl",  {{16,5,CRF}, {11,2,NUM}} },
332 { 0x4d820021, "beqlrl",  },
333 { 0x4c800020, "bgelr",   {{16,5,CRF}} },
334 { 0x4c800020, "bgelr",   {{16,5,CRF}, {11,2,NUM}} },
335 { 0x4c800020, "bgelr",   },
336 { 0x4c800021, "bgelrl",  {{16,5,CRF}} },
337 { 0x4c800021, "bgelrl",  {{16,5,CRF}, {11,2,NUM}} },
338 { 0x4c800021, "bgelrl",  },
339 { 0x4d810020, "bgtlr",   {{16,5,CRF}} },
340 { 0x4d810020, "bgtlr",   {{16,5,CRF}, {11,2,NUM}} },
341 { 0x4d810020, "bgtlr",   },
342 { 0x4d810021, "bgtlrl",  {{16,5,CRF}} },
343 { 0x4d810021, "bgtlrl",  {{16,5,CRF}, {11,2,NUM}} },
344 { 0x4d810021, "bgtlrl",  },
345 { 0x4c800020, "bnllr",   {{16,5,CRF}} },
346 { 0x4c800020, "bnllr",   {{16,5,CRF}, {11,2,NUM}} },
347 { 0x4c800020, "bnllr",   },
348 { 0x4c800021, "bnllrl",  {{16,5,CRF}} },
349 { 0x4c800021, "bnllrl",  {{16,5,CRF}, {11,2,NUM}} },
350 { 0x4c800021, "bnllrl",  },
351 { 0x4c820020, "bnelr",   {{16,5,CRF}} },
352 { 0x4c820020, "bnelr",   {{16,5,CRF}, {11,2,NUM}} },
353 { 0x4c820020, "bnelr",   },
354 { 0x4c820021, "bnelrl",  {{16,5,CRF}} },
355 { 0x4c820021, "bnelrl",  {{16,5,CRF}, {11,2,NUM}} },
356 { 0x4c820021, "bnelrl",  },
357 { 0x4c810020, "bnglr",   {{16,5,CRF}} },
358 { 0x4c810020, "bnglr",   {{16,5,CRF}, {11,2,NUM}} },
359 { 0x4c810020, "bnglr",   },
360 { 0x4c810021, "bnglrl",  {{16,5,CRF}} },
361 { 0x4c810021, "bnglrl",  {{16,5,CRF}, {11,2,NUM}} },
362 { 0x4c810021, "bnglrl",  },
363 { 0x4d830020, "bsolr",   {{16,5,CRF}} },
364 { 0x4d830020, "bsolr",   {{16,5,CRF}, {11,2,NUM}} },
365 { 0x4d830020, "bsolr",   },
366 { 0x4d830021, "bsolrl",  {{16,5,CRF}} },
367 { 0x4d830021, "bsolrl",  {{16,5,CRF}, {11,2,NUM}} },
368 { 0x4d830021, "bsolrl",  },
369 { 0x4c830020, "bnslr",   {{16,5,CRF}} },
370 { 0x4c830020, "bnslr",   {{16,5,CRF}, {11,2,NUM}} },
371 { 0x4c830020, "bnslr",   },
372 { 0x4c830021, "bnslrl",  {{16,5,CRF}} },
373 { 0x4c830021, "bnslrl",  {{16,5,CRF}, {11,2,NUM}} },
374 { 0x4c830021, "bnslrl",  },
375 { 0x4d830020, "bunlr",   {{16,5,CRF}} },
376 { 0x4d830020, "bunlr",   {{16,5,CRF}, {11,2,NUM}} },
377 { 0x4d830020, "bunlr",   },
378 { 0x4d830021, "bunlrl",  {{16,5,CRF}} },
379 { 0x4d830021, "bunlrl",  {{16,5,CRF}, {11,2,NUM}} },
380 { 0x4d830021, "bunlrl",  },
381 { 0x4c830020, "bnulr",   {{16,5,CRF}} },
382 { 0x4c830020, "bnulr",   {{16,5,CRF}, {11,2,NUM}} },
383 { 0x4c830020, "bnulr",   },
384 { 0x4c830021, "bnulrl",  {{16,5,CRF}} },
385 { 0x4c830021, "bnulrl",  {{16,5,CRF}, {11,2,NUM}} },
386 { 0x4c830021, "bnulrl",  },
387
388 { 0x4d800420, "bltctr",  {{16,5,CRF}} },
389 { 0x4d800420, "bltctr",  {{16,5,CRF}, {11,2,NUM}} },
390 { 0x4d800420, "bltctr",  },
391 { 0x4d800421, "bltctrl", {{16,5,CRF}} },
392 { 0x4d800421, "bltctrl", {{16,5,CRF}, {11,2,NUM}} },
393 { 0x4d800421, "bltctrl", },
394 { 0x4c810420, "blectr",  {{16,5,CRF}} },
395 { 0x4c810420, "blectr",  {{16,5,CRF}, {11,2,NUM}} },
396 { 0x4c810420, "blectr",  },
397 { 0x4c810421, "blectrl", {{16,5,CRF}} },
398 { 0x4c810421, "blectrl", {{16,5,CRF}, {11,2,NUM}} },
399 { 0x4c810421, "blectrl", },
400 { 0x4d820420, "beqctr",  {{16,5,CRF}} },
401 { 0x4d820420, "beqctr",  {{16,5,CRF}, {11,2,NUM}} },
402 { 0x4d820420, "beqctr",  },
403 { 0x4d820421, "beqctrl", {{16,5,CRF}} },
404 { 0x4d820421, "beqctrl", {{16,5,CRF}, {11,2,NUM}} },
405 { 0x4d820421, "beqctrl", },
406 { 0x4c800420, "bgectr",  {{16,5,CRF}} },
407 { 0x4c800420, "bgectr",  {{16,5,CRF}, {11,2,NUM}} },
408 { 0x4c800420, "bgectr",  },
409 { 0x4c800421, "bgectrl", {{16,5,CRF}} },
410 { 0x4c800421, "bgectrl", {{16,5,CRF}, {11,2,NUM}} },
411 { 0x4c800421, "bgectrl", },
412 { 0x4d810420, "bgtctr",  {{16,5,CRF}} },
413 { 0x4d810420, "bgtctr",  {{16,5,CRF}, {11,2,NUM}} },
414 { 0x4d810420, "bgtctr",  },
415 { 0x4d810421, "bgtctrl", {{16,5,CRF}} },
416 { 0x4d810421, "bgtctrl", {{16,5,CRF}, {11,2,NUM}} },
417 { 0x4d810421, "bgtctrl", },
418 { 0x4c800420, "bnlctr",  {{16,5,CRF}} },
419 { 0x4c800420, "bnlctr",  {{16,5,CRF}, {11,2,NUM}} },
420 { 0x4c800420, "bnlctr",  },
421 { 0x4c800421, "bnlctrl", {{16,5,CRF}} },
422 { 0x4c800421, "bnlctrl", {{16,5,CRF}, {11,2,NUM}} },
423 { 0x4c800421, "bnlctrl", },
424 { 0x4c820420, "bnectr",  {{16,5,CRF}} },
425 { 0x4c820420, "bnectr",  {{16,5,CRF}, {11,2,NUM}} },
426 { 0x4c820420, "bnectr",  },
427 { 0x4c820421, "bnectrl", {{16,5,CRF}} },
428 { 0x4c820421, "bnectrl", {{16,5,CRF}, {11,2,NUM}} },
429 { 0x4c820421, "bnectrl", },
430 { 0x4c810420, "bngctr",  {{16,5,CRF}} },
431 { 0x4c810420, "bngctr",  {{16,5,CRF}, {11,2,NUM}} },
432 { 0x4c810420, "bngctr",  },
433 { 0x4c810421, "bngctrl", {{16,5,CRF}} },
434 { 0x4c810421, "bngctrl", {{16,5,CRF}, {11,2,NUM}} },
435 { 0x4c810421, "bngctrl", },
436 { 0x4d830420, "bsoctr",  {{16,5,CRF}} },
437 { 0x4d830420, "bsoctr",  {{16,5,CRF}, {11,2,NUM}} },
438 { 0x4d830420, "bsoctr",  },
439 { 0x4d830421, "bsoctrl", {{16,5,CRF}} },
440 { 0x4d830421, "bsoctrl", {{16,5,CRF}, {11,2,NUM}} },
441 { 0x4d830421, "bsoctrl", },
442 { 0x4c830420, "bnsctr",  {{16,5,CRF}} },
443 { 0x4c830420, "bnsctr",  {{16,5,CRF}, {11,2,NUM}} },
444 { 0x4c830420, "bnsctr",  },
445 { 0x4c830421, "bnsctrl", {{16,5,CRF}} },
446 { 0x4c830421, "bnsctrl", {{16,5,CRF}, {11,2,NUM}} },
447 { 0x4c830421, "bnsctrl", },
448 { 0x4d830420, "bunctr",  {{16,5,CRF}} },
449 { 0x4d830420, "bunctr",  {{16,5,CRF}, {11,2,NUM}} },
450 { 0x4d830420, "bunctr",  },
451 { 0x4d830421, "bunctrl", {{16,5,CRF}} },
452 { 0x4d830421, "bunctrl", {{16,5,CRF}, {11,2,NUM}} },
453 { 0x4d830421, "bunctrl", },
454 { 0x4c830420, "bnuctr",  {{16,5,CRF}} },
455 { 0x4c830420, "bnuctr",  {{16,5,CRF}, {11,2,NUM}} },
456 { 0x4c830420, "bnuctr",  },
457 { 0x4c830421, "bnuctrl", {{16,5,CRF}} },
458 { 0x4c830421, "bnuctrl", {{16,5,CRF}, {11,2,NUM}} },
459 { 0x4c830421, "bnuctrl", },
460
461 { 0x2c000000, "cmpi",
462	{{21,5,CRFONLY},{16,5,GREG}, {0,16,SI}} },
463 { 0x2c000000, "cmpi",
464	{{21,5,CRFONLY},{21,1,NUM},  {16,5,GREG}, {0,16,SI}} },
465 { 0x2c000000, "cmpi",
466	{{23,3,NUM},    {16,5,GREG}, {0,16,SI}} },
467 { 0x2c000000, "cmpi",
468	{{23,3,NUM},    {21,1,NUM},  {16,5,GREG}, {0,16,SI}} },
469 { 0x2c000000, "cmpwi",   {{16,5,GREG},   {0,16,SI}} },
470 { 0x2c000000, "cmpwi",   {{21,5,CRFONLY},{16,5,GREG}, {0,16,SI}} },
471 { 0x2c000000, "cmpwi",   {{23,3,NUM},    {16,5,GREG}, {0,16,SI}} },
472 { 0x2c200000, "cmpdi",   {{16,5,GREG},   {0,16,SI}} },
473 { 0x2c200000, "cmpdi",   {{21,5,CRFONLY},{16,5,GREG}, {0,16,SI}} },
474 { 0x2c200000, "cmpdi",   {{23,3,NUM},    {16,5,GREG}, {0,16,SI}} },
475
476 { 0x7c000000, "cmp",
477	{{21,5,CRFONLY},{16,5,GREG}, {11,5,GREG}} },
478 { 0x7c000000, "cmp",
479	{{21,5,CRFONLY},{21,1,NUM}, {16,5,GREG}, {11,5,GREG}} },
480 { 0x7c000000, "cmp",
481	{{23,3,NUM},    {16,5,GREG}, {11,5,GREG}} },
482 { 0x7c000000, "cmp",
483	{{23,3,NUM},    {21,1,NUM}, {16,5,GREG}, {11,5,GREG}} },
484 { 0x7c000000, "cmpw",    {{16,5,GREG},   {11,5,GREG}} },
485 { 0x7c000000, "cmpw",    {{21,5,CRFONLY},{16,5,GREG}, {11,5,GREG}} },
486 { 0x7c000000, "cmpw",    {{23,3,NUM},    {16,5,GREG}, {11,5,GREG}} },
487 { 0x7c200000, "cmpd",    {{16,5,GREG},   {11,5,GREG}} },
488 { 0x7c200000, "cmpd",    {{21,5,CRFONLY},{16,5,GREG}, {11,5,GREG}} },
489 { 0x7c200000, "cmpd",    {{23,3,NUM},    {16,5,GREG}, {11,5,GREG}} },
490
491 { 0x28000000, "cmpli",
492	{{21,5,CRFONLY},{16,5,GREG}, {0,16,UI}} },
493 { 0x28000000, "cmpli",
494	{{21,5,CRFONLY},{21,1,NUM},  {16,5,GREG}, {0,16,UI}} },
495 { 0x28000000, "cmpli",
496	{{23,3,NUM},    {16,5,GREG}, {0,16,UI}} },
497 { 0x28000000, "cmpli",
498	{{23,3,NUM},    {21,1,NUM},  {16,5,GREG}, {0,16,UI}} },
499 { 0x28000000, "cmplwi",  {{16,5,GREG},   {0,16,UI}} },
500 { 0x28000000, "cmplwi",  {{21,5,CRFONLY},{16,5,GREG}, {0,16,UI}} },
501 { 0x28000000, "cmplwi",  {{23,3,NUM},    {16,5,GREG}, {0,16,UI}} },
502 { 0x28200000, "cmpldi",  {{16,5,GREG},   {0,16,UI}} },
503 { 0x28200000, "cmpldi",  {{21,5,CRFONLY},{16,5,GREG}, {0,16,UI}} },
504 { 0x28200000, "cmpldi",  {{23,3,NUM},    {16,5,GREG}, {0,16,UI}} },
505
506 { 0x7c000040, "cmpl",
507	{{21,5,CRFONLY},{16,5,GREG}, {11,5,GREG}} },
508 { 0x7c000040, "cmpl",
509	{{21,5,CRFONLY},{21,1,NUM}, {16,5,GREG}, {11,5,GREG}} },
510 { 0x7c000040, "cmpl",
511	{{23,3,NUM},    {16,5,GREG}, {11,5,GREG}} },
512 { 0x7c000040, "cmpl",
513	{{23,3,NUM},    {21,1,NUM}, {16,5,GREG}, {11,5,GREG}} },
514 { 0x7c000040, "cmplw",   {{16,5,GREG},   {11,5,GREG}} },
515 { 0x7c000040, "cmplw",   {{21,5,CRFONLY},{16,5,GREG}, {11,5,GREG}} },
516 { 0x7c000040, "cmplw",   {{23,3,NUM},    {16,5,GREG}, {11,5,GREG}} },
517 { 0x7c200040, "cmpld",   {{16,5,GREG},   {11,5,GREG}} },
518 { 0x7c200040, "cmpld",   {{21,5,CRFONLY},{16,5,GREG}, {11,5,GREG}} },
519 { 0x7c200040, "cmpld",   {{23,3,NUM},    {16,5,GREG}, {11,5,GREG}} },
520
521 { 0x7c000034, "cntlzw",  {{16,5,GREG}, {21,5,GREG}} },
522 { 0x7c000035, "cntlzw.", {{16,5,GREG}, {21,5,GREG}} },
523 { 0x7c000074, "cntlzd",  {{16,5,GREG}, {21,5,GREG}}, IMPL64 },
524 { 0x7c000075, "cntlzd.", {{16,5,GREG}, {21,5,GREG}}, IMPL64 },
525
526 { 0x4c000202, "crand",   {{21,5,NUM},  {16,5,NUM},  {11,5,NUM}} },
527 { 0x4c000102, "crandc",  {{21,5,NUM},  {16,5,NUM},  {11,5,NUM}} },
528 { 0x4c000242, "creqv",   {{21,5,NUM},  {16,5,NUM},  {11,5,NUM}} },
529 { 0x4c0001c2, "crnand",  {{21,5,NUM},  {16,5,NUM},  {11,5,NUM}} },
530 { 0x4c000042, "crnor",   {{21,5,NUM},  {16,5,NUM},  {11,5,NUM}} },
531 { 0x4c000382, "cror",    {{21,5,NUM},  {16,5,NUM},  {11,5,NUM}} },
532 { 0x4c000342, "crorc",   {{21,5,NUM},  {16,5,NUM},  {11,5,NUM}} },
533 { 0x4c000182, "crxor",   {{21,5,NUM},  {16,5,NUM},  {11,5,NUM}} },
534
535 { 0x7c0003d2, "divd",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, IMPL64 },
536 { 0x7c0003d3, "divd.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, IMPL64 },
537 { 0x7c0007d2, "divdo",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, IMPL64 },
538 { 0x7c0007d3, "divdo.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, IMPL64 },
539
540 { 0x7c000392, "divdu",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, IMPL64 },
541 { 0x7c000393, "divdu.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, IMPL64 },
542 { 0x7c000792, "divduo",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, IMPL64 },
543 { 0x7c000793, "divduo.", {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, IMPL64 },
544
545 { 0x7c0003d6, "divw",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
546 { 0x7c0003d7, "divw.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
547 { 0x7c0007d6, "divwo",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
548 { 0x7c0007d7, "divwo.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
549
550 { 0x7c000396, "divwu",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
551 { 0x7c000397, "divwu.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
552 { 0x7c000796, "divwuo",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
553 { 0x7c000797, "divwuo.", {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
554
555 { 0x7c000238, "eqv",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
556 { 0x7c000239, "eqv.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
557
558 { 0x7c000774, "extsb",   {{16,5,GREG}, {21,5,GREG}} },
559 { 0x7c000775, "extsb.",  {{16,5,GREG}, {21,5,GREG}} },
560 { 0x7c000734, "extsh",   {{16,5,GREG}, {21,5,GREG}} },
561 { 0x7c000735, "extsh.",  {{16,5,GREG}, {21,5,GREG}} },
562 { 0x7c0007b4, "extsw",   {{16,5,GREG}, {21,5,GREG}}, IMPL64 },
563 { 0x7c0007b5, "extsw.",  {{16,5,GREG}, {21,5,GREG}}, IMPL64 },
564
565 { 0xfc00002a, "fadd",    {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
566 { 0xfc00002b, "fadd.",   {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
567 { 0xec00002a, "fadds",   {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
568 { 0xec00002b, "fadds.",  {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
569 { 0xfc000028, "fsub",    {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
570 { 0xfc000029, "fsub.",   {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
571 { 0xec000028, "fsubs",   {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
572 { 0xec000029, "fsubs.",  {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
573 { 0xfc000032, "fmul",    {{21,5,FREG}, {16,5,FREG}, {6,5,FREG}}  },
574 { 0xfc000033, "fmul.",   {{21,5,FREG}, {16,5,FREG}, {6,5,FREG}}  },
575 { 0xec000032, "fmuls",   {{21,5,FREG}, {16,5,FREG}, {6,5,FREG}}  },
576 { 0xec000033, "fmuls.",  {{21,5,FREG}, {16,5,FREG}, {6,5,FREG}}  },
577 { 0xfc000024, "fdiv",    {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
578 { 0xfc000025, "fdiv.",   {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
579 { 0xec000024, "fdivs",   {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
580 { 0xec000025, "fdivs.",  {{21,5,FREG}, {16,5,FREG}, {11,5,FREG}} },
581
582 { 0xfc00003a, "fmadd",
583	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
584 { 0xfc00003b, "fmadd.",
585	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
586 { 0xec00003a, "fmadds",
587	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
588 { 0xec00003b, "fmadds.",
589	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
590 { 0xfc000038, "fmsub",
591	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
592 { 0xfc000039, "fmsub.",
593	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
594 { 0xec000038, "fmsubs",
595	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
596 { 0xec000039, "fmsubs.",
597	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
598 { 0xfc00003e, "fnmadd",
599	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
600 { 0xfc00003f, "fnmadd.",
601	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
602 { 0xec00003e, "fnmadds",
603	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
604 { 0xec00003f, "fnmadds.",
605	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
606 { 0xfc00003c, "fnmsub",
607	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
608 { 0xfc00003d, "fnmsub.",
609	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
610 { 0xec00003c, "fnmsubs",
611	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
612 { 0xec00003d, "fnmsubs.",
613	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
614
615 { 0xfc000090, "fmr",     {{21,5,FREG}, {11,5,FREG}} },
616 { 0xfc000091, "fmr.",    {{21,5,FREG}, {11,5,FREG}} },
617 { 0xfc000210, "fabs",    {{21,5,FREG}, {11,5,FREG}} },
618 { 0xfc000211, "fabs.",   {{21,5,FREG}, {11,5,FREG}} },
619 { 0xfc000050, "fneg",    {{21,5,FREG}, {11,5,FREG}} },
620 { 0xfc000051, "fneg.",   {{21,5,FREG}, {11,5,FREG}} },
621 { 0xfc000110, "fnabs",   {{21,5,FREG}, {11,5,FREG}} },
622 { 0xfc000111, "fnabs.",  {{21,5,FREG}, {11,5,FREG}} },
623 { 0xec000030, "fres",    {{21,5,FREG}, {11,5,FREG}} },
624 { 0xec000031, "fres.",   {{21,5,FREG}, {11,5,FREG}} },
625 { 0xfc000018, "frsp",    {{21,5,FREG}, {11,5,FREG}} },
626 { 0xfc000019, "frsp.",   {{21,5,FREG}, {11,5,FREG}} },
627 { 0xfc000034, "frsqrte", {{21,5,FREG}, {11,5,FREG}} },
628 { 0xfc000035, "frsqrte.",{{21,5,FREG}, {11,5,FREG}} },
629 { 0xfc00002e, "fsel",
630	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
631 { 0xfc00002f, "fsel.",
632	{{21,5,FREG}, {16,5,FREG}, {6,5,FREG}, {11,5,FREG}} },
633 { 0xfc00002c, "fsqrt",   {{21,5,FREG}, {11,5,FREG}}, OPTIONAL|CPU970 },
634 { 0xfc00002d, "fsqrt.",  {{21,5,FREG}, {11,5,FREG}}, OPTIONAL|CPU970 },
635 { 0xec00002c, "fsqrts",  {{21,5,FREG}, {11,5,FREG}}, OPTIONAL|CPU970 },
636 { 0xec00002d, "fsqrts.", {{21,5,FREG}, {11,5,FREG}}, OPTIONAL|CPU970 },
637 { 0xfc00065c, "fctid",   {{21,5,FREG}, {11,5,FREG}}, IMPL64 },
638 { 0xfc00065d, "fctid.",  {{21,5,FREG}, {11,5,FREG}}, IMPL64 },
639 { 0xfc00065e, "fctidz",  {{21,5,FREG}, {11,5,FREG}}, IMPL64 },
640 { 0xfc00065f, "fctidz.", {{21,5,FREG}, {11,5,FREG}}, IMPL64 },
641 { 0xfc00001c, "fctiw",   {{21,5,FREG}, {11,5,FREG}} },
642 { 0xfc00001d, "fctiw.",  {{21,5,FREG}, {11,5,FREG}} },
643 { 0xfc00001e, "fctiwz",  {{21,5,FREG}, {11,5,FREG}} },
644 { 0xfc00001f, "fctiwz.", {{21,5,FREG}, {11,5,FREG}} },
645 { 0xfc00069c, "fcfid",   {{21,5,FREG}, {11,5,FREG}}, IMPL64 },
646 { 0xfc00069d, "fcfid.",  {{21,5,FREG}, {11,5,FREG}}, IMPL64 },
647
648 { 0xfc000000, "fcmpu",   {{21,5,CRFONLY},{16,5,FREG}, {11,5,FREG}} },
649 { 0xfc000000, "fcmpu",   {{23,3,NUM},    {16,5,FREG}, {11,5,FREG}} },
650 { 0xfc000040, "fcmpo",   {{21,5,CRFONLY},{16,5,FREG}, {11,5,FREG}} },
651 { 0xfc000040, "fcmpo",   {{23,3,NUM},    {16,5,FREG}, {11,5,FREG}} },
652 { 0xfc00048e, "mffs",    {{21,5,FREG}} },
653 { 0xfc00048f, "mffs.",   {{21,5,FREG}} },
654 { 0xfc000080, "mcrfs",   {{21,5,CRFONLY},{18,5,NUM}} },
655 { 0xfc000080, "mcrfs",   {{23,3,NUM},  {18,5,NUM}} },
656 { 0xfc00010c, "mtfsfi",  {{23,3,NUM},  {12,4,NUM}} },
657 { 0xfc00010d, "mtfsfi.", {{23,3,NUM},  {12,4,NUM}} },
658 { 0xfc00058e, "mtfsf",   {{17,8,NUM},  {11,5,FREG}} },
659 { 0xfc00058f, "mtfsf.",  {{17,8,NUM},  {11,5,FREG}} },
660 { 0xfc00008c, "mtfsb0",  {{21,5,NUM}} },
661 { 0xfc00008d, "mtfsb0.", {{21,5,NUM}} },
662 { 0xfc00004c, "mtfsb1",  {{21,5,NUM}} },
663 { 0xfc00004d, "mtfsb1.", {{21,5,NUM}} },
664
665 { 0x88000000, "lbz",     {{21,5,GREG}, {0,16,D},     {16,5,G0REG}} },
666 { 0x7c0000ae, "lbzx",    {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}} },
667 { 0x8c000000, "lbzu",    {{21,5,GREG}, {0,16,D},     {16,5,G0REG}} },
668 { 0x7c0000ee, "lbzux",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
669 { 0xa0000000, "lhz",     {{21,5,GREG}, {0,16,D},     {16,5,G0REG}} },
670 { 0x7c00022e, "lhzx",    {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}} },
671 { 0xa4000000, "lhzu",    {{21,5,GREG}, {0,16,D},     {16,5,G0REG}} },
672 { 0x7c00026e, "lhzux",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
673 { 0xa8000000, "lha",     {{21,5,GREG}, {0,16,D},     {16,5,G0REG}} },
674 { 0x7c0002ae, "lhax",    {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}} },
675 { 0xac000000, "lhau",    {{21,5,GREG}, {0,16,D},     {16,5,GREG}} },
676 { 0x7c0002ee, "lhaux",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
677 { 0x80000000, "lwz",     {{21,5,GREG}, {0,16,D},     {16,5,G0REG}} },
678 { 0x7c00002e, "lwzx",    {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}} },
679 { 0x84000000, "lwzu",    {{21,5,GREG}, {0,16,D},     {16,5,GREG}} },
680 { 0x7c00006e, "lwzux",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
681 { 0xe8000002, "lwa",     {{21,5,GREG}, {2,14,DS},    {16,5,G0REG}}, IMPL64 },
682 { 0x7c0002aa, "lwax",    {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}},  IMPL64 },
683 { 0x7c0002ea, "lwaux",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}},  IMPL64 },
684 { 0xe8000000, "ld",      {{21,5,GREG}, {2,14,DS},    {16,5,G0REG}}, IMPL64 },
685 { 0x7c00002a, "ldx",     {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}},  IMPL64 },
686 { 0xe8000001, "ldu",     {{21,5,GREG}, {2,14,DS},    {16,5,GREG}},  IMPL64 },
687 { 0x7c00006a, "ldux",    {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}},  IMPL64 },
688
689 { 0xb8000000, "lmw",     {{21,5,GREG}, {0,16,D},     {16,5,G0REG}} },
690 { 0xbc000000, "stmw",    {{21,5,GREG}, {0,16,D},     {16,5,G0REG}} },
691
692 { 0x7c00062c, "lhbrx",   {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}} },
693 { 0x7c00042c, "lwbrx",   {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}} },
694 { 0x7c00042a, "lswx",    {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}} },
695 { 0x7c000028, "lwarx",   {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}} },
696 { 0x7c0000a8, "ldarx",   {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}}, IMPL64 },
697
698 { 0x7c00022a, "lscbx",   {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}}, CPU601 },
699 { 0x7c00022b, "lscbx.",  {{21,5,GREG}, {16,5,G0REG}, {11,5,GREG}}, CPU601 },
700
701 { 0x7c0004aa, "lswi",    {{21,5,GREG}, {16,5,G0REG}, {11,5,NUM0}} },
702
703 { 0xc0000000, "lfs",     {{21,5,FREG}, {0,16,D},     {16,5,G0REG}} },
704 { 0xc4000000, "lfsu",    {{21,5,FREG}, {0,16,D},     {16,5,GREG}} },
705 { 0x7c00042e, "lfsx",    {{21,5,FREG}, {16,5,G0REG}, {11,5,GREG}} },
706 { 0x7c00046e, "lfsux",   {{21,5,FREG}, {16,5,GREG},  {11,5,GREG}} },
707 { 0xc8000000, "lfd",     {{21,5,FREG}, {0,16,D},     {16,5,G0REG}} },
708 { 0xcc000000, "lfdu",    {{21,5,FREG}, {0,16,D},     {16,5,GREG}} },
709 { 0x7c0004ae, "lfdx",    {{21,5,FREG}, {16,5,G0REG}, {11,5,GREG}} },
710 { 0x7c0004ee, "lfdux",   {{21,5,FREG}, {16,5,GREG},  {11,5,GREG}} },
711
712 { 0x38000000, "la",      {{21,5,GREG}, {0,16,D},     {16,5,G0REG}} },
713
714 { 0x4c000000, "mcrf",    {{21,5,CRFONLY},{16,5,CRFONLY}} },
715 { 0x4c000000, "mcrf",    {{23,3,NUM},  {18,3,NUM}} },
716
717 { 0x7c0002a6, "mfspr",   {{21,5,GREG}, {11,10,SPREG}} },
718 { 0x7c0003a6, "mtspr",   {{11,10,SPREG},{21,5,GREG}} },
719 { 0x7c000120, "mtcrf",   {{12,8,FXM},  {21,5,GREG}} },
720 { 0x7c000120, "mtocrf",  {{12,8,FXM},  {21,5,GREG}} },
721 { 0x7c000400, "mcrxr",   {{21,5,CRFONLY}}  },
722 { 0x7c000400, "mcrxr",   {{23,3,NUM}}  },
723 { 0x7c000026, "mfcr",    {{21,5,GREG}} },
724 { 0x7c100026, "mfcr",    {{21,5,GREG}, {12,8,FXM}} },
725 { 0x7c100026, "mfocrf",  {{21,5,GREG}, {12,8,FXM}} },
726
727/* Move to/from spr mnemonics (assember extended mnemonics) */
728 { 0x7c0102a6, "mfxer",   {{21,5,GREG}} },
729 { 0x7c0802a6, "mflr",    {{21,5,GREG}} },
730 { 0x7c0902a6, "mfctr",   {{21,5,GREG}} },
731 { 0x7c0103a6, "mtxer",   {{21,5,GREG}} },
732 { 0x7c0803a6, "mtlr",    {{21,5,GREG}} },
733 { 0x7c0903a6, "mtctr",   {{21,5,GREG}} },
734 { 0x7c0002a6, "mfmq",    {{21,5,GREG}} },
735 { 0x7c0502a6, "mfrtcl",  {{21,5,GREG}} },
736 { 0x7c0402a6, "mfrtcu",  {{21,5,GREG}} },
737 { 0x7c0003a6, "mtmq",    {{21,5,GREG}} },
738 { 0x7c1503a6, "mtrtcl",  {{21,5,GREG}} },
739 { 0x7c1403a6, "mtrtcu",  {{21,5,GREG}} },
740
741#ifdef NRW_COMPILER
742 { 0x7c0001d6, "mull",    {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
743 { 0x7c0001d7, "mull.",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
744 { 0x7c0005d6, "mullo",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
745 { 0x7c0005d7, "mullo.",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
746#endif /* NRW_COMPILER */
747 { 0x7c0001d6, "mullw",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
748 { 0x7c0001d7, "mullw.",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
749 { 0x7c0005d6, "mullwo",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
750 { 0x7c0005d7, "mullwo.", {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
751
752 { 0x7c000092, "mulhd",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}}, IMPL64 },
753 { 0x7c000093, "mulhd.",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}}, IMPL64 },
754
755#ifdef NRW_COMPILER
756 { 0x7c000096, "mulwd",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
757 { 0x7c000097, "mulwd.",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
758#endif /* NRW_COMPILER */
759 { 0x7c000096, "mulhw",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
760 { 0x7c000097, "mulhw.",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
761
762 { 0x7c000012, "mulhdu",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}}, IMPL64 },
763 { 0x7c000013, "mulhdu.", {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}}, IMPL64 },
764
765 { 0x7c000016, "mulhwu",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
766 { 0x7c000017, "mulhwu.", {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}} },
767
768 { 0x7c0001d2, "mulld",   {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}}, IMPL64 },
769 { 0x7c0001d3, "mulld.",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}}, IMPL64 },
770 { 0x7c0005d2, "mulldo",  {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}}, IMPL64 },
771 { 0x7c0005d3, "mulldo.", {{21,5,GREG}, {16,5,GREG},  {11,5,GREG}}, IMPL64 },
772
773 { 0x7c0003b8, "nand",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
774 { 0x7c0003b9, "nand.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
775
776 { 0x7c0000d0, "neg",     {{21,5,GREG}, {16,5,GREG}} },
777 { 0x7c0000d1, "neg.",    {{21,5,GREG}, {16,5,GREG}} },
778 { 0x7c0004d0, "nego",    {{21,5,GREG}, {16,5,GREG}} },
779 { 0x7c0004d1, "nego.",   {{21,5,GREG}, {16,5,GREG}} },
780
781 { 0x7c0000f8, "nor",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
782 { 0x7c0000f9, "nor.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
783
784/* Miscellaneous mnemonics (assember extended mnemonics) */
785 { 0x60000000, "nop",     },
786
787 { 0x60000000, "ori",     {{16,5,GREG}, {21,5,GREG}, {0,16,UI}} },
788 { 0x60000000, "ori",     {{16,5,ZERO}, {21,5,ZERO}, {0,16,ZERO}} },
789 { 0x64000000, "oris",    {{16,5,GREG}, {21,5,GREG}, {0,16,UI}} },
790 { 0x7c000378, "or",      {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
791 { 0x7c000379, "or.",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
792
793 { 0x7c000338, "orc",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
794 { 0x7c000339, "orc.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
795
796 { 0x78000000, "rldicl",
797	{{16,5,GREG}, {21,5,GREG}, {0,0,sh}, {0,0,mb}}, IMPL64 },
798 { 0x78000001, "rldicl.",
799	{{16,5,GREG}, {21,5,GREG}, {0,0,sh}, {0,0,mb}}, IMPL64 },
800 { 0x78000004, "rldicr",
801	{{16,5,GREG}, {21,5,GREG}, {0,0,sh}, {0,0,mb}}, IMPL64 },
802 { 0x78000005, "rldicr.",
803	{{16,5,GREG}, {21,5,GREG}, {0,0,sh}, {0,0,mb}}, IMPL64 },
804 { 0x78000008, "rldic",
805	{{16,5,GREG}, {21,5,GREG}, {0,0,sh}, {0,0,mb}}, IMPL64 },
806 { 0x78000009, "rldic.",
807	{{16,5,GREG}, {21,5,GREG}, {0,0,sh}, {0,0,mb}}, IMPL64 },
808 { 0x7800000c, "rldimi",
809	{{16,5,GREG}, {21,5,GREG}, {0,0,sh}, {0,0,mb}}, IMPL64 },
810 { 0x7800000d, "rldimi.",
811	{{16,5,GREG}, {21,5,GREG}, {0,0,sh}, {0,0,mb}}, IMPL64 },
812 { 0x78000010, "rldcl",
813	{{16,5,GREG}, {21,5,GREG}, {11,5,GREG}, {0,0,mb}}, IMPL64 },
814 { 0x78000011, "rldcl.",
815	{{16,5,GREG}, {21,5,GREG}, {11,5,GREG}, {0,0,mb}}, IMPL64 },
816 { 0x78000012, "rldcr",
817	{{16,5,GREG}, {21,5,GREG}, {11,5,GREG}, {0,0,mb}}, IMPL64 },
818 { 0x78000013, "rldcr.",
819	{{16,5,GREG}, {21,5,GREG}, {11,5,GREG}, {0,0,mb}}, IMPL64 },
820
821 { 0x54000000, "rlwinm",
822	{{16,5,GREG}, {21,5,GREG}, {11,5,NUM0}, {6,5,MBE}, {1,5,MBE}} },
823 { 0x54000001, "rlwinm.",
824	{{16,5,GREG}, {21,5,GREG}, {11,5,NUM0}, {6,5,MBE}, {1,5,MBE}} },
825 { 0x5c000000, "rlwnm",
826	{{16,5,GREG}, {21,5,GREG}, {11,5,GREG}, {6,5,MBE}, {1,5,MBE}} },
827 { 0x5c000001, "rlwnm.",
828	{{16,5,GREG}, {21,5,GREG}, {11,5,GREG}, {6,5,MBE}, {1,5,MBE}} },
829 { 0x50000000, "rlwimi",
830	{{16,5,GREG}, {21,5,GREG}, {11,5,NUM0}, {6,5,MBE}, {1,5,MBE}} },
831 { 0x50000001, "rlwimi.",
832	{{16,5,GREG}, {21,5,GREG}, {11,5,NUM0}, {6,5,MBE}, {1,5,MBE}} },
833
834 { 0x44000002, "sc", },
835 { 0x4c000024, "rfid", {{0}}, IMPL64|OPTIONAL },
836
837 { 0x7c000030, "slw",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
838 { 0x7c000031, "slw.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
839 { 0x7c000036, "sld",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, IMPL64 },
840 { 0x7c000037, "sld.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, IMPL64 },
841
842 { 0x7c000430, "srw",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
843 { 0x7c000431, "srw.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
844 { 0x7c000436, "srd",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, IMPL64 },
845 { 0x7c000437, "srd.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, IMPL64 },
846
847 { 0x7c000670, "srawi",   {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}  },
848 { 0x7c000671, "srawi.",  {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}  },
849 { 0x7c000674, "sradi",   {{16,5,GREG}, {21,5,GREG}, {0, 0,sh}}, IMPL64 },
850 { 0x7c000675, "sradi.",  {{16,5,GREG}, {21,5,GREG}, {0, 0,sh}}, IMPL64 },
851
852 { 0x7c000630, "sraw",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
853 { 0x7c000631, "sraw.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
854 { 0x7c000634, "srad",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, IMPL64 },
855 { 0x7c000635, "srad.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, IMPL64 },
856
857 { 0x98000000, "stb",     {{21,5,GREG}, {0,16,D},    {16,5,G0REG}} },
858 { 0x9c000000, "stbu",    {{21,5,GREG}, {0,16,D},    {16,5,GREG}} },
859 { 0x7c0001ae, "stbx",    {{21,5,GREG}, {16,5,G0REG},{11,5,GREG}} },
860 { 0x7c0001ee, "stbux",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
861 { 0xb0000000, "sth",     {{21,5,GREG}, {0,16,D},    {16,5,G0REG}} },
862 { 0xb4000000, "sthu",    {{21,5,GREG}, {0,16,D},    {16,5,GREG}} },
863 { 0x7c00032e, "sthx",    {{21,5,GREG}, {16,5,G0REG},{11,5,GREG}} },
864 { 0x7c00036e, "sthux",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
865 { 0x90000000, "stw",     {{21,5,GREG}, {0,16,D},    {16,5,G0REG}} },
866 { 0x94000000, "stwu",    {{21,5,GREG}, {0,16,D},    {16,5,GREG}} },
867 { 0x7c00012e, "stwx",    {{21,5,GREG}, {16,5,G0REG},{11,5,GREG}} },
868 { 0x7c00016e, "stwux",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
869 { 0xf8000000, "std",     {{21,5,GREG}, {2,14,DS},   {16,5,G0REG}}, IMPL64 },
870 { 0xf8000001, "stdu",    {{21,5,GREG}, {2,14,DS},   {16,5,GREG}}, IMPL64 },
871 { 0x7c00012a, "stdx",    {{21,5,GREG}, {16,5,G0REG},{11,5,GREG}}, IMPL64 },
872 { 0x7c00016a, "stdux",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, IMPL64 },
873
874 { 0x7c00072c, "sthbrx",  {{21,5,GREG}, {16,5,G0REG},{11,5,GREG}} },
875 { 0x7c00052c, "stwbrx",  {{21,5,GREG}, {16,5,G0REG},{11,5,GREG}} },
876 { 0x7c00052a, "stswx",   {{21,5,GREG}, {16,5,G0REG},{11,5,GREG}} },
877 { 0x7c00012d, "stwcx.",  {{21,5,GREG}, {16,5,G0REG},{11,5,GREG}} },
878 { 0x7c0001ad, "stdcx.",  {{21,5,GREG}, {16,5,G0REG},{11,5,GREG}}, IMPL64 },
879
880 { 0x7c0005aa, "stswi",   {{21,5,GREG}, {16,5,G0REG},{11,5,NUM0}}  },
881
882 { 0x7c0007ae, "stfiwx",  {{21,5,FREG}, {16,5,G0REG},{11,5,GREG}}, },
883
884 { 0xd0000000, "stfs",    {{21,5,FREG}, {0,16,D},    {16,5,G0REG}} },
885 { 0xd4000000, "stfsu",   {{21,5,FREG}, {0,16,D},    {16,5,GREG}} },
886 { 0x7c00052e, "stfsx",   {{21,5,FREG}, {16,5,G0REG},{11,5,GREG}} },
887 { 0x7c00056e, "stfsux",  {{21,5,FREG}, {16,5,GREG}, {11,5,GREG}} },
888 { 0xd8000000, "stfd",    {{21,5,FREG}, {0,16,D},    {16,5,G0REG}} },
889 { 0xdc000000, "stfdu",   {{21,5,FREG}, {0,16,D},    {16,5,GREG}} },
890 { 0x7c0005ae, "stfdx",   {{21,5,FREG}, {16,5,G0REG},{11,5,GREG}} },
891 { 0x7c0005ee, "stfdux",  {{21,5,FREG}, {16,5,GREG}, {11,5,GREG}} },
892
893 { 0x20000000, "subfic",  {{21,5,GREG}, {16,5,GREG}, {0,16,SI}} },
894 { 0x7c000050, "sub",     {{21,5,GREG}, {11,5,GREG}, {16,5,GREG}} },
895 { 0x7c000051, "sub.",    {{21,5,GREG}, {11,5,GREG}, {16,5,GREG}} },
896 { 0x7c000450, "subo",    {{21,5,GREG}, {11,5,GREG}, {16,5,GREG}} },
897 { 0x7c000451, "subo.",   {{21,5,GREG}, {11,5,GREG}, {16,5,GREG}} },
898 { 0x7c000050, "subf",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
899 { 0x7c000051, "subf.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
900 { 0x7c000450, "subfo",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
901 { 0x7c000451, "subfo.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
902
903 { 0x7c000010, "subc",    {{21,5,GREG}, {11,5,GREG}, {16,5,GREG}} },
904 { 0x7c000011, "subc.",   {{21,5,GREG}, {11,5,GREG}, {16,5,GREG}} },
905 { 0x7c000410, "subco",   {{21,5,GREG}, {11,5,GREG}, {16,5,GREG}} },
906 { 0x7c000411, "subco.",  {{21,5,GREG}, {11,5,GREG}, {16,5,GREG}} },
907 { 0x7c000010, "subfc",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
908 { 0x7c000011, "subfc.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
909 { 0x7c000410, "subfco",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
910 { 0x7c000411, "subfco.", {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
911
912 { 0x7c000110, "subfe",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
913 { 0x7c000111, "subfe.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
914 { 0x7c000510, "subfeo",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
915 { 0x7c000511, "subfeo.", {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}} },
916
917 { 0x7c0001d0, "subfme",  {{21,5,GREG}, {16,5,GREG}} },
918 { 0x7c0001d1, "subfme.", {{21,5,GREG}, {16,5,GREG}} },
919 { 0x7c0005d0, "subfmeo", {{21,5,GREG}, {16,5,GREG}} },
920 { 0x7c0005d1, "subfmeo.",{{21,5,GREG}, {16,5,GREG}} },
921
922 { 0x7c000190, "subfze",  {{21,5,GREG}, {16,5,GREG}} },
923 { 0x7c000191, "subfze.", {{21,5,GREG}, {16,5,GREG}} },
924 { 0x7c000590, "subfzeo", {{21,5,GREG}, {16,5,GREG}} },
925 { 0x7c000591, "subfzeo.",{{21,5,GREG}, {16,5,GREG}} },
926
927 { 0x7c0004ac, "sync", },
928 { 0x7c0004ac, "sync",    {{21,2,NUM}} },
929 { 0x7c2004ac, "lwsync", },
930 { 0x7c4004ac, "ptesync", },
931
932 { 0x08000000, "tdi",     {{21,5,NUM},  {16,5,GREG}, {0,16,SI}}, IMPL64 },
933 { 0x0a000000, "tdlti",   {{16,5,GREG}, {0,16,SI}}, IMPL64 },
934 { 0x0a800000, "tdlei",   {{16,5,GREG}, {0,16,SI}}, IMPL64 },
935 { 0x08800000, "tdeqi",   {{16,5,GREG}, {0,16,SI}}, IMPL64 },
936 { 0x09800000, "tdgei",   {{16,5,GREG}, {0,16,SI}}, IMPL64 },
937 { 0x09000000, "tdgti",   {{16,5,GREG}, {0,16,SI}}, IMPL64 },
938 { 0x09800000, "tdnli",   {{16,5,GREG}, {0,16,SI}}, IMPL64 },
939 { 0x0b000000, "tdnei",   {{16,5,GREG}, {0,16,SI}}, IMPL64 },
940 { 0x0a800000, "tdngi",   {{16,5,GREG}, {0,16,SI}}, IMPL64 },
941 { 0x08400000, "tdllti",  {{16,5,GREG}, {0,16,SI}}, IMPL64 },
942 { 0x08c00000, "tdllei",  {{16,5,GREG}, {0,16,SI}}, IMPL64 },
943 { 0x08a00000, "tdlgei",  {{16,5,GREG}, {0,16,SI}}, IMPL64 },
944 { 0x08200000, "tdlgti",  {{16,5,GREG}, {0,16,SI}}, IMPL64 },
945 { 0x08a00000, "tdlnli",  {{16,5,GREG}, {0,16,SI}}, IMPL64 },
946 { 0x08c00000, "tdlngi",  {{16,5,GREG}, {0,16,SI}}, IMPL64 },
947
948 { 0x7c000088, "td",      {{21,5,NUM},  {16,5,GREG}, {11,5,GREG}}, IMPL64 },
949 { 0x7e000088, "tdlt",    {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
950 { 0x7e800088, "tdle",    {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
951 { 0x7c800088, "tdeq",    {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
952 { 0x7d800088, "tdge",    {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
953 { 0x7d000088, "tdgt",    {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
954 { 0x7d800088, "tdnl",    {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
955 { 0x7f000088, "tdne",    {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
956 { 0x7e800088, "tdng",    {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
957 { 0x7c400088, "tdllt",   {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
958 { 0x7cc00088, "tdlle",   {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
959 { 0x7ca00088, "tdlge",   {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
960 { 0x7c200088, "tdlgt",   {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
961 { 0x7ca00088, "tdlnl",   {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
962 { 0x7cc00088, "tdlng",   {{16,5,GREG}, {11,5,GREG}}, IMPL64 },
963
964 { 0x0c000000, "twi",     {{21,5,NUM},  {16,5,GREG}, {0,16,SI}} },
965 { 0x0e000000, "twlti",   {{16,5,GREG}, {0,16,SI}} },
966 { 0x0e800000, "twlei",   {{16,5,GREG}, {0,16,SI}} },
967 { 0x0c800000, "tweqi",   {{16,5,GREG}, {0,16,SI}} },
968 { 0x0d800000, "twgei",   {{16,5,GREG}, {0,16,SI}} },
969 { 0x0d000000, "twgti",   {{16,5,GREG}, {0,16,SI}} },
970 { 0x0d800000, "twnli",   {{16,5,GREG}, {0,16,SI}} },
971 { 0x0f000000, "twnei",   {{16,5,GREG}, {0,16,SI}} },
972 { 0x0e800000, "twngi",   {{16,5,GREG}, {0,16,SI}} },
973 { 0x0c400000, "twllti",  {{16,5,GREG}, {0,16,SI}} },
974 { 0x0cc00000, "twllei",  {{16,5,GREG}, {0,16,SI}} },
975 { 0x0ca00000, "twlgei",  {{16,5,GREG}, {0,16,SI}} },
976 { 0x0c200000, "twlgti",  {{16,5,GREG}, {0,16,SI}} },
977 { 0x0ca00000, "twlnli",  {{16,5,GREG}, {0,16,SI}} },
978 { 0x0cc00000, "twlngi",  {{16,5,GREG}, {0,16,SI}} },
979
980 { 0x7c000008, "tw",      {{21,5,NUM},  {16,5,GREG}, {11,5,GREG}} },
981 { 0x7c000008, "tw",      {{21,5,NUM},  {16,5,ZERO}, {11,5,ZERO}} },
982 { 0x7e000008, "twlt",    {{16,5,GREG}, {11,5,GREG}} },
983 { 0x7e800008, "twle",    {{16,5,GREG}, {11,5,GREG}} },
984 { 0x7c800008, "tweq",    {{16,5,GREG}, {11,5,GREG}} },
985 { 0x7d800008, "twge",    {{16,5,GREG}, {11,5,GREG}} },
986 { 0x7d000008, "twgt",    {{16,5,GREG}, {11,5,GREG}} },
987 { 0x7d800008, "twnl",    {{16,5,GREG}, {11,5,GREG}} },
988 { 0x7f000008, "twne",    {{16,5,GREG}, {11,5,GREG}} },
989 { 0x7e800008, "twng",    {{16,5,GREG}, {11,5,GREG}} },
990 { 0x7c400008, "twllt",   {{16,5,GREG}, {11,5,GREG}} },
991 { 0x7cc00008, "twlle",   {{16,5,GREG}, {11,5,GREG}} },
992 { 0x7ca00008, "twlge",   {{16,5,GREG}, {11,5,GREG}} },
993 { 0x7c200008, "twlgt",   {{16,5,GREG}, {11,5,GREG}} },
994 { 0x7ca00008, "twlnl",   {{16,5,GREG}, {11,5,GREG}} },
995 { 0x7cc00008, "twlng",   {{16,5,GREG}, {11,5,GREG}} },
996 { 0x7fe00008, "trap",    },
997
998 { 0x68000000, "xori",    {{16,5,GREG}, {21,5,GREG}, {0,16,UI}} },
999 { 0x6c000000, "xoris",   {{16,5,GREG}, {21,5,GREG}, {0,16,UI}} },
1000 { 0x7c000278, "xor",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
1001 { 0x7c000279, "xor.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}} },
1002
1003/* Cache Management Instructions (from book II) */
1004 { 0x7c0007ac, "icbi",    {{16,5,G0REG}, {11,5,GREG}} },
1005 { 0x4c00012c, "isync",   },
1006 { 0x7c00022c, "dcbt",    {{16,5,G0REG}, {11,5,GREG}} },
1007 { 0x7c00022c, "dcbt",    {{16,5,G0REG}, {11,5,GREG}, {21,4,NUM}}, },
1008 { 0x7c0001ec, "dcbtst",  {{16,5,G0REG}, {11,5,GREG}} },
1009 { 0x7c00022c, "dcbt128", {{16,5,G0REG}, {11,5,GREG}, {21,4,NUM}},
1010   IMPL64|OPTIONAL },
1011 { 0x7c0007ec, "dcbz",    {{16,5,G0REG}, {11,5,GREG}} },
1012 { 0x7c2007ec, "dcbzl",   {{16,5,G0REG}, {11,5,GREG}} },
1013 { 0x7c2007ec, "dcbz128", {{16,5,G0REG}, {11,5,GREG}}, IMPL64|OPTIONAL },
1014 { 0x7c00006c, "dcbst",   {{16,5,G0REG}, {11,5,GREG}} },
1015 { 0x7c0000ac, "dcbf",    {{16,5,G0REG}, {11,5,GREG}} },
1016 { 0x7c00026c, "eciwx",   {{21,5,GREG},  {16,5,G0REG},{11,5,GREG}},
1017	OPTIONAL|CPU970 },
1018 { 0x7c00036c, "ecowx",   {{21,5,GREG},  {16,5,G0REG},{11,5,GREG}},
1019	OPTIONAL|CPU970 },
1020 { 0x7c0006ac, "eieio",   },
1021/* Instructions (from book III) */
1022 { 0x4c000064, "rfi",     },
1023 { 0x7c000124, "mtmsr",   {{21,5,GREG}} },
1024 { 0x7c000164, "mtmsrd",  {{21,5,GREG}}, IMPL64|OPTIONAL },
1025 { 0x7c000164, "mtmsrd",  {{21,5,GREG}, {16,1,NUM}}, IMPL64|OPTIONAL },
1026 { 0x7c0000a6, "mfmsr",   {{21,5,GREG}} },
1027 { 0x7c0005ec, "dcba",    {{16,5,G0REG},{11,5,GREG}}, OPTIONAL },
1028 { 0x7c0003ac, "dcbi",    {{16,5,G0REG},{11,5,GREG}} },
1029 { 0x7c0001a4, "mtsr",    {{16,4,SGREG},{21,5,GREG}} },
1030 { 0x7c0004a6, "mfsr",    {{21,5,GREG},{16,4,SGREG}} },
1031 { 0x7c0001e4, "mtsrin",  {{21,5,GREG}, {11,5,GREG}} },
1032 { 0x7c000526, "mfsrin",  {{21,5,GREG}, {11,5,GREG}} },
1033 { 0x7c000364, "slbie",   {{11,5,GREG}}, IMPL64|OPTIONAL },
1034 { 0x7c0003e4, "slbia",   {{0}},	 IMPL64|OPTIONAL },
1035 { 0x7c000324, "slbmte",  {{21,5,GREG}, {11,5,GREG}}, IMPL64|OPTIONAL },
1036 { 0x7c0006a6, "slbmfev", {{21,5,GREG}, {11,5,GREG}}, IMPL64|OPTIONAL },
1037 { 0x7c000726, "slbmfee", {{21,5,GREG}, {11,5,GREG}}, IMPL64|OPTIONAL },
1038 { 0x7c000264, "tlbie",   {{11,5,GREG}}, OPTIONAL|CPU970 },
1039 { 0x7c000264, "tlbie",   {{11,5,GREG}, {21,1,NUM}}, IMPL64|OPTIONAL|CPU970 },
1040 { 0x7c000224, "tlbiel",  {{11,5,GREG}}, IMPL64|OPTIONAL },
1041 { 0x7c0002e4, "tlbia",   {{0}},	 OPTIONAL|CPU970 },
1042 { 0x7c00046c, "tlbsync", {{0}},	 OPTIONAL|CPU970 },
1043 { 0x7c1c43a6, "mttbl",   {{21,5,GREG}} },
1044 { 0x7c1d43a6, "mttbu",   {{21,5,GREG}} },
1045 { 0x7c0002e6, "mftb",    {{21,5,GREG}, {11,10,SPREG}} },
1046 { 0x7c0c42e6, "mftb",    {{21,5,GREG}} },
1047 { 0x7c0d42e6, "mftbu",   {{21,5,GREG}} },
1048 { 0x00000200, "attn",    {{11,15,NUM}},	 OPTIONAL|CPU970 },
1049
1050/* Instructions (from book IV) */
1051 { 0x24000000, "dozi",    {{21,5,GREG}, {16,5,GREG}, {0,16,SI}}, CPU601 },
1052 { 0x7c000210, "doz",     {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1053 { 0x7c000211, "doz.",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1054 { 0x7c000610, "dozo",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1055 { 0x7c000611, "dozo.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1056
1057 { 0x7c0002d0, "abs",     {{21,5,GREG}, {16,5,GREG}}, CPU601 },
1058 { 0x7c0002d1, "abs.",    {{21,5,GREG}, {16,5,GREG}}, CPU601 },
1059 { 0x7c0006d0, "abso",    {{21,5,GREG}, {16,5,GREG}}, CPU601 },
1060 { 0x7c0006d1, "abso.",   {{21,5,GREG}, {16,5,GREG}}, CPU601 },
1061
1062 { 0x7c0003d0, "nabs",    {{21,5,GREG}, {16,5,GREG}}, CPU601 },
1063 { 0x7c0003d1, "nabs.",   {{21,5,GREG}, {16,5,GREG}}, CPU601 },
1064 { 0x7c0007d0, "nabso",   {{21,5,GREG}, {16,5,GREG}}, CPU601 },
1065 { 0x7c0007d1, "nabso.",  {{21,5,GREG}, {16,5,GREG}}, CPU601 },
1066
1067 { 0x1c000000, "mulli",   {{21,5,GREG}, {16,5,GREG}, {0,16,SI}} },
1068
1069 { 0x7c0000d6, "mul",     {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1070 { 0x7c0000d7, "mul.",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1071 { 0x7c0004d6, "mulo",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1072 { 0x7c0004d7, "mulo.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1073
1074 { 0x7c000296, "div",     {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1075 { 0x7c000297, "div.",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1076 { 0x7c000696, "divo",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1077 { 0x7c000697, "divo.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1078
1079 { 0x7c0002d6, "divs",    {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1080 { 0x7c0002d7, "divs.",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1081 { 0x7c0006d6, "divso",   {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1082 { 0x7c0006d7, "divso.",  {{21,5,GREG}, {16,5,GREG}, {11,5,GREG}}, CPU601 },
1083
1084 { 0x58000000, "rlmi",
1085    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG},  {6,5,MBE}, {1,5,MBE}}, CPU601 },
1086 { 0x58000001, "rlmi.",
1087    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG},  {6,5,MBE}, {1,5,MBE}}, CPU601 },
1088
1089 { 0x7c000432, "rrib",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1090 { 0x7c000433, "rrib.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1091
1092 { 0x7c00003a, "maskg",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1093 { 0x7c00003b, "maskg.",  {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1094
1095 { 0x7c00043a, "maskir",  {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1096 { 0x7c00043b, "maskir.", {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1097
1098 { 0x7c000130, "slq",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1099 { 0x7c000131, "slq.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1100
1101 { 0x7c000530, "srq",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1102 { 0x7c000531, "srq.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1103
1104 { 0x7c000170, "sliq",    {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1105 { 0x7c000171, "sliq.",   {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1106
1107 { 0x7c000570, "sriq",    {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1108 { 0x7c000571, "sriq.",   {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1109
1110 { 0x7c0001f0, "slliq",   {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1111 { 0x7c0001f1, "slliq.",  {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1112
1113 { 0x7c0005f0, "srliq",   {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1114 { 0x7c0005f1, "srliq.",  {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1115
1116 { 0x7c0001b0, "sllq",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1117 { 0x7c0001b1, "sllq.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1118
1119 { 0x7c0005b0, "srlq",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1120 { 0x7c0005b1, "srlq.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1121
1122 { 0x7c000132, "sle",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1123 { 0x7c000133, "sle.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1124
1125 { 0x7c000532, "sre",     {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1126 { 0x7c000533, "sre.",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1127
1128 { 0x7c0001b2, "sleq",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1129 { 0x7c0001b3, "sleq.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1130
1131 { 0x7c0005b2, "sreq",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1132 { 0x7c0005b3, "sreq.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1133
1134 { 0x7c000770, "sraiq",   {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1135 { 0x7c000771, "sraiq.",  {{16,5,GREG}, {21,5,GREG}, {11,5,NUM}}, CPU601 },
1136
1137 { 0x7c000730, "sraq",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1138 { 0x7c000731, "sraq.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1139
1140 { 0x7c000732, "srea",    {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1141 { 0x7c000733, "srea.",   {{16,5,GREG}, {21,5,GREG}, {11,5,GREG}}, CPU601 },
1142
1143/* Added from the PowerPC 601 book */
1144 { 0x7c000426, "clcs",    {{21,5,GREG}, {16,5,GREG}}, CPU601 },
1145
1146/* Added from the PowerPC 603 book.
1147 * These are really 603 specific instructions but we mark them as OPTIONAL
1148 * so that the -force_cpusubtype_ALL flag as to be used.  This makes it so
1149 * only 601 instructions will cause the cputype to be set to other an ALL.
1150 */
1151 { 0x7c0007a4, "tlbld",   {{11,5,GREG}}, OPTIONAL },
1152 { 0x7c0007e4, "tlbli",   {{11,5,GREG}}, OPTIONAL },
1153
1154/* VMX Instructions */
1155 { 0x7c00000e, "lvebx",   {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1156 { 0x7c00004e, "lvehx",   {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1157 { 0x7c00008e, "lvewx",   {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1158 { 0x7c0000ce, "lvx",     {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1159 { 0x7c0002ce, "lvxl",    {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1160
1161 { 0x7c00010e, "stvebx",  {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1162 { 0x7c00014e, "stvehx",  {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1163 { 0x7c00018e, "stvewx",  {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1164 { 0x7c0001ce, "stvx",    {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1165 { 0x7c0003ce, "stvxl",   {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1166
1167 { 0x7c00000c, "lvsl",    {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1168 { 0x7c00004c, "lvsr",    {{21,5,VREG}, {16,5,G0REG}, {11,5,GREG}}, VMX },
1169
1170 { 0x10000644, "mtvscr",  {{11,5,VREG}}, VMX },
1171 { 0x10000604, "mfvscr",  {{21,5,VREG}}, VMX },
1172
1173 { 0x7c0002ac, "dst",     {{16,5,GREG}, {11,5,GREG}, {21,2,NUM}}, VMX },
1174 { 0x7e0002ac, "dstt",    {{16,5,GREG}, {11,5,GREG}, {21,2,NUM}}, VMX },
1175 { 0x7c0002ec, "dstst",   {{16,5,GREG}, {11,5,GREG}, {21,2,NUM}}, VMX },
1176 { 0x7e0002ec, "dststt",  {{16,5,GREG}, {11,5,GREG}, {21,2,NUM}}, VMX },
1177 { 0x7c00066c, "dss",     {{21,2,NUM}}, VMX },
1178 { 0x7e00066c, "dssall",  {{0}}, VMX},
1179
1180 { 0x10000000, "vaddubm", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1181 { 0x10000200, "vaddubs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1182 { 0x10000300, "vaddsbs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1183 { 0x10000040, "vadduhm", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1184 { 0x10000240, "vadduhs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1185 { 0x10000340, "vaddshs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1186 { 0x10000080, "vadduwm", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1187 { 0x10000280, "vadduws", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1188 { 0x10000380, "vaddsws", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1189 { 0x1000000a, "vaddfp",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1190
1191 { 0x10000180, "vaddcuw", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1192
1193 { 0x10000400, "vsububm", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1194 { 0x10000600, "vsububs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1195 { 0x10000700, "vsubsbs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1196 { 0x10000440, "vsubuhm", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1197 { 0x10000640, "vsubuhs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1198 { 0x10000740, "vsubshs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1199 { 0x10000480, "vsubuwm", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1200 { 0x10000680, "vsubuws", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1201 { 0x10000780, "vsubsws", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1202 { 0x1000004a, "vsubfp",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1203
1204 { 0x10000580, "vsubcuw", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1205
1206 { 0x10000008, "vmuloub", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1207 { 0x10000108, "vmulosb", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1208 { 0x10000048, "vmulouh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1209 { 0x10000148, "vmulosh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1210
1211 { 0x10000208, "vmuleub", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1212 { 0x10000308, "vmulesb", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1213 { 0x10000248, "vmuleuh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1214 { 0x10000348, "vmulesh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1215
1216 { 0x10000020, "vmhaddshs",
1217	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1218 { 0x10000021, "vmhraddshs",
1219	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1220 { 0x10000022, "vmladduhm",
1221	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1222 { 0x1000002e, "vmaddfp",
1223	{{21,5,VREG}, {16,5,VREG}, {6,5,VREG}, {11,5,VREG}}, VMX },
1224
1225 { 0x10000024, "vmsumubm",
1226	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1227 { 0x10000025, "vmsummbm",
1228	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1229 { 0x10000026, "vmsumuhm",
1230	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1231 { 0x10000027, "vmsumuhs",
1232	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1233 { 0x10000028, "vmsumshm",
1234	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1235 { 0x10000029, "vmsumshs",
1236	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1237
1238 { 0x10000788, "vsumsws",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1239
1240 { 0x10000688, "vsum2sws", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1241
1242 { 0x10000608, "vsum4ubs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1243 { 0x10000708, "vsum4sbs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1244 { 0x10000648, "vsum4shs", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1245
1246 { 0x10000402, "vavgub", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1247 { 0x10000442, "vavguh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1248 { 0x10000482, "vavguw", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1249 { 0x10000502, "vavgsb", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1250 { 0x10000542, "vavgsh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1251 { 0x10000582, "vavgsw", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1252
1253 { 0x10000404, "vand",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1254 { 0x10000484, "vor",    {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1255 { 0x100004c4, "vxor",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1256 { 0x10000444, "vandc",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1257 { 0x10000504, "vnor",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1258
1259 { 0x10000004, "vrlb",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1260 { 0x10000044, "vrlh",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1261 { 0x10000084, "vrlw",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1262
1263 { 0x10000104, "vslb",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1264 { 0x10000144, "vslh",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1265 { 0x10000184, "vslw",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1266 { 0x100001c4, "vsl",    {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1267
1268 { 0x10000204, "vsrb",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1269 { 0x10000304, "vsrab",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1270 { 0x10000244, "vsrh",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1271 { 0x10000344, "vsrah",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1272 { 0x10000284, "vsrw",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1273 { 0x10000384, "vsraw",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1274 { 0x100002c4, "vsr",    {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1275
1276 { 0x10000206, "vcmpgtub",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1277 { 0x10000606, "vcmpgtub.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1278 { 0x10000306, "vcmpgtsb",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1279 { 0x10000706, "vcmpgtsb.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1280 { 0x10000246, "vcmpgtuh",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1281 { 0x10000646, "vcmpgtuh.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1282 { 0x10000346, "vcmpgtsh",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1283 { 0x10000746, "vcmpgtsh.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1284 { 0x10000286, "vcmpgtuw",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1285 { 0x10000686, "vcmpgtuw.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1286 { 0x10000386, "vcmpgtsw",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1287 { 0x10000786, "vcmpgtsw.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1288 { 0x100002c6, "vcmpgtfp",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1289 { 0x100006c6, "vcmpgtfp.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1290
1291 { 0x10000006, "vcmpequb",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1292 { 0x10000406, "vcmpequb.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1293 { 0x10000046, "vcmpequh",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1294 { 0x10000446, "vcmpequh.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1295 { 0x10000086, "vcmpequw",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1296 { 0x10000486, "vcmpequw.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1297 { 0x100000c6, "vcmpeqfp",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1298 { 0x100004c6, "vcmpeqfp.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1299
1300 { 0x100001c6, "vcmpgefp",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1301 { 0x100005c6, "vcmpgefp.", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1302
1303 { 0x100003c6, "vcmpbfp",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1304 { 0x100007c6, "vcmpbfp.",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1305
1306 { 0x1000002a, "vsel",
1307	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1308
1309 { 0x1000000e, "vpkuhum", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1310 { 0x1000008e, "vpkuhus", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1311 { 0x1000010e, "vpkshus", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1312 { 0x1000018e, "vpkshss", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1313 { 0x1000004e, "vpkuwum", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1314 { 0x100000ce, "vpkuwus", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1315 { 0x1000014e, "vpkswus", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1316 { 0x100001ce, "vpkswss", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1317 { 0x1000030e, "vpkpx",   {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1318
1319 { 0x1000020e, "vupkhsb", {{21,5,VREG}, {11,5,VREG}}, VMX },
1320 { 0x1000024e, "vupkhsh", {{21,5,VREG}, {11,5,VREG}}, VMX },
1321 { 0x1000034e, "vupkhpx", {{21,5,VREG}, {11,5,VREG}}, VMX },
1322
1323 { 0x1000028e, "vupklsb", {{21,5,VREG}, {11,5,VREG}}, VMX },
1324 { 0x100002ce, "vupklsh", {{21,5,VREG}, {11,5,VREG}}, VMX },
1325 { 0x100003ce, "vupklpx", {{21,5,VREG}, {11,5,VREG}}, VMX },
1326
1327 { 0x1000000c, "vmrghb",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1328 { 0x1000004c, "vmrghh",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1329 { 0x1000008c, "vmrghw",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1330
1331 { 0x1000010c, "vmrglb",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1332 { 0x1000014c, "vmrglh",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1333 { 0x1000018c, "vmrglw",  {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1334
1335 { 0x1000020c, "vspltb",  {{21,5,VREG}, {11,5,VREG}, {16,5,NUM}}, VMX },
1336 { 0x1000024c, "vsplth",  {{21,5,VREG}, {11,5,VREG}, {16,5,NUM}}, VMX },
1337 { 0x1000028c, "vspltw",  {{21,5,VREG}, {11,5,VREG}, {16,5,NUM}}, VMX },
1338
1339 { 0x1000030c, "vspltisb",{{21,5,VREG}, {16,5,SNUM}}, VMX },
1340 { 0x1000034c, "vspltish",{{21,5,VREG}, {16,5,SNUM}}, VMX },
1341 { 0x1000038c, "vspltisw",{{21,5,VREG}, {16,5,SNUM}}, VMX },
1342
1343 { 0x1000002b, "vperm",
1344	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,5,VREG}}, VMX },
1345
1346 { 0x1000002c, "vsldoi",
1347	{{21,5,VREG}, {16,5,VREG}, {11,5,VREG}, {6,4,NUM}}, VMX },
1348
1349 { 0x1000040c, "vslo",    {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1350 { 0x1000044c, "vsro",    {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1351
1352 { 0x10000002, "vmaxub", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1353 { 0x10000102, "vmaxsb", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1354 { 0x10000042, "vmaxuh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1355 { 0x10000142, "vmaxsh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1356 { 0x10000082, "vmaxuw", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1357 { 0x10000182, "vmaxsw", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1358 { 0x1000040a, "vmaxfp", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1359
1360 { 0x10000202, "vminub", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1361 { 0x10000302, "vminsb", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1362 { 0x10000242, "vminuh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1363 { 0x10000342, "vminsh", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1364 { 0x10000282, "vminuw", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1365 { 0x10000382, "vminsw", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1366 { 0x1000044a, "vminfp", {{21,5,VREG}, {16,5,VREG}, {11,5,VREG}}, VMX },
1367
1368 { 0x1000010a, "vrefp",    {{21,5,VREG}, {11,5,VREG}}, VMX },
1369 { 0x1000014a, "vrsqrtefp",{{21,5,VREG}, {11,5,VREG}}, VMX },
1370 { 0x100001ca, "vlogefp",  {{21,5,VREG}, {11,5,VREG}}, VMX },
1371 { 0x1000018a, "vexptefp", {{21,5,VREG}, {11,5,VREG}}, VMX },
1372
1373 { 0x1000002f, "vnmsubfp",
1374	{{21,5,VREG}, {16,5,VREG}, {6,5,VREG}, {11,5,VREG}}, VMX },
1375
1376 { 0x1000020a, "vrfin",  {{21,5,VREG}, {11,5,VREG}}, VMX },
1377 { 0x1000024a, "vrfiz",  {{21,5,VREG}, {11,5,VREG}}, VMX },
1378 { 0x1000028a, "vrfip",  {{21,5,VREG}, {11,5,VREG}}, VMX },
1379 { 0x100002ca, "vrfim",  {{21,5,VREG}, {11,5,VREG}}, VMX },
1380
1381 { 0x1000038a, "vctuxs", {{21,5,VREG}, {11,5,VREG}, {16,5,NUM}}, VMX },
1382 { 0x100003ca, "vctsxs", {{21,5,VREG}, {11,5,VREG}, {16,5,NUM}}, VMX },
1383
1384 { 0x1000030a, "vcfux", {{21,5,VREG}, {11,5,VREG}, {16,5,NUM}}, VMX },
1385 { 0x1000034a, "vcfsx", {{21,5,VREG}, {11,5,VREG}, {16,5,NUM}}, VMX },
1386
1387 { 0, "" } /* end of table marker */
1388};
1389