]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - opcodes/ppc-opc.c
PowerPC add initial -mfuture instruction support
[thirdparty/binutils-gdb.git] / opcodes / ppc-opc.c
CommitLineData
252b5132 1/* ppc-opc.c -- PowerPC opcode list
82704155 2 Copyright (C) 1994-2019 Free Software Foundation, Inc.
252b5132
RH
3 Written by Ian Lance Taylor, Cygnus Support
4
9b201bb5 5 This file is part of the GNU opcodes library.
252b5132 6
9b201bb5
NC
7 This library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
10 any later version.
252b5132 11
9b201bb5
NC
12 It is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
252b5132 16
112290ab 17 You should have received a copy of the GNU General Public License
9b201bb5
NC
18 along with this file; see the file COPYING. If not, write to the
19 Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
252b5132 21
0d8dfecf 22#include "sysdep.h"
df7b86aa 23#include <stdio.h>
252b5132
RH
24#include "opcode/ppc.h"
25#include "opintl.h"
26
27/* This file holds the PowerPC opcode table. The opcode table
28 includes almost all of the extended instruction mnemonics. This
29 permits the disassembler to use them, and simplifies the assembler
30 logic, at the cost of increasing the table size. The table is
31 strictly constant data, so the compiler should be able to put it in
b80c7270 32 the text segment.
252b5132
RH
33
34 This file also holds the operand table. All knowledge about
35 inserting operands into instructions and vice-versa is kept in this
36 file. */
252b5132 37
b80c7270 38/* The functions used to insert and extract complicated operands. */
252b5132 39
b80c7270 40/* The ARX, ARY, RX and RY operands are alternate encodings of GPRs. */
252b5132 41
0f873fd5
PB
42static uint64_t
43insert_arx (uint64_t insn,
44 int64_t value,
b80c7270
AM
45 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
46 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 47{
71553718
AM
48 value -= 8;
49 if (value < 0 || value >= 16)
b80c7270
AM
50 {
51 *errmsg = _("invalid register");
71553718 52 value = 0xf;
b80c7270 53 }
71553718 54 return insn | value;
b80c7270 55}
b9c361e0 56
0f873fd5
PB
57static int64_t
58extract_arx (uint64_t insn,
b80c7270
AM
59 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
60 int *invalid ATTRIBUTE_UNUSED)
61{
62 return (insn & 0xf) + 8;
63}
b9c361e0 64
0f873fd5
PB
65static uint64_t
66insert_ary (uint64_t insn,
67 int64_t value,
b80c7270
AM
68 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
69 const char **errmsg ATTRIBUTE_UNUSED)
70{
71553718
AM
71 value -= 8;
72 if (value < 0 || value >= 16)
b80c7270
AM
73 {
74 *errmsg = _("invalid register");
71553718 75 value = 0xf;
b80c7270 76 }
71553718 77 return insn | (value << 4);
b80c7270 78}
23976049 79
0f873fd5
PB
80static int64_t
81extract_ary (uint64_t insn,
b80c7270
AM
82 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
83 int *invalid ATTRIBUTE_UNUSED)
84{
85 return ((insn >> 4) & 0xf) + 8;
86}
418c1742 87
0f873fd5
PB
88static uint64_t
89insert_rx (uint64_t insn,
90 int64_t value,
b80c7270
AM
91 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
92 const char **errmsg)
93{
94 if (value >= 0 && value < 8)
71553718 95 ;
b80c7270 96 else if (value >= 24 && value <= 31)
71553718 97 value -= 16;
b80c7270
AM
98 else
99 {
100 *errmsg = _("invalid register");
71553718 101 value = 0xf;
b80c7270 102 }
71553718 103 return insn | value;
b80c7270 104}
252b5132 105
0f873fd5
PB
106static int64_t
107extract_rx (uint64_t insn,
b80c7270
AM
108 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
109 int *invalid ATTRIBUTE_UNUSED)
110{
0f873fd5 111 int64_t value = insn & 0xf;
b80c7270
AM
112 if (value >= 0 && value < 8)
113 return value;
114 else
115 return value + 16;
116}
b9c361e0 117
0f873fd5
PB
118static uint64_t
119insert_ry (uint64_t insn,
120 int64_t value,
b80c7270
AM
121 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
122 const char **errmsg)
123{
124 if (value >= 0 && value < 8)
71553718 125 ;
b80c7270 126 else if (value >= 24 && value <= 31)
71553718 127 value -= 16;
b80c7270
AM
128 else
129 {
130 *errmsg = _("invalid register");
71553718 131 value = 0xf;
b80c7270 132 }
71553718 133 return insn | (value << 4);
b80c7270 134}
a680de9a 135
0f873fd5
PB
136static int64_t
137extract_ry (uint64_t insn,
b80c7270
AM
138 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
139 int *invalid ATTRIBUTE_UNUSED)
140{
0f873fd5 141 int64_t value = (insn >> 4) & 0xf;
b80c7270
AM
142 if (value >= 0 && value < 8)
143 return value;
144 else
145 return value + 16;
146}
a680de9a 147
98553ad3
PB
148/* The BA and BB fields in an XL form instruction or the RA and RB fields or
149 VRA and VRB fields in a VX form instruction when they must be the same.
150 This is used for extended mnemonics like crclr. The extraction function
151 enforces that the fields are the same. */
adadcc0c 152
0f873fd5 153static uint64_t
98553ad3
PB
154insert_bab (uint64_t insn,
155 int64_t value,
b80c7270
AM
156 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
157 const char **errmsg ATTRIBUTE_UNUSED)
158{
98553ad3
PB
159 value &= 0x1f;
160 return insn | (value << 16) | (value << 11);
b80c7270 161}
252b5132 162
0f873fd5 163static int64_t
98553ad3 164extract_bab (uint64_t insn,
b80c7270
AM
165 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
166 int *invalid)
167{
98553ad3
PB
168 int64_t ba = (insn >> 16) & 0x1f;
169 int64_t bb = (insn >> 11) & 0x1f;
170
171 if (ba != bb)
b80c7270 172 *invalid = 1;
98553ad3 173 return ba;
b80c7270 174}
19a6653c 175
98553ad3
PB
176/* The BT, BA and BB fields in an XL form instruction when they must all be
177 the same. This is used for extended mnemonics like crclr. The extraction
178 function enforces that the fields are the same. */
a680de9a 179
0f873fd5 180static uint64_t
98553ad3
PB
181insert_btab (uint64_t insn,
182 int64_t value,
183 ppc_cpu_t dialect,
184 const char **errmsg)
b80c7270 185{
98553ad3
PB
186 value &= 0x1f;
187 return (value << 21) | insert_bab (insn, value, dialect, errmsg);
b80c7270 188}
a680de9a 189
0f873fd5 190static int64_t
98553ad3
PB
191extract_btab (uint64_t insn,
192 ppc_cpu_t dialect,
b80c7270
AM
193 int *invalid)
194{
98553ad3
PB
195 int64_t bt = (insn >> 21) & 0x1f;
196 int64_t bab = extract_bab (insn, dialect, invalid);
197
198 if (bt != bab)
b80c7270 199 *invalid = 1;
98553ad3 200 return bt;
b80c7270 201}
252b5132 202
b80c7270
AM
203/* The BD field in a B form instruction when the - modifier is used.
204 This modifier means that the branch is not expected to be taken.
205 For chips built to versions of the architecture prior to version 2
206 (ie. not Power4 compatible), we set the y bit of the BO field to 1
207 if the offset is negative. When extracting, we require that the y
208 bit be 1 and that the offset be positive, since if the y bit is 0
209 we just want to print the normal form of the instruction.
210 Power4 compatible targets use two bits, "a", and "t", instead of
211 the "y" bit. "at" == 00 => no hint, "at" == 01 => unpredictable,
212 "at" == 10 => not taken, "at" == 11 => taken. The "t" bit is 00001
213 in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000
214 for branch on CTR. We only handle the taken/not-taken hint here.
215 Note that we don't relax the conditions tested here when
216 disassembling with -Many because insns using extract_bdm and
217 extract_bdp always occur in pairs. One or the other will always
218 be valid. */
252b5132 219
b80c7270 220#define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
252b5132 221
0f873fd5
PB
222static uint64_t
223insert_bdm (uint64_t insn,
224 int64_t value,
b80c7270
AM
225 ppc_cpu_t dialect,
226 const char **errmsg ATTRIBUTE_UNUSED)
227{
228 if ((dialect & ISA_V2) == 0)
229 {
230 if ((value & 0x8000) != 0)
231 insn |= 1 << 21;
232 }
233 else
234 {
235 if ((insn & (0x14 << 21)) == (0x04 << 21))
236 insn |= 0x02 << 21;
237 else if ((insn & (0x14 << 21)) == (0x10 << 21))
238 insn |= 0x08 << 21;
239 }
240 return insn | (value & 0xfffc);
241}
252b5132 242
0f873fd5
PB
243static int64_t
244extract_bdm (uint64_t insn,
b80c7270
AM
245 ppc_cpu_t dialect,
246 int *invalid)
247{
248 if ((dialect & ISA_V2) == 0)
249 {
250 if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
251 *invalid = 1;
252 }
253 else
254 {
255 if ((insn & (0x17 << 21)) != (0x06 << 21)
256 && (insn & (0x1d << 21)) != (0x18 << 21))
257 *invalid = 1;
258 }
252b5132 259
b80c7270
AM
260 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
261}
989993d8 262
b80c7270
AM
263/* The BD field in a B form instruction when the + modifier is used.
264 This is like BDM, above, except that the branch is expected to be
265 taken. */
252b5132 266
0f873fd5
PB
267static uint64_t
268insert_bdp (uint64_t insn,
269 int64_t value,
b80c7270
AM
270 ppc_cpu_t dialect,
271 const char **errmsg ATTRIBUTE_UNUSED)
272{
273 if ((dialect & ISA_V2) == 0)
274 {
275 if ((value & 0x8000) == 0)
276 insn |= 1 << 21;
277 }
278 else
279 {
280 if ((insn & (0x14 << 21)) == (0x04 << 21))
281 insn |= 0x03 << 21;
282 else if ((insn & (0x14 << 21)) == (0x10 << 21))
283 insn |= 0x09 << 21;
284 }
285 return insn | (value & 0xfffc);
286}
989993d8 287
0f873fd5
PB
288static int64_t
289extract_bdp (uint64_t insn,
b80c7270
AM
290 ppc_cpu_t dialect,
291 int *invalid)
292{
293 if ((dialect & ISA_V2) == 0)
294 {
295 if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
296 *invalid = 1;
297 }
298 else
299 {
300 if ((insn & (0x17 << 21)) != (0x07 << 21)
301 && (insn & (0x1d << 21)) != (0x19 << 21))
302 *invalid = 1;
303 }
252b5132 304
b80c7270
AM
305 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
306}
252b5132 307
b80c7270 308static inline int
0f873fd5 309valid_bo_pre_v2 (int64_t value)
b80c7270
AM
310{
311 /* Certain encodings have bits that are required to be zero.
312 These are (z must be zero, y may be anything):
313 0000y
314 0001y
315 001zy
316 0100y
317 0101y
318 011zy
319 1z00y
320 1z01y
321 1z1zz
322 */
323 if ((value & 0x14) == 0)
aae9718e 324 /* BO: 0000y, 0001y, 0100y, 0101y. */
b80c7270
AM
325 return 1;
326 else if ((value & 0x14) == 0x4)
aae9718e 327 /* BO: 001zy, 011zy. */
b80c7270
AM
328 return (value & 0x2) == 0;
329 else if ((value & 0x14) == 0x10)
aae9718e 330 /* BO: 1z00y, 1z01y. */
b80c7270
AM
331 return (value & 0x8) == 0;
332 else
aae9718e 333 /* BO: 1z1zz. */
b80c7270
AM
334 return value == 0x14;
335}
989993d8 336
b80c7270 337static inline int
0f873fd5 338valid_bo_post_v2 (int64_t value)
b80c7270
AM
339{
340 /* Certain encodings have bits that are required to be zero.
341 These are (z must be zero, a & t may be anything):
342 0000z
343 0001z
344 001at
345 0100z
346 0101z
347 011at
348 1a00t
349 1a01t
350 1z1zz
351 */
352 if ((value & 0x14) == 0)
aae9718e 353 /* BO: 0000z, 0001z, 0100z, 0101z. */
b80c7270
AM
354 return (value & 0x1) == 0;
355 else if ((value & 0x14) == 0x14)
aae9718e 356 /* BO: 1z1zz. */
b80c7270 357 return value == 0x14;
aae9718e
PB
358 else if ((value & 0x14) == 0x4)
359 /* BO: 001at, 011at, with "at" == 0b01 being reserved. */
360 return (value & 0x3) != 1;
361 else if ((value & 0x14) == 0x10)
362 /* BO: 1a00t, 1a01t, with "at" == 0b01 being reserved. */
363 return (value & 0x9) != 1;
b80c7270
AM
364 else
365 return 1;
366}
c168870a 367
b80c7270 368/* Check for legal values of a BO field. */
252b5132 369
b80c7270 370static int
0f873fd5 371valid_bo (int64_t value, ppc_cpu_t dialect, int extract)
b80c7270
AM
372{
373 int valid_y = valid_bo_pre_v2 (value);
374 int valid_at = valid_bo_post_v2 (value);
b9c361e0 375
b80c7270
AM
376 /* When disassembling with -Many, accept either encoding on the
377 second pass through opcodes. */
378 if (extract && dialect == ~(ppc_cpu_t) PPC_OPCODE_ANY)
379 return valid_y || valid_at;
380 if ((dialect & ISA_V2) == 0)
381 return valid_y;
382 else
383 return valid_at;
384}
a5721ba2 385
b80c7270
AM
386/* The BO field in a B form instruction. Warn about attempts to set
387 the field to an illegal value. */
252b5132 388
0f873fd5
PB
389static uint64_t
390insert_bo (uint64_t insn,
391 int64_t value,
b80c7270
AM
392 ppc_cpu_t dialect,
393 const char **errmsg)
394{
395 if (!valid_bo (value, dialect, 0))
396 *errmsg = _("invalid conditional option");
aae9718e
PB
397 else if (PPC_OP (insn) == 19
398 && (((insn >> 1) & 0x3ff) == 528) && ! (value & 4))
b80c7270
AM
399 *errmsg = _("invalid counter access");
400 return insn | ((value & 0x1f) << 21);
401}
a680de9a 402
0f873fd5
PB
403static int64_t
404extract_bo (uint64_t insn,
b80c7270
AM
405 ppc_cpu_t dialect,
406 int *invalid)
407{
0f873fd5 408 int64_t value = (insn >> 21) & 0x1f;
b80c7270
AM
409 if (!valid_bo (value, dialect, 1))
410 *invalid = 1;
411 return value;
412}
252b5132 413
aae9718e
PB
414/* For the given BO value, return a bit mask detailing which bits
415 define the branch hints. */
416
417static int64_t
418get_bo_hint_mask (int64_t bo, ppc_cpu_t dialect)
419{
420 if ((dialect & ISA_V2) == 0)
421 {
422 if ((bo & 0x14) != 0x14)
423 /* BO: 0000y, 0001y, 001zy, 0100y, 0101y, 011zy, 1z00y, 1z01y . */
424 return 1;
425 else
426 /* BO: 1z1zz. */
427 return 0;
428 }
429 else
430 {
431 if ((bo & 0x14) == 0x4)
432 /* BO: 001at, 011at. */
433 return 0x3;
434 else if ((bo & 0x14) == 0x10)
435 /* BO: 1a00t, 1a01t. */
436 return 0x9;
437 else
438 /* BO: 0000z, 0001z, 0100z, 0101z, 1z1zz. */
439 return 0;
440 }
441}
442
443/* The BO field in a B form instruction when the + or - modifier is used. */
1ed8e1e4 444
0f873fd5
PB
445static uint64_t
446insert_boe (uint64_t insn,
447 int64_t value,
b80c7270 448 ppc_cpu_t dialect,
aae9718e
PB
449 const char **errmsg,
450 int branch_taken)
b80c7270 451{
aae9718e
PB
452 int64_t implied_hint;
453 int64_t hint_mask = get_bo_hint_mask (value, dialect);
252b5132 454
aae9718e
PB
455 if (branch_taken)
456 implied_hint = hint_mask;
457 else
458 implied_hint = hint_mask & ~1;
459
460 /* The branch hint bit(s) in the BO field must either be zero or exactly
461 match the branch hint bits implied by the '+' or '-' modifier. */
462 if (implied_hint == 0)
463 *errmsg = _("BO value implies no branch hint, when using + or - modifier");
464 else if ((value & hint_mask) != 0
465 && (value & hint_mask) != implied_hint)
466 {
467 if ((dialect & ISA_V2) == 0)
468 *errmsg = _("attempt to set y bit when using + or - modifier");
469 else
470 *errmsg = _("attempt to set 'at' bits when using + or - modifier");
471 }
472
473 value |= implied_hint;
474
475 return insert_bo (insn, value, dialect, errmsg);
b80c7270 476}
252b5132 477
0f873fd5
PB
478static int64_t
479extract_boe (uint64_t insn,
b80c7270 480 ppc_cpu_t dialect,
aae9718e
PB
481 int *invalid,
482 int branch_taken)
b80c7270 483{
0f873fd5 484 int64_t value = (insn >> 21) & 0x1f;
aae9718e
PB
485 int64_t implied_hint;
486 int64_t hint_mask = get_bo_hint_mask (value, dialect);
487
488 if (branch_taken)
489 implied_hint = hint_mask;
490 else
491 implied_hint = hint_mask & ~1;
492
493 if (!valid_bo (value, dialect, 1)
494 || implied_hint == 0
495 || (value & hint_mask) != implied_hint)
b80c7270 496 *invalid = 1;
aae9718e
PB
497 return value;
498}
499
500/* The BO field in a B form instruction when the - modifier is used. */
501
502static uint64_t
503insert_bom (uint64_t insn,
504 int64_t value,
505 ppc_cpu_t dialect,
506 const char **errmsg)
507{
508 return insert_boe (insn, value, dialect, errmsg, 0);
509}
510
511static int64_t
512extract_bom (uint64_t insn,
513 ppc_cpu_t dialect,
514 int *invalid)
515{
516 return extract_boe (insn, dialect, invalid, 0);
517}
518
519/* The BO field in a B form instruction when the + modifier is used. */
520
521static uint64_t
522insert_bop (uint64_t insn,
523 int64_t value,
524 ppc_cpu_t dialect,
525 const char **errmsg)
526{
527 return insert_boe (insn, value, dialect, errmsg, 1);
528}
529
530static int64_t
531extract_bop (uint64_t insn,
532 ppc_cpu_t dialect,
533 int *invalid)
534{
535 return extract_boe (insn, dialect, invalid, 1);
b80c7270 536}
252b5132 537
b80c7270
AM
538/* The DCMX field in a X form instruction when the field is split
539 into separate DC, DM and DX fields. */
252b5132 540
0f873fd5
PB
541static uint64_t
542insert_dcmxs (uint64_t insn,
543 int64_t value,
b80c7270
AM
544 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
545 const char **errmsg ATTRIBUTE_UNUSED)
546{
547 return (insn
548 | ((value & 0x1f) << 16)
549 | ((value & 0x20) >> 3)
550 | (value & 0x40));
551}
252b5132 552
0f873fd5
PB
553static int64_t
554extract_dcmxs (uint64_t insn,
b80c7270
AM
555 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
556 int *invalid ATTRIBUTE_UNUSED)
557{
558 return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
559}
252b5132 560
b80c7270
AM
561/* The D field in a DX form instruction when the field is split
562 into separate D0, D1 and D2 fields. */
989993d8 563
0f873fd5
PB
564static uint64_t
565insert_dxd (uint64_t insn,
566 int64_t value,
b80c7270
AM
567 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
568 const char **errmsg ATTRIBUTE_UNUSED)
569{
570 return insn | (value & 0xffc1) | ((value & 0x3e) << 15);
571}
e43de63c 572
0f873fd5
PB
573static int64_t
574extract_dxd (uint64_t insn,
b80c7270
AM
575 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
576 int *invalid ATTRIBUTE_UNUSED)
577{
0f873fd5 578 uint64_t dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e);
b80c7270
AM
579 return (dxd ^ 0x8000) - 0x8000;
580}
252b5132 581
0f873fd5
PB
582static uint64_t
583insert_dxdn (uint64_t insn,
584 int64_t value,
b80c7270
AM
585 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
586 const char **errmsg ATTRIBUTE_UNUSED)
587{
588 return insert_dxd (insn, -value, dialect, errmsg);
589}
252b5132 590
0f873fd5
PB
591static int64_t
592extract_dxdn (uint64_t insn,
b80c7270 593 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
9cf7e568 594 int *invalid)
b80c7270
AM
595{
596 return -extract_dxd (insn, dialect, invalid);
597}
fdd12ef3 598
b80c7270 599/* FXM mask in mfcr and mtcrf instructions. */
adadcc0c 600
0f873fd5
PB
601static uint64_t
602insert_fxm (uint64_t insn,
603 int64_t value,
b80c7270
AM
604 ppc_cpu_t dialect,
605 const char **errmsg)
606{
607 /* If we're handling the mfocrf and mtocrf insns ensure that exactly
608 one bit of the mask field is set. */
609 if ((insn & (1 << 20)) != 0)
610 {
611 if (value == 0 || (value & -value) != value)
612 {
613 *errmsg = _("invalid mask field");
614 value = 0;
615 }
616 }
252b5132 617
b80c7270
AM
618 /* If only one bit of the FXM field is set, we can use the new form
619 of the instruction, which is faster. Unlike the Power4 branch hint
620 encoding, this is not backward compatible. Do not generate the
621 new form unless -mpower4 has been given, or -many and the two
622 operand form of mfcr was used. */
623 else if (value > 0
624 && (value & -value) == value
625 && ((dialect & PPC_OPCODE_POWER4) != 0
626 || ((dialect & PPC_OPCODE_ANY) != 0
627 && (insn & (0x3ff << 1)) == 19 << 1)))
628 insn |= 1 << 20;
252b5132 629
b80c7270
AM
630 /* Any other value on mfcr is an error. */
631 else if ((insn & (0x3ff << 1)) == 19 << 1)
632 {
633 /* A value of -1 means we used the one operand form of
634 mfcr which is valid. */
635 if (value != -1)
636 *errmsg = _("invalid mfcr mask");
637 value = 0;
638 }
252b5132 639
b80c7270
AM
640 return insn | ((value & 0xff) << 12);
641}
1f6c9eb0 642
0f873fd5
PB
643static int64_t
644extract_fxm (uint64_t insn,
b80c7270
AM
645 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
646 int *invalid)
647{
9cf7e568
AM
648 /* Return a value of -1 for a missing optional operand, which is
649 used as a flag by insert_fxm. */
650 if (*invalid < 0)
651 return -1;
252b5132 652
9cf7e568 653 int64_t mask = (insn >> 12) & 0xff;
b80c7270
AM
654 /* Is this a Power4 insn? */
655 if ((insn & (1 << 20)) != 0)
656 {
657 /* Exactly one bit of MASK should be set. */
658 if (mask == 0 || (mask & -mask) != mask)
659 *invalid = 1;
660 }
252b5132 661
b80c7270
AM
662 /* Check that non-power4 form of mfcr has a zero MASK. */
663 else if ((insn & (0x3ff << 1)) == 19 << 1)
664 {
665 if (mask != 0)
666 *invalid = 1;
667 else
668 mask = -1;
669 }
989993d8 670
b80c7270
AM
671 return mask;
672}
cee62821 673
0f873fd5
PB
674static uint64_t
675insert_li20 (uint64_t insn,
676 int64_t value,
b80c7270
AM
677 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
678 const char **errmsg ATTRIBUTE_UNUSED)
679{
680 return (insn
681 | ((value & 0xf0000) >> 5)
682 | ((value & 0x0f800) << 5)
683 | (value & 0x7ff));
684}
a680de9a 685
0f873fd5
PB
686static int64_t
687extract_li20 (uint64_t insn,
b80c7270
AM
688 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
689 int *invalid ATTRIBUTE_UNUSED)
690{
f143cb5f
AM
691 return ((((insn << 5) & 0xf0000)
692 | ((insn >> 5) & 0xf800)
693 | (insn & 0x7ff)) ^ 0x80000) - 0x80000;
b80c7270 694}
e3c2f928 695
b80c7270
AM
696/* The 2-bit L field in a SYNC or WC field in a WAIT instruction.
697 For SYNC, some L values are reserved:
698 * Value 3 is reserved on newer server cpus.
699 * Values 2 and 3 are reserved on all other cpus. */
adadcc0c 700
0f873fd5
PB
701static uint64_t
702insert_ls (uint64_t insn,
703 int64_t value,
b80c7270
AM
704 ppc_cpu_t dialect,
705 const char **errmsg)
706{
707 /* For SYNC, some L values are illegal. */
708 if (((insn >> 1) & 0x3ff) == 598)
709 {
0f873fd5 710 int64_t max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1;
b80c7270 711 if (value > max_lvalue)
71553718 712 *errmsg = _("illegal L operand value");
b80c7270 713 }
1f6c9eb0 714
b80c7270
AM
715 return insn | ((value & 0x3) << 21);
716}
b9c361e0 717
0f873fd5
PB
718static int64_t
719extract_ls (uint64_t insn,
b80c7270
AM
720 ppc_cpu_t dialect,
721 int *invalid)
722{
9cf7e568
AM
723 /* Missing optional operands have a value of zero. */
724 if (*invalid < 0)
725 return 0;
b9c361e0 726
9cf7e568 727 uint64_t lvalue = (insn >> 21) & 3;
b80c7270
AM
728 if (((insn >> 1) & 0x3ff) == 598)
729 {
0f873fd5 730 uint64_t max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1;
b80c7270
AM
731 if (lvalue > max_lvalue)
732 *invalid = 1;
733 }
734 return lvalue;
735}
b9c361e0 736
b80c7270
AM
737/* The 4-bit E field in a sync instruction that accepts 2 operands.
738 If ESYNC is non-zero, then the L field must be either 0 or 1 and
739 the complement of ESYNC-bit2. */
b9c361e0 740
0f873fd5
PB
741static uint64_t
742insert_esync (uint64_t insn,
743 int64_t value,
9cf7e568 744 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270
AM
745 const char **errmsg)
746{
0f873fd5 747 uint64_t ls = (insn >> 21) & 0x03;
b9c361e0 748
9cf7e568
AM
749 if (value != 0
750 && ((~value >> 1) & 0x1) != ls)
b80c7270 751 *errmsg = _("incompatible L operand value");
b9c361e0 752
b80c7270
AM
753 return insn | ((value & 0xf) << 16);
754}
b9c361e0 755
0f873fd5
PB
756static int64_t
757extract_esync (uint64_t insn,
9cf7e568 758 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270
AM
759 int *invalid)
760{
9cf7e568
AM
761 if (*invalid < 0)
762 return 0;
b9c361e0 763
9cf7e568
AM
764 uint64_t ls = (insn >> 21) & 0x3;
765 uint64_t value = (insn >> 16) & 0xf;
766 if (value != 0
767 && ((~value >> 1) & 0x1) != ls)
b80c7270 768 *invalid = 1;
9cf7e568 769 return value;
b80c7270 770}
e3c2f928 771
b80c7270
AM
772/* The MB and ME fields in an M form instruction expressed as a single
773 operand which is itself a bitmask. The extraction function always
774 marks it as invalid, since we never want to recognize an
775 instruction which uses a field of this type. */
5817ffd1 776
0f873fd5
PB
777static uint64_t
778insert_mbe (uint64_t insn,
779 int64_t value,
b80c7270
AM
780 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
781 const char **errmsg)
782{
0f873fd5
PB
783 uint64_t uval, mask;
784 long mb, me, mx, count, last;
252b5132 785
b80c7270 786 uval = value;
1f6c9eb0 787
b80c7270
AM
788 if (uval == 0)
789 {
790 *errmsg = _("illegal bitmask");
791 return insn;
792 }
252b5132 793
b80c7270
AM
794 mb = 0;
795 me = 32;
796 if ((uval & 1) != 0)
797 last = 1;
798 else
799 last = 0;
800 count = 0;
252b5132 801
b80c7270
AM
802 /* mb: location of last 0->1 transition */
803 /* me: location of last 1->0 transition */
804 /* count: # transitions */
b9c361e0 805
0f873fd5 806 for (mx = 0, mask = (uint64_t) 1 << 31; mx < 32; ++mx, mask >>= 1)
b80c7270
AM
807 {
808 if ((uval & mask) && !last)
809 {
810 ++count;
811 mb = mx;
812 last = 1;
813 }
814 else if (!(uval & mask) && last)
815 {
816 ++count;
817 me = mx;
818 last = 0;
819 }
820 }
821 if (me == 0)
822 me = 32;
252b5132 823
b80c7270
AM
824 if (count != 2 && (count != 0 || ! last))
825 *errmsg = _("illegal bitmask");
252b5132 826
b80c7270
AM
827 return insn | (mb << 6) | ((me - 1) << 1);
828}
252b5132 829
0f873fd5
PB
830static int64_t
831extract_mbe (uint64_t insn,
b80c7270
AM
832 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
833 int *invalid)
834{
0f873fd5
PB
835 int64_t ret;
836 long mb, me;
837 long i;
252b5132 838
b80c7270 839 *invalid = 1;
f5c120c5 840
b80c7270
AM
841 mb = (insn >> 6) & 0x1f;
842 me = (insn >> 1) & 0x1f;
843 if (mb < me + 1)
844 {
845 ret = 0;
846 for (i = mb; i <= me; i++)
0f873fd5 847 ret |= (uint64_t) 1 << (31 - i);
b80c7270
AM
848 }
849 else if (mb == me + 1)
850 ret = ~0;
851 else /* (mb > me + 1) */
852 {
853 ret = ~0;
854 for (i = me + 1; i < mb; i++)
0f873fd5 855 ret &= ~((uint64_t) 1 << (31 - i));
b80c7270
AM
856 }
857 return ret;
858}
aea77599 859
b80c7270
AM
860/* The MB or ME field in an MD or MDS form instruction. The high bit
861 is wrapped to the low end. */
252b5132 862
0f873fd5
PB
863static uint64_t
864insert_mb6 (uint64_t insn,
865 int64_t value,
b80c7270
AM
866 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
867 const char **errmsg ATTRIBUTE_UNUSED)
868{
869 return insn | ((value & 0x1f) << 6) | (value & 0x20);
870}
252b5132 871
0f873fd5
PB
872static int64_t
873extract_mb6 (uint64_t insn,
b80c7270
AM
874 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
875 int *invalid ATTRIBUTE_UNUSED)
876{
877 return ((insn >> 6) & 0x1f) | (insn & 0x20);
878}
252b5132 879
b80c7270
AM
880/* The NB field in an X form instruction. The value 32 is stored as
881 0. */
786e2c0f 882
0f873fd5
PB
883static int64_t
884extract_nb (uint64_t insn,
b80c7270
AM
885 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
886 int *invalid ATTRIBUTE_UNUSED)
887{
0f873fd5 888 int64_t ret;
a47622ac 889
b80c7270
AM
890 ret = (insn >> 11) & 0x1f;
891 if (ret == 0)
892 ret = 32;
893 return ret;
894}
b9c361e0 895
b80c7270
AM
896/* The NB field in an lswi instruction, which has special value
897 restrictions. The value 32 is stored as 0. */
b9c361e0 898
0f873fd5
PB
899static uint64_t
900insert_nbi (uint64_t insn,
901 int64_t value,
b80c7270
AM
902 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
903 const char **errmsg ATTRIBUTE_UNUSED)
904{
0f873fd5
PB
905 int64_t rtvalue = (insn >> 21) & 0x1f;
906 int64_t ravalue = (insn >> 16) & 0x1f;
b9c361e0 907
b80c7270
AM
908 if (value == 0)
909 value = 32;
910 if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32
911 : ravalue))
912 *errmsg = _("address register in load range");
913 return insn | ((value & 0x1f) << 11);
914}
786e2c0f 915
b80c7270
AM
916/* The NSI field in a D form instruction. This is the same as the SI
917 field, only negated. The extraction function always marks it as
918 invalid, since we never want to recognize an instruction which uses
919 a field of this type. */
786e2c0f 920
0f873fd5
PB
921static uint64_t
922insert_nsi (uint64_t insn,
923 int64_t value,
b80c7270
AM
924 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
925 const char **errmsg ATTRIBUTE_UNUSED)
926{
927 return insn | (-value & 0xffff);
928}
786e2c0f 929
0f873fd5
PB
930static int64_t
931extract_nsi (uint64_t insn,
b80c7270
AM
932 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
933 int *invalid)
934{
935 *invalid = 1;
936 return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
937}
786e2c0f 938
b80c7270
AM
939/* The RA field in a D or X form instruction which is an updating
940 load, which means that the RA field may not be zero and may not
941 equal the RT field. */
786e2c0f 942
0f873fd5
PB
943static uint64_t
944insert_ral (uint64_t insn,
945 int64_t value,
b80c7270
AM
946 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
947 const char **errmsg)
948{
949 if (value == 0
0f873fd5 950 || (uint64_t) value == ((insn >> 21) & 0x1f))
b80c7270
AM
951 *errmsg = "invalid register operand when updating";
952 return insn | ((value & 0x1f) << 16);
953}
786e2c0f 954
0f873fd5
PB
955static int64_t
956extract_ral (uint64_t insn,
b80c7270
AM
957 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
958 int *invalid)
959{
0f873fd5
PB
960 int64_t rtvalue = (insn >> 21) & 0x1f;
961 int64_t ravalue = (insn >> 16) & 0x1f;
fb048c26 962
b80c7270
AM
963 if (rtvalue == ravalue || ravalue == 0)
964 *invalid = 1;
965 return ravalue;
966}
a680de9a 967
b80c7270
AM
968/* The RA field in an lmw instruction, which has special value
969 restrictions. */
c0637f3a 970
0f873fd5
PB
971static uint64_t
972insert_ram (uint64_t insn,
973 int64_t value,
b80c7270
AM
974 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
975 const char **errmsg)
976{
0f873fd5 977 if ((uint64_t) value >= ((insn >> 21) & 0x1f))
b80c7270
AM
978 *errmsg = _("index register in load range");
979 return insn | ((value & 0x1f) << 16);
980}
c0637f3a 981
0f873fd5
PB
982static int64_t
983extract_ram (uint64_t insn,
b80c7270
AM
984 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
985 int *invalid)
986{
0f873fd5
PB
987 uint64_t rtvalue = (insn >> 21) & 0x1f;
988 uint64_t ravalue = (insn >> 16) & 0x1f;
ff3a6ee3 989
b80c7270
AM
990 if (ravalue >= rtvalue)
991 *invalid = 1;
992 return ravalue;
993}
23976049 994
b80c7270
AM
995/* The RA field in the DQ form lq or an lswx instruction, which have special
996 value restrictions. */
e3c2f928 997
0f873fd5
PB
998static uint64_t
999insert_raq (uint64_t insn,
1000 int64_t value,
b80c7270
AM
1001 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1002 const char **errmsg)
1003{
0f873fd5 1004 int64_t rtvalue = (insn >> 21) & 0x1f;
23976049 1005
b80c7270
AM
1006 if (value == rtvalue)
1007 *errmsg = _("source and target register operands must be different");
1008 return insn | ((value & 0x1f) << 16);
1009}
e3c2f928 1010
0f873fd5
PB
1011static int64_t
1012extract_raq (uint64_t insn,
b80c7270
AM
1013 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1014 int *invalid)
1015{
9cf7e568
AM
1016 if (*invalid < 0)
1017 return 0;
1018
0f873fd5
PB
1019 uint64_t rtvalue = (insn >> 21) & 0x1f;
1020 uint64_t ravalue = (insn >> 16) & 0x1f;
b80c7270
AM
1021 if (ravalue == rtvalue)
1022 *invalid = 1;
1023 return ravalue;
1024}
e3c2f928 1025
b80c7270
AM
1026/* The RA field in a D or X form instruction which is an updating
1027 store or an updating floating point load, which means that the RA
1028 field may not be zero. */
ff3a6ee3 1029
0f873fd5
PB
1030static uint64_t
1031insert_ras (uint64_t insn,
1032 int64_t value,
b80c7270
AM
1033 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1034 const char **errmsg)
1035{
1036 if (value == 0)
1037 *errmsg = _("invalid register operand when updating");
1038 return insn | ((value & 0x1f) << 16);
1039}
c3d65c1c 1040
0f873fd5
PB
1041static int64_t
1042extract_ras (uint64_t insn,
b80c7270
AM
1043 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1044 int *invalid)
1045{
0f873fd5 1046 uint64_t ravalue = (insn >> 16) & 0x1f;
c3d65c1c 1047
b80c7270
AM
1048 if (ravalue == 0)
1049 *invalid = 1;
1050 return ravalue;
1051}
c3d65c1c 1052
98553ad3
PB
1053/* The RS and RB fields in an X form instruction when they must be the same.
1054 This is used for extended mnemonics like mr. The extraction function
1055 enforces that the fields are the same. */
c3d65c1c 1056
0f873fd5 1057static uint64_t
98553ad3
PB
1058insert_rsb (uint64_t insn,
1059 int64_t value,
b80c7270
AM
1060 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1061 const char **errmsg ATTRIBUTE_UNUSED)
1062{
98553ad3
PB
1063 value &= 0x1f;
1064 return insn | (value << 21) | (value << 11);
b80c7270 1065}
5ae2e65e 1066
0f873fd5 1067static int64_t
98553ad3 1068extract_rsb (uint64_t insn,
b80c7270
AM
1069 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1070 int *invalid)
1071{
98553ad3
PB
1072 int64_t rs = (insn >> 21) & 0x1f;
1073 int64_t rb = (insn >> 11) & 0x1f;
1074
1075 if (rs != rb)
b80c7270 1076 *invalid = 1;
98553ad3 1077 return rs;
b80c7270 1078}
702f0fb4 1079
b80c7270
AM
1080/* The RB field in an lswx instruction, which has special value
1081 restrictions. */
702f0fb4 1082
0f873fd5
PB
1083static uint64_t
1084insert_rbx (uint64_t insn,
1085 int64_t value,
b80c7270
AM
1086 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1087 const char **errmsg)
1088{
0f873fd5 1089 int64_t rtvalue = (insn >> 21) & 0x1f;
a680de9a 1090
b80c7270
AM
1091 if (value == rtvalue)
1092 *errmsg = _("source and target register operands must be different");
1093 return insn | ((value & 0x1f) << 11);
1094}
a680de9a 1095
0f873fd5
PB
1096static int64_t
1097extract_rbx (uint64_t insn,
b80c7270
AM
1098 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1099 int *invalid)
1100{
0f873fd5
PB
1101 uint64_t rtvalue = (insn >> 21) & 0x1f;
1102 uint64_t rbvalue = (insn >> 11) & 0x1f;
702f0fb4 1103
b80c7270
AM
1104 if (rbvalue == rtvalue)
1105 *invalid = 1;
1106 return rbvalue;
1107}
702f0fb4 1108
b80c7270 1109/* The SCI8 field is made up of SCL and {U,N}I8 fields. */
0f873fd5
PB
1110static uint64_t
1111insert_sci8 (uint64_t insn,
1112 int64_t value,
b80c7270
AM
1113 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1114 const char **errmsg)
1115{
0f873fd5
PB
1116 uint64_t fill_scale = 0;
1117 uint64_t ui8 = value;
c0637f3a 1118
b80c7270
AM
1119 if ((ui8 & 0xffffff00) == 0)
1120 ;
1121 else if ((ui8 & 0xffffff00) == 0xffffff00)
1122 fill_scale = 0x400;
1123 else if ((ui8 & 0xffff00ff) == 0)
1124 {
1125 fill_scale = 1 << 8;
1126 ui8 >>= 8;
1127 }
1128 else if ((ui8 & 0xffff00ff) == 0xffff00ff)
1129 {
1130 fill_scale = 0x400 | (1 << 8);
1131 ui8 >>= 8;
1132 }
1133 else if ((ui8 & 0xff00ffff) == 0)
1134 {
1135 fill_scale = 2 << 8;
1136 ui8 >>= 16;
1137 }
1138 else if ((ui8 & 0xff00ffff) == 0xff00ffff)
1139 {
1140 fill_scale = 0x400 | (2 << 8);
1141 ui8 >>= 16;
1142 }
1143 else if ((ui8 & 0x00ffffff) == 0)
1144 {
1145 fill_scale = 3 << 8;
1146 ui8 >>= 24;
1147 }
1148 else if ((ui8 & 0x00ffffff) == 0x00ffffff)
1149 {
1150 fill_scale = 0x400 | (3 << 8);
1151 ui8 >>= 24;
1152 }
1153 else
1154 {
1155 *errmsg = _("illegal immediate value");
1156 ui8 = 0;
1157 }
702f0fb4 1158
b80c7270
AM
1159 return insn | fill_scale | (ui8 & 0xff);
1160}
ea192fa3 1161
0f873fd5
PB
1162static int64_t
1163extract_sci8 (uint64_t insn,
b80c7270
AM
1164 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1165 int *invalid ATTRIBUTE_UNUSED)
1166{
0f873fd5
PB
1167 int64_t fill = insn & 0x400;
1168 int64_t scale_factor = (insn & 0x300) >> 5;
1169 int64_t value = (insn & 0xff) << scale_factor;
081ba1b3 1170
b80c7270 1171 if (fill != 0)
0f873fd5 1172 value |= ~((int64_t) 0xff << scale_factor);
b80c7270
AM
1173 return value;
1174}
081ba1b3 1175
0f873fd5
PB
1176static uint64_t
1177insert_sci8n (uint64_t insn,
1178 int64_t value,
b80c7270
AM
1179 ppc_cpu_t dialect,
1180 const char **errmsg)
1181{
1182 return insert_sci8 (insn, -value, dialect, errmsg);
1183}
081ba1b3 1184
0f873fd5
PB
1185static int64_t
1186extract_sci8n (uint64_t insn,
b80c7270
AM
1187 ppc_cpu_t dialect,
1188 int *invalid)
1189{
1190 return -extract_sci8 (insn, dialect, invalid);
1191}
081ba1b3 1192
0f873fd5
PB
1193static uint64_t
1194insert_oimm (uint64_t insn,
1195 int64_t value,
b80c7270
AM
1196 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1197 const char **errmsg ATTRIBUTE_UNUSED)
1198{
1199 return insn | (((value - 1) & 0x1f) << 4);
1200}
b9c361e0 1201
0f873fd5
PB
1202static int64_t
1203extract_oimm (uint64_t insn,
b80c7270
AM
1204 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1205 int *invalid ATTRIBUTE_UNUSED)
1206{
1207 return ((insn >> 4) & 0x1f) + 1;
1208}
b9c361e0 1209
b80c7270 1210/* The SH field in an MD form instruction. This is split. */
b9c361e0 1211
0f873fd5
PB
1212static uint64_t
1213insert_sh6 (uint64_t insn,
1214 int64_t value,
b80c7270
AM
1215 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1216 const char **errmsg ATTRIBUTE_UNUSED)
1217{
71553718 1218 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
b80c7270 1219}
9b4e5766 1220
0f873fd5
PB
1221static int64_t
1222extract_sh6 (uint64_t insn,
b80c7270
AM
1223 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1224 int *invalid ATTRIBUTE_UNUSED)
1225{
71553718 1226 return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
b80c7270 1227}
a680de9a 1228
b80c7270
AM
1229/* The SPR field in an XFX form instruction. This is flipped--the
1230 lower 5 bits are stored in the upper 5 and vice- versa. */
9b4e5766 1231
0f873fd5
PB
1232static uint64_t
1233insert_spr (uint64_t insn,
1234 int64_t value,
b80c7270
AM
1235 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1236 const char **errmsg ATTRIBUTE_UNUSED)
1237{
1238 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
1239}
9b4e5766 1240
0f873fd5
PB
1241static int64_t
1242extract_spr (uint64_t insn,
b80c7270
AM
1243 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1244 int *invalid ATTRIBUTE_UNUSED)
1245{
1246 return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
1247}
9b4e5766 1248
fa758a70
AC
1249/* Some dialects have 8 [DI]BAT registers instead of the standard 4. */
1250#define ALLOW8_BAT (PPC_OPCODE_750)
1251
16065af1
AM
1252static uint64_t
1253insert_sprbat (uint64_t insn,
1254 int64_t value,
fa758a70
AC
1255 ppc_cpu_t dialect,
1256 const char **errmsg)
1257{
71553718
AM
1258 if ((uint64_t) value > 7
1259 || ((uint64_t) value > 3 && (dialect & ALLOW8_BAT) == 0))
fa758a70
AC
1260 *errmsg = _("invalid bat number");
1261
1262 /* If this is [di]bat4..7 then use spr 560..575, otherwise 528..543. */
71553718 1263 if ((uint64_t) value > 3)
fa758a70
AC
1264 value = ((value & 3) << 6) | 1;
1265 else
1266 value = value << 6;
1267
1268 return insn | (value << 11);
1269}
1270
16065af1
AM
1271static int64_t
1272extract_sprbat (uint64_t insn,
fa758a70
AC
1273 ppc_cpu_t dialect,
1274 int *invalid)
1275{
16065af1 1276 uint64_t val = (insn >> 17) & 0x3;
fa758a70
AC
1277
1278 val = val + ((insn >> 9) & 0x4);
1279 if (val > 3 && (dialect & ALLOW8_BAT) == 0)
1280 *invalid = 1;
1281 return val;
1282}
1283
b80c7270
AM
1284/* Some dialects have 8 SPRG registers instead of the standard 4. */
1285#define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405)
066be9f7 1286
0f873fd5
PB
1287static uint64_t
1288insert_sprg (uint64_t insn,
1289 int64_t value,
b80c7270
AM
1290 ppc_cpu_t dialect,
1291 const char **errmsg)
1292{
71553718
AM
1293 if ((uint64_t) value > 7
1294 || ((uint64_t) value > 3 && (dialect & ALLOW8_SPRG) == 0))
b80c7270 1295 *errmsg = _("invalid sprg number");
066be9f7 1296
b80c7270
AM
1297 /* If this is mfsprg4..7 then use spr 260..263 which can be read in
1298 user mode. Anything else must use spr 272..279. */
71553718 1299 if ((uint64_t) value <= 3 || (insn & 0x100) != 0)
b80c7270 1300 value |= 0x10;
066be9f7 1301
b80c7270
AM
1302 return insn | ((value & 0x17) << 16);
1303}
e0d602ec 1304
0f873fd5
PB
1305static int64_t
1306extract_sprg (uint64_t insn,
b80c7270
AM
1307 ppc_cpu_t dialect,
1308 int *invalid)
1309{
0f873fd5 1310 uint64_t val = (insn >> 16) & 0x1f;
4bc0608a 1311
b80c7270
AM
1312 /* mfsprg can use 260..263 and 272..279. mtsprg only uses spr 272..279
1313 If not BOOKE, 405 or VLE, then both use only 272..275. */
1314 if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0)
1315 || (val - 0x10 > 7 && (insn & 0x100) != 0)
1316 || val <= 3
1317 || (val & 8) != 0)
1318 *invalid = 1;
1319 return val & 7;
1320}
a680de9a 1321
b80c7270
AM
1322/* The TBR field in an XFX instruction. This is just like SPR, but it
1323 is optional. */
e3c2f928 1324
0f873fd5
PB
1325static uint64_t
1326insert_tbr (uint64_t insn,
1327 int64_t value,
b80c7270
AM
1328 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1329 const char **errmsg)
1330{
1331 if (value != 268 && value != 269)
1332 *errmsg = _("invalid tbr number");
1333 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
1334}
252b5132 1335
0f873fd5
PB
1336static int64_t
1337extract_tbr (uint64_t insn,
b80c7270
AM
1338 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1339 int *invalid)
1340{
9cf7e568
AM
1341 if (*invalid < 0)
1342 return 268;
1343
0f873fd5 1344 int64_t ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
b80c7270
AM
1345 if (ret != 268 && ret != 269)
1346 *invalid = 1;
1347 return ret;
1348}
252b5132 1349
b80c7270 1350/* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */
b9c361e0 1351
0f873fd5
PB
1352static uint64_t
1353insert_xt6 (uint64_t insn,
1354 int64_t value,
b9c361e0
JL
1355 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1356 const char **errmsg ATTRIBUTE_UNUSED)
1357{
b80c7270 1358 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5);
b9c361e0
JL
1359}
1360
0f873fd5
PB
1361static int64_t
1362extract_xt6 (uint64_t insn,
b9c361e0
JL
1363 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1364 int *invalid ATTRIBUTE_UNUSED)
43e65147 1365{
b80c7270 1366 return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f);
b9c361e0
JL
1367}
1368
b80c7270 1369/* The XT and XS fields in an DQ form VSX instruction. This is split. */
0f873fd5
PB
1370static uint64_t
1371insert_xtq6 (uint64_t insn,
1372 int64_t value,
b80c7270
AM
1373 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1374 const char **errmsg ATTRIBUTE_UNUSED)
1375{
1376 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2);
1377}
1378
0f873fd5
PB
1379static int64_t
1380extract_xtq6 (uint64_t insn,
b80c7270
AM
1381 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1382 int *invalid ATTRIBUTE_UNUSED)
1383{
1384 return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f);
1385}
1386
1387/* The XA field in an XX3 form instruction. This is split. */
1388
0f873fd5
PB
1389static uint64_t
1390insert_xa6 (uint64_t insn,
1391 int64_t value,
b9c361e0
JL
1392 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1393 const char **errmsg ATTRIBUTE_UNUSED)
1394{
b80c7270 1395 return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3);
b9c361e0
JL
1396}
1397
0f873fd5
PB
1398static int64_t
1399extract_xa6 (uint64_t insn,
b9c361e0
JL
1400 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1401 int *invalid ATTRIBUTE_UNUSED)
1402{
b80c7270 1403 return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
b9c361e0
JL
1404}
1405
b80c7270
AM
1406/* The XB field in an XX3 form instruction. This is split. */
1407
0f873fd5
PB
1408static uint64_t
1409insert_xb6 (uint64_t insn,
1410 int64_t value,
b80c7270
AM
1411 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1412 const char **errmsg ATTRIBUTE_UNUSED)
b9c361e0 1413{
b80c7270 1414 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
b9c361e0
JL
1415}
1416
0f873fd5
PB
1417static int64_t
1418extract_xb6 (uint64_t insn,
b80c7270
AM
1419 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1420 int *invalid ATTRIBUTE_UNUSED)
b9c361e0 1421{
b80c7270 1422 return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f);
b9c361e0
JL
1423}
1424
98553ad3
PB
1425/* The XA and XB fields in an XX3 form instruction when they must be the same.
1426 This is used for extended mnemonics like xvmovdp. The extraction function
1427 enforces that the fields are the same. */
b80c7270 1428
0f873fd5 1429static uint64_t
98553ad3
PB
1430insert_xab6 (uint64_t insn,
1431 int64_t value,
1432 ppc_cpu_t dialect,
1433 const char **errmsg)
b9c361e0 1434{
98553ad3
PB
1435 return insert_xa6 (insn, value, dialect, errmsg)
1436 | insert_xb6 (insn, value, dialect, errmsg);
b9c361e0
JL
1437}
1438
0f873fd5 1439static int64_t
98553ad3
PB
1440extract_xab6 (uint64_t insn,
1441 ppc_cpu_t dialect,
b80c7270 1442 int *invalid)
b9c361e0 1443{
98553ad3
PB
1444 int64_t xa6 = extract_xa6 (insn, dialect, invalid);
1445 int64_t xb6 = extract_xb6 (insn, dialect, invalid);
1446
1447 if (xa6 != xb6)
b80c7270 1448 *invalid = 1;
98553ad3 1449 return xa6;
b9c361e0
JL
1450}
1451
b80c7270 1452/* The XC field in an XX4 form instruction. This is split. */
252b5132 1453
0f873fd5
PB
1454static uint64_t
1455insert_xc6 (uint64_t insn,
1456 int64_t value,
fa452fa6 1457 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2fbfdc41 1458 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1459{
b80c7270 1460 return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
252b5132
RH
1461}
1462
0f873fd5
PB
1463static int64_t
1464extract_xc6 (uint64_t insn,
fa452fa6 1465 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270 1466 int *invalid ATTRIBUTE_UNUSED)
252b5132 1467{
b80c7270
AM
1468 return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
1469}
1470
0f873fd5
PB
1471static uint64_t
1472insert_dm (uint64_t insn,
1473 int64_t value,
b80c7270
AM
1474 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1475 const char **errmsg)
1476{
1477 if (value != 0 && value != 1)
1478 *errmsg = _("invalid constant");
1479 return insn | (((value) ? 3 : 0) << 8);
1480}
1481
0f873fd5
PB
1482static int64_t
1483extract_dm (uint64_t insn,
b80c7270
AM
1484 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1485 int *invalid)
1486{
0f873fd5 1487 int64_t value = (insn >> 8) & 3;
b80c7270 1488 if (value != 0 && value != 3)
252b5132 1489 *invalid = 1;
b80c7270 1490 return (value) ? 1 : 0;
252b5132
RH
1491}
1492
b80c7270 1493/* The VLESIMM field in an I16A form instruction. This is split. */
252b5132 1494
0f873fd5
PB
1495static uint64_t
1496insert_vlesi (uint64_t insn,
1497 int64_t value,
b80c7270
AM
1498 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1499 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1500{
b80c7270 1501 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132
RH
1502}
1503
0f873fd5
PB
1504static int64_t
1505extract_vlesi (uint64_t insn,
b80c7270
AM
1506 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1507 int *invalid ATTRIBUTE_UNUSED)
252b5132 1508{
0f873fd5 1509 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
b80c7270
AM
1510 value = (value ^ 0x8000) - 0x8000;
1511 return value;
252b5132
RH
1512}
1513
0f873fd5
PB
1514static uint64_t
1515insert_vlensi (uint64_t insn,
1516 int64_t value,
b80c7270
AM
1517 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1518 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1519{
b80c7270
AM
1520 value = -value;
1521 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132 1522}
0f873fd5
PB
1523static int64_t
1524extract_vlensi (uint64_t insn,
b80c7270 1525 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
9cf7e568 1526 int *invalid)
252b5132 1527{
0f873fd5 1528 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
b80c7270
AM
1529 value = (value ^ 0x8000) - 0x8000;
1530 /* Don't use for disassembly. */
1531 *invalid = 1;
1532 return -value;
252b5132
RH
1533}
1534
b80c7270 1535/* The VLEUIMM field in an I16A form instruction. This is split. */
252b5132 1536
0f873fd5
PB
1537static uint64_t
1538insert_vleui (uint64_t insn,
1539 int64_t value,
b80c7270
AM
1540 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1541 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1542{
b80c7270 1543 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132
RH
1544}
1545
0f873fd5
PB
1546static int64_t
1547extract_vleui (uint64_t insn,
b80c7270
AM
1548 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1549 int *invalid ATTRIBUTE_UNUSED)
252b5132 1550{
b80c7270
AM
1551 return ((insn >> 10) & 0xf800) | (insn & 0x7ff);
1552}
8427c424 1553
b80c7270
AM
1554/* The VLEUIMML field in an I16L form instruction. This is split. */
1555
0f873fd5
PB
1556static uint64_t
1557insert_vleil (uint64_t insn,
1558 int64_t value,
b80c7270
AM
1559 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1560 const char **errmsg ATTRIBUTE_UNUSED)
1561{
1562 return insn | ((value & 0xf800) << 5) | (value & 0x7ff);
252b5132
RH
1563}
1564
0f873fd5
PB
1565static int64_t
1566extract_vleil (uint64_t insn,
b80c7270
AM
1567 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1568 int *invalid ATTRIBUTE_UNUSED)
252b5132 1569{
b80c7270 1570 return ((insn >> 5) & 0xf800) | (insn & 0x7ff);
8ebac3aa 1571}
ba4e851b 1572
0f873fd5
PB
1573static uint64_t
1574insert_evuimm1_ex0 (uint64_t insn,
1575 int64_t value,
74081948
AF
1576 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1577 const char **errmsg)
1578{
71553718
AM
1579 if (value <= 0 || value > 0x1f)
1580 *errmsg = _("UIMM = 00000 is illegal");
1581 return insn | ((value & 0x1f) << 11);
74081948
AF
1582}
1583
0f873fd5
PB
1584static int64_t
1585extract_evuimm1_ex0 (uint64_t insn,
74081948
AF
1586 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1587 int *invalid)
1588{
0f873fd5 1589 int64_t value = ((insn >> 11) & 0x1f);
74081948
AF
1590 if (value == 0)
1591 *invalid = 1;
1592
1593 return value;
1594}
1595
0f873fd5
PB
1596static uint64_t
1597insert_evuimm2_ex0 (uint64_t insn,
1598 int64_t value,
b80c7270
AM
1599 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1600 const char **errmsg)
8ebac3aa 1601{
71553718
AM
1602 if (value <= 0 || value > 0x3e)
1603 *errmsg = _("UIMM = 00000 is illegal");
1604 return insn | ((value & 0x3e) << 10);
252b5132
RH
1605}
1606
0f873fd5
PB
1607static int64_t
1608extract_evuimm2_ex0 (uint64_t insn,
b80c7270
AM
1609 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1610 int *invalid)
8ebac3aa 1611{
0f873fd5 1612 int64_t value = ((insn >> 10) & 0x3e);
b80c7270
AM
1613 if (value == 0)
1614 *invalid = 1;
8ebac3aa 1615
b80c7270 1616 return value;
8ebac3aa
AM
1617}
1618
0f873fd5
PB
1619static uint64_t
1620insert_evuimm4_ex0 (uint64_t insn,
1621 int64_t value,
b80c7270
AM
1622 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1623 const char **errmsg)
252b5132 1624{
71553718
AM
1625 if (value <= 0 || value > 0x7c)
1626 *errmsg = _("UIMM = 00000 is illegal");
1627 return insn | ((value & 0x7c) << 9);
252b5132
RH
1628}
1629
0f873fd5
PB
1630static int64_t
1631extract_evuimm4_ex0 (uint64_t insn,
b80c7270
AM
1632 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1633 int *invalid)
252b5132 1634{
0f873fd5 1635 int64_t value = ((insn >> 9) & 0x7c);
b80c7270 1636 if (value == 0)
252b5132 1637 *invalid = 1;
b80c7270 1638
252b5132
RH
1639 return value;
1640}
1641
0f873fd5
PB
1642static uint64_t
1643insert_evuimm8_ex0 (uint64_t insn,
1644 int64_t value,
b80c7270
AM
1645 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1646 const char **errmsg)
1647{
71553718
AM
1648 if (value <= 0 || value > 0xf8)
1649 *errmsg = _("UIMM = 00000 is illegal");
1650 return insn | ((value & 0xf8) << 8);
252b5132
RH
1651}
1652
0f873fd5
PB
1653static int64_t
1654extract_evuimm8_ex0 (uint64_t insn,
b80c7270
AM
1655 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1656 int *invalid)
252b5132 1657{
0f873fd5 1658 int64_t value = ((insn >> 8) & 0xf8);
b80c7270 1659 if (value == 0)
252b5132 1660 *invalid = 1;
252b5132 1661
b80c7270
AM
1662 return value;
1663}
a680de9a 1664
0f873fd5
PB
1665static uint64_t
1666insert_evuimm_lt8 (uint64_t insn,
1667 int64_t value,
74081948
AF
1668 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1669 const char **errmsg)
1670{
71553718
AM
1671 if (value < 0 || value > 7)
1672 *errmsg = _("UIMM values >7 are illegal");
1673 return insn | ((value & 0x7) << 11);
74081948
AF
1674}
1675
0f873fd5
PB
1676static int64_t
1677extract_evuimm_lt8 (uint64_t insn,
74081948
AF
1678 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1679 int *invalid)
1680{
0f873fd5 1681 int64_t value = ((insn >> 11) & 0x1f);
74081948
AF
1682 if (value > 7)
1683 *invalid = 1;
1684
1685 return value;
1686}
1687
0f873fd5
PB
1688static uint64_t
1689insert_evuimm_lt16 (uint64_t insn,
1690 int64_t value,
b80c7270
AM
1691 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1692 const char **errmsg)
a680de9a 1693{
71553718
AM
1694 if (value < 0 || value > 15)
1695 *errmsg = _("UIMM values >15 are illegal");
1696 return insn | ((value & 0xf) << 11);
a680de9a
PB
1697}
1698
0f873fd5
PB
1699static int64_t
1700extract_evuimm_lt16 (uint64_t insn,
b80c7270
AM
1701 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1702 int *invalid)
a680de9a 1703{
0f873fd5 1704 int64_t value = ((insn >> 11) & 0x1f);
b80c7270
AM
1705 if (value > 15)
1706 *invalid = 1;
a680de9a 1707
b80c7270
AM
1708 return value;
1709}
a680de9a 1710
0f873fd5
PB
1711static uint64_t
1712insert_rD_rS_even (uint64_t insn,
1713 int64_t value,
b80c7270
AM
1714 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1715 const char **errmsg)
a680de9a 1716{
71553718
AM
1717 if ((value & 0x1) != 0)
1718 *errmsg = _("GPR odd is illegal");
1719 return insn | ((value & 0x1e) << 21);
a680de9a
PB
1720}
1721
0f873fd5
PB
1722static int64_t
1723extract_rD_rS_even (uint64_t insn,
b80c7270
AM
1724 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1725 int *invalid)
a680de9a 1726{
0f873fd5 1727 int64_t value = ((insn >> 21) & 0x1f);
b80c7270
AM
1728 if ((value & 0x1) != 0)
1729 *invalid = 1;
1730
1731 return value;
a680de9a
PB
1732}
1733
0f873fd5
PB
1734static uint64_t
1735insert_off_lsp (uint64_t insn,
1736 int64_t value,
b80c7270
AM
1737 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1738 const char **errmsg)
a680de9a 1739{
71553718
AM
1740 if (value <= 0 || value > 0x3)
1741 *errmsg = _("invalid offset");
1742 return insn | (value & 0x3);
a680de9a
PB
1743}
1744
0f873fd5
PB
1745static int64_t
1746extract_off_lsp (uint64_t insn,
b80c7270
AM
1747 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1748 int *invalid)
a680de9a 1749{
0f873fd5 1750 int64_t value = (insn & 0x3);
b80c7270
AM
1751 if (value == 0)
1752 *invalid = 1;
1753
1754 return value;
a680de9a 1755}
74081948 1756
0f873fd5
PB
1757static uint64_t
1758insert_off_spe2 (uint64_t insn,
1759 int64_t value,
74081948
AF
1760 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1761 const char **errmsg)
1762{
71553718
AM
1763 if (value <= 0 || value > 0x7)
1764 *errmsg = _("invalid offset");
1765 return insn | (value & 0x7);
74081948
AF
1766}
1767
0f873fd5
PB
1768static int64_t
1769extract_off_spe2 (uint64_t insn,
74081948
AF
1770 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1771 int *invalid)
1772{
0f873fd5 1773 int64_t value = (insn & 0x7);
74081948
AF
1774 if (value == 0)
1775 *invalid = 1;
1776
1777 return value;
1778}
1779
0f873fd5
PB
1780static uint64_t
1781insert_Ddd (uint64_t insn,
1782 int64_t value,
74081948
AF
1783 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1784 const char **errmsg)
1785{
71553718
AM
1786 if (value < 0 || value > 0x7)
1787 *errmsg = _("invalid Ddd value");
1788 return insn | ((value & 0x3) << 11) | ((value & 0x4) >> 2);
74081948
AF
1789}
1790
0f873fd5
PB
1791static int64_t
1792extract_Ddd (uint64_t insn,
74081948
AF
1793 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1794 int *invalid ATTRIBUTE_UNUSED)
1795{
1796 return ((insn >> 11) & 0x3) | ((insn << 2) & 0x4);
1797}
9cf7e568
AM
1798
1799static uint64_t
1800insert_sxl (uint64_t insn,
1801 int64_t value,
1802 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1803 const char **errmsg ATTRIBUTE_UNUSED)
1804{
1805 return insn | ((value & 0x1) << 11);
1806}
1807
1808static int64_t
1809extract_sxl (uint64_t insn,
1810 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1811 int *invalid)
1812{
1813 if (*invalid < 0)
1814 return 1;
1815 return (insn >> 11) & 0x1;
1816}
b80c7270
AM
1817\f
1818/* The operands table.
a680de9a 1819
b80c7270 1820 The fields are bitm, shift, insert, extract, flags.
2fbfdc41 1821
b80c7270
AM
1822 We used to put parens around the various additions, like the one
1823 for BA just below. However, that caused trouble with feeble
1824 compilers with a limit on depth of a parenthesized expression, like
1825 (reportedly) the compiler in Microsoft Developer Studio 5. So we
1826 omit the parens, since the macros are never used in a context where
1827 the addition will be ambiguous. */
1828
1829const struct powerpc_operand powerpc_operands[] =
c168870a 1830{
b80c7270
AM
1831 /* The zero index is used to indicate the end of the list of
1832 operands. */
1833#define UNUSED 0
1834 { 0, 0, NULL, NULL, 0 },
1835
1836 /* The BA field in an XL form instruction. */
1837#define BA UNUSED + 1
1838 /* The BI field in a B form or XL form instruction. */
1839#define BI BA
1840#define BI_MASK (0x1f << 16)
1841 { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
1842
98553ad3
PB
1843 /* The BT, BA and BB fields in a XL form instruction when they must all
1844 be the same. */
1845#define BTAB BA + 1
1846 { 0x1f, 21, insert_btab, extract_btab, PPC_OPERAND_CR_BIT },
b80c7270
AM
1847
1848 /* The BB field in an XL form instruction. */
98553ad3 1849#define BB BTAB + 1
b80c7270
AM
1850#define BB_MASK (0x1f << 11)
1851 { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT },
1852
98553ad3
PB
1853 /* The BA and BB fields in a XL form instruction when they must be
1854 the same. */
1855#define BAB BB + 1
1856 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_CR_BIT },
1857
1858 /* The VRA and VRB fields in a VX form instruction when they must be the same.
1859 This is used for extended mnemonics like vmr. */
1860#define VAB BAB + 1
1861 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_VR },
1862
1863 /* The RA and RB fields in a VX form instruction when they must be the same.
1864 This is used for extended mnemonics like evmr. */
1865#define RAB VAB + 1
1866 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_GPR },
b80c7270
AM
1867
1868 /* The BD field in a B form instruction. The lower two bits are
1869 forced to zero. */
98553ad3 1870#define BD RAB + 1
b80c7270
AM
1871 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
1872
1873 /* The BD field in a B form instruction when absolute addressing is
1874 used. */
1875#define BDA BD + 1
1876 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
1877
1878 /* The BD field in a B form instruction when the - modifier is used.
1879 This sets the y bit of the BO field appropriately. */
1880#define BDM BDA + 1
1881 { 0xfffc, 0, insert_bdm, extract_bdm,
1882 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
1883
1884 /* The BD field in a B form instruction when the - modifier is used
1885 and absolute address is used. */
1886#define BDMA BDM + 1
1887 { 0xfffc, 0, insert_bdm, extract_bdm,
1888 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
1889
1890 /* The BD field in a B form instruction when the + modifier is used.
1891 This sets the y bit of the BO field appropriately. */
1892#define BDP BDMA + 1
1893 { 0xfffc, 0, insert_bdp, extract_bdp,
1894 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
1895
1896 /* The BD field in a B form instruction when the + modifier is used
1897 and absolute addressing is used. */
1898#define BDPA BDP + 1
1899 { 0xfffc, 0, insert_bdp, extract_bdp,
1900 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
1901
1902 /* The BF field in an X or XL form instruction. */
1903#define BF BDPA + 1
1904 /* The CRFD field in an X form instruction. */
1905#define CRFD BF
1906 /* The CRD field in an XL form instruction. */
1907#define CRD BF
1908 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG },
1909
1910 /* The BF field in an X or XL form instruction. */
1911#define BFF BF + 1
1912 { 0x7, 23, NULL, NULL, 0 },
1913
1914 /* An optional BF field. This is used for comparison instructions,
1915 in which an omitted BF field is taken as zero. */
1916#define OBF BFF + 1
1917 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
1918
1919 /* The BFA field in an X or XL form instruction. */
1920#define BFA OBF + 1
1921 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG },
1922
1923 /* The BO field in a B form instruction. Certain values are
1924 illegal. */
1925#define BO BFA + 1
1926#define BO_MASK (0x1f << 21)
1927 { 0x1f, 21, insert_bo, extract_bo, 0 },
1928
aae9718e
PB
1929 /* The BO field in a B form instruction when the - modifier is used. */
1930#define BOM BO + 1
1931 { 0x1f, 21, insert_bom, extract_bom, 0 },
1932
1933 /* The BO field in a B form instruction when the + modifier is used. */
1934#define BOP BOM + 1
1935 { 0x1f, 21, insert_bop, extract_bop, 0 },
b80c7270
AM
1936
1937 /* The RM field in an X form instruction. */
aae9718e 1938#define RM BOP + 1
74081948 1939#define DD RM
b80c7270
AM
1940 { 0x3, 11, NULL, NULL, 0 },
1941
1942#define BH RM + 1
1943 { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
1944
1945 /* The BT field in an X or XL form instruction. */
1946#define BT BH + 1
1947 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT },
1948
96a86c01
AM
1949 /* The BT field in a mtfsb0 or mtfsb1 instruction. */
1950#define BTF BT + 1
1951 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT | PPC_OPERAND_CR_REG },
1952
b80c7270 1953 /* The BI16 field in a BD8 form instruction. */
96a86c01 1954#define BI16 BTF + 1
b80c7270
AM
1955 { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT },
1956
1957 /* The BI32 field in a BD15 form instruction. */
1958#define BI32 BI16 + 1
1959 { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
98e69875 1960
b80c7270
AM
1961 /* The BO32 field in a BD15 form instruction. */
1962#define BO32 BI32 + 1
1963 { 0x3, 20, NULL, NULL, 0 },
c168870a 1964
b80c7270
AM
1965 /* The B8 field in a BD8 form instruction. */
1966#define B8 BO32 + 1
1967 { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 1968
b80c7270
AM
1969 /* The B15 field in a BD15 form instruction. The lowest bit is
1970 forced to zero. */
1971#define B15 B8 + 1
1972 { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 1973
b80c7270
AM
1974 /* The B24 field in a BD24 form instruction. The lowest bit is
1975 forced to zero. */
1976#define B24 B15 + 1
1977 { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 1978
b80c7270
AM
1979 /* The condition register number portion of the BI field in a B form
1980 or XL form instruction. This is used for the extended
1981 conditional branch mnemonics, which set the lower two bits of the
1982 BI field. This field is optional. */
1983#define CR B24 + 1
1984 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
c168870a 1985
b80c7270
AM
1986 /* The CRB field in an X form instruction. */
1987#define CRB CR + 1
1988 /* The MB field in an M form instruction. */
1989#define MB CRB
1990#define MB_MASK (0x1f << 6)
1991 { 0x1f, 6, NULL, NULL, 0 },
c168870a 1992
b80c7270
AM
1993 /* The CRD32 field in an XL form instruction. */
1994#define CRD32 CRB + 1
1995 { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG },
c168870a 1996
b80c7270
AM
1997 /* The CRFS field in an X form instruction. */
1998#define CRFS CRD32 + 1
1999 { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG },
b9c361e0 2000
b80c7270
AM
2001#define CRS CRFS + 1
2002 { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
b9c361e0 2003
b80c7270
AM
2004 /* The CT field in an X form instruction. */
2005#define CT CRS + 1
2006 /* The MO field in an mbar instruction. */
2007#define MO CT
2008 { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2009
b80c7270
AM
2010 /* The D field in a D form instruction. This is a displacement off
2011 a register, and implies that the next operand is a register in
2012 parentheses. */
2013#define D CT + 1
2014 { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
aea77599 2015
b80c7270
AM
2016 /* The D8 field in a D form instruction. This is a displacement off
2017 a register, and implies that the next operand is a register in
2018 parentheses. */
2019#define D8 D + 1
2020 { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
7b934113 2021
b80c7270
AM
2022 /* The DCMX field in an X form instruction. */
2023#define DCMX D8 + 1
2024 { 0x7f, 16, NULL, NULL, 0 },
7b934113 2025
b80c7270
AM
2026 /* The split DCMX field in an X form instruction. */
2027#define DCMXS DCMX + 1
2028 { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 },
73f07bff 2029
b80c7270
AM
2030 /* The DQ field in a DQ form instruction. This is like D, but the
2031 lower four bits are forced to zero. */
2032#define DQ DCMXS + 1
2033 { 0xfff0, 0, NULL, NULL,
2034 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },
73f07bff 2035
b80c7270
AM
2036 /* The DS field in a DS form instruction. This is like D, but the
2037 lower two bits are forced to zero. */
2038#define DS DQ + 1
2039 { 0xfffc, 0, NULL, NULL,
2040 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
7b934113 2041
b80c7270
AM
2042 /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits
2043 unsigned imediate */
2044#define DUIS DS + 1
2045#define BHRBE DUIS
2046 { 0x3ff, 11, NULL, NULL, 0 },
aea77599 2047
b80c7270
AM
2048 /* The split D field in a DX form instruction. */
2049#define DXD DUIS + 1
2050 { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd,
2051 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
7b934113 2052
b80c7270
AM
2053 /* The split ND field in a DX form instruction.
2054 This is the same as the DX field, only negated. */
2055#define NDXD DXD + 1
2056 { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn,
2057 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
7b934113 2058
b80c7270
AM
2059 /* The E field in a wrteei instruction. */
2060 /* And the W bit in the pair singles instructions. */
2061 /* And the ST field in a VX form instruction. */
2062#define E NDXD + 1
2063#define PSW E
2064#define ST E
2065 { 0x1, 15, NULL, NULL, 0 },
aea77599 2066
b80c7270
AM
2067 /* The FL1 field in a POWER SC form instruction. */
2068#define FL1 E + 1
2069 /* The U field in an X form instruction. */
2070#define U FL1
2071 { 0xf, 12, NULL, NULL, 0 },
73f07bff 2072
b80c7270
AM
2073 /* The FL2 field in a POWER SC form instruction. */
2074#define FL2 FL1 + 1
2075 { 0x7, 2, NULL, NULL, 0 },
73f07bff 2076
b80c7270
AM
2077 /* The FLM field in an XFL form instruction. */
2078#define FLM FL2 + 1
2079 { 0xff, 17, NULL, NULL, 0 },
73f07bff 2080
b80c7270
AM
2081 /* The FRA field in an X or A form instruction. */
2082#define FRA FLM + 1
2083#define FRA_MASK (0x1f << 16)
2084 { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2085
b80c7270
AM
2086 /* The FRAp field of DFP instructions. */
2087#define FRAp FRA + 1
2088 { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2089
b80c7270
AM
2090 /* The FRB field in an X or A form instruction. */
2091#define FRB FRAp + 1
2092#define FRB_MASK (0x1f << 11)
2093 { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR },
2094
2095 /* The FRBp field of DFP instructions. */
2096#define FRBp FRB + 1
2097 { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2098
b80c7270
AM
2099 /* The FRC field in an A form instruction. */
2100#define FRC FRBp + 1
2101#define FRC_MASK (0x1f << 6)
2102 { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2103
b80c7270
AM
2104 /* The FRS field in an X form instruction or the FRT field in a D, X
2105 or A form instruction. */
2106#define FRS FRC + 1
2107#define FRT FRS
2108 { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2109
b80c7270
AM
2110 /* The FRSp field of stfdp or the FRTp field of lfdp and DFP
2111 instructions. */
2112#define FRSp FRS + 1
2113#define FRTp FRSp
2114 { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2115
b80c7270
AM
2116 /* The FXM field in an XFX instruction. */
2117#define FXM FRSp + 1
2118 { 0xff, 12, insert_fxm, extract_fxm, 0 },
252b5132 2119
b80c7270
AM
2120 /* Power4 version for mfcr. */
2121#define FXM4 FXM + 1
9cf7e568 2122 { 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL },
252b5132 2123
b80c7270 2124 /* The IMM20 field in an LI instruction. */
9cf7e568 2125#define IMM20 FXM4 + 1
b80c7270 2126 { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED},
252b5132 2127
b80c7270
AM
2128 /* The L field in a D or X form instruction. */
2129#define L IMM20 + 1
2130 { 0x1, 21, NULL, NULL, 0 },
252b5132 2131
b80c7270
AM
2132 /* The optional L field in tlbie and tlbiel instructions. */
2133#define LOPT L + 1
2134 /* The R field in a HTM X form instruction. */
2135#define HTM_R LOPT
2136 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 2137
b80c7270
AM
2138 /* The optional (for 32-bit) L field in cmp[l][i] instructions. */
2139#define L32OPT LOPT + 1
2140 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 },
252b5132 2141
b80c7270
AM
2142 /* The L field in dcbf instruction. */
2143#define L2OPT L32OPT + 1
2144 { 0x3, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 2145
b80c7270
AM
2146 /* The LEV field in a POWER SVC / POWER9 SCV form instruction. */
2147#define SVC_LEV L2OPT + 1
2148 { 0x7f, 5, NULL, NULL, 0 },
252b5132 2149
b80c7270
AM
2150 /* The LEV field in an SC form instruction. */
2151#define LEV SVC_LEV + 1
2152 { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 2153
b80c7270
AM
2154 /* The LI field in an I form instruction. The lower two bits are
2155 forced to zero. */
2156#define LI LEV + 1
2157 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
252b5132 2158
b80c7270
AM
2159 /* The LI field in an I form instruction when used as an absolute
2160 address. */
2161#define LIA LI + 1
2162 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
252b5132 2163
b80c7270
AM
2164 /* The LS or WC field in an X (sync or wait) form instruction. */
2165#define LS LIA + 1
2166#define WC LS
2167 { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
252b5132 2168
b80c7270
AM
2169 /* The ME field in an M form instruction. */
2170#define ME LS + 1
2171#define ME_MASK (0x1f << 1)
2172 { 0x1f, 1, NULL, NULL, 0 },
989993d8 2173
b80c7270
AM
2174 /* The MB and ME fields in an M form instruction expressed a single
2175 operand which is a bitmask indicating which bits to select. This
2176 is a two operand form using PPC_OPERAND_NEXT. See the
2177 description in opcode/ppc.h for what this means. */
2178#define MBE ME + 1
2179 { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },
2180 { -1, 0, insert_mbe, extract_mbe, 0 },
989993d8 2181
b80c7270
AM
2182 /* The MB or ME field in an MD or MDS form instruction. The high
2183 bit is wrapped to the low end. */
2184#define MB6 MBE + 2
2185#define ME6 MB6
2186#define MB6_MASK (0x3f << 5)
2187 { 0x3f, 5, insert_mb6, extract_mb6, 0 },
989993d8 2188
b80c7270
AM
2189 /* The NB field in an X form instruction. The value 32 is stored as
2190 0. */
2191#define NB MB6 + 1
2192 { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 },
252b5132 2193
b80c7270
AM
2194 /* The NBI field in an lswi instruction, which has special value
2195 restrictions. The value 32 is stored as 0. */
2196#define NBI NB + 1
2197 { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 },
252b5132 2198
b80c7270
AM
2199 /* The NSI field in a D form instruction. This is the same as the
2200 SI field, only negated. */
2201#define NSI NBI + 1
2202 { 0xffff, 0, insert_nsi, extract_nsi,
2203 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
252b5132 2204
b80c7270
AM
2205 /* The NSI field in a D form instruction when we accept a wide range
2206 of positive values. */
2207#define NSISIGNOPT NSI + 1
2208 { 0xffff, 0, insert_nsi, extract_nsi,
2209 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
252b5132 2210
b80c7270
AM
2211 /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */
2212#define RA NSISIGNOPT + 1
2213#define RA_MASK (0x1f << 16)
2214 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
252b5132 2215
b80c7270
AM
2216 /* As above, but 0 in the RA field means zero, not r0. */
2217#define RA0 RA + 1
2218 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 },
73f07bff 2219
b80c7270
AM
2220 /* The RA field in the DQ form lq or an lswx instruction, which have
2221 special value restrictions. */
2222#define RAQ RA0 + 1
2223#define RAX RAQ
2224 { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 },
73f07bff 2225
b80c7270
AM
2226 /* The RA field in a D or X form instruction which is an updating
2227 load, which means that the RA field may not be zero and may not
2228 equal the RT field. */
2229#define RAL RAQ + 1
2230 { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 },
252b5132 2231
b80c7270
AM
2232 /* The RA field in an lmw instruction, which has special value
2233 restrictions. */
2234#define RAM RAL + 1
2235 { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 },
252b5132 2236
b80c7270
AM
2237 /* The RA field in a D or X form instruction which is an updating
2238 store or an updating floating point load, which means that the RA
2239 field may not be zero. */
2240#define RAS RAM + 1
2241 { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 },
73f07bff 2242
b80c7270
AM
2243 /* The RA field of the tlbwe, dccci and iccci instructions,
2244 which are optional. */
2245#define RAOPT RAS + 1
2246 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 2247
b80c7270
AM
2248 /* The RB field in an X, XO, M, or MDS form instruction. */
2249#define RB RAOPT + 1
2250#define RB_MASK (0x1f << 11)
2251 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR },
adadcc0c 2252
98553ad3
PB
2253 /* The RS and RB fields in an X form instruction when they must be the same.
2254 This is used for extended mnemonics like mr. */
2255#define RSB RB + 1
2256 { 0x1f, 11, insert_rsb, extract_rsb, PPC_OPERAND_GPR },
adadcc0c 2257
b80c7270
AM
2258 /* The RB field in an lswx instruction, which has special value
2259 restrictions. */
98553ad3 2260#define RBX RSB + 1
b80c7270 2261 { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR },
adadcc0c 2262
b80c7270
AM
2263 /* The RB field of the dccci and iccci instructions, which are optional. */
2264#define RBOPT RBX + 1
2265 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 2266
b80c7270
AM
2267 /* The RC register field in an maddld, maddhd or maddhdu instruction. */
2268#define RC RBOPT + 1
2269 { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR },
73f07bff 2270
b80c7270
AM
2271 /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form
2272 instruction or the RT field in a D, DS, X, XFX or XO form
2273 instruction. */
2274#define RS RC + 1
2275#define RT RS
2276#define RT_MASK (0x1f << 21)
2277#define RD RS
2278 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR },
252b5132 2279
b80c7270
AM
2280#define RD_EVEN RS + 1
2281#define RS_EVEN RD_EVEN
2282 { 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR },
252b5132 2283
b80c7270
AM
2284 /* The RS and RT fields of the DS form stq and DQ form lq instructions,
2285 which have special value restrictions. */
2286#define RSQ RS_EVEN + 1
2287#define RTQ RSQ
2288#define Q_MASK (1 << 21)
2289 { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
73f07bff 2290
b80c7270
AM
2291 /* The RS field of the tlbwe instruction, which is optional. */
2292#define RSO RSQ + 1
2293#define RTO RSO
2294 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 2295
b80c7270
AM
2296 /* The RX field of the SE_RR form instruction. */
2297#define RX RSO + 1
2298 { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR },
252b5132 2299
b80c7270
AM
2300 /* The ARX field of the SE_RR form instruction. */
2301#define ARX RX + 1
2302 { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR },
252b5132 2303
b80c7270
AM
2304 /* The RY field of the SE_RR form instruction. */
2305#define RY ARX + 1
2306#define RZ RY
2307 { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR },
252b5132 2308
b80c7270
AM
2309 /* The ARY field of the SE_RR form instruction. */
2310#define ARY RY + 1
2311 { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR },
989993d8 2312
b80c7270
AM
2313 /* The SCLSCI8 field in a D form instruction. */
2314#define SCLSCI8 ARY + 1
2315 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 },
989993d8 2316
b80c7270
AM
2317 /* The SCLSCI8N field in a D form instruction. This is the same as the
2318 SCLSCI8 field, only negated. */
2319#define SCLSCI8N SCLSCI8 + 1
2320 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n,
2321 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
989993d8 2322
b80c7270
AM
2323 /* The SD field of the SD4 form instruction. */
2324#define SE_SD SCLSCI8N + 1
2325 { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS },
73f07bff 2326
b80c7270
AM
2327 /* The SD field of the SD4 form instruction, for halfword. */
2328#define SE_SDH SE_SD + 1
71553718 2329 { 0x1e, 7, NULL, NULL, PPC_OPERAND_PARENS },
73f07bff 2330
b80c7270
AM
2331 /* The SD field of the SD4 form instruction, for word. */
2332#define SE_SDW SE_SDH + 1
71553718 2333 { 0x3c, 6, NULL, NULL, PPC_OPERAND_PARENS },
b9c361e0 2334
b80c7270
AM
2335 /* The SH field in an X or M form instruction. */
2336#define SH SE_SDW + 1
2337#define SH_MASK (0x1f << 11)
2338 /* The other UIMM field in a EVX form instruction. */
2339#define EVUIMM SH
2340 /* The FC field in an atomic X form instruction. */
2341#define FC SH
2342 { 0x1f, 11, NULL, NULL, 0 },
b9c361e0 2343
74081948
AF
2344#define EVUIMM_LT8 SH + 1
2345 { 0x1f, 11, insert_evuimm_lt8, extract_evuimm_lt8, 0 },
2346
2347#define EVUIMM_LT16 EVUIMM_LT8 + 1
b80c7270 2348 { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 },
b9c361e0 2349
b80c7270
AM
2350 /* The SI field in a HTM X form instruction. */
2351#define HTM_SI EVUIMM_LT16 + 1
2352 { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED },
943d398f 2353
b80c7270
AM
2354 /* The SH field in an MD form instruction. This is split. */
2355#define SH6 HTM_SI + 1
2356#define SH6_MASK ((0x1f << 11) | (1 << 1))
2357 { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 },
b9c361e0 2358
b80c7270
AM
2359 /* The SH field of some variants of the tlbre and tlbwe
2360 instructions, and the ELEV field of the e_sc instruction. */
2361#define SHO SH6 + 1
2362#define ELEV SHO
2363 { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2364
b80c7270
AM
2365 /* The SI field in a D form instruction. */
2366#define SI SHO + 1
2367 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
b9c361e0 2368
b80c7270
AM
2369 /* The SI field in a D form instruction when we accept a wide range
2370 of positive values. */
2371#define SISIGNOPT SI + 1
2372 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
b9c361e0 2373
b80c7270
AM
2374 /* The SI8 field in a D form instruction. */
2375#define SI8 SISIGNOPT + 1
2376 { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
b9c361e0 2377
b80c7270
AM
2378 /* The SPR field in an XFX form instruction. This is flipped--the
2379 lower 5 bits are stored in the upper 5 and vice- versa. */
2380#define SPR SI8 + 1
2381#define PMR SPR
2382#define TMR SPR
2383#define SPR_MASK (0x3ff << 11)
2384 { 0x3ff, 11, insert_spr, extract_spr, PPC_OPERAND_SPR },
b9c361e0 2385
b80c7270
AM
2386 /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */
2387#define SPRBAT SPR + 1
fa758a70
AC
2388#define SPRBAT_MASK (0xc1 << 11)
2389 { 0x7, PPC_OPSHIFT_INV, insert_sprbat, extract_sprbat, PPC_OPERAND_SPR },
2390
2391 /* The GQR index number in an XFX form m[ft]gqr instruction. */
2392#define SPRGQR SPRBAT + 1
2393#define SPRGQR_MASK (0x7 << 16)
2394 { 0x7, 16, NULL, NULL, PPC_OPERAND_GQR },
b9c361e0 2395
b80c7270 2396 /* The SPRG register number in an XFX form m[ft]sprg instruction. */
fa758a70 2397#define SPRG SPRGQR + 1
b80c7270 2398 { 0x1f, 16, insert_sprg, extract_sprg, PPC_OPERAND_SPR },
b9c361e0 2399
b80c7270
AM
2400 /* The SR field in an X form instruction. */
2401#define SR SPRG + 1
2402 /* The 4-bit UIMM field in a VX form instruction. */
2403#define UIMM4 SR
2404 { 0xf, 16, NULL, NULL, 0 },
b9c361e0 2405
b80c7270
AM
2406 /* The STRM field in an X AltiVec form instruction. */
2407#define STRM SR + 1
2408 /* The T field in a tlbilx form instruction. */
2409#define T STRM
2410 /* The L field in wclr instructions. */
2411#define L2 STRM
2412 { 0x3, 21, NULL, NULL, 0 },
252b5132 2413
b80c7270
AM
2414 /* The ESYNC field in an X (sync) form instruction. */
2415#define ESYNC STRM + 1
2416 { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL },
252b5132 2417
b80c7270
AM
2418 /* The SV field in a POWER SC form instruction. */
2419#define SV ESYNC + 1
2420 { 0x3fff, 2, NULL, NULL, 0 },
252b5132 2421
b80c7270
AM
2422 /* The TBR field in an XFX form instruction. This is like the SPR
2423 field, but it is optional. */
2424#define TBR SV + 1
2425 { 0x3ff, 11, insert_tbr, extract_tbr,
9cf7e568 2426 PPC_OPERAND_SPR | PPC_OPERAND_OPTIONAL },
252b5132 2427
b80c7270 2428 /* The TO field in a D or X form instruction. */
9cf7e568 2429#define TO TBR + 1
b80c7270
AM
2430#define DUI TO
2431#define TO_MASK (0x1f << 21)
2432 { 0x1f, 21, NULL, NULL, 0 },
252b5132 2433
b80c7270
AM
2434 /* The UI field in a D form instruction. */
2435#define UI TO + 1
2436 { 0xffff, 0, NULL, NULL, 0 },
252b5132 2437
b80c7270
AM
2438#define UISIGNOPT UI + 1
2439 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT },
da99ee72 2440
b80c7270
AM
2441 /* The IMM field in an SE_IM5 instruction. */
2442#define UI5 UISIGNOPT + 1
2443 { 0x1f, 4, NULL, NULL, 0 },
da99ee72 2444
b80c7270
AM
2445 /* The OIMM field in an SE_OIM5 instruction. */
2446#define OIMM5 UI5 + 1
71553718 2447 { 0x1f, 4, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 },
da99ee72 2448
b80c7270
AM
2449 /* The UI7 field in an SE_LI instruction. */
2450#define UI7 OIMM5 + 1
2451 { 0x7f, 4, NULL, NULL, 0 },
da99ee72 2452
b80c7270
AM
2453 /* The VA field in a VA, VX or VXR form instruction. */
2454#define VA UI7 + 1
2455 { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR },
da99ee72 2456
b80c7270
AM
2457 /* The VB field in a VA, VX or VXR form instruction. */
2458#define VB VA + 1
2459 { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR },
da99ee72 2460
b80c7270
AM
2461 /* The VC field in a VA form instruction. */
2462#define VC VB + 1
2463 { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR },
252b5132 2464
b80c7270
AM
2465 /* The VD or VS field in a VA, VX, VXR or X form instruction. */
2466#define VD VC + 1
2467#define VS VD
2468 { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR },
252b5132 2469
b80c7270
AM
2470 /* The SIMM field in a VX form instruction, and TE in Z form. */
2471#define SIMM VD + 1
2472#define TE SIMM
2473 { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED},
252b5132 2474
b80c7270
AM
2475 /* The UIMM field in a VX form instruction. */
2476#define UIMM SIMM + 1
2477#define DCTL UIMM
2478 { 0x1f, 16, NULL, NULL, 0 },
9b4e5766 2479
b80c7270
AM
2480 /* The 3-bit UIMM field in a VX form instruction. */
2481#define UIMM3 UIMM + 1
2482 { 0x7, 16, NULL, NULL, 0 },
9b4e5766 2483
b80c7270
AM
2484 /* The 6-bit UIM field in a X form instruction. */
2485#define UIM6 UIMM3 + 1
2486 { 0x3f, 16, NULL, NULL, 0 },
9b4e5766 2487
b80c7270
AM
2488 /* The SIX field in a VX form instruction. */
2489#define SIX UIM6 + 1
74081948 2490#define MMMM SIX
b80c7270 2491 { 0xf, 11, NULL, NULL, 0 },
9b4e5766 2492
b80c7270
AM
2493 /* The PS field in a VX form instruction. */
2494#define PS SIX + 1
2495 { 0x1, 9, NULL, NULL, 0 },
a680de9a 2496
b80c7270
AM
2497 /* The SHB field in a VA form instruction. */
2498#define SHB PS + 1
2499 { 0xf, 6, NULL, NULL, 0 },
a680de9a 2500
b80c7270 2501 /* The other UIMM field in a half word EVX form instruction. */
74081948
AF
2502#define EVUIMM_1 SHB + 1
2503 { 0x1f, 11, NULL, NULL, PPC_OPERAND_PARENS },
2504
2505#define EVUIMM_1_EX0 EVUIMM_1 + 1
2506 { 0x1f, 11, insert_evuimm1_ex0, extract_evuimm1_ex0, PPC_OPERAND_PARENS },
2507
2508#define EVUIMM_2 EVUIMM_1_EX0 + 1
b80c7270 2509 { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 2510
b80c7270
AM
2511#define EVUIMM_2_EX0 EVUIMM_2 + 1
2512 { 0x3e, 10, insert_evuimm2_ex0, extract_evuimm2_ex0, PPC_OPERAND_PARENS },
9b4e5766 2513
b80c7270
AM
2514 /* The other UIMM field in a word EVX form instruction. */
2515#define EVUIMM_4 EVUIMM_2_EX0 + 1
2516 { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 2517
b80c7270
AM
2518#define EVUIMM_4_EX0 EVUIMM_4 + 1
2519 { 0x7c, 9, insert_evuimm4_ex0, extract_evuimm4_ex0, PPC_OPERAND_PARENS },
9b4e5766 2520
b80c7270
AM
2521 /* The other UIMM field in a double EVX form instruction. */
2522#define EVUIMM_8 EVUIMM_4_EX0 + 1
2523 { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 2524
b80c7270
AM
2525#define EVUIMM_8_EX0 EVUIMM_8 + 1
2526 { 0xf8, 8, insert_evuimm8_ex0, extract_evuimm8_ex0, PPC_OPERAND_PARENS },
9b4e5766 2527
b80c7270
AM
2528 /* The WS or DRM field in an X form instruction. */
2529#define WS EVUIMM_8_EX0 + 1
2530#define DRM WS
74081948
AF
2531 /* The NNN field in a VX form instruction for SPE2 */
2532#define NNN WS
b80c7270 2533 { 0x7, 11, NULL, NULL, 0 },
9b4e5766 2534
b80c7270
AM
2535 /* PowerPC paired singles extensions. */
2536 /* W bit in the pair singles instructions for x type instructions. */
2537#define PSWM WS + 1
2538 /* The BO16 field in a BD8 form instruction. */
2539#define BO16 PSWM
2540 { 0x1, 10, 0, 0, 0 },
9b4e5766 2541
b80c7270
AM
2542 /* IDX bits for quantization in the pair singles instructions. */
2543#define PSQ PSWM + 1
2544 { 0x7, 12, 0, 0, PPC_OPERAND_GQR },
066be9f7 2545
b80c7270
AM
2546 /* IDX bits for quantization in the pair singles x-type instructions. */
2547#define PSQM PSQ + 1
2548 { 0x7, 7, 0, 0, PPC_OPERAND_GQR },
066be9f7 2549
b80c7270
AM
2550 /* Smaller D field for quantization in the pair singles instructions. */
2551#define PSD PSQM + 1
2552 { 0xfff, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
066be9f7 2553
b80c7270
AM
2554 /* The L field in an mtmsrd or A form instruction or R or W in an
2555 X form. */
2556#define A_L PSD + 1
2557#define W A_L
2558#define X_R A_L
2559 { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL },
066be9f7 2560
b80c7270
AM
2561 /* The RMC or CY field in a Z23 form instruction. */
2562#define RMC A_L + 1
2563#define CY RMC
2564 { 0x3, 9, NULL, NULL, 0 },
066be9f7 2565
b80c7270
AM
2566#define R RMC + 1
2567 { 0x1, 16, NULL, NULL, 0 },
066be9f7 2568
b80c7270
AM
2569#define RIC R + 1
2570 { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL },
7b934113 2571
b80c7270
AM
2572#define PRS RIC + 1
2573 { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2574
b80c7270
AM
2575#define SP PRS + 1
2576 { 0x3, 19, NULL, NULL, 0 },
b9c361e0 2577
b80c7270
AM
2578#define S SP + 1
2579 { 0x1, 20, NULL, NULL, 0 },
b9c361e0 2580
b80c7270
AM
2581 /* The S field in a XL form instruction. */
2582#define SXL S + 1
9cf7e568 2583 { 0x1, 11, insert_sxl, extract_sxl, PPC_OPERAND_OPTIONAL },
b80c7270
AM
2584
2585 /* SH field starting at bit position 16. */
9cf7e568 2586#define SH16 SXL + 1
b80c7270
AM
2587 /* The DCM and DGM fields in a Z form instruction. */
2588#define DCM SH16
2589#define DGM DCM
2590 { 0x3f, 10, NULL, NULL, 0 },
2591
2592 /* The EH field in larx instruction. */
2593#define EH SH16 + 1
2594 { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2595
b80c7270
AM
2596 /* The L field in an mtfsf or XFL form instruction. */
2597 /* The A field in a HTM X form instruction. */
2598#define XFL_L EH + 1
2599#define HTM_A XFL_L
2600 { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL},
b9c361e0 2601
b80c7270
AM
2602 /* Xilinx APU related masks and macros */
2603#define FCRT XFL_L + 1
2604#define FCRT_MASK (0x1f << 21)
2605 { 0x1f, 21, 0, 0, PPC_OPERAND_FCR },
b9c361e0 2606
b80c7270
AM
2607 /* Xilinx FSL related masks and macros */
2608#define FSL FCRT + 1
2609#define FSL_MASK (0x1f << 11)
2610 { 0x1f, 11, 0, 0, PPC_OPERAND_FSL },
b9c361e0 2611
b80c7270
AM
2612 /* Xilinx UDI related masks and macros */
2613#define URT FSL + 1
2614 { 0x1f, 21, 0, 0, PPC_OPERAND_UDI },
b9c361e0 2615
b80c7270
AM
2616#define URA URT + 1
2617 { 0x1f, 16, 0, 0, PPC_OPERAND_UDI },
b9c361e0 2618
b80c7270
AM
2619#define URB URA + 1
2620 { 0x1f, 11, 0, 0, PPC_OPERAND_UDI },
b9c361e0 2621
b80c7270
AM
2622#define URC URB + 1
2623 { 0x1f, 6, 0, 0, PPC_OPERAND_UDI },
e3c2f928 2624
b80c7270
AM
2625 /* The VLESIMM field in a D form instruction. */
2626#define VLESIMM URC + 1
2627 { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi,
2628 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
e3c2f928 2629
b80c7270
AM
2630 /* The VLENSIMM field in a D form instruction. */
2631#define VLENSIMM VLESIMM + 1
2632 { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi,
2633 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
e3c2f928 2634
b80c7270
AM
2635 /* The VLEUIMM field in a D form instruction. */
2636#define VLEUIMM VLENSIMM + 1
2637 { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 },
e3c2f928 2638
b80c7270
AM
2639 /* The VLEUIMML field in a D form instruction. */
2640#define VLEUIMML VLEUIMM + 1
2641 { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 },
e3c2f928 2642
b80c7270
AM
2643 /* The XT and XS fields in an XX1 or XX3 form instruction. This is
2644 split. */
2645#define XS6 VLEUIMML + 1
2646#define XT6 XS6
2647 { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR },
e3c2f928 2648
b80c7270
AM
2649 /* The XT and XS fields in an DQ form VSX instruction. This is split. */
2650#define XSQ6 XT6 + 1
2651#define XTQ6 XSQ6
2652 { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR },
e3c2f928 2653
b80c7270
AM
2654 /* The XA field in an XX3 form instruction. This is split. */
2655#define XA6 XTQ6 + 1
2656 { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR },
e3c2f928 2657
b80c7270
AM
2658 /* The XB field in an XX2 or XX3 form instruction. This is split. */
2659#define XB6 XA6 + 1
2660 { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR },
e3c2f928 2661
98553ad3
PB
2662 /* The XA and XB fields in an XX3 form instruction when they must be the same.
2663 This is used in extended mnemonics like xvmovdp. This is split. */
2664#define XAB6 XB6 + 1
2665 { 0x3f, PPC_OPSHIFT_INV, insert_xab6, extract_xab6, PPC_OPERAND_VSR },
e3c2f928 2666
b80c7270 2667 /* The XC field in an XX4 form instruction. This is split. */
98553ad3 2668#define XC6 XAB6 + 1
b80c7270 2669 { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR },
e3c2f928 2670
b80c7270
AM
2671 /* The DM or SHW field in an XX3 form instruction. */
2672#define DM XC6 + 1
2673#define SHW DM
2674 { 0x3, 8, NULL, NULL, 0 },
e3c2f928 2675
b80c7270
AM
2676 /* The DM field in an extended mnemonic XX3 form instruction. */
2677#define DMEX DM + 1
2678 { 0x3, 8, insert_dm, extract_dm, 0 },
e3c2f928 2679
b80c7270
AM
2680 /* The UIM field in an XX2 form instruction. */
2681#define UIM DMEX + 1
2682 /* The 2-bit UIMM field in a VX form instruction. */
2683#define UIMM2 UIM
2684 /* The 2-bit L field in a darn instruction. */
2685#define LRAND UIM
2686 { 0x3, 16, NULL, NULL, 0 },
e3c2f928 2687
b80c7270
AM
2688#define ERAT_T UIM + 1
2689 { 0x7, 21, NULL, NULL, 0 },
e3c2f928 2690
b80c7270
AM
2691#define IH ERAT_T + 1
2692 { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
e3c2f928 2693
b80c7270
AM
2694 /* The 8-bit IMM8 field in a XX1 form instruction. */
2695#define IMM8 IH + 1
2696 { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT },
e3c2f928 2697
b80c7270
AM
2698#define VX_OFF IMM8 + 1
2699 { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 },
74081948
AF
2700
2701#define VX_OFF_SPE2 VX_OFF + 1
2702 { 0x7, 0, insert_off_spe2, extract_off_spe2, 0 },
2703
2704#define BBB VX_OFF_SPE2 + 1
2705 { 0x7, 13, NULL, NULL, 0 },
2706
2707#define DDD BBB + 1
2708#define VX_MASK_DDD (VX_MASK & ~0x1)
2709 { 0x7, PPC_OPSHIFT_INV, insert_Ddd, extract_Ddd, 0 },
2710
2711#define HH DDD + 1
2712 { 0x3, 13, NULL, NULL, 0 },
b80c7270
AM
2713};
2714
2715const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
2716 / sizeof (powerpc_operands[0]));
252b5132
RH
2717\f
2718/* Macros used to form opcodes. */
2719
2720/* The main opcode. */
0f873fd5 2721#define OP(x) ((((uint64_t)(x)) & 0x3f) << 26)
252b5132
RH
2722#define OP_MASK OP (0x3f)
2723
dd7efa79
PB
2724/* The prefix opcode. */
2725#define PREFIX_OP (1ULL << 58)
2726
2727/* The 2-bit prefix form. */
2728#define PREFIX_FORM(x) ((x & 3ULL) << 56)
2729
2730#define SUFFIX_MASK ((1ULL << 32) - 1)
2731#define PREFIX_MASK (SUFFIX_MASK << 32)
2732
2733/* Prefix insn, modified register to register form MRR. */
2734#define PMRR (PREFIX_OP | PREFIX_FORM (3))
2735
252b5132
RH
2736/* The main opcode combined with a trap code in the TO field of a D
2737 form instruction. Used for extended mnemonics for the trap
2738 instructions. */
0f873fd5 2739#define OPTO(x,to) (OP (x) | ((((uint64_t)(to)) & 0x1f) << 21))
252b5132
RH
2740#define OPTO_MASK (OP_MASK | TO_MASK)
2741
2742/* The main opcode combined with a comparison size bit in the L field
2743 of a D form or X form instruction. Used for extended mnemonics for
2744 the comparison instructions. */
0f873fd5 2745#define OPL(x,l) (OP (x) | ((((uint64_t)(l)) & 1) << 21))
252b5132
RH
2746#define OPL_MASK OPL (0x3f,1)
2747
b9c361e0
JL
2748/* The main opcode combined with an update code in D form instruction.
2749 Used for extended mnemonics for VLE memory instructions. */
0f873fd5 2750#define OPVUP(x,vup) (OP (x) | ((((uint64_t)(vup)) & 0xff) << 8))
b9c361e0
JL
2751#define OPVUP_MASK OPVUP (0x3f, 0xff)
2752
b80c7270
AM
2753/* The main opcode combined with an update code and the RT fields
2754 specified in D form instruction. Used for VLE volatile context
2755 save/restore instructions. */
2756#define OPVUPRT(x,vup,rt) \
2757 (OPVUP (x, vup) \
0f873fd5 2758 | ((((uint64_t)(rt)) & 0x1f) << 21))
dfdaec14
AJ
2759#define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f)
2760
252b5132 2761/* An A form instruction. */
b80c7270
AM
2762#define A(op, xop, rc) \
2763 (OP (op) \
0f873fd5
PB
2764 | ((((uint64_t)(xop)) & 0x1f) << 1) \
2765 | (((uint64_t)(rc)) & 1))
252b5132
RH
2766#define A_MASK A (0x3f, 0x1f, 1)
2767
2768/* An A_MASK with the FRB field fixed. */
2769#define AFRB_MASK (A_MASK | FRB_MASK)
2770
2771/* An A_MASK with the FRC field fixed. */
2772#define AFRC_MASK (A_MASK | FRC_MASK)
2773
2774/* An A_MASK with the FRA and FRC fields fixed. */
2775#define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)
2776
702f0fb4 2777/* An AFRAFRC_MASK, but with L bit clear. */
0f873fd5 2778#define AFRALFRC_MASK (AFRAFRC_MASK & ~((uint64_t) 1 << 16))
702f0fb4 2779
252b5132 2780/* A B form instruction. */
b80c7270
AM
2781#define B(op, aa, lk) \
2782 (OP (op) \
0f873fd5 2783 | ((((uint64_t)(aa)) & 1) << 1) \
b80c7270 2784 | ((lk) & 1))
252b5132
RH
2785#define B_MASK B (0x3f, 1, 1)
2786
b9c361e0 2787/* A BD8 form instruction. This is a 16-bit instruction. */
b80c7270 2788#define BD8(op, aa, lk) \
0f873fd5 2789 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270
AM
2790 | (((aa) & 1) << 9) \
2791 | (((lk) & 1) << 8))
b9c361e0
JL
2792#define BD8_MASK BD8 (0x3f, 1, 1)
2793
2794/* Another BD8 form instruction. This is a 16-bit instruction. */
0f873fd5 2795#define BD8IO(op) ((((uint64_t)(op)) & 0x1f) << 11)
b9c361e0
JL
2796#define BD8IO_MASK BD8IO (0x1f)
2797
2798/* A BD8 form instruction for simplified mnemonics. */
2799#define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8))
2800/* A mask that excludes BO32 and BI32. */
2801#define EBD8IO1_MASK 0xf800
2802/* A mask that includes BO32 and excludes BI32. */
2803#define EBD8IO2_MASK 0xfc00
2804/* A mask that include BO32 AND BI32. */
2805#define EBD8IO3_MASK 0xff00
2806
2807/* A BD15 form instruction. */
b80c7270
AM
2808#define BD15(op, aa, lk) \
2809 (OP (op) \
0f873fd5 2810 | ((((uint64_t)(aa)) & 0xf) << 22) \
b80c7270 2811 | ((lk) & 1))
b9c361e0
JL
2812#define BD15_MASK BD15 (0x3f, 0xf, 1)
2813
2814/* A BD15 form instruction for extended conditional branch mnemonics. */
b80c7270
AM
2815#define EBD15(op, aa, bo, lk) \
2816 (((op) & 0x3f) << 26) \
2817 | (((aa) & 0xf) << 22) \
2818 | (((bo) & 0x3) << 20) \
2819 | ((lk) & 1)
b9c361e0
JL
2820#define EBD15_MASK 0xfff00001
2821
b80c7270
AM
2822/* A BD15 form instruction for extended conditional branch mnemonics
2823 with BI. */
2824#define EBD15BI(op, aa, bo, bi, lk) \
2825 ((((op) & 0x3f) << 26) \
2826 | (((aa) & 0xf) << 22) \
2827 | (((bo) & 0x3) << 20) \
2828 | (((bi) & 0x3) << 16) \
2829 | ((lk) & 1))
2830
b9c361e0
JL
2831#define EBD15BI_MASK 0xfff30001
2832
2833/* A BD24 form instruction. */
b80c7270
AM
2834#define BD24(op, aa, lk) \
2835 (OP (op) \
0f873fd5 2836 | ((((uint64_t)(aa)) & 1) << 25) \
b80c7270 2837 | ((lk) & 1))
b9c361e0
JL
2838#define BD24_MASK BD24 (0x3f, 1, 1)
2839
252b5132 2840/* A B form instruction setting the BO field. */
b80c7270
AM
2841#define BBO(op, bo, aa, lk) \
2842 (B ((op), (aa), (lk)) \
0f873fd5 2843 | ((((uint64_t)(bo)) & 0x1f) << 21))
252b5132
RH
2844#define BBO_MASK BBO (0x3f, 0x1f, 1, 1)
2845
2846/* A BBO_MASK with the y bit of the BO field removed. This permits
2847 matching a conditional branch regardless of the setting of the y
94efba12 2848 bit. Similarly for the 'at' bits used for power4 branch hints. */
0f873fd5
PB
2849#define Y_MASK (((uint64_t) 1) << 21)
2850#define AT1_MASK (((uint64_t) 3) << 21)
2851#define AT2_MASK (((uint64_t) 9) << 21)
802a735e
AM
2852#define BBOY_MASK (BBO_MASK &~ Y_MASK)
2853#define BBOAT_MASK (BBO_MASK &~ AT1_MASK)
252b5132
RH
2854
2855/* A B form instruction setting the BO field and the condition bits of
2856 the BI field. */
2857#define BBOCB(op, bo, cb, aa, lk) \
0f873fd5 2858 (BBO ((op), (bo), (aa), (lk)) | ((((uint64_t)(cb)) & 0x3) << 16))
252b5132
RH
2859#define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)
2860
2861/* A BBOCB_MASK with the y bit of the BO field removed. */
2862#define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)
802a735e
AM
2863#define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)
2864#define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)
252b5132
RH
2865
2866/* A BBOYCB_MASK in which the BI field is fixed. */
2867#define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)
802a735e 2868#define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)
252b5132 2869
b9c361e0 2870/* A VLE C form instruction. */
0f873fd5 2871#define C_LK(x, lk) (((((uint64_t)(x)) & 0x7fff) << 1) | ((lk) & 1))
b9c361e0 2872#define C_LK_MASK C_LK(0x7fff, 1)
0f873fd5 2873#define C(x) ((((uint64_t)(x)) & 0xffff))
b9c361e0
JL
2874#define C_MASK C(0xffff)
2875
23976049 2876/* An Context form instruction. */
0f873fd5 2877#define CTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7))
fdd12ef3 2878#define CTX_MASK CTX(0x3f, 0x7)
23976049
EZ
2879
2880/* An User Context form instruction. */
0f873fd5 2881#define UCTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
fdd12ef3 2882#define UCTX_MASK UCTX(0x3f, 0x1f)
23976049 2883
252b5132
RH
2884/* The main opcode mask with the RA field clear. */
2885#define DRA_MASK (OP_MASK | RA_MASK)
2886
a680de9a
PB
2887/* A DQ form VSX instruction. */
2888#define DQX(op, xop) (OP (op) | ((xop) & 0x7))
2889#define DQX_MASK DQX (0x3f, 7)
2890
252b5132
RH
2891/* A DS form instruction. */
2892#define DSO(op, xop) (OP (op) | ((xop) & 0x3))
2893#define DS_MASK DSO (0x3f, 3)
2894
a680de9a 2895/* An DX form instruction. */
0f873fd5 2896#define DX(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
a680de9a 2897#define DX_MASK DX (0x3f, 0x1f)
1437d063
PB
2898/* An DX form instruction with the D bits specified. */
2899#define NODX_MASK (DX_MASK | 0x1fffc1)
a680de9a 2900
23976049 2901/* An EVSEL form instruction. */
0f873fd5 2902#define EVSEL(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xff) << 3)
23976049
EZ
2903#define EVSEL_MASK EVSEL(0x3f, 0xff)
2904
b9c361e0 2905/* An IA16 form instruction. */
0f873fd5 2906#define IA16(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
2907#define IA16_MASK IA16(0x3f, 0x1f)
2908
2909/* An I16A form instruction. */
0f873fd5 2910#define I16A(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
2911#define I16A_MASK I16A(0x3f, 0x1f)
2912
2913/* An I16L form instruction. */
0f873fd5 2914#define I16L(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
2915#define I16L_MASK I16L(0x3f, 0x1f)
2916
2917/* An IM7 form instruction. */
0f873fd5 2918#define IM7(op) ((((uint64_t)(op)) & 0x1f) << 11)
b9c361e0
JL
2919#define IM7_MASK IM7(0x1f)
2920
252b5132
RH
2921/* An M form instruction. */
2922#define M(op, rc) (OP (op) | ((rc) & 1))
2923#define M_MASK M (0x3f, 1)
2924
b9c361e0 2925/* An LI20 form instruction. */
0f873fd5 2926#define LI20(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1) << 15)
b9c361e0
JL
2927#define LI20_MASK LI20(0x3f, 0x1)
2928
252b5132 2929/* An M form instruction with the ME field specified. */
b80c7270
AM
2930#define MME(op, me, rc) \
2931 (M ((op), (rc)) \
0f873fd5 2932 | ((((uint64_t)(me)) & 0x1f) << 1))
252b5132
RH
2933
2934/* An M_MASK with the MB and ME fields fixed. */
2935#define MMBME_MASK (M_MASK | MB_MASK | ME_MASK)
2936
2937/* An M_MASK with the SH and ME fields fixed. */
2938#define MSHME_MASK (M_MASK | SH_MASK | ME_MASK)
2939
2940/* An MD form instruction. */
b80c7270
AM
2941#define MD(op, xop, rc) \
2942 (OP (op) \
0f873fd5 2943 | ((((uint64_t)(xop)) & 0x7) << 2) \
b80c7270 2944 | ((rc) & 1))
252b5132
RH
2945#define MD_MASK MD (0x3f, 0x7, 1)
2946
2947/* An MD_MASK with the MB field fixed. */
2948#define MDMB_MASK (MD_MASK | MB6_MASK)
2949
2950/* An MD_MASK with the SH field fixed. */
2951#define MDSH_MASK (MD_MASK | SH6_MASK)
2952
2953/* An MDS form instruction. */
b80c7270
AM
2954#define MDS(op, xop, rc) \
2955 (OP (op) \
0f873fd5 2956 | ((((uint64_t)(xop)) & 0xf) << 1) \
b80c7270 2957 | ((rc) & 1))
252b5132
RH
2958#define MDS_MASK MDS (0x3f, 0xf, 1)
2959
2960/* An MDS_MASK with the MB field fixed. */
2961#define MDSMB_MASK (MDS_MASK | MB6_MASK)
2962
2963/* An SC form instruction. */
b80c7270
AM
2964#define SC(op, sa, lk) \
2965 (OP (op) \
0f873fd5 2966 | ((((uint64_t)(sa)) & 1) << 1) \
b80c7270
AM
2967 | ((lk) & 1))
2968#define SC_MASK \
2969 (OP_MASK \
0f873fd5
PB
2970 | (((uint64_t) 0x3ff) << 16) \
2971 | (((uint64_t) 1) << 1) \
b80c7270 2972 | 1)
252b5132 2973
b9c361e0 2974/* An SCI8 form instruction. */
0f873fd5 2975#define SCI8(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 11))
b9c361e0
JL
2976#define SCI8_MASK SCI8(0x3f, 0x1f)
2977
2978/* An SCI8 form instruction. */
b80c7270
AM
2979#define SCI8BF(op, fop, xop) \
2980 (OP (op) \
0f873fd5 2981 | ((((uint64_t)(xop)) & 0x1f) << 11) \
b80c7270 2982 | (((fop) & 7) << 23))
b9c361e0
JL
2983#define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f)
2984
2985/* An SD4 form instruction. This is a 16-bit instruction. */
0f873fd5 2986#define SD4(op) ((((uint64_t)(op)) & 0xf) << 12)
b9c361e0
JL
2987#define SD4_MASK SD4(0xf)
2988
2989/* An SE_IM5 form instruction. This is a 16-bit instruction. */
b80c7270 2990#define SE_IM5(op, xop) \
0f873fd5 2991 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 2992 | (((xop) & 0x1) << 9))
b9c361e0
JL
2993#define SE_IM5_MASK SE_IM5(0x3f, 1)
2994
2995/* An SE_R form instruction. This is a 16-bit instruction. */
b80c7270 2996#define SE_R(op, xop) \
0f873fd5 2997 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 2998 | (((xop) & 0x3f) << 4))
b9c361e0
JL
2999#define SE_R_MASK SE_R(0x3f, 0x3f)
3000
3001/* An SE_RR form instruction. This is a 16-bit instruction. */
b80c7270 3002#define SE_RR(op, xop) \
0f873fd5 3003 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 3004 | (((xop) & 0x3) << 8))
b9c361e0
JL
3005#define SE_RR_MASK SE_RR(0x3f, 3)
3006
3007/* A VX form instruction. */
0f873fd5 3008#define VX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
786e2c0f 3009
112290ab 3010/* The mask for an VX form instruction. */
786e2c0f
C
3011#define VX_MASK VX(0x3f, 0x7ff)
3012
e3c2f928 3013/* A VX LSP form instruction. */
0f873fd5 3014#define VX_LSP(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xffff))
e3c2f928
AF
3015
3016/* The mask for an VX LSP form instruction. */
3017#define VX_LSP_MASK VX_LSP(0x3f, 0xffff)
3018#define VX_LSP_OFF_MASK VX_LSP(0x3f, 0x7fc)
3019
74081948
AF
3020/* Additional format of VX SPE2 form instruction. */
3021#define VX_RA_CONST(op, xop, bits11_15) \
3022 (OP (op) \
0f873fd5
PB
3023 | (((uint64_t)(bits11_15) & 0x1f) << 16) \
3024 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3025#define VX_RA_CONST_MASK VX_RA_CONST(0x3f, 0x7ff, 0x1f)
3026
3027#define VX_RB_CONST(op, xop, bits16_20) \
3028 (OP (op) \
0f873fd5
PB
3029 | (((uint64_t)(bits16_20) & 0x1f) << 11) \
3030 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3031#define VX_RB_CONST_MASK VX_RB_CONST(0x3f, 0x7ff, 0x1f)
3032
3033#define VX_OFF_SPE2_MASK VX(0x3f, 0x7f8)
3034
3035#define VX_SPE_CRFD(op, xop, bits9_10) \
3036 (OP (op) \
0f873fd5
PB
3037 | (((uint64_t)(bits9_10) & 0x3) << 21) \
3038 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3039#define VX_SPE_CRFD_MASK VX_SPE_CRFD(0x3f, 0x7ff, 0x3)
3040
3041#define VX_SPE2_CLR(op, xop, bit16) \
3042 (OP (op) \
0f873fd5
PB
3043 | (((uint64_t)(bit16) & 0x1) << 15) \
3044 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3045#define VX_SPE2_CLR_MASK VX_SPE2_CLR(0x3f, 0x7ff, 0x1)
3046
3047#define VX_SPE2_SPLATB(op, xop, bits19_20) \
3048 (OP (op) \
0f873fd5
PB
3049 | (((uint64_t)(bits19_20) & 0x3) << 11) \
3050 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3051#define VX_SPE2_SPLATB_MASK VX_SPE2_SPLATB(0x3f, 0x7ff, 0x3)
3052
3053#define VX_SPE2_OCTET(op, xop, bits16_17) \
3054 (OP (op) \
0f873fd5
PB
3055 | (((uint64_t)(bits16_17) & 0x3) << 14) \
3056 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3057#define VX_SPE2_OCTET_MASK VX_SPE2_OCTET(0x3f, 0x7ff, 0x7)
3058
3059#define VX_SPE2_DDHH(op, xop, bit16) \
3060 (OP (op) \
0f873fd5
PB
3061 | (((uint64_t)(bit16) & 0x1) << 15) \
3062 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3063#define VX_SPE2_DDHH_MASK VX_SPE2_DDHH(0x3f, 0x7ff, 0x1)
3064
3065#define VX_SPE2_HH(op, xop, bit16, bits19_20) \
3066 (OP (op) \
0f873fd5
PB
3067 | (((uint64_t)(bit16) & 0x1) << 15) \
3068 | (((uint64_t)(bits19_20) & 0x3) << 11) \
3069 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3070#define VX_SPE2_HH_MASK VX_SPE2_HH(0x3f, 0x7ff, 0x1, 0x3)
3071
3072#define VX_SPE2_EVMAR(op, xop) \
3073 (OP (op) \
0f873fd5
PB
3074 | ((uint64_t)(0x1) << 11) \
3075 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3076#define VX_SPE2_EVMAR_MASK \
3077 (VX_SPE2_EVMAR(0x3f, 0x7ff) \
0f873fd5 3078 | ((uint64_t)(0x1) << 11))
74081948 3079
fb048c26
PB
3080/* A VX_MASK with the VA field fixed. */
3081#define VXVA_MASK (VX_MASK | (0x1f << 16))
3082
3083/* A VX_MASK with the VB field fixed. */
3084#define VXVB_MASK (VX_MASK | (0x1f << 11))
3085
3086/* A VX_MASK with the VA and VB fields fixed. */
3087#define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11))
3088
3089/* A VX_MASK with the VD and VA fields fixed. */
3090#define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16))
3091
3092/* A VX_MASK with a UIMM4 field. */
3093#define VXUIMM4_MASK (VX_MASK | (0x1 << 20))
3094
3095/* A VX_MASK with a UIMM3 field. */
3096#define VXUIMM3_MASK (VX_MASK | (0x3 << 19))
3097
3098/* A VX_MASK with a UIMM2 field. */
3099#define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
3100
c0637f3a
PB
3101/* A VX_MASK with a PS field. */
3102#define VXPS_MASK (VX_MASK & ~(0x1 << 9))
3103
a680de9a
PB
3104/* A VX_MASK with the VA field fixed with a PS field. */
3105#define VXVAPS_MASK ((VX_MASK | (0x1f << 16)) & ~(0x1 << 9))
3106
b9c361e0 3107/* A VA form instruction. */
0f873fd5 3108#define VXA(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x03f))
786e2c0f 3109
112290ab 3110/* The mask for an VA form instruction. */
2613489e 3111#define VXA_MASK VXA(0x3f, 0x3f)
786e2c0f 3112
382c72e9
PB
3113/* A VXA_MASK with a SHB field. */
3114#define VXASHB_MASK (VXA_MASK | (1 << 10))
3115
b9c361e0 3116/* A VXR form instruction. */
b80c7270
AM
3117#define VXR(op, xop, rc) \
3118 (OP (op) \
0f873fd5
PB
3119 | (((uint64_t)(rc) & 1) << 10) \
3120 | (((uint64_t)(xop)) & 0x3ff))
786e2c0f 3121
112290ab 3122/* The mask for a VXR form instruction. */
786e2c0f
C
3123#define VXR_MASK VXR(0x3f, 0x3ff, 1)
3124
a680de9a
PB
3125/* A VX form instruction with a VA tertiary opcode. */
3126#define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16))
3127
0f873fd5 3128#define VXASH(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
6fd3a02d
PB
3129#define VXASH_MASK VXASH (0x3f, 0x1f)
3130
252b5132 3131/* An X form instruction. */
0f873fd5 3132#define X(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
252b5132 3133
a680de9a
PB
3134/* A X form instruction for Quad-Precision FP Instructions. */
3135#define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16))
3136
b9c361e0 3137/* An EX form instruction. */
0f873fd5 3138#define EX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
b9c361e0
JL
3139
3140/* The mask for an EX form instruction. */
3141#define EX_MASK EX (0x3f, 0x7ff)
3142
066be9f7 3143/* An XX2 form instruction. */
0f873fd5 3144#define XX2(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 2))
066be9f7 3145
a680de9a
PB
3146/* A XX2 form instruction with the VA bits specified. */
3147#define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16))
3148
9b4e5766 3149/* An XX3 form instruction. */
0f873fd5 3150#define XX3(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0xff) << 3))
9b4e5766 3151
066be9f7 3152/* An XX3 form instruction with the RC bit specified. */
b80c7270
AM
3153#define XX3RC(op, xop, rc) \
3154 (OP (op) \
0f873fd5
PB
3155 | (((uint64_t)(rc) & 1) << 10) \
3156 | ((((uint64_t)(xop)) & 0x7f) << 3))
066be9f7
PB
3157
3158/* An XX4 form instruction. */
0f873fd5 3159#define XX4(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3) << 4))
9b4e5766 3160
702f0fb4 3161/* A Z form instruction. */
0f873fd5 3162#define Z(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 1))
702f0fb4 3163
252b5132
RH
3164/* An X form instruction with the RC bit specified. */
3165#define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1))
3166
a680de9a
PB
3167/* A X form instruction for Quad-Precision FP Instructions with RC bit. */
3168#define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1))
3169
6fd3a02d 3170/* An X form instruction with the RA bits specified as two ops. */
b80c7270
AM
3171#define XMMF(op, xop, mop0, mop1) \
3172 (X ((op), (xop)) \
3173 | ((mop0) & 3) << 19 \
3174 | ((mop1) & 7) << 16)
6fd3a02d 3175
702f0fb4
PB
3176/* A Z form instruction with the RC bit specified. */
3177#define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1))
3178
252b5132
RH
3179/* The mask for an X form instruction. */
3180#define X_MASK XRC (0x3f, 0x3ff, 1)
3181
a680de9a
PB
3182/* The mask for an X form instruction with the BF bits specified. */
3183#define XBF_MASK (X_MASK | (3 << 21))
3184
b80c7270
AM
3185/* An X form wait instruction with everything filled in except the WC
3186 field. */
e0d602ec
BE
3187#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
3188
9b4e5766
PB
3189/* The mask for an XX1 form instruction. */
3190#define XX1_MASK X (0x3f, 0x3ff)
3191
c0637f3a
PB
3192/* An XX1_MASK with the RB field fixed. */
3193#define XX1RB_MASK (XX1_MASK | RB_MASK)
3194
066be9f7
PB
3195/* The mask for an XX2 form instruction. */
3196#define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
3197
3198/* The mask for an XX2 form instruction with the UIM bits specified. */
3199#define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18))
3200
a680de9a
PB
3201/* The mask for an XX2 form instruction with the 4 UIM bits specified. */
3202#define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20))
3203
066be9f7
PB
3204/* The mask for an XX2 form instruction with the BF bits specified. */
3205#define XX2BF_MASK (XX2_MASK | (3 << 21) | (1))
3206
b80c7270
AM
3207/* The mask for an XX2 form instruction with the BF and DCMX bits
3208 specified. */
a680de9a
PB
3209#define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1)
3210
b80c7270
AM
3211/* The mask for an XX2 form instruction with a split DCMX bits
3212 specified. */
a680de9a
PB
3213#define XX2DCMXS_MASK XX2 (0x3f, 0x1ee)
3214
9b4e5766
PB
3215/* The mask for an XX3 form instruction. */
3216#define XX3_MASK XX3 (0x3f, 0xff)
3217
066be9f7
PB
3218/* The mask for an XX3 form instruction with the BF bits specified. */
3219#define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1))
3220
b80c7270
AM
3221/* The mask for an XX3 form instruction with the DM or SHW bits
3222 specified. */
9b4e5766 3223#define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10))
066be9f7
PB
3224#define XX3SHW_MASK XX3DM_MASK
3225
3226/* The mask for an XX4 form instruction. */
3227#define XX4_MASK XX4 (0x3f, 0x3)
3228
b80c7270
AM
3229/* An X form wait instruction with everything filled in except the WC
3230 field. */
066be9f7 3231#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
9b4e5766 3232
6fd3a02d
PB
3233/* The mask for an XMMF form instruction. */
3234#define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1))
3235
702f0fb4
PB
3236/* The mask for a Z form instruction. */
3237#define Z_MASK ZRC (0x3f, 0x1ff, 1)
0bbdef92 3238#define Z2_MASK ZRC (0x3f, 0xff, 1)
702f0fb4 3239
a680de9a 3240/* An X_MASK with the RA/VA field fixed. */
252b5132 3241#define XRA_MASK (X_MASK | RA_MASK)
a680de9a 3242#define XVA_MASK XRA_MASK
252b5132 3243
a680de9a 3244/* An XRA_MASK with the A_L/W field clear. */
0f873fd5 3245#define XWRA_MASK (XRA_MASK & ~((uint64_t) 1 << 16))
a680de9a 3246#define XRLA_MASK XWRA_MASK
ea192fa3 3247
252b5132
RH
3248/* An X_MASK with the RB field fixed. */
3249#define XRB_MASK (X_MASK | RB_MASK)
3250
3251/* An X_MASK with the RT field fixed. */
3252#define XRT_MASK (X_MASK | RT_MASK)
3253
702f0fb4 3254/* An XRT_MASK mask with the L bits clear. */
0f873fd5 3255#define XLRT_MASK (XRT_MASK & ~((uint64_t) 0x3 << 21))
702f0fb4 3256
252b5132
RH
3257/* An X_MASK with the RA and RB fields fixed. */
3258#define XRARB_MASK (X_MASK | RA_MASK | RB_MASK)
3259
a680de9a
PB
3260/* An XBF_MASK with the RA and RB fields fixed. */
3261#define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK)
3262
112290ab 3263/* An XRARB_MASK, but with the L bit clear. */
0f873fd5 3264#define XRLARB_MASK (XRARB_MASK & ~((uint64_t) 1 << 16))
5ae2e65e 3265
a680de9a 3266/* An XRARB_MASK, but with the L bits in a darn instruction clear. */
0f873fd5 3267#define XLRAND_MASK (XRARB_MASK & ~((uint64_t) 3 << 16))
a680de9a 3268
252b5132
RH
3269/* An X_MASK with the RT and RA fields fixed. */
3270#define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK)
3271
5817ffd1
PB
3272/* An X_MASK with the RT and RB fields fixed. */
3273#define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK)
3274
98acc1c5 3275/* An XRTRA_MASK, but with L bit clear. */
0f873fd5 3276#define XRTLRA_MASK (XRTRA_MASK & ~((uint64_t) 1 << 21))
98acc1c5 3277
5817ffd1
PB
3278/* An X_MASK with the RT, RA and RB fields fixed. */
3279#define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK)
3280
3281/* An XRTRARB_MASK, but with L bit clear. */
0f873fd5 3282#define XRTLRARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 21))
5817ffd1
PB
3283
3284/* An XRTRARB_MASK, but with A bit clear. */
0f873fd5 3285#define XRTARARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 25))
5817ffd1
PB
3286
3287/* An XRTRARB_MASK, but with BF bits clear. */
0f873fd5 3288#define XRTBFRARB_MASK (XRTRARB_MASK & ~((uint64_t) 7 << 23))
5817ffd1 3289
f3806e43 3290/* An X form instruction with the L bit specified. */
b80c7270
AM
3291#define XOPL(op, xop, l) \
3292 (X ((op), (xop)) \
0f873fd5 3293 | ((((uint64_t)(l)) & 1) << 21))
252b5132 3294
e0d602ec 3295/* An X form instruction with the L bits specified. */
b80c7270
AM
3296#define XOPL2(op, xop, l) \
3297 (X ((op), (xop)) \
0f873fd5 3298 | ((((uint64_t)(l)) & 3) << 21))
e0d602ec 3299
5817ffd1 3300/* An X form instruction with the L bit and RC bit specified. */
b80c7270
AM
3301#define XRCL(op, xop, l, rc) \
3302 (XRC ((op), (xop), (rc)) \
0f873fd5 3303 | ((((uint64_t)(l)) & 1) << 21))
5817ffd1 3304
19a6653c 3305/* An X form instruction with RT fields specified */
b80c7270
AM
3306#define XRT(op, xop, rt) \
3307 (X ((op), (xop)) \
0f873fd5 3308 | ((((uint64_t)(rt)) & 0x1f) << 21))
19a6653c
AM
3309
3310/* An X form instruction with RT and RA fields specified */
b80c7270
AM
3311#define XRTRA(op, xop, rt, ra) \
3312 (X ((op), (xop)) \
0f873fd5
PB
3313 | ((((uint64_t)(rt)) & 0x1f) << 21) \
3314 | ((((uint64_t)(ra)) & 0x1f) << 16))
19a6653c 3315
252b5132 3316/* The mask for an X form comparison instruction. */
0f873fd5 3317#define XCMP_MASK (X_MASK | (((uint64_t)1) << 22))
252b5132 3318
520ceea4
BE
3319/* The mask for an X form comparison instruction with the L field
3320 fixed. */
0f873fd5 3321#define XCMPL_MASK (XCMP_MASK | (((uint64_t)1) << 21))
252b5132
RH
3322
3323/* An X form trap instruction with the TO field specified. */
b80c7270
AM
3324#define XTO(op, xop, to) \
3325 (X ((op), (xop)) \
0f873fd5 3326 | ((((uint64_t)(to)) & 0x1f) << 21))
252b5132
RH
3327#define XTO_MASK (X_MASK | TO_MASK)
3328
e0c21649 3329/* An X form tlb instruction with the SH field specified. */
b80c7270
AM
3330#define XTLB(op, xop, sh) \
3331 (X ((op), (xop)) \
0f873fd5 3332 | ((((uint64_t)(sh)) & 0x1f) << 11))
e0c21649
GK
3333#define XTLB_MASK (X_MASK | SH_MASK)
3334
6ba045b1 3335/* An X form sync instruction. */
b80c7270
AM
3336#define XSYNC(op, xop, l) \
3337 (X ((op), (xop)) \
0f873fd5 3338 | ((((uint64_t)(l)) & 3) << 21))
6ba045b1 3339
b80c7270
AM
3340/* An X form sync instruction with everything filled in except the LS
3341 field. */
6ba045b1
AM
3342#define XSYNC_MASK (0xff9fffff)
3343
b80c7270
AM
3344/* An X form sync instruction with everything filled in except the L
3345 and E fields. */
aea77599
AM
3346#define XSYNCLE_MASK (0xff90ffff)
3347
702f0fb4 3348/* An X_MASK, but with the EH bit clear. */
0f873fd5 3349#define XEH_MASK (X_MASK & ~((uint64_t )1))
702f0fb4 3350
f5c120c5 3351/* An X form AltiVec dss instruction. */
0f873fd5 3352#define XDSS(op, xop, a) (X ((op), (xop)) | ((((uint64_t)(a)) & 1) << 25))
f5c120c5
MG
3353#define XDSS_MASK XDSS(0x3f, 0x3ff, 1)
3354
252b5132 3355/* An XFL form instruction. */
b80c7270
AM
3356#define XFL(op, xop, rc) \
3357 (OP (op) \
0f873fd5
PB
3358 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
3359 | (((uint64_t)(rc)) & 1))
ea192fa3 3360#define XFL_MASK XFL (0x3f, 0x3ff, 1)
252b5132 3361
23976049 3362/* An X form isel instruction. */
0f873fd5 3363#define XISEL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
de866fcc 3364#define XISEL_MASK XISEL(0x3f, 0x1f)
23976049 3365
252b5132 3366/* An XL form instruction with the LK field set to 0. */
0f873fd5 3367#define XL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
252b5132
RH
3368
3369/* An XL form instruction which uses the LK field. */
3370#define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1))
3371
3372/* The mask for an XL form instruction. */
3373#define XL_MASK XLLK (0x3f, 0x3ff, 1)
3374
c0637f3a
PB
3375/* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear. */
3376#define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11))
3377
252b5132
RH
3378/* An XL form instruction which explicitly sets the BO field. */
3379#define XLO(op, bo, xop, lk) \
0f873fd5 3380 (XLLK ((op), (xop), (lk)) | ((((uint64_t)(bo)) & 0x1f) << 21))
252b5132
RH
3381#define XLO_MASK (XL_MASK | BO_MASK)
3382
252b5132
RH
3383/* An XL form instruction which sets the BO field and the condition
3384 bits of the BI field. */
3385#define XLOCB(op, bo, cb, xop, lk) \
0f873fd5 3386 (XLO ((op), (bo), (xop), (lk)) | ((((uint64_t)(cb)) & 3) << 16))
252b5132
RH
3387#define XLOCB_MASK XLOCB (0x3f, 0x1f, 0x3, 0x3ff, 1)
3388
aae9718e 3389/* An XL_MASK or XLOCB_MASK with the BB field fixed. */
252b5132 3390#define XLBB_MASK (XL_MASK | BB_MASK)
252b5132
RH
3391#define XLBOCBBB_MASK (XLOCB_MASK | BB_MASK)
3392
d0618d1c 3393/* A mask for branch instructions using the BH field. */
66e85460 3394#define XLBH_MASK (XL_MASK | (BB_MASK & ~(3 << 11)))
d0618d1c 3395
252b5132
RH
3396/* An XL_MASK with the BO and BB fields fixed. */
3397#define XLBOBB_MASK (XL_MASK | BO_MASK | BB_MASK)
3398
3399/* An XL_MASK with the BO, BI and BB fields fixed. */
3400#define XLBOBIBB_MASK (XL_MASK | BO_MASK | BI_MASK | BB_MASK)
3401
e01d869a 3402/* An X form mbar instruction with MO field. */
b80c7270
AM
3403#define XMBAR(op, xop, mo) \
3404 (X ((op), (xop)) \
0f873fd5 3405 | ((((uint64_t)(mo)) & 1) << 21))
e01d869a 3406
252b5132 3407/* An XO form instruction. */
b80c7270
AM
3408#define XO(op, xop, oe, rc) \
3409 (OP (op) \
0f873fd5
PB
3410 | ((((uint64_t)(xop)) & 0x1ff) << 1) \
3411 | ((((uint64_t)(oe)) & 1) << 10) \
b80c7270 3412 | (((unsigned long)(rc)) & 1))
252b5132
RH
3413#define XO_MASK XO (0x3f, 0x1ff, 1, 1)
3414
3415/* An XO_MASK with the RB field fixed. */
3416#define XORB_MASK (XO_MASK | RB_MASK)
3417
c3d65c1c 3418/* An XOPS form instruction for paired singles. */
b80c7270
AM
3419#define XOPS(op, xop, rc) \
3420 (OP (op) \
0f873fd5
PB
3421 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
3422 | (((uint64_t)(rc)) & 1))
c3d65c1c
BE
3423#define XOPS_MASK XOPS (0x3f, 0x3ff, 1)
3424
3425
252b5132 3426/* An XS form instruction. */
b80c7270
AM
3427#define XS(op, xop, rc) \
3428 (OP (op) \
0f873fd5
PB
3429 | ((((uint64_t)(xop)) & 0x1ff) << 2) \
3430 | (((uint64_t)(rc)) & 1))
252b5132
RH
3431#define XS_MASK XS (0x3f, 0x1ff, 1)
3432
3433/* A mask for the FXM version of an XFX form instruction. */
98e69875 3434#define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20))
252b5132
RH
3435
3436/* An XFX form instruction with the FXM field filled in. */
b80c7270
AM
3437#define XFXM(op, xop, fxm, p4) \
3438 (X ((op), (xop)) \
0f873fd5
PB
3439 | ((((uint64_t)(fxm)) & 0xff) << 12) \
3440 | ((uint64_t)(p4) << 20))
252b5132
RH
3441
3442/* An XFX form instruction with the SPR field filled in. */
b80c7270
AM
3443#define XSPR(op, xop, spr) \
3444 (X ((op), (xop)) \
0f873fd5
PB
3445 | ((((uint64_t)(spr)) & 0x1f) << 16) \
3446 | ((((uint64_t)(spr)) & 0x3e0) << 6))
252b5132
RH
3447#define XSPR_MASK (X_MASK | SPR_MASK)
3448
3449/* An XFX form instruction with the SPR field filled in except for the
3450 SPRBAT field. */
3451#define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK)
3452
fa758a70
AC
3453/* An XFX form instruction with the SPR field filled in except for the
3454 SPRGQR field. */
3455#define XSPRGQR_MASK (XSPR_MASK &~ SPRGQR_MASK)
3456
252b5132
RH
3457/* An XFX form instruction with the SPR field filled in except for the
3458 SPRG field. */
b84bf58a 3459#define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16))
252b5132
RH
3460
3461/* An X form instruction with everything filled in except the E field. */
3462#define XE_MASK (0xffff7fff)
3463
23976049 3464/* An X form user context instruction. */
0f873fd5 3465#define XUC(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
23976049
EZ
3466#define XUC_MASK XUC(0x3f, 0x1f)
3467
c3d65c1c 3468/* An XW form instruction. */
b80c7270
AM
3469#define XW(op, xop, rc) \
3470 (OP (op) \
0f873fd5 3471 | ((((uint64_t)(xop)) & 0x3f) << 1) \
b80c7270 3472 | ((rc) & 1))
c3d65c1c
BE
3473/* The mask for a G form instruction. rc not supported at present. */
3474#define XW_MASK XW (0x3f, 0x3f, 0)
3475
081ba1b3 3476/* An APU form instruction. */
b80c7270
AM
3477#define APU(op, xop, rc) \
3478 (OP (op) \
0f873fd5 3479 | (((uint64_t)(xop)) & 0x3ff) << 1 \
b80c7270 3480 | ((rc) & 1))
081ba1b3
AM
3481
3482/* The mask for an APU form instruction. */
3483#define APU_MASK APU (0x3f, 0x3ff, 1)
3484#define APU_RT_MASK (APU_MASK | RT_MASK)
3485#define APU_RA_MASK (APU_MASK | RA_MASK)
3486
252b5132
RH
3487/* The BO encodings used in extended conditional branch mnemonics. */
3488#define BODNZF (0x0)
3489#define BODNZFP (0x1)
3490#define BODZF (0x2)
3491#define BODZFP (0x3)
252b5132
RH
3492#define BODNZT (0x8)
3493#define BODNZTP (0x9)
3494#define BODZT (0xa)
3495#define BODZTP (0xb)
802a735e
AM
3496
3497#define BOF (0x4)
3498#define BOFP (0x5)
94efba12
AM
3499#define BOFM4 (0x6)
3500#define BOFP4 (0x7)
252b5132
RH
3501#define BOT (0xc)
3502#define BOTP (0xd)
94efba12
AM
3503#define BOTM4 (0xe)
3504#define BOTP4 (0xf)
802a735e 3505
252b5132
RH
3506#define BODNZ (0x10)
3507#define BODNZP (0x11)
3508#define BODZ (0x12)
3509#define BODZP (0x13)
94efba12
AM
3510#define BODNZM4 (0x18)
3511#define BODNZP4 (0x19)
3512#define BODZM4 (0x1a)
3513#define BODZP4 (0x1b)
802a735e 3514
252b5132
RH
3515#define BOU (0x14)
3516
b9c361e0
JL
3517/* The BO16 encodings used in extended VLE conditional branch mnemonics. */
3518#define BO16F (0x0)
3519#define BO16T (0x1)
3520
3521/* The BO32 encodings used in extended VLE conditional branch mnemonics. */
3522#define BO32F (0x0)
3523#define BO32T (0x1)
3524#define BO32DNZ (0x2)
3525#define BO32DZ (0x3)
3526
252b5132
RH
3527/* The BI condition bit encodings used in extended conditional branch
3528 mnemonics. */
3529#define CBLT (0)
3530#define CBGT (1)
3531#define CBEQ (2)
3532#define CBSO (3)
3533
3534/* The TO encodings used in extended trap mnemonics. */
3535#define TOLGT (0x1)
3536#define TOLLT (0x2)
3537#define TOEQ (0x4)
3538#define TOLGE (0x5)
3539#define TOLNL (0x5)
3540#define TOLLE (0x6)
3541#define TOLNG (0x6)
3542#define TOGT (0x8)
3543#define TOGE (0xc)
3544#define TONL (0xc)
3545#define TOLT (0x10)
3546#define TOLE (0x14)
3547#define TONG (0x14)
3548#define TONE (0x18)
3549#define TOU (0x1f)
3550\f
3551/* Smaller names for the flags so each entry in the opcodes table will
3552 fit on a single line. */
3553#undef PPC
de866fcc 3554#define PPC PPC_OPCODE_PPC
661bd698 3555#define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON
661bd698 3556#define POWER4 PPC_OPCODE_POWER4
1ed8e1e4 3557#define POWER5 PPC_OPCODE_POWER5
702f0fb4 3558#define POWER6 PPC_OPCODE_POWER6
066be9f7 3559#define POWER7 PPC_OPCODE_POWER7
5817ffd1 3560#define POWER8 PPC_OPCODE_POWER8
a680de9a 3561#define POWER9 PPC_OPCODE_POWER9
dd7efa79 3562#define POWERXX PPC_OPCODE_POWERXX
ede602d7 3563#define CELL PPC_OPCODE_CELL
bdc70b4a 3564#define PPC64 PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE
6b069ee7 3565#define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 \
bdc70b4a 3566 | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
418c1742 3567#define PPC403 PPC_OPCODE_403
081ba1b3 3568#define PPC405 PPC_OPCODE_405
7d5b217e 3569#define PPC440 PPC_OPCODE_440
c8187e15 3570#define PPC464 PPC440
9fe54b1c 3571#define PPC476 PPC_OPCODE_476
ef5a96d5 3572#define PPC750 PPC_OPCODE_750
fa758a70
AC
3573#define GEKKO PPC_OPCODE_750
3574#define BROADWAY PPC_OPCODE_750
ef5a96d5
AM
3575#define PPC7450 PPC_OPCODE_7450
3576#define PPC860 PPC_OPCODE_860
c3d65c1c 3577#define PPCPS PPC_OPCODE_PPCPS
a404d431 3578#define PPCVEC PPC_OPCODE_ALTIVEC
9a85b496
AM
3579#define PPCVEC2 (PPC_OPCODE_POWER8 | PPC_OPCODE_E6500)
3580#define PPCVEC3 PPC_OPCODE_POWER9
9b4e5766 3581#define PPCVSX PPC_OPCODE_VSX
9570835e
AM
3582#define PPCVSX2 PPC_OPCODE_POWER8
3583#define PPCVSX3 PPC_OPCODE_POWER9
de866fcc
AM
3584#define POWER PPC_OPCODE_POWER
3585#define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2
81a0b7e2 3586#define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
b80c7270
AM
3587#define PPCPWR2 (PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 \
3588 | PPC_OPCODE_COMMON)
de866fcc 3589#define COM PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON
de866fcc 3590#define M601 PPC_OPCODE_POWER | PPC_OPCODE_601
661bd698 3591#define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON
de866fcc 3592#define MFDEC1 PPC_OPCODE_POWER
b80c7270
AM
3593#define MFDEC2 (PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
3594 | PPC_OPCODE_TITAN)
418c1742 3595#define BOOKE PPC_OPCODE_BOOKE
14b57c7c 3596#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
36ae0db3 3597#define PPCE300 PPC_OPCODE_E300
14b57c7c 3598#define PPCSPE PPC_OPCODE_SPE
74081948 3599#define PPCSPE2 PPC_OPCODE_SPE2
14b57c7c
AM
3600#define PPCISEL PPC_OPCODE_ISEL
3601#define PPCEFS PPC_OPCODE_EFS
74081948 3602#define PPCEFS2 PPC_OPCODE_EFS2
de866fcc 3603#define PPCBRLK PPC_OPCODE_BRLOCK
23976049 3604#define PPCPMR PPC_OPCODE_PMR
aea77599 3605#define PPCTMR PPC_OPCODE_TMR
de866fcc 3606#define PPCCHLK PPC_OPCODE_CACHELCK
fa758a70 3607#define PPCRFMCI PPC_OPCODE_RFMCI
19a6653c 3608#define E500MC PPC_OPCODE_E500MC
634b50f2 3609#define PPCA2 PPC_OPCODE_A2
43e65147 3610#define TITAN PPC_OPCODE_TITAN
62adc510 3611#define MULHW PPC_OPCODE_405 | PPC_OPCODE_440 | PPC_OPCODE_476 | TITAN
e01d869a 3612#define E500 PPC_OPCODE_E500
aea77599 3613#define E6500 PPC_OPCODE_E6500
b9c361e0 3614#define PPCVLE PPC_OPCODE_VLE
ef85eab0 3615#define PPCHTM PPC_OPCODE_POWER8
dfdaec14 3616#define E200Z4 PPC_OPCODE_E200Z4
e3c2f928 3617#define PPCLSP PPC_OPCODE_LSP
4fff86c5
PB
3618/* The list of embedded processors that use the embedded operand ordering
3619 for the 3 operand dcbt and dcbtst instructions. */
3620#define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
14b57c7c 3621 | PPC_OPCODE_A2)
4fff86c5
PB
3622
3623
252b5132
RH
3624\f
3625/* The opcode table.
3626
3627 The format of the opcode table is:
3628
8ebac3aa 3629 NAME OPCODE MASK FLAGS ANTI {OPERANDS}
252b5132
RH
3630
3631 NAME is the name of the instruction.
3632 OPCODE is the instruction opcode.
3633 MASK is the opcode mask; this is used to tell the disassembler
3634 which bits in the actual opcode must match OPCODE.
8ebac3aa
AM
3635 FLAGS are flags indicating which processors support the instruction.
3636 ANTI indicates which processors don't support the instruction.
252b5132
RH
3637 OPERANDS is the list of operands.
3638
3639 The disassembler reads the table in order and prints the first
3640 instruction which matches, so this table is sorted to put more
de866fcc
AM
3641 specific instructions before more general instructions.
3642
3643 This table must be sorted by major opcode. Please try to keep it
3644 vaguely sorted within major opcode too, except of course where
3645 constrained otherwise by disassembler operation. */
252b5132
RH
3646
3647const struct powerpc_opcode powerpc_opcodes[] = {
14b57c7c
AM
3648{"attn", X(0,256), X_MASK, POWER4|PPCA2, PPC476|PPCVLE, {0}},
3649{"tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3650{"tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3651{"tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3652{"tdlgei", OPTO(2,TOLGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3653{"tdlnli", OPTO(2,TOLNL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3654{"tdllei", OPTO(2,TOLLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3655{"tdlngi", OPTO(2,TOLNG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3656{"tdgti", OPTO(2,TOGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3657{"tdgei", OPTO(2,TOGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3658{"tdnli", OPTO(2,TONL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3659{"tdlti", OPTO(2,TOLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3660{"tdlei", OPTO(2,TOLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3661{"tdngi", OPTO(2,TONG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3662{"tdnei", OPTO(2,TONE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3663{"tdui", OPTO(2,TOU), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3664{"tdi", OP(2), OP_MASK, PPC64, PPCVLE, {TO, RA, SI}},
3665
3666{"twlgti", OPTO(3,TOLGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3667{"tlgti", OPTO(3,TOLGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3668{"twllti", OPTO(3,TOLLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3669{"tllti", OPTO(3,TOLLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3670{"tweqi", OPTO(3,TOEQ), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3671{"teqi", OPTO(3,TOEQ), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3672{"twlgei", OPTO(3,TOLGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3673{"tlgei", OPTO(3,TOLGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3674{"twlnli", OPTO(3,TOLNL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3675{"tlnli", OPTO(3,TOLNL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3676{"twllei", OPTO(3,TOLLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3677{"tllei", OPTO(3,TOLLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3678{"twlngi", OPTO(3,TOLNG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3679{"tlngi", OPTO(3,TOLNG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3680{"twgti", OPTO(3,TOGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3681{"tgti", OPTO(3,TOGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3682{"twgei", OPTO(3,TOGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3683{"tgei", OPTO(3,TOGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3684{"twnli", OPTO(3,TONL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3685{"tnli", OPTO(3,TONL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3686{"twlti", OPTO(3,TOLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3687{"tlti", OPTO(3,TOLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3688{"twlei", OPTO(3,TOLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3689{"tlei", OPTO(3,TOLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3690{"twngi", OPTO(3,TONG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3691{"tngi", OPTO(3,TONG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3692{"twnei", OPTO(3,TONE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3693{"tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3694{"twui", OPTO(3,TOU), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3695{"tui", OPTO(3,TOU), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3696{"twi", OP(3), OP_MASK, PPCCOM, PPCVLE, {TO, RA, SI}},
3697{"ti", OP(3), OP_MASK, PWRCOM, PPCVLE, {TO, RA, SI}},
3698
3699{"ps_cmpu0", X (4, 0), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
3700{"vaddubm", VX (4, 0), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3701{"vmul10cuq", VX (4, 1), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
3702{"vmaxub", VX (4, 2), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3703{"vrlb", VX (4, 4), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3704{"vcmpequb", VXR(4, 6,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3705{"vcmpneb", VXR(4, 7,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3706{"vmuloub", VX (4, 8), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3707{"vaddfp", VX (4, 10), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3708{"psq_lx", XW (4, 6,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
3709{"vmrghb", VX (4, 12), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3710{"psq_stx", XW (4, 7,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
3711{"vpkuhum", VX (4, 14), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3712{"mulhhwu", XRC(4, 8,0), X_MASK, MULHW, 0, {RT, RA, RB}},
3713{"mulhhwu.", XRC(4, 8,1), X_MASK, MULHW, 0, {RT, RA, RB}},
3714{"ps_sum0", A (4, 10,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3715{"ps_sum0.", A (4, 10,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3716{"ps_sum1", A (4, 11,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3717{"ps_sum1.", A (4, 11,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3718{"ps_muls0", A (4, 12,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3719{"machhwu", XO (4, 12,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3720{"ps_muls0.", A (4, 12,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3721{"machhwu.", XO (4, 12,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3722{"ps_muls1", A (4, 13,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3723{"ps_muls1.", A (4, 13,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3724{"ps_madds0", A (4, 14,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3725{"ps_madds0.", A (4, 14,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3726{"ps_madds1", A (4, 15,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3727{"ps_madds1.", A (4, 15,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3728{"vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3729{"vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3730{"vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3731{"vmsumudm", VXA(4, 35), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
3732{"ps_div", A (4, 18,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3733{"vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3734{"ps_div.", A (4, 18,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3735{"vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3736{"vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3737{"vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3738{"ps_sub", A (4, 20,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3739{"vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3740{"ps_sub.", A (4, 20,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3741{"vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3742{"ps_add", A (4, 21,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3743{"vsel", VXA(4, 42), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3744{"ps_add.", A (4, 21,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
3745{"vperm", VXA(4, 43), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
3746{"vsldoi", VXA(4, 44), VXASHB_MASK, PPCVEC, 0, {VD, VA, VB, SHB}},
3747{"vpermxor", VXA(4, 45), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3748{"ps_sel", A (4, 23,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3749{"vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
3750{"ps_sel.", A (4, 23,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3751{"vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
3752{"ps_res", A (4, 24,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
3753{"maddhd", VXA(4, 48), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
3754{"ps_res.", A (4, 24,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
3755{"maddhdu", VXA(4, 49), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
3756{"ps_mul", A (4, 25,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3757{"ps_mul.", A (4, 25,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
3758{"maddld", VXA(4, 51), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
3759{"ps_rsqrte", A (4, 26,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
3760{"ps_rsqrte.", A (4, 26,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
3761{"ps_msub", A (4, 28,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3762{"ps_msub.", A (4, 28,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3763{"ps_madd", A (4, 29,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3764{"ps_madd.", A (4, 29,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3765{"vpermr", VXA(4, 59), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
3766{"ps_nmsub", A (4, 30,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3767{"vaddeuqm", VXA(4, 60), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3768{"ps_nmsub.", A (4, 30,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3769{"vaddecuq", VXA(4, 61), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3770{"ps_nmadd", A (4, 31,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3771{"vsubeuqm", VXA(4, 62), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3772{"ps_nmadd.", A (4, 31,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
3773{"vsubecuq", VXA(4, 63), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
3774{"ps_cmpo0", X (4, 32), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
3775{"vadduhm", VX (4, 64), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3776{"vmul10ecuq", VX (4, 65), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
3777{"vmaxuh", VX (4, 66), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3778{"vrlh", VX (4, 68), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3779{"vcmpequh", VXR(4, 70,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3780{"vcmpneh", VXR(4, 71,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3781{"vmulouh", VX (4, 72), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3782{"vsubfp", VX (4, 74), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3783{"psq_lux", XW (4, 38,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
3784{"vmrghh", VX (4, 76), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3785{"psq_stux", XW (4, 39,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
3786{"vpkuwum", VX (4, 78), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3787{"ps_neg", XRC(4, 40,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3788{"mulhhw", XRC(4, 40,0), X_MASK, MULHW, 0, {RT, RA, RB}},
3789{"ps_neg.", XRC(4, 40,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3790{"mulhhw.", XRC(4, 40,1), X_MASK, MULHW, 0, {RT, RA, RB}},
3791{"machhw", XO (4, 44,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3792{"machhw.", XO (4, 44,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3793{"nmachhw", XO (4, 46,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3794{"nmachhw.", XO (4, 46,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3795{"ps_cmpu1", X (4, 64), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
3796{"vadduwm", VX (4, 128), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3797{"vmaxuw", VX (4, 130), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3798{"vrlw", VX (4, 132), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3799{"vrlwmi", VX (4, 133), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
3800{"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3801{"vcmpnew", VXR(4, 135,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3802{"vmulouw", VX (4, 136), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3803{"vmuluwm", VX (4, 137), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3804{"vmrghw", VX (4, 140), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3805{"vpkuhus", VX (4, 142), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3806{"ps_mr", XRC(4, 72,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3807{"ps_mr.", XRC(4, 72,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3808{"machhwsu", XO (4, 76,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3809{"machhwsu.", XO (4, 76,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3810{"ps_cmpo1", X (4, 96), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
3811{"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3812{"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3813{"vrld", VX (4, 196), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3814{"vrldmi", VX (4, 197), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
3815{"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3816{"vcmpequd", VXR(4, 199,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
3817{"vpkuwus", VX (4, 206), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3818{"machhws", XO (4, 108,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3819{"machhws.", XO (4, 108,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3820{"nmachhws", XO (4, 110,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3821{"nmachhws.", XO (4, 110,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3822{"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3823{"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3824{"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3825{"vcmpnezb", VXR(4, 263,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3826{"vmulosb", VX (4, 264), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3827{"vrefp", VX (4, 266), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3828{"vmrglb", VX (4, 268), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3829{"vpkshus", VX (4, 270), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3830{"ps_nabs", XRC(4, 136,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3831{"mulchwu", XRC(4, 136,0), X_MASK, MULHW, 0, {RT, RA, RB}},
3832{"ps_nabs.", XRC(4, 136,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3833{"mulchwu.", XRC(4, 136,1), X_MASK, MULHW, 0, {RT, RA, RB}},
3834{"macchwu", XO (4, 140,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3835{"macchwu.", XO (4, 140,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3836{"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3837{"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3838{"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3839{"vcmpnezh", VXR(4, 327,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3840{"vmulosh", VX (4, 328), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3841{"vrsqrtefp", VX (4, 330), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3842{"vmrglh", VX (4, 332), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3843{"vpkswus", VX (4, 334), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3844{"mulchw", XRC(4, 168,0), X_MASK, MULHW, 0, {RT, RA, RB}},
3845{"mulchw.", XRC(4, 168,1), X_MASK, MULHW, 0, {RT, RA, RB}},
3846{"macchw", XO (4, 172,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3847{"macchw.", XO (4, 172,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3848{"nmacchw", XO (4, 174,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3849{"nmacchw.", XO (4, 174,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3850{"vaddcuw", VX (4, 384), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3851{"vmaxsw", VX (4, 386), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3852{"vslw", VX (4, 388), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3853{"vrlwnm", VX (4, 389), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
3854{"vcmpnezw", VXR(4, 391,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3855{"vmulosw", VX (4, 392), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3856{"vexptefp", VX (4, 394), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3857{"vmrglw", VX (4, 396), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3858{"vpkshss", VX (4, 398), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3859{"macchwsu", XO (4, 204,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3860{"macchwsu.", XO (4, 204,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3861{"vmaxsd", VX (4, 450), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3862{"vsl", VX (4, 452), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3863{"vrldnm", VX (4, 453), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
3864{"vcmpgefp", VXR(4, 454,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3865{"vlogefp", VX (4, 458), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3866{"vpkswss", VX (4, 462), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3867{"macchws", XO (4, 236,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3868{"macchws.", XO (4, 236,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3869{"nmacchws", XO (4, 238,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
3870{"nmacchws.", XO (4, 238,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
3871{"evaddw", VX (4, 512), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3872{"vaddubs", VX (4, 512), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3873{"vmul10uq", VX (4, 513), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
3874{"evaddiw", VX (4, 514), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
3875{"vminub", VX (4, 514), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3876{"evsubfw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3877{"evsubw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RB, RA}},
3878{"vsrb", VX (4, 516), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3879{"evsubifw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, UIMM, RB}},
3880{"evsubiw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
3881{"vcmpgtub", VXR(4, 518,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3882{"evabs", VX (4, 520), VX_MASK, PPCSPE, 0, {RS, RA}},
3883{"vmuleub", VX (4, 520), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3884{"evneg", VX (4, 521), VX_MASK, PPCSPE, 0, {RS, RA}},
3885{"evextsb", VX (4, 522), VX_MASK, PPCSPE, 0, {RS, RA}},
3886{"vrfin", VX (4, 522), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3887{"evextsh", VX (4, 523), VX_MASK, PPCSPE, 0, {RS, RA}},
3888{"evrndw", VX (4, 524), VX_MASK, PPCSPE, 0, {RS, RA}},
3889{"vspltb", VX (4, 524), VXUIMM4_MASK, PPCVEC, 0, {VD, VB, UIMM4}},
3890{"vextractub", VX (4, 525), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
3891{"evcntlzw", VX (4, 525), VX_MASK, PPCSPE, 0, {RS, RA}},
3892{"evcntlsw", VX (4, 526), VX_MASK, PPCSPE, 0, {RS, RA}},
3893{"vupkhsb", VX (4, 526), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3894{"brinc", VX (4, 527), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3895{"ps_abs", XRC(4, 264,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3896{"ps_abs.", XRC(4, 264,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
3897{"evand", VX (4, 529), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3898{"evandc", VX (4, 530), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3899{"evxor", VX (4, 534), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
98553ad3 3900{"evmr", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RAB}},
14b57c7c 3901{"evor", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
98553ad3 3902{"evnot", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RAB}},
14b57c7c 3903{"evnor", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
3904{"get", APU(4, 268,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
3905{"eveqv", VX (4, 537), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3906{"evorc", VX (4, 539), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3907{"evnand", VX (4, 542), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3908{"evsrwu", VX (4, 544), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3909{"evsrws", VX (4, 545), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3910{"evsrwiu", VX (4, 546), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
3911{"evsrwis", VX (4, 547), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
3912{"evslw", VX (4, 548), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3913{"evslwi", VX (4, 550), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
3914{"evrlw", VX (4, 552), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3915{"evsplati", VX (4, 553), VX_MASK, PPCSPE, 0, {RS, SIMM}},
3916{"evrlwi", VX (4, 554), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
3917{"evsplatfi", VX (4, 555), VX_MASK, PPCSPE, 0, {RS, SIMM}},
3918{"evmergehi", VX (4, 556), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3919{"evmergelo", VX (4, 557), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3920{"evmergehilo", VX (4, 558), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3921{"evmergelohi", VX (4, 559), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3922{"evcmpgtu", VX (4, 560), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3923{"evcmpgts", VX (4, 561), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3924{"evcmpltu", VX (4, 562), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3925{"evcmplts", VX (4, 563), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3926{"evcmpeq", VX (4, 564), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3927{"cget", APU(4, 284,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
3928{"vadduhs", VX (4, 576), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3929{"vmul10euq", VX (4, 577), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
3930{"vminuh", VX (4, 578), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3931{"vsrh", VX (4, 580), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3932{"vcmpgtuh", VXR(4, 582,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3933{"vmuleuh", VX (4, 584), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3934{"vrfiz", VX (4, 586), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3935{"vsplth", VX (4, 588), VXUIMM3_MASK, PPCVEC, 0, {VD, VB, UIMM3}},
3936{"vextractuh", VX (4, 589), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
3937{"vupkhsh", VX (4, 590), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3938{"nget", APU(4, 300,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
3939{"evsel", EVSEL(4,79), EVSEL_MASK, PPCSPE, 0, {RS, RA, RB, CRFS}},
3940{"ncget", APU(4, 316,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
3941{"evfsadd", VX (4, 640), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3942{"vadduws", VX (4, 640), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3943{"evfssub", VX (4, 641), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 3944{"evfsmadd", VX (4, 642), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c 3945{"vminuw", VX (4, 642), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 3946{"evfsmsub", VX (4, 643), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
3947{"evfsabs", VX (4, 644), VX_MASK, PPCSPE, 0, {RS, RA}},
3948{"vsrw", VX (4, 644), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3949{"evfsnabs", VX (4, 645), VX_MASK, PPCSPE, 0, {RS, RA}},
3950{"evfsneg", VX (4, 646), VX_MASK, PPCSPE, 0, {RS, RA}},
3951{"vcmpgtuw", VXR(4, 646,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 3952{"evfssqrt", VX_RB_CONST(4, 647, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
3953{"vmuleuw", VX (4, 648), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
3954{"evfsmul", VX (4, 648), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
3955{"evfsdiv", VX (4, 649), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 3956{"evfsnmadd", VX (4, 650), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c 3957{"vrfip", VX (4, 650), VXVA_MASK, PPCVEC, 0, {VD, VB}},
74081948 3958{"evfsnmsub", VX (4, 651), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
3959{"evfscmpgt", VX (4, 652), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3960{"vspltw", VX (4, 652), VXUIMM2_MASK, PPCVEC, 0, {VD, VB, UIMM2}},
3961{"vextractuw", VX (4, 653), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
3962{"evfscmplt", VX (4, 653), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3963{"evfscmpeq", VX (4, 654), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3964{"vupklsb", VX (4, 654), VXVA_MASK, PPCVEC, 0, {VD, VB}},
3965{"evfscfui", VX (4, 656), VX_MASK, PPCSPE, 0, {RS, RB}},
74081948 3966{"evfscfh", VX_RA_CONST(4, 657, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
3967{"evfscfsi", VX (4, 657), VX_MASK, PPCSPE, 0, {RS, RB}},
3968{"evfscfuf", VX (4, 658), VX_MASK, PPCSPE, 0, {RS, RB}},
3969{"evfscfsf", VX (4, 659), VX_MASK, PPCSPE, 0, {RS, RB}},
3970{"evfsctui", VX (4, 660), VX_MASK, PPCSPE, 0, {RS, RB}},
74081948 3971{"evfscth", VX_RA_CONST(4, 661, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
3972{"evfsctsi", VX (4, 661), VX_MASK, PPCSPE, 0, {RS, RB}},
3973{"evfsctuf", VX (4, 662), VX_MASK, PPCSPE, 0, {RS, RB}},
3974{"evfsctsf", VX (4, 663), VX_MASK, PPCSPE, 0, {RS, RB}},
3975{"evfsctuiz", VX (4, 664), VX_MASK, PPCSPE, 0, {RS, RB}},
3976{"put", APU(4, 332,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
3977{"evfsctsiz", VX (4, 666), VX_MASK, PPCSPE, 0, {RS, RB}},
3978{"evfststgt", VX (4, 668), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3979{"evfststlt", VX (4, 669), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
3980{"evfststeq", VX (4, 670), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
74081948
AF
3981{"evfsmax", VX (4, 672), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3982{"evfsmin", VX (4, 673), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3983{"evfsaddsub", VX (4, 674), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3984{"evfssubadd", VX (4, 675), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3985{"evfssum", VX (4, 676), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3986{"evfsdiff", VX (4, 677), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3987{"evfssumdiff", VX (4, 678), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3988{"evfsdiffsum", VX (4, 679), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3989{"evfsaddx", VX (4, 680), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3990{"evfssubx", VX (4, 681), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3991{"evfsaddsubx", VX (4, 682), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3992{"evfssubaddx", VX (4, 683), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3993{"evfsmulx", VX (4, 684), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3994{"evfsmule", VX (4, 686), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3995{"evfsmulo", VX (4, 687), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3996{"efsmax", VX (4, 688), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3997{"efsmin", VX (4, 689), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
3998{"efdmax", VX (4, 696), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
14b57c7c 3999{"cput", APU(4, 348,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
74081948 4000{"efdmin", VX (4, 697), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
14b57c7c
AM
4001{"efsadd", VX (4, 704), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4002{"efssub", VX (4, 705), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948 4003{"efsmadd", VX (4, 706), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 4004{"vminud", VX (4, 706), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4005{"efsmsub", VX (4, 707), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c
AM
4006{"efsabs", VX (4, 708), VX_MASK, PPCEFS, 0, {RS, RA}},
4007{"vsr", VX (4, 708), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4008{"efsnabs", VX (4, 709), VX_MASK, PPCEFS, 0, {RS, RA}},
4009{"efsneg", VX (4, 710), VX_MASK, PPCEFS, 0, {RS, RA}},
4010{"vcmpgtfp", VXR(4, 710,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4011{"efssqrt", VX_RB_CONST(4, 711, 0), VX_RB_CONST_MASK,PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
4012{"vcmpgtud", VXR(4, 711,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4013{"efsmul", VX (4, 712), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4014{"efsdiv", VX (4, 713), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948 4015{"efsnmadd", VX (4, 714), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 4016{"vrfim", VX (4, 714), VXVA_MASK, PPCVEC, 0, {VD, VB}},
74081948 4017{"efsnmsub", VX (4, 715), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c
AM
4018{"efscmpgt", VX (4, 716), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4019{"vextractd", VX (4, 717), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4020{"efscmplt", VX (4, 717), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4021{"efscmpeq", VX (4, 718), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4022{"vupklsh", VX (4, 718), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4023{"efscfd", VX (4, 719), VX_MASK, PPCEFS, 0, {RS, RB}},
4024{"efscfui", VX (4, 720), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 4025{"efscfh", VX_RA_CONST(4, 721, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4026{"efscfsi", VX (4, 721), VX_MASK, PPCEFS, 0, {RS, RB}},
4027{"efscfuf", VX (4, 722), VX_MASK, PPCEFS, 0, {RS, RB}},
4028{"efscfsf", VX (4, 723), VX_MASK, PPCEFS, 0, {RS, RB}},
4029{"efsctui", VX (4, 724), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 4030{"efscth", VX_RA_CONST(4, 725, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4031{"efsctsi", VX (4, 725), VX_MASK, PPCEFS, 0, {RS, RB}},
4032{"efsctuf", VX (4, 726), VX_MASK, PPCEFS, 0, {RS, RB}},
4033{"efsctsf", VX (4, 727), VX_MASK, PPCEFS, 0, {RS, RB}},
4034{"efsctuiz", VX (4, 728), VX_MASK, PPCEFS, 0, {RS, RB}},
4035{"nput", APU(4, 364,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
4036{"efsctsiz", VX (4, 730), VX_MASK, PPCEFS, 0, {RS, RB}},
4037{"efststgt", VX (4, 732), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4038{"efststlt", VX (4, 733), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4039{"efststeq", VX (4, 734), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4040{"efdadd", VX (4, 736), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4041{"efdsub", VX (4, 737), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948
AF
4042{"efdmadd", VX (4, 738), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4043{"efdcfuid", VX (4, 738), VX_MASK, E500|E500MC,0, {RS, RB}},
4044{"efdmsub", VX (4, 739), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4045{"efdcfsid", VX (4, 739), VX_MASK, E500|E500MC,0, {RS, RB}},
14b57c7c
AM
4046{"efdabs", VX (4, 740), VX_MASK, PPCEFS, 0, {RS, RA}},
4047{"efdnabs", VX (4, 741), VX_MASK, PPCEFS, 0, {RS, RA}},
4048{"efdneg", VX (4, 742), VX_MASK, PPCEFS, 0, {RS, RA}},
74081948 4049{"efdsqrt", VX_RB_CONST(4, 743, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
4050{"efdmul", VX (4, 744), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4051{"efddiv", VX (4, 745), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948
AF
4052{"efdnmadd", VX (4, 746), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4053{"efdctuidz", VX (4, 746), VX_MASK, E500|E500MC,0, {RS, RB}},
4054{"efdnmsub", VX (4, 747), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4055{"efdctsidz", VX (4, 747), VX_MASK, E500|E500MC,0, {RS, RB}},
14b57c7c
AM
4056{"efdcmpgt", VX (4, 748), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4057{"efdcmplt", VX (4, 749), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4058{"efdcmpeq", VX (4, 750), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4059{"efdcfs", VX (4, 751), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948
AF
4060{"efdcfui", VX_RA_CONST(4, 752, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4061{"efdcfuid", VX_RA_CONST(4, 752, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4062{"efdcfsi", VX_RA_CONST(4, 753, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4063{"efdcfsid", VX_RA_CONST(4, 753, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4064{"efdcfh", VX_RA_CONST(4, 753, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4065{"efdcfuf", VX (4, 754), VX_MASK, PPCEFS, 0, {RS, RB}},
4066{"efdcfsf", VX (4, 755), VX_MASK, PPCEFS, 0, {RS, RB}},
4067{"efdctui", VX (4, 756), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 4068{"efdcth", VX_RA_CONST(4, 757, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4069{"efdctsi", VX (4, 757), VX_MASK, PPCEFS, 0, {RS, RB}},
4070{"efdctuf", VX (4, 758), VX_MASK, PPCEFS, 0, {RS, RB}},
4071{"efdctsf", VX (4, 759), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948
AF
4072{"efdctuiz", VX_RA_CONST(4, 760, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4073{"efdctuidz", VX_RA_CONST(4, 760, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
14b57c7c 4074{"ncput", APU(4, 380,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
74081948
AF
4075{"efdctsiz", VX_RA_CONST(4, 762, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4076{"efdctsidz", VX_RA_CONST(4, 762, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
14b57c7c
AM
4077{"efdtstgt", VX (4, 764), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4078{"efdtstlt", VX (4, 765), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4079{"efdtsteq", VX (4, 766), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4080{"evlddx", VX (4, 768), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4081{"vaddsbs", VX (4, 768), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4082{"evldd", VX (4, 769), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4083{"evldwx", VX (4, 770), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4084{"vminsb", VX (4, 770), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4085{"evldw", VX (4, 771), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4086{"evldhx", VX (4, 772), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4087{"vsrab", VX (4, 772), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4088{"evldh", VX (4, 773), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4089{"vcmpgtsb", VXR(4, 774,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4090{"evlhhesplatx",VX (4, 776), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4091{"vmulesb", VX (4, 776), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4092{"evlhhesplat", VX (4, 777), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4093{"vcfux", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4094{"vcuxwfp", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4095{"evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4096{"vspltisb", VX (4, 780), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4097{"vinsertb", VX (4, 781), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4098{"evlhhousplat",VX (4, 781), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4099{"evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4100{"vpkpx", VX (4, 782), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4101{"evlhhossplat",VX (4, 783), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4102{"mullhwu", XRC(4, 392,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4103{"evlwhex", VX (4, 784), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4104{"mullhwu.", XRC(4, 392,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4105{"evlwhe", VX (4, 785), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4106{"evlwhoux", VX (4, 788), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4107{"evlwhou", VX (4, 789), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4108{"evlwhosx", VX (4, 790), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4109{"evlwhos", VX (4, 791), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4110{"maclhwu", XO (4, 396,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4111{"evlwwsplatx", VX (4, 792), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4112{"maclhwu.", XO (4, 396,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4113{"evlwwsplat", VX (4, 793), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4114{"evlwhsplatx", VX (4, 796), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4115{"evlwhsplat", VX (4, 797), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4116{"evstddx", VX (4, 800), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4117{"evstdd", VX (4, 801), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4118{"evstdwx", VX (4, 802), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4119{"evstdw", VX (4, 803), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4120{"evstdhx", VX (4, 804), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4121{"evstdh", VX (4, 805), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4122{"evstwhex", VX (4, 816), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4123{"evstwhe", VX (4, 817), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4124{"evstwhox", VX (4, 820), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4125{"evstwho", VX (4, 821), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4126{"evstwwex", VX (4, 824), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4127{"evstwwe", VX (4, 825), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4128{"evstwwox", VX (4, 828), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4129{"evstwwo", VX (4, 829), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4130{"vaddshs", VX (4, 832), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4131{"bcdcpsgn.", VX (4, 833), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4132{"vminsh", VX (4, 834), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4133{"vsrah", VX (4, 836), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4134{"vcmpgtsh", VXR(4, 838,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4135{"vmulesh", VX (4, 840), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4136{"vcfsx", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4137{"vcsxwfp", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4138{"vspltish", VX (4, 844), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4139{"vinserth", VX (4, 845), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4140{"vupkhpx", VX (4, 846), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4141{"mullhw", XRC(4, 424,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4142{"mullhw.", XRC(4, 424,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4143{"maclhw", XO (4, 428,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4144{"maclhw.", XO (4, 428,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4145{"nmaclhw", XO (4, 430,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4146{"nmaclhw.", XO (4, 430,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4147{"vaddsws", VX (4, 896), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4148{"vminsw", VX (4, 898), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4149{"vsraw", VX (4, 900), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4150{"vcmpgtsw", VXR(4, 902,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4151{"vmulesw", VX (4, 904), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4152{"vctuxs", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4153{"vcfpuxws", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4154{"vspltisw", VX (4, 908), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4155{"vinsertw", VX (4, 909), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4156{"maclhwsu", XO (4, 460,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4157{"maclhwsu.", XO (4, 460,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4158{"vminsd", VX (4, 962), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4159{"vsrad", VX (4, 964), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4160{"vcmpbfp", VXR(4, 966,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4161{"vcmpgtsd", VXR(4, 967,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4162{"vctsxs", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4163{"vcfpsxws", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4164{"vinsertd", VX (4, 973), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4165{"vupklpx", VX (4, 974), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4166{"maclhws", XO (4, 492,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4167{"maclhws.", XO (4, 492,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4168{"nmaclhws", XO (4, 494,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4169{"nmaclhws.", XO (4, 494,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4170{"vsububm", VX (4,1024), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4171{"bcdadd.", VX (4,1025), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
4172{"vavgub", VX (4,1026), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4173{"vabsdub", VX (4,1027), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4174{"evmhessf", VX (4,1027), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4175{"vand", VX (4,1028), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4176{"vcmpequb.", VXR(4, 6,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4177{"vcmpneb.", VXR(4, 7,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
62adc510
AM
4178{"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4179{"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4180{"evmhossf", VX (4,1031), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4181{"vpmsumb", VX (4,1032), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4182{"evmheumi", VX (4,1032), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4183{"evmhesmi", VX (4,1033), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4184{"vmaxfp", VX (4,1034), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4185{"evmhesmf", VX (4,1035), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4186{"evmhoumi", VX (4,1036), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4187{"vslo", VX (4,1036), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4188{"evmhosmi", VX (4,1037), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4189{"evmhosmf", VX (4,1039), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4190{"machhwuo", XO (4, 12,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4191{"machhwuo.", XO (4, 12,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4192{"ps_merge00", XOPS(4,528,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4193{"ps_merge00.", XOPS(4,528,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4194{"evmhessfa", VX (4,1059), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4195{"evmhossfa", VX (4,1063), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4196{"evmheumia", VX (4,1064), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4197{"evmhesmia", VX (4,1065), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4198{"evmhesmfa", VX (4,1067), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4199{"evmhoumia", VX (4,1068), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4200{"evmhosmia", VX (4,1069), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4201{"evmhosmfa", VX (4,1071), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4202{"vsubuhm", VX (4,1088), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4203{"bcdsub.", VX (4,1089), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
4204{"vavguh", VX (4,1090), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4205{"evmwlssf", VX (4,1091), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4206{"vabsduh", VX (4,1091), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4207{"vandc", VX (4,1092), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4208{"vcmpequh.", VXR(4, 70,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4209{"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4210{"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4211{"vcmpneh.", VXR(4, 71,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4212{"evmwhssf", VX (4,1095), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4213{"vpmsumh", VX (4,1096), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4214{"evmwlumi", VX (4,1096), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4215{"vminfp", VX (4,1098), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4216{"evmwlsmf", VX (4,1099), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4217{"evmwhumi", VX (4,1100), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4218{"vsro", VX (4,1100), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4219{"evmwhsmi", VX (4,1101), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4220{"vpkudum", VX (4,1102), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4221{"evmwhsmf", VX (4,1103), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4222{"evmwssf", VX (4,1107), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4223{"machhwo", XO (4, 44,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4224{"evmwumi", VX (4,1112), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4225{"machhwo.", XO (4, 44,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4226{"evmwsmi", VX (4,1113), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4227{"evmwsmf", VX (4,1115), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4228{"nmachhwo", XO (4, 46,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4229{"nmachhwo.", XO (4, 46,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4230{"ps_merge01", XOPS(4,560,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4231{"ps_merge01.", XOPS(4,560,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
74081948 4232{"evmwlssfa", VX (4,1123), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4233{"evmwhssfa", VX (4,1127), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4234{"evmwlumia", VX (4,1128), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 4235{"evmwlsmfa", VX (4,1131), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4236{"evmwhumia", VX (4,1132), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4237{"evmwhsmia", VX (4,1133), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4238{"evmwhsmfa", VX (4,1135), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4239{"evmwssfa", VX (4,1139), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4240{"evmwumia", VX (4,1144), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4241{"evmwsmia", VX (4,1145), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4242{"evmwsmfa", VX (4,1147), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4243{"vsubuwm", VX (4,1152), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4244{"bcdus.", VX (4,1153), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4245{"vavguw", VX (4,1154), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4246{"vabsduw", VX (4,1155), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
98553ad3 4247{"vmr", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VAB}},
14b57c7c
AM
4248{"vor", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4249{"vcmpnew.", VXR(4, 135,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4250{"vpmsumw", VX (4,1160), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4251{"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4252{"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4253{"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4254{"machhwsuo", XO (4, 76,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4255{"machhwsuo.", XO (4, 76,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4256{"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4257{"ps_merge10.", XOPS(4,592,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4258{"vsubudm", VX (4,1216), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4259{"evaddusiaaw", VX (4,1216), VX_MASK, PPCSPE, 0, {RS, RA}},
4260{"bcds.", VX (4,1217), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
4261{"evaddssiaaw", VX (4,1217), VX_MASK, PPCSPE, 0, {RS, RA}},
4262{"evsubfusiaaw",VX (4,1218), VX_MASK, PPCSPE, 0, {RS, RA}},
4263{"evsubfssiaaw",VX (4,1219), VX_MASK, PPCSPE, 0, {RS, RA}},
4264{"evmra", VX (4,1220), VX_MASK, PPCSPE, 0, {RS, RA}},
4265{"vxor", VX (4,1220), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4266{"evdivws", VX (4,1222), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4267{"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 4268{"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c 4269{"vcmpequd.", VXR(4, 199,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 4270{"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4271{"evdivwu", VX (4,1223), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4272{"vpmsumd", VX (4,1224), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4273{"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE, 0, {RS, RA}},
4274{"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE, 0, {RS, RA}},
4275{"evsubfumiaaw",VX (4,1226), VX_MASK, PPCSPE, 0, {RS, RA}},
4276{"evsubfsmiaaw",VX (4,1227), VX_MASK, PPCSPE, 0, {RS, RA}},
4277{"vpkudus", VX (4,1230), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4278{"machhwso", XO (4, 108,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4279{"machhwso.", XO (4, 108,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4280{"nmachhwso", XO (4, 110,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4281{"nmachhwso.", XO (4, 110,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4282{"ps_merge11", XOPS(4,624,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4283{"ps_merge11.", XOPS(4,624,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4284{"vsubuqm", VX (4,1280), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4285{"evmheusiaaw", VX (4,1280), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4286{"bcdtrunc.", VX (4,1281), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
4287{"evmhessiaaw", VX (4,1281), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4288{"vavgsb", VX (4,1282), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4289{"evmhessfaaw", VX (4,1283), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4290{"evmhousiaaw", VX (4,1284), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
98553ad3 4291{"vnot", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VAB}},
14b57c7c
AM
4292{"vnor", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4293{"evmhossiaaw", VX (4,1285), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
62adc510
AM
4294{"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4295{"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4296{"vcmpnezb.", VXR(4, 263,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4297{"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4298{"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4299{"vcipher", VX (4,1288), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4300{"vcipherlast", VX (4,1289), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4301{"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4302{"evmhesmfaaw", VX (4,1291), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4303{"vgbbd", VX (4,1292), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4304{"evmhoumiaaw", VX (4,1292), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4305{"evmhosmiaaw", VX (4,1293), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4306{"evmhosmfaaw", VX (4,1295), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4307{"macchwuo", XO (4, 140,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4308{"macchwuo.", XO (4, 140,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4309{"evmhegumiaa", VX (4,1320), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4310{"evmhegsmiaa", VX (4,1321), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4311{"evmhegsmfaa", VX (4,1323), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4312{"evmhogumiaa", VX (4,1324), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4313{"evmhogsmiaa", VX (4,1325), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4314{"evmhogsmfaa", VX (4,1327), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4315{"vsubcuq", VX (4,1344), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4316{"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4317{"bcdutrunc.", VX (4,1345), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4318{"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4319{"vavgsh", VX (4,1346), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948
AF
4320{"evmwlssfaaw", VX (4,1347), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4321{"evmwhusiaa", VX (4,1348), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4322{"vorc", VX (4,1348), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4323{"evmwhssmaa", VX (4,1349), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
62adc510
AM
4324{"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4325{"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c 4326{"vcmpnezh.", VXR(4, 327,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
74081948 4327{"evmwhssfaa", VX (4,1351), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4328{"vncipher", VX (4,1352), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4329{"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4330{"vncipherlast",VX (4,1353), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4331{"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
4332{"evmwlsmfaaw", VX (4,1355), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4333{"evmwhumiaa", VX (4,1356), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4334{"vbpermq", VX (4,1356), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4335{"evmwhsmiaa", VX (4,1357), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4336{"vpksdus", VX (4,1358), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4337{"evmwhsmfaa", VX (4,1359), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4338{"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4339{"macchwo", XO (4, 172,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4340{"evmwumiaa", VX (4,1368), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4341{"macchwo.", XO (4, 172,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4342{"evmwsmiaa", VX (4,1369), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4343{"evmwsmfaa", VX (4,1371), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4344{"nmacchwo", XO (4, 174,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4345{"nmacchwo.", XO (4, 174,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
74081948
AF
4346{"evmwhgumiaa", VX (4,1380), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4347{"evmwhgsmiaa", VX (4,1381), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4348{"evmwhgssfaa", VX (4,1383), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4349{"evmwhgsmfaa", VX (4,1391), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4350{"evmheusianw", VX (4,1408), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4351{"vsubcuw", VX (4,1408), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4352{"evmhessianw", VX (4,1409), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4353{"bcdctsq.", VXVA(4,1409,0), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4354{"bcdcfsq.", VXVA(4,1409,2), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4355{"bcdctz.", VXVA(4,1409,4), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4356{"bcdctn.", VXVA(4,1409,5), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4357{"bcdcfz.", VXVA(4,1409,6), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4358{"bcdcfn.", VXVA(4,1409,7), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4359{"bcdsetsgn.", VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4360{"vavgsw", VX (4,1410), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4361{"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4362{"vnand", VX (4,1412), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4363{"evmhousianw", VX (4,1412), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4364{"evmhossianw", VX (4,1413), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
62adc510
AM
4365{"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4366{"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4367{"vcmpnezw.", VXR(4, 391,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4368{"evmhossfanw", VX (4,1415), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4369{"evmheumianw", VX (4,1416), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4370{"evmhesmianw", VX (4,1417), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4371{"evmhesmfanw", VX (4,1419), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4372{"evmhoumianw", VX (4,1420), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4373{"evmhosmianw", VX (4,1421), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4374{"evmhosmfanw", VX (4,1423), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4375{"macchwsuo", XO (4, 204,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4376{"macchwsuo.", XO (4, 204,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4377{"evmhegumian", VX (4,1448), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4378{"evmhegsmian", VX (4,1449), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4379{"evmhegsmfan", VX (4,1451), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4380{"evmhogumian", VX (4,1452), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4381{"evmhogsmian", VX (4,1453), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4382{"evmhogsmfan", VX (4,1455), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4383{"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4384{"bcdsr.", VX (4,1473), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
4385{"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
4386{"evmwlssfanw", VX (4,1475), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4387{"evmwhusian", VX (4,1476), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4388{"vsld", VX (4,1476), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4389{"evmwhssian", VX (4,1477), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4390{"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4391{"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4392{"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
74081948 4393{"evmwhssfan", VX (4,1479), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4394{"vsbox", VX (4,1480), VXVB_MASK, PPCVEC2, 0, {VD, VA}},
4395{"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4396{"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
4397{"evmwlsmfanw", VX (4,1483), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4398{"evmwhumian", VX (4,1484), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4399{"vbpermd", VX (4,1484), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
74081948 4400{"evmwhsmian", VX (4,1485), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 4401{"vpksdss", VX (4,1486), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4402{"evmwhsmfan", VX (4,1487), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4403{"evmwssfan", VX (4,1491), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4404{"macchwso", XO (4, 236,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4405{"evmwumian", VX (4,1496), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4406{"macchwso.", XO (4, 236,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4407{"evmwsmian", VX (4,1497), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4408{"evmwsmfan", VX (4,1499), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
4409{"evmwhgumian", VX (4,1508), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4410{"evmwhgsmian", VX (4,1509), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4411{"evmwhgssfan", VX (4,1511), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4412{"evmwhgsmfan", VX (4,1519), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4413{"nmacchwso", XO (4, 238,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4414{"nmacchwso.", XO (4, 238,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4415{"vsububs", VX (4,1536), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4416{"vclzlsbb", VXVA(4,1538,0), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
4417{"vctzlsbb", VXVA(4,1538,1), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
4418{"vnegw", VXVA(4,1538,6), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4419{"vnegd", VXVA(4,1538,7), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4420{"vprtybw", VXVA(4,1538,8), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4421{"vprtybd", VXVA(4,1538,9), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4422{"vprtybq", VXVA(4,1538,10), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4423{"vextsb2w", VXVA(4,1538,16), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4424{"vextsh2w", VXVA(4,1538,17), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4425{"vextsb2d", VXVA(4,1538,24), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4426{"vextsh2d", VXVA(4,1538,25), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4427{"vextsw2d", VXVA(4,1538,26), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4428{"vctzb", VXVA(4,1538,28), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4429{"vctzh", VXVA(4,1538,29), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4430{"vctzw", VXVA(4,1538,30), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4431{"vctzd", VXVA(4,1538,31), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4432{"mfvscr", VX (4,1540), VXVAVB_MASK, PPCVEC, 0, {VD}},
4433{"vcmpgtub.", VXR(4, 518,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4434{"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4435{"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4436{"vsum4ubs", VX (4,1544), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4437{"vextublx", VX (4,1549), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4438{"vsubuhs", VX (4,1600), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4439{"mtvscr", VX (4,1604), VXVDVA_MASK, PPCVEC, 0, {VB}},
4440{"vcmpgtuh.", VXR(4, 582,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4441{"vsum4shs", VX (4,1608), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4442{"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4443{"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4444{"vextuhlx", VX (4,1613), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4445{"vupkhsw", VX (4,1614), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4446{"vsubuws", VX (4,1664), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4447{"vshasigmaw", VX (4,1666), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
4448{"veqv", VX (4,1668), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4449{"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4450{"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4451{"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4452{"vsum2sws", VX (4,1672), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4453{"vmrgow", VX (4,1676), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4454{"vextuwlx", VX (4,1677), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4455{"vshasigmad", VX (4,1730), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
4456{"vsrd", VX (4,1732), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4457{"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 4458{"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 4459{"vcmpgtud.", VXR(4, 711,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 4460{"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4461{"vupklsw", VX (4,1742), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4462{"vsubsbs", VX (4,1792), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4463{"vclzb", VX (4,1794), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4464{"vpopcntb", VX (4,1795), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4465{"vsrv", VX (4,1796), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4466{"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4467{"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4468{"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4469{"vsum4sbs", VX (4,1800), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4470{"vextubrx", VX (4,1805), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4471{"maclhwuo", XO (4, 396,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4472{"maclhwuo.", XO (4, 396,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4473{"vsubshs", VX (4,1856), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4474{"vclzh", VX (4,1858), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4475{"vpopcnth", VX (4,1859), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4476{"vslv", VX (4,1860), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4477{"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4478{"vextuhrx", VX (4,1869), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
62adc510
AM
4479{"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4480{"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4481{"maclhwo", XO (4, 428,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4482{"maclhwo.", XO (4, 428,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4483{"nmaclhwo", XO (4, 430,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4484{"nmaclhwo.", XO (4, 430,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4485{"vsubsws", VX (4,1920), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4486{"vclzw", VX (4,1922), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4487{"vpopcntw", VX (4,1923), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4488{"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4489{"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4490{"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4491{"vsumsws", VX (4,1928), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4492{"vmrgew", VX (4,1932), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4493{"vextuwrx", VX (4,1933), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4494{"maclhwsuo", XO (4, 460,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4495{"maclhwsuo.", XO (4, 460,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4496{"vclzd", VX (4,1986), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4497{"vpopcntd", VX (4,1987), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4498{"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 4499{"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 4500{"vcmpgtsd.", VXR(4, 967,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 4501{"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4502{"maclhwso", XO (4, 492,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4503{"maclhwso.", XO (4, 492,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4504{"nmaclhwso", XO (4, 494,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4505{"nmaclhwso.", XO (4, 494,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4506{"dcbz_l", X (4,1014), XRT_MASK, PPCPS, 0, {RA, RB}},
4507
4508{"mulli", OP(7), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4509{"muli", OP(7), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4510
4511{"subfic", OP(8), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4512{"sfi", OP(8), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4513
4514{"dozi", OP(9), OP_MASK, M601, PPCVLE, {RT, RA, SI}},
4515
4516{"cmplwi", OPL(10,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, UISIGNOPT}},
4517{"cmpldi", OPL(10,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, UISIGNOPT}},
a5721ba2 4518{"cmpli", OP(10), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, UISIGNOPT}},
14b57c7c
AM
4519{"cmpli", OP(10), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, UISIGNOPT}},
4520
4521{"cmpwi", OPL(11,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, SI}},
4522{"cmpdi", OPL(11,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, SI}},
a5721ba2 4523{"cmpi", OP(11), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, SI}},
14b57c7c
AM
4524{"cmpi", OP(11), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, SI}},
4525
4526{"addic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4527{"ai", OP(12), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4528{"subic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
4529
4530{"addic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4531{"ai.", OP(13), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4532{"subic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
4533
4534{"li", OP(14), DRA_MASK, PPCCOM, PPCVLE, {RT, SI}},
4535{"lil", OP(14), DRA_MASK, PWRCOM, PPCVLE, {RT, SI}},
4536{"addi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SI}},
4537{"cal", OP(14), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
4538{"subi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSI}},
4539{"la", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
4540
4541{"lis", OP(15), DRA_MASK, PPCCOM, PPCVLE, {RT, SISIGNOPT}},
4542{"liu", OP(15), DRA_MASK, PWRCOM, PPCVLE, {RT, SISIGNOPT}},
4543{"addis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
4544{"cau", OP(15), OP_MASK, PWRCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
4545{"subis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSISIGNOPT}},
4546
4547{"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4548{"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4549{"bdnz", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
4550{"bdn", BBO(16,BODNZ,0,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
4551{"bdnzl-", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4552{"bdnzl+", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4553{"bdnzl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
4554{"bdnl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
4555{"bdnza-", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4556{"bdnza+", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4557{"bdnza", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
4558{"bdna", BBO(16,BODNZ,1,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
4559{"bdnzla-", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4560{"bdnzla+", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4561{"bdnzla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
4562{"bdnla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
4563{"bdz-", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4564{"bdz+", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4565{"bdz", BBO(16,BODZ,0,0), BBOATBI_MASK, COM, PPCVLE, {BD}},
4566{"bdzl-", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4567{"bdzl+", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4568{"bdzl", BBO(16,BODZ,0,1), BBOATBI_MASK, COM, PPCVLE, {BD}},
4569{"bdza-", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4570{"bdza+", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4571{"bdza", BBO(16,BODZ,1,0), BBOATBI_MASK, COM, PPCVLE, {BDA}},
4572{"bdzla-", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4573{"bdzla+", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4574{"bdzla", BBO(16,BODZ,1,1), BBOATBI_MASK, COM, PPCVLE, {BDA}},
4575
4576{"bge-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4577{"bge+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4578{"bge", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4579{"bnl-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4580{"bnl+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4581{"bnl", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4582{"bgel-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4583{"bgel+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4584{"bgel", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4585{"bnll-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4586{"bnll+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4587{"bnll", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4588{"bgea-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4589{"bgea+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4590{"bgea", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4591{"bnla-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4592{"bnla+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4593{"bnla", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4594{"bgela-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4595{"bgela+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4596{"bgela", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4597{"bnlla-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4598{"bnlla+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4599{"bnlla", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4600{"ble-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4601{"ble+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4602{"ble", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4603{"bng-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4604{"bng+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4605{"bng", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4606{"blel-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4607{"blel+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4608{"blel", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4609{"bngl-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4610{"bngl+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4611{"bngl", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4612{"blea-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4613{"blea+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4614{"blea", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4615{"bnga-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4616{"bnga+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4617{"bnga", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4618{"blela-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4619{"blela+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4620{"blela", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4621{"bngla-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4622{"bngla+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4623{"bngla", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4624{"bne-", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4625{"bne+", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4626{"bne", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4627{"bnel-", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4628{"bnel+", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4629{"bnel", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4630{"bnea-", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4631{"bnea+", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4632{"bnea", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4633{"bnela-", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4634{"bnela+", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4635{"bnela", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4636{"bns-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4637{"bns+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4638{"bns", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4639{"bnu-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4640{"bnu+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4641{"bnu", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
4642{"bnsl-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4643{"bnsl+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4644{"bnsl", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4645{"bnul-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4646{"bnul+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4647{"bnul", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
4648{"bnsa-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4649{"bnsa+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4650{"bnsa", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4651{"bnua-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4652{"bnua+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4653{"bnua", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
4654{"bnsla-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4655{"bnsla+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4656{"bnsla", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4657{"bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4658{"bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4659{"bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
4660
4661{"blt-", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4662{"blt+", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4663{"blt", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4664{"bltl-", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4665{"bltl+", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4666{"bltl", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4667{"blta-", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4668{"blta+", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4669{"blta", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4670{"bltla-", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4671{"bltla+", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4672{"bltla", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4673{"bgt-", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4674{"bgt+", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4675{"bgt", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4676{"bgtl-", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4677{"bgtl+", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4678{"bgtl", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4679{"bgta-", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4680{"bgta+", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4681{"bgta", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4682{"bgtla-", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4683{"bgtla+", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4684{"bgtla", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4685{"beq-", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4686{"beq+", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4687{"beq", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4688{"beql-", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4689{"beql+", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4690{"beql", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4691{"beqa-", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4692{"beqa+", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4693{"beqa", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4694{"beqla-", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4695{"beqla+", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4696{"beqla", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4697{"bso-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4698{"bso+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4699{"bso", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4700{"bun-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4701{"bun+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4702{"bun", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
4703{"bsol-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4704{"bsol+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4705{"bsol", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4706{"bunl-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4707{"bunl+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4708{"bunl", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
4709{"bsoa-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4710{"bsoa+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4711{"bsoa", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4712{"buna-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4713{"buna+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4714{"buna", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
4715{"bsola-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4716{"bsola+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4717{"bsola", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4718{"bunla-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4719{"bunla+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4720{"bunla", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
4721
4722{"bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4723{"bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4724{"bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4725{"bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4726{"bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4727{"bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4728{"bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4729{"bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4730{"bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4731{"bdnzfla-", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4732{"bdnzfla+", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4733{"bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4734{"bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4735{"bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4736{"bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4737{"bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4738{"bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4739{"bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4740{"bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4741{"bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4742{"bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4743{"bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4744{"bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4745{"bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4746
4747{"bf-", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
4748{"bf+", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
4749{"bf", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
4750{"bbf", BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
4751{"bfl-", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
4752{"bfl+", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
4753{"bfl", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
4754{"bbfl", BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
4755{"bfa-", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
4756{"bfa+", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
4757{"bfa", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4758{"bbfa", BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
4759{"bfla-", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
4760{"bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
4761{"bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4762{"bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
4763
4764{"bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4765{"bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4766{"bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4767{"bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4768{"bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4769{"bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4770{"bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4771{"bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4772{"bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4773{"bdnztla-", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4774{"bdnztla+", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4775{"bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4776{"bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4777{"bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4778{"bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4779{"bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
4780{"bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
4781{"bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
4782{"bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4783{"bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4784{"bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4785{"bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
4786{"bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
4787{"bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4788
4789{"bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
4790{"bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
4791{"bt", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
4792{"bbt", BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
4793{"btl-", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
4794{"btl+", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
4795{"btl", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
4796{"bbtl", BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
4797{"bta-", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
4798{"bta+", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
4799{"bta", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4800{"bbta", BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
4801{"btla-", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
4802{"btla+", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
4803{"btla", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
4804{"bbtla", BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
4805
aae9718e
PB
4806{"bc-", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDM}},
4807{"bc+", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDP}},
14b57c7c 4808{"bc", B(16,0,0), B_MASK, COM, PPCVLE, {BO, BI, BD}},
aae9718e
PB
4809{"bcl-", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDM}},
4810{"bcl+", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDP}},
14b57c7c 4811{"bcl", B(16,0,1), B_MASK, COM, PPCVLE, {BO, BI, BD}},
aae9718e
PB
4812{"bca-", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDMA}},
4813{"bca+", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDPA}},
14b57c7c 4814{"bca", B(16,1,0), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
aae9718e
PB
4815{"bcla-", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDMA}},
4816{"bcla+", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDPA}},
14b57c7c
AM
4817{"bcla", B(16,1,1), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
4818
4819{"svc", SC(17,0,0), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
dce75bf9 4820{"scv", SC(17,0,1), SC_MASK, POWER9, PPCVLE, {SVC_LEV}},
14b57c7c
AM
4821{"svcl", SC(17,0,1), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
4822{"sc", SC(17,1,0), SC_MASK, PPC, PPCVLE, {LEV}},
4823{"svca", SC(17,1,0), SC_MASK, PWRCOM, PPCVLE, {SV}},
4824{"svcla", SC(17,1,1), SC_MASK, POWER, PPCVLE, {SV}},
4825
4826{"b", B(18,0,0), B_MASK, COM, PPCVLE, {LI}},
4827{"bl", B(18,0,1), B_MASK, COM, PPCVLE, {LI}},
4828{"ba", B(18,1,0), B_MASK, COM, PPCVLE, {LIA}},
4829{"bla", B(18,1,1), B_MASK, COM, PPCVLE, {LIA}},
4830
4831{"mcrf", XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
4832
1437d063 4833{"lnia", DX(19,2), NODX_MASK, POWER9, PPCVLE, {RT}},
14b57c7c
AM
4834{"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}},
4835{"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, NDXD}},
4836
14b57c7c 4837{"bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
14b57c7c 4838{"bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
66e85460
AM
4839{"bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
4840{"bdnzlrl-", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
14b57c7c 4841{"bdnzlrl+", XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
66e85460 4842{"bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
14b57c7c 4843{"bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
14b57c7c 4844{"bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
66e85460
AM
4845{"bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
4846{"bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
14b57c7c 4847{"bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
66e85460 4848{"bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
14b57c7c
AM
4849{"blr", XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
4850{"br", XLO(19,BOU,16,0), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}},
4851{"blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
4852{"brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}},
4853{"bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
4854{"bdnzlrl-", XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
4855{"bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
4856{"bdnzlrl+", XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
4857{"bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
4858{"bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
4859{"bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
4860{"bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
4861
14b57c7c 4862{"bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4863{"bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4864{"bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4865{"bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4866{"bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4867{"bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4868{"bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4869{"bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4870{"bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4871{"bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4872{"bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4873{"bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4874{"bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4875{"bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4876{"bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4877{"bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4878{"blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4879{"blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4880{"blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4881{"bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4882{"bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4883{"bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4884{"bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4885{"bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4886{"blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4887{"blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4888{"blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4889{"blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4890{"bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4891{"bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4892{"bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4893{"bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4894{"bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4895{"bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4896{"bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4897{"bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4898{"bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4899{"bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4900{"bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4901{"bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4902{"bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4903{"bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4904{"bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4905{"bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4906{"bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4907{"bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4908{"bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4909{"bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4910{"bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4911{"bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4912{"bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4913{"bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 4914{"bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460 4915{"bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c
AM
4916{"bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4917{"bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4918{"bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4919{"bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4920{"blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4921{"bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4922{"blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4923{"bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4924{"bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4925{"bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4926{"bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4927{"bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4928{"bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4929{"bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4930{"bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4931{"bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4932{"bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4933{"bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4934{"blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4935{"bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4936{"blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4937{"bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4938{"bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4939{"bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4940{"bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4941{"bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4942{"bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4943{"bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
14b57c7c 4944{"bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4945{"bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4946{"bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4947{"bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4948{"bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4949{"bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4950{"bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4951{"bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4952{"bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4953{"bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4954{"bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4955{"bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4956{"bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4957{"bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4958{"bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4959{"bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4960{"beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4961{"beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4962{"beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4963{"beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4964{"beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4965{"beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4966{"beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4967{"beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4968{"bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4969{"bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4970{"bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4971{"bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4972{"bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4973{"bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4974{"bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4975{"bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
4976{"bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
4977{"bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c 4978{"bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
14b57c7c 4979{"bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 4980{"bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460 4981{"bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c
AM
4982{"bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4983{"bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4984{"bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4985{"bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4986{"beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4987{"beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4988{"bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4989{"bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4990{"bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4991{"bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4992{"bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4993{"bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4994{"bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4995{"bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4996{"beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4997{"beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4998{"bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
4999{"bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5000{"bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5001{"bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5002
14b57c7c 5003{"bdnzflr-", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5004{"bdnzflr+", XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5005{"bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5006{"bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5007{"bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5008{"bdnzflrl", XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5009{"bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5010{"bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5011{"bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5012{"bdzflrl-", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5013{"bdzflrl+", XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5014{"bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5015{"bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5016{"bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5017{"bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5018{"bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
14b57c7c 5019{"bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5020{"bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5021{"bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5022{"bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
14b57c7c
AM
5023{"bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5024{"bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5025{"bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5026{"bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
14b57c7c 5027{"bdnztlr-", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5028{"bdnztlr+", XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5029{"bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5030{"bdnztlrl-", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5031{"bdnztlrl+", XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5032{"bdnztlrl", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5033{"bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5034{"bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5035{"bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5036{"bdztlrl-", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5037{"bdztlrl+", XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5038{"bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5039{"btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5040{"btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5041{"btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c 5042{"bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
14b57c7c 5043{"btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5044{"btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5045{"btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5046{"bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
14b57c7c
AM
5047{"btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5048{"btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5049{"btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5050{"btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5051
66e85460
AM
5052{"bclr-", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5053{"bclr+", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5054{"bclr", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460
AM
5055{"bcr", XLLK(19,16,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
5056{"bclrl-", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5057{"bclrl+", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5058{"bclrl", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 5059{"bcrl", XLLK(19,16,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
14b57c7c
AM
5060
5061{"rfid", XL(19,18), 0xffffffff, PPC64, PPCVLE, {0}},
5062
98553ad3 5063{"crnot", XL(19,33), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}},
14b57c7c
AM
5064{"crnor", XL(19,33), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5065{"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE, {0}},
5066
5067{"rfdi", XL(19,39), 0xffffffff, E500MC, PPCVLE, {0}},
5068{"rfi", XL(19,50), 0xffffffff, COM, PPCVLE, {0}},
5069{"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}},
5070
dce75bf9 5071{"rfscv", XL(19,82), 0xffffffff, POWER9, PPCVLE, {0}},
14b57c7c
AM
5072{"rfsvc", XL(19,82), 0xffffffff, POWER, PPCVLE, {0}},
5073
5074{"rfgi", XL(19,102), 0xffffffff, E500MC|PPCA2, PPCVLE, {0}},
5075
5076{"crandc", XL(19,129), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5077
5078{"rfebb", XL(19,146), XLS_MASK, POWER8, PPCVLE, {SXL}},
5079
5080{"isync", XL(19,150), 0xffffffff, PPCCOM, PPCVLE, {0}},
5081{"ics", XL(19,150), 0xffffffff, PWRCOM, PPCVLE, {0}},
5082
98553ad3 5083{"crclr", XL(19,193), XL_MASK, PPCCOM, PPCVLE, {BTAB}},
14b57c7c
AM
5084{"crxor", XL(19,193), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5085
5086{"dnh", X(19,198), X_MASK, E500MC, PPCVLE, {DUI, DUIS}},
5087
5088{"crnand", XL(19,225), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5089
5090{"crand", XL(19,257), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5091
5092{"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPC476|PPCVLE, {0}},
5093
98553ad3 5094{"crset", XL(19,289), XL_MASK, PPCCOM, PPCVLE, {BTAB}},
14b57c7c
AM
5095{"creqv", XL(19,289), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5096
5097{"urfid", XL(19,306), 0xffffffff, POWER9, PPCVLE, {0}},
5098{"stop", XL(19,370), 0xffffffff, POWER9, PPCVLE, {0}},
5099
5100{"doze", XL(19,402), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5101
5102{"crorc", XL(19,417), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5103
5104{"nap", XL(19,434), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5105
98553ad3 5106{"crmove", XL(19,449), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}},
14b57c7c
AM
5107{"cror", XL(19,449), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5108
5109{"sleep", XL(19,466), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5110{"rvwinkle", XL(19,498), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5111
5112{"bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, PPCVLE, {0}},
5113{"bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, PPCVLE, {0}},
5114
14b57c7c 5115{"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5116{"bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5117{"bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5118{"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5119{"bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5120{"bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5121{"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5122{"bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5123{"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5124{"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5125{"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5126{"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5127{"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5128{"blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5129{"blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5130{"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5131{"bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5132{"bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5133{"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5134{"blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5135{"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5136{"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5137{"bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5138{"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5139{"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5140{"bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5141{"bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5142{"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5143{"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5144{"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5145{"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5146{"bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5147{"bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5148{"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5149{"bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5150{"bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5151{"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5152{"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5153{"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5154{"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5155{"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460 5156{"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c
AM
5157{"bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5158{"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5159{"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5160{"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5161{"blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5162{"bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5163{"blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5164{"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5165{"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5166{"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5167{"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5168{"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5169{"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5170{"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5171{"bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5172{"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5173{"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5174{"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5175{"blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5176{"bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5177{"blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5178{"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5179{"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5180{"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5181{"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5182{"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5183{"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5184{"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
14b57c7c 5185{"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5186{"bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5187{"bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5188{"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5189{"bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5190{"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5191{"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5192{"bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5193{"bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5194{"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5195{"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5196{"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5197{"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5198{"beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5199{"beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5200{"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5201{"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5202{"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5203{"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5204{"bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5205{"bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5206{"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5207{"bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5208{"bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5209{"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5210{"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460
AM
5211{"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5212{"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
14b57c7c 5213{"bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
66e85460 5214{"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
14b57c7c
AM
5215{"bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5216{"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5217{"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5218{"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5219{"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5220{"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5221{"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5222{"bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5223{"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5224{"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5225{"bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5226{"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5227{"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5228{"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5229{"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5230{"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5231{"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5232{"bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5233{"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5234{"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5235
14b57c7c 5236{"bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5237{"bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5238{"bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5239{"bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5240{"bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5241{"bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c
AM
5242{"bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5243{"bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5244{"bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5245{"bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
14b57c7c 5246{"btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5247{"btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460
AM
5248{"btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5249{"btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
14b57c7c 5250{"btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
66e85460 5251{"btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
14b57c7c
AM
5252{"btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5253{"btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5254{"btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5255{"btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5256
66e85460
AM
5257{"bcctr-", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5258{"bcctr+", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5259{"bcctr", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460
AM
5260{"bcc", XLLK(19,528,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
5261{"bcctrl-", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5262{"bcctrl+", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5263{"bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 5264{"bccl", XLLK(19,528,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
14b57c7c 5265
aae9718e
PB
5266{"bdnztar", XLO(19,BODNZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5267{"bdnztarl", XLO(19,BODNZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5268{"bdztar", XLO(19,BODZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5269{"bdztarl", XLO(19,BODZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5270{"btar", XLO(19,BOU,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5271{"btarl", XLO(19,BOU,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5272{"bdnztar-", XLO(19,BODNZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5273{"bdnztarl-", XLO(19,BODNZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5274{"bdnztar+", XLO(19,BODNZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5275{"bdnztarl+", XLO(19,BODNZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5276{"bdztar-", XLO(19,BODZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5277{"bdztarl-", XLO(19,BODZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5278{"bdztar+", XLO(19,BODZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5279{"bdztarl+", XLO(19,BODZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5280
5281{"bgetar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5282{"bnltar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5283{"bgetarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5284{"bnltarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5285{"bletar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5286{"bngtar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5287{"bletarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5288{"bngtarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5289{"bnetar", XLOCB(19,BOF,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5290{"bnetarl", XLOCB(19,BOF,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5291{"bnstar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5292{"bnutar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5293{"bnstarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5294{"bnutarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5295{"bgetar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5296{"bnltar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5297{"bgetarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5298{"bnltarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5299{"bletar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5300{"bngtar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5301{"bletarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5302{"bngtarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5303{"bnetar-", XLOCB(19,BOFM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5304{"bnetarl-",XLOCB(19,BOFM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5305{"bnstar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5306{"bnutar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5307{"bnstarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5308{"bnutarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5309{"bgetar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5310{"bnltar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5311{"bgetarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5312{"bnltarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5313{"bletar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5314{"bngtar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5315{"bletarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5316{"bngtarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5317{"bnetar+", XLOCB(19,BOFP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5318{"bnetarl+",XLOCB(19,BOFP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5319{"bnstar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5320{"bnutar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5321{"bnstarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5322{"bnutarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5323{"blttar", XLOCB(19,BOT,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5324{"blttarl", XLOCB(19,BOT,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5325{"bgttar", XLOCB(19,BOT,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5326{"bgttarl", XLOCB(19,BOT,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5327{"beqtar", XLOCB(19,BOT,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5328{"beqtarl", XLOCB(19,BOT,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5329{"bsotar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5330{"buntar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5331{"bsotarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5332{"buntarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5333{"blttar-", XLOCB(19,BOTM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5334{"blttarl-",XLOCB(19,BOTM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5335{"bgttar-", XLOCB(19,BOTM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5336{"bgttarl-",XLOCB(19,BOTM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5337{"beqtar-", XLOCB(19,BOTM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5338{"beqtarl-",XLOCB(19,BOTM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5339{"bsotar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5340{"buntar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5341{"bsotarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5342{"buntarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5343{"blttar+", XLOCB(19,BOTP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5344{"blttarl+",XLOCB(19,BOTP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5345{"bgttar+", XLOCB(19,BOTP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5346{"bgttarl+",XLOCB(19,BOTP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5347{"beqtar+", XLOCB(19,BOTP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5348{"beqtarl+",XLOCB(19,BOTP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5349{"bsotar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5350{"buntar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5351{"bsotarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5352{"buntarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5353
5354{"bdnzftar", XLO(19,BODNZF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5355{"bdnzftarl", XLO(19,BODNZF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5356{"bdzftar", XLO(19,BODZF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5357{"bdzftarl", XLO(19,BODZF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5358
5359{"bftar", XLO(19,BOF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5360{"bftarl", XLO(19,BOF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5361{"bftar-", XLO(19,BOFM4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5362{"bftarl-", XLO(19,BOFM4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5363{"bftar+", XLO(19,BOFP4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5364{"bftarl+", XLO(19,BOFP4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5365
5366{"bdnzttar", XLO(19,BODNZT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5367{"bdnzttarl", XLO(19,BODNZT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5368{"bdzttar", XLO(19,BODZT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5369{"bdzttarl", XLO(19,BODZT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5370
5371{"bttar", XLO(19,BOT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5372{"bttarl", XLO(19,BOT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5373{"bttar-", XLO(19,BOTM4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5374{"bttarl-", XLO(19,BOTM4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5375{"bttar+", XLO(19,BOTP4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5376{"bttarl+", XLO(19,BOTP4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5377
66e85460
AM
5378{"bctar-", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BOM, BI, BH}},
5379{"bctar+", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BOP, BI, BH}},
14b57c7c 5380{"bctar", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
66e85460
AM
5381{"bctarl-", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BOM, BI, BH}},
5382{"bctarl+", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BOP, BI, BH}},
14b57c7c
AM
5383{"bctarl", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
5384
5385{"rlwimi", M(20,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5386{"rlimi", M(20,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5387
5388{"rlwimi.", M(20,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5389{"rlimi.", M(20,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5390
5391{"rotlwi", MME(21,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
5392{"clrlwi", MME(21,31,0), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
5393{"rlwinm", M(21,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5394{"rlinm", M(21,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5395{"rotlwi.", MME(21,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
5396{"clrlwi.", MME(21,31,1), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
5397{"rlwinm.", M(21,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5398{"rlinm.", M(21,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5399
5400{"rlmi", M(22,0), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
5401{"rlmi.", M(22,1), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
5402
5403{"rotlw", MME(23,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
5404{"rlwnm", M(23,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5405{"rlnm", M(23,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5406{"rotlw.", MME(23,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
5407{"rlwnm.", M(23,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5408{"rlnm.", M(23,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5409
5410{"nop", OP(24), 0xffffffff, PPCCOM, PPCVLE, {0}},
5411{"ori", OP(24), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5412{"oril", OP(24), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5413
5414{"oris", OP(25), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5415{"oriu", OP(25), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5416
5417{"xnop", OP(26), 0xffffffff, PPCCOM, PPCVLE, {0}},
5418{"xori", OP(26), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5419{"xoril", OP(26), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5420
5421{"xoris", OP(27), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5422{"xoriu", OP(27), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5423
5424{"andi.", OP(28), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5425{"andil.", OP(28), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5426
5427{"andis.", OP(29), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5428{"andiu.", OP(29), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5429
5430{"rotldi", MD(30,0,0), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
5431{"clrldi", MD(30,0,0), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
5432{"rldicl", MD(30,0,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5433{"rotldi.", MD(30,0,1), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
5434{"clrldi.", MD(30,0,1), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
5435{"rldicl.", MD(30,0,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5436
5437{"rldicr", MD(30,1,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
5438{"rldicr.", MD(30,1,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
5439
5440{"rldic", MD(30,2,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5441{"rldic.", MD(30,2,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5442
5443{"rldimi", MD(30,3,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5444{"rldimi.", MD(30,3,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5445
5446{"rotld", MDS(30,8,0), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
5447{"rldcl", MDS(30,8,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
5448{"rotld.", MDS(30,8,1), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
5449{"rldcl.", MDS(30,8,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
5450
5451{"rldcr", MDS(30,9,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
5452{"rldcr.", MDS(30,9,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
5453
5454{"cmpw", XOPL(31,0,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
5455{"cmpd", XOPL(31,0,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
a5721ba2 5456{"cmp", X(31,0), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
bdc70b4a 5457{"cmp", X(31,0), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
1cb0a767 5458
14b57c7c
AM
5459{"twlgt", XTO(31,4,TOLGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5460{"tlgt", XTO(31,4,TOLGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5461{"twllt", XTO(31,4,TOLLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5462{"tllt", XTO(31,4,TOLLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5463{"tweq", XTO(31,4,TOEQ), XTO_MASK, PPCCOM, 0, {RA, RB}},
5464{"teq", XTO(31,4,TOEQ), XTO_MASK, PWRCOM, 0, {RA, RB}},
5465{"twlge", XTO(31,4,TOLGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5466{"tlge", XTO(31,4,TOLGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5467{"twlnl", XTO(31,4,TOLNL), XTO_MASK, PPCCOM, 0, {RA, RB}},
5468{"tlnl", XTO(31,4,TOLNL), XTO_MASK, PWRCOM, 0, {RA, RB}},
5469{"twlle", XTO(31,4,TOLLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5470{"tlle", XTO(31,4,TOLLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5471{"twlng", XTO(31,4,TOLNG), XTO_MASK, PPCCOM, 0, {RA, RB}},
5472{"tlng", XTO(31,4,TOLNG), XTO_MASK, PWRCOM, 0, {RA, RB}},
5473{"twgt", XTO(31,4,TOGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5474{"tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5475{"twge", XTO(31,4,TOGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5476{"tge", XTO(31,4,TOGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5477{"twnl", XTO(31,4,TONL), XTO_MASK, PPCCOM, 0, {RA, RB}},
5478{"tnl", XTO(31,4,TONL), XTO_MASK, PWRCOM, 0, {RA, RB}},
5479{"twlt", XTO(31,4,TOLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5480{"tlt", XTO(31,4,TOLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5481{"twle", XTO(31,4,TOLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5482{"tle", XTO(31,4,TOLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5483{"twng", XTO(31,4,TONG), XTO_MASK, PPCCOM, 0, {RA, RB}},
5484{"tng", XTO(31,4,TONG), XTO_MASK, PWRCOM, 0, {RA, RB}},
5485{"twne", XTO(31,4,TONE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5486{"tne", XTO(31,4,TONE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5487{"trap", XTO(31,4,TOU), 0xffffffff, PPCCOM, 0, {0}},
5488{"twu", XTO(31,4,TOU), XTO_MASK, PPCCOM, 0, {RA, RB}},
5489{"tu", XTO(31,4,TOU), XTO_MASK, PWRCOM, 0, {RA, RB}},
5490{"tw", X(31,4), X_MASK, PPCCOM, 0, {TO, RA, RB}},
5491{"t", X(31,4), X_MASK, PWRCOM, 0, {TO, RA, RB}},
5492
5493{"lvsl", X(31,6), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5494{"lvebx", X(31,7), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5495{"lbfcmx", APU(31,7,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
5496
5497{"subfc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5498{"sf", XO(31,8,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5499{"subc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
5500{"subfc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5501{"sf.", XO(31,8,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5502{"subc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
5503
5504{"mulhdu", XO(31,9,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
5505{"mulhdu.", XO(31,9,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
5506
5507{"addc", XO(31,10,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5508{"a", XO(31,10,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5509{"addc.", XO(31,10,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5510{"a.", XO(31,10,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5511
5512{"mulhwu", XO(31,11,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
5513{"mulhwu.", XO(31,11,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
5514
5515{"lxsiwzx", X(31,12), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
5516
5517{"isellt", X(31,15), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
5518
5519{"tlbilxlpid", XTO(31,18,0), XTO_MASK, E500MC|PPCA2, 0, {0}},
5520{"tlbilxpid", XTO(31,18,1), XTO_MASK, E500MC|PPCA2, 0, {0}},
5521{"tlbilxva", XTO(31,18,3), XTO_MASK, E500MC|PPCA2, 0, {RA0, RB}},
5522{"tlbilx", X(31,18), X_MASK, E500MC|PPCA2, 0, {T, RA0, RB}},
5523
5524{"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, COM, 0, {RT, FXM4}},
5525{"mfocrf", XFXM(31,19,0,1), XFXFXM_MASK, COM, 0, {RT, FXM}},
5526
5527{"lwarx", X(31,20), XEH_MASK, PPC, 0, {RT, RA0, RB, EH}},
5528
5529{"ldx", X(31,21), X_MASK, PPC64, 0, {RT, RA0, RB}},
5530
5531{"icbt", X(31,22), X_MASK, BOOKE|PPCE300|PPCA2|PPC476, 0, {CT, RA0, RB}},
5532
5533{"lwzx", X(31,23), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
5534{"lx", X(31,23), X_MASK, PWRCOM, 0, {RT, RA, RB}},
5535
5536{"slw", XRC(31,24,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
5537{"sl", XRC(31,24,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
5538{"slw.", XRC(31,24,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
5539{"sl.", XRC(31,24,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
5540
5541{"cntlzw", XRC(31,26,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
5542{"cntlz", XRC(31,26,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
5543{"cntlzw.", XRC(31,26,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
5544{"cntlz.", XRC(31,26,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
5545
5546{"sld", XRC(31,27,0), X_MASK, PPC64, 0, {RA, RS, RB}},
5547{"sld.", XRC(31,27,1), X_MASK, PPC64, 0, {RA, RS, RB}},
5548
5549{"and", XRC(31,28,0), X_MASK, COM, 0, {RA, RS, RB}},
5550{"and.", XRC(31,28,1), X_MASK, COM, 0, {RA, RS, RB}},
5551
5552{"maskg", XRC(31,29,0), X_MASK, M601, PPCA2, {RA, RS, RB}},
5553{"maskg.", XRC(31,29,1), X_MASK, M601, PPCA2, {RA, RS, RB}},
5554
5555{"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
5556
5557{"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
5558{"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}},
5559
5560{"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
5561
5562{"cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
5563{"cmpld", XOPL(31,32,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
a5721ba2 5564{"cmpl", X(31,32), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
bdc70b4a 5565{"cmpl", X(31,32), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
de866fcc 5566
14b57c7c
AM
5567{"lvsr", X(31,38), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5568{"lvehx", X(31,39), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5569{"lhfcmx", APU(31,39,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 5570
ac8f0f72 5571{"mviwsplt", X(31,46), X_MASK, E6500, 0, {VD, RA, RB}},
e67ed0e8 5572
14b57c7c 5573{"iselgt", X(31,47), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
de866fcc 5574
14b57c7c 5575{"lvewx", X(31,71), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
de866fcc 5576
14b57c7c 5577{"addg6s", XO(31,74,0,0), XO_MASK, POWER6, 0, {RT, RA, RB}},
066be9f7 5578
14b57c7c 5579{"lxsiwax", X(31,76), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
c0637f3a 5580
14b57c7c 5581{"iseleq", X(31,79), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
de866fcc 5582
14b57c7c 5583{"isel", XISEL(31,15), XISEL_MASK, PPCISEL|TITAN, 0, {RT, RA0, RB, CRB}},
de866fcc 5584
14b57c7c
AM
5585{"subf", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
5586{"sub", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RB, RA}},
5587{"subf.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
5588{"sub.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RB, RA}},
de866fcc 5589
14b57c7c
AM
5590{"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
5591{"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
5592{"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
5593{"eratilx", X(31,51), X_MASK, PPCA2, 0, {ERAT_T, RA, RB}},
e0d602ec 5594
14b57c7c 5595{"lbarx", X(31,52), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
066be9f7 5596
14b57c7c 5597{"ldux", X(31,53), X_MASK, PPC64, 0, {RT, RAL, RB}},
43e65147 5598
14b57c7c 5599{"dcbst", X(31,54), XRT_MASK, PPC, 0, {RA0, RB}},
43e65147 5600
14b57c7c
AM
5601{"lwzux", X(31,55), X_MASK, PPCCOM, 0, {RT, RAL, RB}},
5602{"lux", X(31,55), X_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 5603
14b57c7c
AM
5604{"cntlzd", XRC(31,58,0), XRB_MASK, PPC64, 0, {RA, RS}},
5605{"cntlzd.", XRC(31,58,1), XRB_MASK, PPC64, 0, {RA, RS}},
de866fcc 5606
14b57c7c
AM
5607{"andc", XRC(31,60,0), X_MASK, COM, 0, {RA, RS, RB}},
5608{"andc.", XRC(31,60,1), X_MASK, COM, 0, {RA, RS, RB}},
de866fcc 5609
14b57c7c
AM
5610{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
5611{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
5612{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
43e65147 5613
14b57c7c 5614{"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
19a6653c 5615
14b57c7c
AM
5616{"tdlgt", XTO(31,68,TOLGT), XTO_MASK, PPC64, 0, {RA, RB}},
5617{"tdllt", XTO(31,68,TOLLT), XTO_MASK, PPC64, 0, {RA, RB}},
5618{"tdeq", XTO(31,68,TOEQ), XTO_MASK, PPC64, 0, {RA, RB}},
5619{"tdlge", XTO(31,68,TOLGE), XTO_MASK, PPC64, 0, {RA, RB}},
5620{"tdlnl", XTO(31,68,TOLNL), XTO_MASK, PPC64, 0, {RA, RB}},
5621{"tdlle", XTO(31,68,TOLLE), XTO_MASK, PPC64, 0, {RA, RB}},
5622{"tdlng", XTO(31,68,TOLNG), XTO_MASK, PPC64, 0, {RA, RB}},
5623{"tdgt", XTO(31,68,TOGT), XTO_MASK, PPC64, 0, {RA, RB}},
5624{"tdge", XTO(31,68,TOGE), XTO_MASK, PPC64, 0, {RA, RB}},
5625{"tdnl", XTO(31,68,TONL), XTO_MASK, PPC64, 0, {RA, RB}},
5626{"tdlt", XTO(31,68,TOLT), XTO_MASK, PPC64, 0, {RA, RB}},
5627{"tdle", XTO(31,68,TOLE), XTO_MASK, PPC64, 0, {RA, RB}},
5628{"tdng", XTO(31,68,TONG), XTO_MASK, PPC64, 0, {RA, RB}},
5629{"tdne", XTO(31,68,TONE), XTO_MASK, PPC64, 0, {RA, RB}},
5630{"tdu", XTO(31,68,TOU), XTO_MASK, PPC64, 0, {RA, RB}},
5631{"td", X(31,68), X_MASK, PPC64, 0, {TO, RA, RB}},
de866fcc 5632
14b57c7c
AM
5633{"lwfcmx", APU(31,71,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
5634{"mulhd", XO(31,73,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
5635{"mulhd.", XO(31,73,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 5636
14b57c7c
AM
5637{"mulhw", XO(31,75,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
5638{"mulhw.", XO(31,75,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
de866fcc 5639
62adc510
AM
5640{"dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
5641{"dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
de866fcc 5642
14b57c7c 5643{"mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, 0, {SR, RS}},
de866fcc 5644
14b57c7c 5645{"mfmsr", X(31,83), XRARB_MASK, COM, 0, {RT}},
43e65147 5646
14b57c7c 5647{"ldarx", X(31,84), XEH_MASK, PPC64, 0, {RT, RA0, RB, EH}},
de866fcc 5648
c7a8dbf9 5649{"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPC476, {RA0, RB}},
a5721ba2 5650{"dcbf", X(31,86), XLRT_MASK, PPC, 0, {RA0, RB, L2OPT}},
de866fcc 5651
14b57c7c 5652{"lbzx", X(31,87), X_MASK, COM, 0, {RT, RA0, RB}},
43e65147 5653
14b57c7c 5654{"lbepx", X(31,95), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
de866fcc 5655
14b57c7c 5656{"dni", XRC(31,97,1), XRB_MASK, E6500, 0, {DUI, DCTL}},
aea77599 5657
14b57c7c
AM
5658{"lvx", X(31,103), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5659{"lqfcmx", APU(31,103,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 5660
14b57c7c
AM
5661{"neg", XO(31,104,0,0), XORB_MASK, COM, 0, {RT, RA}},
5662{"neg.", XO(31,104,0,1), XORB_MASK, COM, 0, {RT, RA}},
de866fcc 5663
14b57c7c
AM
5664{"mul", XO(31,107,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
5665{"mul.", XO(31,107,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
de866fcc 5666
ac8f0f72 5667{"mvidsplt", X(31,110), X_MASK, E6500, 0, {VD, RA, RB}},
aea77599 5668
14b57c7c 5669{"mtsrdin", X(31,114), XRA_MASK, PPC64, 0, {RS, RB}},
de866fcc 5670
14b57c7c
AM
5671{"mffprwz", X(31,115), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
5672{"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
5673{"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
c0637f3a 5674
14b57c7c 5675{"lharx", X(31,116), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
066be9f7 5676
14b57c7c 5677{"clf", X(31,118), XTO_MASK, POWER, 0, {RA, RB}},
de866fcc 5678
14b57c7c 5679{"lbzux", X(31,119), X_MASK, COM, 0, {RT, RAL, RB}},
43e65147 5680
14b57c7c 5681{"popcntb", X(31,122), XRB_MASK, POWER5, 0, {RA, RS}},
de866fcc 5682
98553ad3 5683{"not", XRC(31,124,0), X_MASK, COM, 0, {RA, RSB}},
14b57c7c 5684{"nor", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RB}},
98553ad3 5685{"not.", XRC(31,124,1), X_MASK, COM, 0, {RA, RSB}},
14b57c7c 5686{"nor.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RB}},
19a6653c 5687
14b57c7c 5688{"dcbfep", XRT(31,127,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
43e65147 5689
fd486b63 5690{"setb", X(31,128), XRB_MASK|(3<<16), POWER9, 0, {RT, BFA}},
a680de9a 5691
14b57c7c 5692{"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RS}},
43e65147 5693
14b57c7c 5694{"dcbtstls", X(31,134), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
de866fcc 5695
14b57c7c
AM
5696{"stvebx", X(31,135), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
5697{"stbfcmx", APU(31,135,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 5698
14b57c7c
AM
5699{"subfe", XO(31,136,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5700{"sfe", XO(31,136,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5701{"subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5702{"sfe.", XO(31,136,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 5703
14b57c7c
AM
5704{"adde", XO(31,138,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5705{"ae", XO(31,138,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5706{"adde.", XO(31,138,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5707{"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 5708
14b57c7c 5709{"stxsiwx", X(31,140), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
c0637f3a 5710
14b57c7c
AM
5711{"msgsndp", XRTRA(31,142,0,0), XRTRA_MASK, POWER8, 0, {RB}},
5712{"dcbtstlse", X(31,142), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
de866fcc 5713
14b57c7c
AM
5714{"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, 0, {RS}},
5715{"mtcrf", XFXM(31,144,0,0), XFXFXM_MASK, COM, 0, {FXM, RS}},
5716{"mtocrf", XFXM(31,144,0,1), XFXFXM_MASK, COM, 0, {FXM, RS}},
de866fcc 5717
14b57c7c 5718{"mtmsr", X(31,146), XRLARB_MASK, COM, 0, {RS, A_L}},
de866fcc 5719
14b57c7c 5720{"mtsle", X(31,147), XRTLRARB_MASK, POWER8, 0, {L}},
c0637f3a 5721
14b57c7c
AM
5722{"eratsx", XRC(31,147,0), X_MASK, PPCA2, 0, {RT, RA0, RB}},
5723{"eratsx.", XRC(31,147,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
e0d602ec 5724
14b57c7c 5725{"stdx", X(31,149), X_MASK, PPC64, 0, {RS, RA0, RB}},
43e65147 5726
14b57c7c 5727{"stwcx.", XRC(31,150,1), X_MASK, PPC, 0, {RS, RA0, RB}},
43e65147 5728
14b57c7c
AM
5729{"stwx", X(31,151), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
5730{"stx", X(31,151), X_MASK, PWRCOM, 0, {RS, RA, RB}},
de866fcc 5731
14b57c7c
AM
5732{"slq", XRC(31,152,0), X_MASK, M601, 0, {RA, RS, RB}},
5733{"slq.", XRC(31,152,1), X_MASK, M601, 0, {RA, RS, RB}},
de866fcc 5734
14b57c7c
AM
5735{"sle", XRC(31,153,0), X_MASK, M601, 0, {RA, RS, RB}},
5736{"sle.", XRC(31,153,1), X_MASK, M601, 0, {RA, RS, RB}},
de866fcc 5737
14b57c7c 5738{"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS}},
de866fcc 5739
14b57c7c 5740{"stdepx", X(31,157), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 5741
14b57c7c 5742{"stwepx", X(31,159), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 5743
14b57c7c 5744{"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {E}},
43e65147 5745
14b57c7c 5746{"dcbtls", X(31,166), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
de866fcc 5747
14b57c7c
AM
5748{"stvehx", X(31,167), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
5749{"sthfcmx", APU(31,167,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 5750
14b57c7c 5751{"addex", ZRC(31,170,0), Z2_MASK, POWER9, 0, {RT, RA, RB, CY}},
19dfcc89 5752
14b57c7c
AM
5753{"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, 0, {RB}},
5754{"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
de866fcc 5755
14b57c7c 5756{"mtmsrd", X(31,178), XRLARB_MASK, PPC64, 0, {RS, A_L}},
de866fcc 5757
14b57c7c
AM
5758{"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
5759{"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
5760{"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
5761{"eratre", X(31,179), X_MASK, PPCA2, 0, {RT, RA, WS}},
e0d602ec 5762
14b57c7c 5763{"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}},
de866fcc 5764
73f07bff 5765{"stqcx.", XRC(31,182,1), X_MASK|Q_MASK, POWER8, 0, {RSQ, RA0, RB}},
14b57c7c 5766{"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}},
e0d602ec 5767
14b57c7c
AM
5768{"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}},
5769{"stux", X(31,183), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
de866fcc 5770
14b57c7c
AM
5771{"sliq", XRC(31,184,0), X_MASK, M601, 0, {RA, RS, SH}},
5772{"sliq.", XRC(31,184,1), X_MASK, M601, 0, {RA, RS, SH}},
de866fcc 5773
14b57c7c 5774{"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, 0, {RA, RS}},
252b5132 5775
14b57c7c 5776{"cmprb", X(31,192), XCMP_MASK, POWER9, 0, {BF, L, RA, RB}},
a680de9a 5777
14b57c7c 5778{"icblq.", XRC(31,198,1), X_MASK, E6500, 0, {CT, RA0, RB}},
aea77599 5779
14b57c7c
AM
5780{"stvewx", X(31,199), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
5781{"stwfcmx", APU(31,199,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 5782
14b57c7c
AM
5783{"subfze", XO(31,200,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
5784{"sfze", XO(31,200,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
5785{"subfze.", XO(31,200,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
5786{"sfze.", XO(31,200,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 5787
14b57c7c
AM
5788{"addze", XO(31,202,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
5789{"aze", XO(31,202,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
5790{"addze.", XO(31,202,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
5791{"aze.", XO(31,202,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 5792
14b57c7c 5793{"msgsnd", XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
19a6653c 5794
14b57c7c 5795{"mtsr", X(31,210), XRB_MASK|(1<<20), COM, NON32, {SR, RS}},
418c1742 5796
14b57c7c
AM
5797{"mtfprwa", X(31,211), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
5798{"mtvrwa", X(31,211)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
5799{"mtvsrwa", X(31,211), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
5800{"eratwe", X(31,211), X_MASK, PPCA2, 0, {RS, RA, WS}},
e0d602ec 5801
14b57c7c 5802{"ldawx.", XRC(31,212,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
e0d602ec 5803
14b57c7c 5804{"stdcx.", XRC(31,214,1), X_MASK, PPC64, 0, {RS, RA0, RB}},
43e65147 5805
14b57c7c 5806{"stbx", X(31,215), X_MASK, COM, 0, {RS, RA0, RB}},
252b5132 5807
14b57c7c
AM
5808{"sllq", XRC(31,216,0), X_MASK, M601, 0, {RA, RS, RB}},
5809{"sllq.", XRC(31,216,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 5810
14b57c7c
AM
5811{"sleq", XRC(31,217,0), X_MASK, M601, 0, {RA, RS, RB}},
5812{"sleq.", XRC(31,217,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 5813
14b57c7c 5814{"stbepx", X(31,223), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 5815
14b57c7c 5816{"cmpeqb", X(31,224), XCMPL_MASK, POWER9, 0, {BF, RA, RB}},
a680de9a 5817
14b57c7c 5818{"icblc", X(31,230), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
7d5b217e 5819
14b57c7c
AM
5820{"stvx", X(31,231), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
5821{"stqfcmx", APU(31,231,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
f509565f 5822
14b57c7c
AM
5823{"subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
5824{"sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
5825{"subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
5826{"sfme.", XO(31,232,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 5827
14b57c7c
AM
5828{"mulld", XO(31,233,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
5829{"mulld.", XO(31,233,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 5830
14b57c7c
AM
5831{"addme", XO(31,234,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
5832{"ame", XO(31,234,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
5833{"addme.", XO(31,234,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
5834{"ame.", XO(31,234,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 5835
14b57c7c
AM
5836{"mullw", XO(31,235,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5837{"muls", XO(31,235,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5838{"mullw.", XO(31,235,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5839{"muls.", XO(31,235,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 5840
14b57c7c
AM
5841{"icblce", X(31,238), X_MASK, PPCCHLK, E500MC|PPCA2, {CT, RA, RB}},
5842{"msgclr", XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
5843{"mtsrin", X(31,242), XRA_MASK, PPC, NON32, {RS, RB}},
bdc70b4a 5844{"mtsri", X(31,242), XRA_MASK, POWER, NON32, {RS, RB}},
418c1742 5845
14b57c7c
AM
5846{"mtfprwz", X(31,243), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
5847{"mtvrwz", X(31,243)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
5848{"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
c0637f3a 5849
14b57c7c
AM
5850{"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
5851{"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
5852{"dcbtst", X(31,246), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
5853{"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
4fff86c5 5854
14b57c7c 5855{"stbux", X(31,247), X_MASK, COM, 0, {RS, RAS, RB}},
252b5132 5856
14b57c7c
AM
5857{"slliq", XRC(31,248,0), X_MASK, M601, 0, {RA, RS, SH}},
5858{"slliq.", XRC(31,248,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 5859
14b57c7c 5860{"bpermd", X(31,252), X_MASK, POWER7|PPCA2, 0, {RA, RS, RB}},
066be9f7 5861
14b57c7c 5862{"dcbtstep", XRT(31,255,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
19a6653c 5863
14b57c7c
AM
5864{"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RS, RA}},
5865{"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, 0, {RS, RA}},
252b5132 5866
ac8f0f72 5867{"lvexbx", X(31,261), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 5868
14b57c7c 5869{"icbt", X(31,262), XRT_MASK, PPC403, 0, {RA, RB}},
1ed8e1e4 5870
ac8f0f72 5871{"lvepxl", X(31,263), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 5872
14b57c7c
AM
5873{"ldfcmx", APU(31,263,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
5874{"doz", XO(31,264,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
5875{"doz.", XO(31,264,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 5876
14b57c7c 5877{"modud", X(31,265), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 5878
14b57c7c
AM
5879{"add", XO(31,266,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5880{"cax", XO(31,266,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5881{"add.", XO(31,266,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5882{"cax.", XO(31,266,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
418c1742 5883
14b57c7c 5884{"moduw", X(31,267), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 5885
14b57c7c
AM
5886{"lxvx", X(31,268), XX1_MASK|1<<6, PPCVSX3, 0, {XT6, RA0, RB}},
5887{"lxvl", X(31,269), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 5888
14b57c7c 5889{"ehpriv", X(31,270), 0xffffffff, E500MC|PPCA2, 0, {0}},
19a6653c 5890
62adc510 5891{"tlbiel", X(31,274), X_MASK|1<<20,POWER9, 0, {RB, RSO, RIC, PRS, X_R}},
a5721ba2 5892{"tlbiel", X(31,274), XRTLRA_MASK, POWER4, POWER9|PPC476, {RB, LOPT}},
418c1742 5893
14b57c7c 5894{"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}},
1cb0a767 5895
73f07bff 5896{"lqarx", X(31,276), XEH_MASK|Q_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
c0637f3a 5897
14b57c7c
AM
5898{"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}},
5899{"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}},
1cb0a767 5900
14b57c7c
AM
5901{"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
5902{"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
5903{"dcbt", X(31,278), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
5904{"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
4fff86c5 5905
14b57c7c 5906{"lhzx", X(31,279), X_MASK, COM, 0, {RT, RA0, RB}},
1cb0a767 5907
14b57c7c 5908{"cdtbcd", X(31,282), XRB_MASK, POWER6, 0, {RA, RS}},
066be9f7 5909
14b57c7c
AM
5910{"eqv", XRC(31,284,0), X_MASK, COM, 0, {RA, RS, RB}},
5911{"eqv.", XRC(31,284,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 5912
14b57c7c 5913{"lhepx", X(31,287), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
1cb0a767 5914
62adc510 5915{"mfdcrux", X(31,291), X_MASK, PPC464|PPC476, 0, {RS, RA}},
1cb0a767 5916
ac8f0f72
AM
5917{"lvexhx", X(31,293), X_MASK, E6500, 0, {VD, RA0, RB}},
5918{"lvepx", X(31,295), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 5919
14b57c7c 5920{"lxvll", X(31,301), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 5921
14b57c7c 5922{"mfbhrbe", X(31,302), X_MASK, POWER8, 0, {RT, BHRBE}},
c0637f3a 5923
14b57c7c
AM
5924{"tlbie", X(31,306), X_MASK|1<<20,POWER9, TITAN, {RB, RS, RIC, PRS, X_R}},
5925{"tlbie", X(31,306), XRA_MASK, POWER7, POWER9|TITAN, {RB, RS}},
a5721ba2 5926{"tlbie", X(31,306), XRTLRA_MASK, PPC, E500|POWER7|TITAN, {RB, LOPT}},
14b57c7c 5927{"tlbi", X(31,306), XRT_MASK, POWER, 0, {RA0, RB}},
1cb0a767 5928
14b57c7c 5929{"mfvsrld", X(31,307), XX1RB_MASK, PPCVSX3, 0, {RA, XS6}},
a680de9a 5930
14b57c7c 5931{"ldmx", X(31,309), X_MASK, POWER9, 0, {RT, RA0, RB}},
a680de9a 5932
14b57c7c 5933{"eciwx", X(31,310), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
1cb0a767 5934
14b57c7c 5935{"lhzux", X(31,311), X_MASK, COM, 0, {RT, RAL, RB}},
1cb0a767 5936
14b57c7c 5937{"cbcdtd", X(31,314), XRB_MASK, POWER6, 0, {RA, RS}},
066be9f7 5938
14b57c7c
AM
5939{"xor", XRC(31,316,0), X_MASK, COM, 0, {RA, RS, RB}},
5940{"xor.", XRC(31,316,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 5941
14b57c7c 5942{"dcbtep", XRT(31,319,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
1cb0a767 5943
14b57c7c
AM
5944{"mfexisr", XSPR(31,323, 64), XSPR_MASK, PPC403, 0, {RT}},
5945{"mfexier", XSPR(31,323, 66), XSPR_MASK, PPC403, 0, {RT}},
5946{"mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, 0, {RT}},
5947{"mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, 0, {RT}},
5948{"mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, 0, {RT}},
5949{"mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, 0, {RT}},
5950{"mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, 0, {RT}},
5951{"mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, 0, {RT}},
5952{"mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, 0, {RT}},
5953{"mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, 0, {RT}},
5954{"mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, 0, {RT}},
5955{"mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, 0, {RT}},
5956{"mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, 0, {RT}},
5957{"mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, 0, {RT}},
5958{"mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, 0, {RT}},
5959{"mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, 0, {RT}},
5960{"mfdmasa0", XSPR(31,323,195), XSPR_MASK, PPC403, 0, {RT}},
5961{"mfdmacc0", XSPR(31,323,196), XSPR_MASK, PPC403, 0, {RT}},
5962{"mfdmacr1", XSPR(31,323,200), XSPR_MASK, PPC403, 0, {RT}},
5963{"mfdmact1", XSPR(31,323,201), XSPR_MASK, PPC403, 0, {RT}},
5964{"mfdmada1", XSPR(31,323,202), XSPR_MASK, PPC403, 0, {RT}},
5965{"mfdmasa1", XSPR(31,323,203), XSPR_MASK, PPC403, 0, {RT}},
5966{"mfdmacc1", XSPR(31,323,204), XSPR_MASK, PPC403, 0, {RT}},
5967{"mfdmacr2", XSPR(31,323,208), XSPR_MASK, PPC403, 0, {RT}},
5968{"mfdmact2", XSPR(31,323,209), XSPR_MASK, PPC403, 0, {RT}},
5969{"mfdmada2", XSPR(31,323,210), XSPR_MASK, PPC403, 0, {RT}},
5970{"mfdmasa2", XSPR(31,323,211), XSPR_MASK, PPC403, 0, {RT}},
5971{"mfdmacc2", XSPR(31,323,212), XSPR_MASK, PPC403, 0, {RT}},
5972{"mfdmacr3", XSPR(31,323,216), XSPR_MASK, PPC403, 0, {RT}},
5973{"mfdmact3", XSPR(31,323,217), XSPR_MASK, PPC403, 0, {RT}},
5974{"mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, 0, {RT}},
5975{"mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, 0, {RT}},
5976{"mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, 0, {RT}},
5977{"mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, 0, {RT}},
5978{"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}},
5979{"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, 0, {RT, SPR}},
1cb0a767 5980
ac8f0f72 5981{"lvexwx", X(31,325), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 5982
14b57c7c 5983{"dcread", X(31,326), X_MASK, PPC476|TITAN, 0, {RT, RA0, RB}},
9fe54b1c 5984
14b57c7c
AM
5985{"div", XO(31,331,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
5986{"div.", XO(31,331,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
1cb0a767 5987
14b57c7c 5988{"lxvdsx", X(31,332), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
066be9f7 5989
14b57c7c 5990{"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, 0, {RT, PMR}},
c03dc33b 5991{"mftmr", X(31,366), X_MASK, PPCTMR, 0, {RT, TMR}},
1cb0a767 5992
14b57c7c
AM
5993{"slbsync", X(31,338), 0xffffffff, POWER9, 0, {0}},
5994
5995{"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, 0, {RT}},
5996{"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, 0, {RT}},
5997{"mfrtcu", XSPR(31,339, 4), XSPR_MASK, COM, TITAN, {RT}},
5998{"mfrtcl", XSPR(31,339, 5), XSPR_MASK, COM, TITAN, {RT}},
5999{"mfdec", XSPR(31,339, 6), XSPR_MASK, MFDEC1, 0, {RT}},
6000{"mflr", XSPR(31,339, 8), XSPR_MASK, COM, 0, {RT}},
6001{"mfctr", XSPR(31,339, 9), XSPR_MASK, COM, 0, {RT}},
6002{"mfdscr", XSPR(31,339, 17), XSPR_MASK, POWER6, 0, {RT}},
6003{"mftid", XSPR(31,339, 17), XSPR_MASK, POWER, 0, {RT}},
6004{"mfdsisr", XSPR(31,339, 18), XSPR_MASK, COM, TITAN, {RT}},
6005{"mfdar", XSPR(31,339, 19), XSPR_MASK, COM, TITAN, {RT}},
bdc70b4a 6006{"mfdec", XSPR(31,339, 22), XSPR_MASK, MFDEC2, MFDEC1, {RT}},
14b57c7c
AM
6007{"mfsdr0", XSPR(31,339, 24), XSPR_MASK, POWER, 0, {RT}},
6008{"mfsdr1", XSPR(31,339, 25), XSPR_MASK, COM, TITAN, {RT}},
6009{"mfsrr0", XSPR(31,339, 26), XSPR_MASK, COM, 0, {RT}},
6010{"mfsrr1", XSPR(31,339, 27), XSPR_MASK, COM, 0, {RT}},
6011{"mfcfar", XSPR(31,339, 28), XSPR_MASK, POWER6, 0, {RT}},
6012{"mfpid", XSPR(31,339, 48), XSPR_MASK, BOOKE, 0, {RT}},
6013{"mfcsrr0", XSPR(31,339, 58), XSPR_MASK, BOOKE, 0, {RT}},
6014{"mfcsrr1", XSPR(31,339, 59), XSPR_MASK, BOOKE, 0, {RT}},
6015{"mfdear", XSPR(31,339, 61), XSPR_MASK, BOOKE, 0, {RT}},
6016{"mfesr", XSPR(31,339, 62), XSPR_MASK, BOOKE, 0, {RT}},
6017{"mfivpr", XSPR(31,339, 63), XSPR_MASK, BOOKE, 0, {RT}},
6018{"mfctrl", XSPR(31,339,136), XSPR_MASK, POWER4, 0, {RT}},
6019{"mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, 0, {RT}},
6020{"mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, 0, {RT}},
6021{"mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, 0, {RT}},
6022{"mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, 0, {RT}},
6023{"mficr", XSPR(31,339,148), XSPR_MASK, PPC860, 0, {RT}},
6024{"mfder", XSPR(31,339,149), XSPR_MASK, PPC860, 0, {RT}},
6025{"mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, 0, {RT}},
6026{"mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, 0, {RT}},
6027{"mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, 0, {RT}},
6028{"mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, 0, {RT}},
6029{"mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, 0, {RT}},
6030{"mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, 0, {RT}},
6031{"mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, 0, {RT}},
6032{"mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, 0, {RT}},
6033{"mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, 0, {RT}},
6034{"mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, 0, {RT}},
6035{"mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, 0, {RT}},
6036{"mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, 0, {RT}},
6037{"mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, 0, {RT, SPRG}},
6038{"mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6039{"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6040{"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6041{"mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6042{"mftbu", XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
6043{"mftb", X(31,339), X_MASK, POWER4|BOOKE, 0, {RT, TBR}},
6044{"mftbl", XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
6045{"mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, 0, {RT}},
6046{"mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, 0, {RT}},
6047{"mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, 0, {RT}},
6048{"mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, 0, {RT}},
6049{"mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, 0, {RT}},
6050{"mfear", XSPR(31,339,282), XSPR_MASK, PPC, TITAN, {RT}},
6051{"mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, 0, {RT}},
6052{"mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, 0, {RT}},
6053{"mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, 0, {RT}},
6054{"mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, 0, {RT}},
6055{"mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, 0, {RT}},
6056{"mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, 0, {RT}},
6057{"mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, 0, {RT}},
6058{"mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, 0, {RT}},
6059{"mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, 0, {RT}},
6060{"mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, 0, {RT}},
6061{"mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, 0, {RT}},
6062{"mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, 0, {RT}},
6063{"mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, 0, {RT}},
6064{"mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, 0, {RT}},
6065{"mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, 0, {RT}},
6066{"mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, 0, {RT}},
6067{"mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, 0, {RT}},
6068{"mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, 0, {RT}},
6069{"mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, 0, {RT}},
6070{"mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, 0, {RT}},
6071{"mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, 0, {RT}},
6072{"mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, 0, {RT}},
6073{"mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, 0, {RT}},
6074{"mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, 0, {RT}},
6075{"mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, 0, {RT}},
6076{"mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, 0, {RT}},
6077{"mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, 0, {RT}},
6078{"mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, 0, {RT}},
6079{"mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, 0, {RT}},
6080{"mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, 0, {RT}},
6081{"mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, 0, {RT}},
6082{"mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, 0, {RT}},
6083{"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, 0, {RT}},
6084{"mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, 0, {RT}},
6085{"mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, 0, {RT}},
4b94dd2d
AM
6086{"mfivor32", XSPR(31,339,528), XSPR_MASK, PPCSPE|E6500, 0, {RT}},
6087{"mfivor33", XSPR(31,339,529), XSPR_MASK, PPCSPE|E6500, 0, {RT}},
14b57c7c
AM
6088{"mfivor34", XSPR(31,339,530), XSPR_MASK, PPCSPE, 0, {RT}},
6089{"mfivor35", XSPR(31,339,531), XSPR_MASK, PPCPMR, 0, {RT}},
4b94dd2d
AM
6090{"mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6091{"mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
14b57c7c
AM
6092{"mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6093{"mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6094{"mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, 0, {RT}},
6095{"mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, 0, {RT}},
6096{"mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, 0, {RT}},
6097{"mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, 0, {RT}},
6098{"mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, 0, {RT}},
6099{"mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, 0, {RT}},
6100{"mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, 0, {RT}},
6101{"mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, 0, {RT}},
6102{"mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, 0, {RT}},
6103{"mfmcar", XSPR(31,339,573), XSPR_MASK, PPCRFMCI, TITAN, {RT}},
6104{"mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, 0, {RT}},
6105{"mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, 0, {RT}},
6106{"mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, 0, {RT}},
bb71536f
AM
6107{"mfupmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}},
6108{"mfpmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}},
6109{"mfupmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}},
6110{"mfpmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}},
6111{"mfupmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}},
6112{"mfpmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}},
6113{"mfupmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}},
6114{"mfpmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}},
6115{"mfupmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}},
6116{"mfpmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}},
6117{"mfupmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}},
6118{"mfpmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}},
14b57c7c
AM
6119{"mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, 0, {RT}},
6120{"mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, 0, {RT}},
6121{"mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, 0, {RT}},
6122{"mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, 0, {RT}},
6123{"mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, 0, {RT}},
6124{"mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, 0, {RT}},
6125{"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, 0, {RT}},
6126{"mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, 0, {RT}},
6127{"mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, 0, {RT}},
6128{"mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, 0, {RT}},
6129{"mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, 0, {RT}},
6130{"mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, 0, {RT}},
6131{"mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, 0, {RT}},
6132{"mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, 0, {RT}},
6133{"mfmi_dbram0", XSPR(31,339,817), XSPR_MASK, PPC860, 0, {RT}},
6134{"mfmi_dbram1", XSPR(31,339,818), XSPR_MASK, PPC860, 0, {RT}},
6135{"mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, 0, {RT}},
6136{"mfmd_dbram0", XSPR(31,339,825), XSPR_MASK, PPC860, 0, {RT}},
6137{"mfmd_dbram1", XSPR(31,339,826), XSPR_MASK, PPC860, 0, {RT}},
6138{"mfivndx", XSPR(31,339,880), XSPR_MASK, TITAN, 0, {RT}},
6139{"mfdvndx", XSPR(31,339,881), XSPR_MASK, TITAN, 0, {RT}},
6140{"mfivlim", XSPR(31,339,882), XSPR_MASK, TITAN, 0, {RT}},
6141{"mfdvlim", XSPR(31,339,883), XSPR_MASK, TITAN, 0, {RT}},
6142{"mfclcsr", XSPR(31,339,884), XSPR_MASK, TITAN, 0, {RT}},
6143{"mfccr1", XSPR(31,339,888), XSPR_MASK, TITAN, 0, {RT}},
6144{"mfppr", XSPR(31,339,896), XSPR_MASK, POWER7, 0, {RT}},
6145{"mfppr32", XSPR(31,339,898), XSPR_MASK, POWER7, 0, {RT}},
fa758a70
AC
6146{"mfgqr", XSPR(31,339,912), XSPRGQR_MASK, PPCPS, 0, {RT, SPRGQR}},
6147{"mfhid2", XSPR(31,339,920), XSPR_MASK, GEKKO, 0, {RT}},
6148{"mfwpar", XSPR(31,339,921), XSPR_MASK, GEKKO, 0, {RT}},
6149{"mfdmau", XSPR(31,339,922), XSPR_MASK, GEKKO, 0, {RT}},
6150{"mfdmal", XSPR(31,339,923), XSPR_MASK, GEKKO, 0, {RT}},
14b57c7c
AM
6151{"mfrstcfg", XSPR(31,339,923), XSPR_MASK, TITAN, 0, {RT}},
6152{"mfdcdbtrl", XSPR(31,339,924), XSPR_MASK, TITAN, 0, {RT}},
6153{"mfdcdbtrh", XSPR(31,339,925), XSPR_MASK, TITAN, 0, {RT}},
6154{"mficdbtr", XSPR(31,339,927), XSPR_MASK, TITAN, 0, {RT}},
6155{"mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, 0, {RT}},
6156{"mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, 0, {RT}},
6157{"mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, 0, {RT}},
6158{"mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, 0, {RT}},
6159{"mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, 0, {RT}},
6160{"mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, 0, {RT}},
6161{"mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, 0, {RT}},
6162{"mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, 0, {RT}},
6163{"mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, 0, {RT}},
6164{"mfmmucr", XSPR(31,339,946), XSPR_MASK, TITAN, 0, {RT}},
6165{"mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, 0, {RT}},
6166{"mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, 0, {RT}},
6167{"mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, 0, {RT}},
6168{"mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, 0, {RT}},
6169{"mfdvc2", XSPR(31,339,951), XSPR_MASK, PPC405, 0, {RT}},
6170{"mfmmcr0", XSPR(31,339,952), XSPR_MASK, PPC750, 0, {RT}},
6171{"mfpmc1", XSPR(31,339,953), XSPR_MASK, PPC750, 0, {RT}},
6172{"mfsgr", XSPR(31,339,953), XSPR_MASK, PPC403, 0, {RT}},
6173{"mfdcwr", XSPR(31,339,954), XSPR_MASK, PPC403, 0, {RT}},
6174{"mfpmc2", XSPR(31,339,954), XSPR_MASK, PPC750, 0, {RT}},
6175{"mfsia", XSPR(31,339,955), XSPR_MASK, PPC750, 0, {RT}},
6176{"mfsler", XSPR(31,339,955), XSPR_MASK, PPC405, 0, {RT}},
6177{"mfmmcr1", XSPR(31,339,956), XSPR_MASK, PPC750, 0, {RT}},
6178{"mfsu0r", XSPR(31,339,956), XSPR_MASK, PPC405, 0, {RT}},
6179{"mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, 0, {RT}},
6180{"mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, 0, {RT}},
6181{"mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, 0, {RT}},
6182{"mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, 0, {RT}},
6183{"mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, 0, {RT}},
6184{"mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, 0, {RT}},
6185{"mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, 0, {RT}},
6186{"mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, 0, {RT}},
6187{"mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, 0, {RT}},
6188{"mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, 0, {RT}},
6189{"mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, 0, {RT}},
6190{"mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, 0, {RT}},
6191{"mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, 0, {RT}},
6192{"mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, 0, {RT}},
6193{"mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, 0, {RT}},
6194{"mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, 0, {RT}},
fa758a70
AC
6195{"mfhid0", XSPR(31,339,1008), XSPR_MASK, GEKKO, 0, {RT}},
6196{"mfhid1", XSPR(31,339,1009), XSPR_MASK, GEKKO, 0, {RT}},
14b57c7c 6197{"mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, 0, {RT}},
fa758a70
AC
6198{"mfiabr", XSPR(31,339,1010), XSPR_MASK, GEKKO, 0, {RT}},
6199{"mfhid4", XSPR(31,339,1011), XSPR_MASK, BROADWAY, 0, {RT}},
14b57c7c
AM
6200{"mfdbdr", XSPR(31,339,1011), XSPR_MASK, TITAN, 0, {RS}},
6201{"mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, 0, {RT}},
6202{"mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, 0, {RT}},
fa758a70 6203{"mfdabr", XSPR(31,339,1013), XSPR_MASK, PPC750, 0, {RT}},
14b57c7c
AM
6204{"mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, 0, {RT}},
6205{"mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, 0, {RT}},
6206{"mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, 0, {RT}},
6207{"mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, 0, {RT}},
6208{"mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, 0, {RT}},
6209{"mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, 0, {RT}},
6210{"mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, 0, {RT}},
6211{"mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, 0, {RT}},
6212{"mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, 0, {RT}},
6213{"mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, 0, {RT}},
6214{"mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, 0, {RT}},
6215{"mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, 0, {RT}},
6216{"mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, 0, {RT}},
6217{"mfspr", X(31,339), X_MASK, COM, 0, {RT, SPR}},
6218
6219{"lwax", X(31,341), X_MASK, PPC64, 0, {RT, RA0, RB}},
6220
6221{"dst", XDSS(31,342,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
6222
6223{"lhax", X(31,343), X_MASK, COM, 0, {RT, RA0, RB}},
6224
6225{"lvxl", X(31,359), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
6226
6227{"abs", XO(31,360,0,0), XORB_MASK, M601, 0, {RT, RA}},
6228{"abs.", XO(31,360,0,1), XORB_MASK, M601, 0, {RT, RA}},
6229
6230{"divs", XO(31,363,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6231{"divs.", XO(31,363,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
6232
6233{"lxvwsx", X(31,364), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
6234
6235{"tlbia", X(31,370), 0xffffffff, PPC, E500|TITAN, {0}},
1cb0a767 6236
db76a700 6237{"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371|POWER4, {RT}},
14b57c7c 6238{"mftb", X(31,371), X_MASK, PPC, NO371|POWER4, {RT, TBR}},
db76a700 6239{"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371|POWER4, {RT}},
1cb0a767 6240
14b57c7c 6241{"lwaux", X(31,373), X_MASK, PPC64, 0, {RT, RAL, RB}},
1cb0a767 6242
14b57c7c 6243{"dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
1cb0a767 6244
14b57c7c 6245{"lhaux", X(31,375), X_MASK, COM, 0, {RT, RAL, RB}},
1cb0a767 6246
14b57c7c 6247{"popcntw", X(31,378), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
066be9f7 6248
14b57c7c
AM
6249{"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RA, RS}},
6250{"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, 0, {RA, RS}},
1cb0a767 6251
ac8f0f72 6252{"stvexbx", X(31,389), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6253
14b57c7c
AM
6254{"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
6255{"stdfcmx", APU(31,391,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
1cb0a767 6256
14b57c7c
AM
6257{"divdeu", XO(31,393,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6258{"divdeu.", XO(31,393,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6259{"divweu", XO(31,395,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6260{"divweu.", XO(31,395,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 6261
14b57c7c
AM
6262{"stxvx", X(31,396), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
6263{"stxvl", X(31,397), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 6264
14b57c7c 6265{"dcblce", X(31,398), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
1cb0a767 6266
14b57c7c 6267{"slbmte", X(31,402), XRA_MASK, PPC64, 0, {RS, RB}},
1cb0a767 6268
14b57c7c 6269{"mtvsrws", X(31,403), XX1RB_MASK, PPCVSX3, 0, {XT6, RA}},
a680de9a 6270
14b57c7c 6271{"pbt.", XRC(31,404,1), X_MASK, POWER8, 0, {RS, RA0, RB}},
c0637f3a 6272
14b57c7c
AM
6273{"icswx", XRC(31,406,0), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
6274{"icswx.", XRC(31,406,1), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
e0d602ec 6275
14b57c7c 6276{"sthx", X(31,407), X_MASK, COM, 0, {RS, RA0, RB}},
1cb0a767 6277
14b57c7c
AM
6278{"orc", XRC(31,412,0), X_MASK, COM, 0, {RA, RS, RB}},
6279{"orc.", XRC(31,412,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 6280
14b57c7c 6281{"sthepx", X(31,415), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
1cb0a767 6282
62adc510 6283{"mtdcrux", X(31,419), X_MASK, PPC464|PPC476, 0, {RA, RS}},
1cb0a767 6284
ac8f0f72 6285{"stvexhx", X(31,421), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6286
14b57c7c 6287{"dcblq.", XRC(31,422,1), X_MASK, E6500, 0, {CT, RA0, RB}},
aea77599 6288
14b57c7c
AM
6289{"divde", XO(31,425,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6290{"divde.", XO(31,425,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6291{"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6292{"divwe.", XO(31,427,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 6293
14b57c7c 6294{"stxvll", X(31,429), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 6295
14b57c7c 6296{"clrbhrb", X(31,430), 0xffffffff, POWER8, 0, {0}},
c0637f3a 6297
14b57c7c 6298{"slbie", X(31,434), XRTRA_MASK, PPC64, 0, {RB}},
1cb0a767 6299
14b57c7c 6300{"mtvsrdd", X(31,435), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 6301
14b57c7c 6302{"ecowx", X(31,438), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
1cb0a767 6303
14b57c7c 6304{"sthux", X(31,439), X_MASK, COM, 0, {RS, RAS, RB}},
1cb0a767 6305
14b57c7c 6306{"mdors", 0x7f9ce378, 0xffffffff, E500MC, 0, {0}},
1cb0a767 6307
14b57c7c 6308{"miso", 0x7f5ad378, 0xffffffff, E6500, 0, {0}},
aea77599 6309
9f6a6cc0 6310/* The "yield", "mdoio" and "mdoom" instructions are extended mnemonics for
14b57c7c
AM
6311 "or rX,rX,rX", with rX being r27, r29 and r30 respectively. */
6312{"yield", 0x7f7bdb78, 0xffffffff, POWER7, 0, {0}},
6313{"mdoio", 0x7fbdeb78, 0xffffffff, POWER7, 0, {0}},
6314{"mdoom", 0x7fdef378, 0xffffffff, POWER7, 0, {0}},
98553ad3 6315{"mr", XRC(31,444,0), X_MASK, COM, 0, {RA, RSB}},
14b57c7c 6316{"or", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RB}},
98553ad3 6317{"mr.", XRC(31,444,1), X_MASK, COM, 0, {RA, RSB}},
14b57c7c
AM
6318{"or.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RB}},
6319
6320{"mtexisr", XSPR(31,451, 64), XSPR_MASK, PPC403, 0, {RS}},
6321{"mtexier", XSPR(31,451, 66), XSPR_MASK, PPC403, 0, {RS}},
6322{"mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, 0, {RS}},
6323{"mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, 0, {RS}},
6324{"mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, 0, {RS}},
6325{"mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, 0, {RS}},
6326{"mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, 0, {RS}},
6327{"mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, 0, {RS}},
6328{"mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, 0, {RS}},
6329{"mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, 0, {RS}},
6330{"mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, 0, {RS}},
6331{"mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, 0, {RS}},
6332{"mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, 0, {RS}},
6333{"mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, 0, {RS}},
6334{"mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, 0, {RS}},
6335{"mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, 0, {RS}},
6336{"mtdmasa0", XSPR(31,451,195), XSPR_MASK, PPC403, 0, {RS}},
6337{"mtdmacc0", XSPR(31,451,196), XSPR_MASK, PPC403, 0, {RS}},
6338{"mtdmacr1", XSPR(31,451,200), XSPR_MASK, PPC403, 0, {RS}},
6339{"mtdmact1", XSPR(31,451,201), XSPR_MASK, PPC403, 0, {RS}},
6340{"mtdmada1", XSPR(31,451,202), XSPR_MASK, PPC403, 0, {RS}},
6341{"mtdmasa1", XSPR(31,451,203), XSPR_MASK, PPC403, 0, {RS}},
6342{"mtdmacc1", XSPR(31,451,204), XSPR_MASK, PPC403, 0, {RS}},
6343{"mtdmacr2", XSPR(31,451,208), XSPR_MASK, PPC403, 0, {RS}},
6344{"mtdmact2", XSPR(31,451,209), XSPR_MASK, PPC403, 0, {RS}},
6345{"mtdmada2", XSPR(31,451,210), XSPR_MASK, PPC403, 0, {RS}},
6346{"mtdmasa2", XSPR(31,451,211), XSPR_MASK, PPC403, 0, {RS}},
6347{"mtdmacc2", XSPR(31,451,212), XSPR_MASK, PPC403, 0, {RS}},
6348{"mtdmacr3", XSPR(31,451,216), XSPR_MASK, PPC403, 0, {RS}},
6349{"mtdmact3", XSPR(31,451,217), XSPR_MASK, PPC403, 0, {RS}},
6350{"mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, 0, {RS}},
6351{"mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, 0, {RS}},
6352{"mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, 0, {RS}},
6353{"mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, 0, {RS}},
6354{"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}},
6355{"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, 0, {SPR, RS}},
6356
ac8f0f72 6357{"stvexwx", X(31,453), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c 6358
62adc510 6359{"dccci", X(31,454), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
14b57c7c
AM
6360{"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
6361
6362{"divdu", XO(31,457,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6363{"divdu.", XO(31,457,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
6364
6365{"divwu", XO(31,459,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6366{"divwu.", XO(31,459,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6367
6368{"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, 0, {PMR, RS}},
c03dc33b 6369{"mttmr", X(31,494), X_MASK, PPCTMR, 0, {TMR, RS}},
14b57c7c
AM
6370
6371{"slbieg", X(31,466), XRA_MASK, POWER9, 0, {RS, RB}},
6372
6373{"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, 0, {RS}},
6374{"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, 0, {RS}},
6375{"mtlr", XSPR(31,467, 8), XSPR_MASK, COM, 0, {RS}},
6376{"mtctr", XSPR(31,467, 9), XSPR_MASK, COM, 0, {RS}},
6377{"mtdscr", XSPR(31,467, 17), XSPR_MASK, POWER6, 0, {RS}},
6378{"mttid", XSPR(31,467, 17), XSPR_MASK, POWER, 0, {RS}},
6379{"mtdsisr", XSPR(31,467, 18), XSPR_MASK, COM, TITAN, {RS}},
6380{"mtdar", XSPR(31,467, 19), XSPR_MASK, COM, TITAN, {RS}},
6381{"mtrtcu", XSPR(31,467, 20), XSPR_MASK, COM, TITAN, {RS}},
6382{"mtrtcl", XSPR(31,467, 21), XSPR_MASK, COM, TITAN, {RS}},
6383{"mtdec", XSPR(31,467, 22), XSPR_MASK, COM, 0, {RS}},
6384{"mtsdr0", XSPR(31,467, 24), XSPR_MASK, POWER, 0, {RS}},
6385{"mtsdr1", XSPR(31,467, 25), XSPR_MASK, COM, TITAN, {RS}},
6386{"mtsrr0", XSPR(31,467, 26), XSPR_MASK, COM, 0, {RS}},
6387{"mtsrr1", XSPR(31,467, 27), XSPR_MASK, COM, 0, {RS}},
6388{"mtcfar", XSPR(31,467, 28), XSPR_MASK, POWER6, 0, {RS}},
6389{"mtpid", XSPR(31,467, 48), XSPR_MASK, BOOKE, 0, {RS}},
6390{"mtdecar", XSPR(31,467, 54), XSPR_MASK, BOOKE, 0, {RS}},
6391{"mtcsrr0", XSPR(31,467, 58), XSPR_MASK, BOOKE, 0, {RS}},
6392{"mtcsrr1", XSPR(31,467, 59), XSPR_MASK, BOOKE, 0, {RS}},
6393{"mtdear", XSPR(31,467, 61), XSPR_MASK, BOOKE, 0, {RS}},
6394{"mtesr", XSPR(31,467, 62), XSPR_MASK, BOOKE, 0, {RS}},
6395{"mtivpr", XSPR(31,467, 63), XSPR_MASK, BOOKE, 0, {RS}},
6396{"mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, 0, {RS}},
6397{"mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, 0, {RS}},
6398{"mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, 0, {RS}},
6399{"mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, 0, {RS}},
6400{"mticr", XSPR(31,467,148), XSPR_MASK, PPC860, 0, {RS}},
6401{"mtder", XSPR(31,467,149), XSPR_MASK, PPC860, 0, {RS}},
6402{"mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, 0, {RS}},
6403{"mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, 0, {RS}},
6404{"mtctrl", XSPR(31,467,152), XSPR_MASK, POWER4, 0, {RS}},
6405{"mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, 0, {RS}},
6406{"mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, 0, {RS}},
6407{"mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, 0, {RS}},
6408{"mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, 0, {RS}},
6409{"mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, 0, {RS}},
6410{"mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, 0, {RS}},
6411{"mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, 0, {RS}},
6412{"mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, 0, {RS}},
6413{"mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, 0, {RS}},
6414{"mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, 0, {RS}},
6415{"mtsprg", XSPR(31,467,256), XSPRG_MASK, PPC, 0, {SPRG, RS}},
6416{"mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, 0, {RS}},
6417{"mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, 0, {RS}},
6418{"mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, 0, {RS}},
6419{"mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, 0, {RS}},
6420{"mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6421{"mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6422{"mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6423{"mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6424{"mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, 0, {RS}},
6425{"mtear", XSPR(31,467,282), XSPR_MASK, PPC, TITAN, {RS}},
6426{"mttbl", XSPR(31,467,284), XSPR_MASK, PPC, 0, {RS}},
6427{"mttbu", XSPR(31,467,285), XSPR_MASK, PPC, 0, {RS}},
6428{"mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, 0, {RS}},
6429{"mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, 0, {RS}},
6430{"mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, 0, {RS}},
6431{"mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, 0, {RS}},
6432{"mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, 0, {RS}},
6433{"mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, 0, {RS}},
6434{"mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, 0, {RS}},
6435{"mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, 0, {RS}},
6436{"mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, 0, {RS}},
6437{"mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, 0, {RS}},
6438{"mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, 0, {RS}},
6439{"mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, 0, {RS}},
6440{"mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, 0, {RS}},
6441{"mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, 0, {RS}},
6442{"mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, 0, {RS}},
6443{"mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, 0, {RS}},
6444{"mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, 0, {RS}},
6445{"mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, 0, {RS}},
6446{"mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, 0, {RS}},
6447{"mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, 0, {RS}},
6448{"mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, 0, {RS}},
6449{"mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, 0, {RS}},
6450{"mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, 0, {RS}},
6451{"mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, 0, {RS}},
6452{"mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, 0, {RS}},
6453{"mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, 0, {RS}},
6454{"mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, 0, {RS}},
6455{"mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, 0, {RS}},
6456{"mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, 0, {RS}},
6457{"mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, 0, {RS}},
6458{"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, 0, {RS}},
6459{"mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, 0, {RS}},
6460{"mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, 0, {RS}},
4b94dd2d
AM
6461{"mtivor32", XSPR(31,467,528), XSPR_MASK, PPCSPE|E6500, 0, {RS}},
6462{"mtivor33", XSPR(31,467,529), XSPR_MASK, PPCSPE|E6500, 0, {RS}},
14b57c7c
AM
6463{"mtivor34", XSPR(31,467,530), XSPR_MASK, PPCSPE, 0, {RS}},
6464{"mtivor35", XSPR(31,467,531), XSPR_MASK, PPCPMR, 0, {RS}},
4b94dd2d
AM
6465{"mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6466{"mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
14b57c7c
AM
6467{"mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6468{"mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6469{"mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, 0, {RS}},
6470{"mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, 0, {RS}},
6471{"mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, 0, {RS}},
bb71536f
AM
6472{"mtupmc1", XSPR(31,467,771), XSPR_MASK, POWER9, 0, {RS}},
6473{"mtupmc2", XSPR(31,467,772), XSPR_MASK, POWER9, 0, {RS}},
6474{"mtupmc3", XSPR(31,467,773), XSPR_MASK, POWER9, 0, {RS}},
6475{"mtupmc4", XSPR(31,467,774), XSPR_MASK, POWER9, 0, {RS}},
6476{"mtupmc5", XSPR(31,467,775), XSPR_MASK, POWER9, 0, {RS}},
6477{"mtupmc6", XSPR(31,467,776), XSPR_MASK, POWER9, 0, {RS}},
14b57c7c
AM
6478{"mtivndx", XSPR(31,467,880), XSPR_MASK, TITAN, 0, {RS}},
6479{"mtdvndx", XSPR(31,467,881), XSPR_MASK, TITAN, 0, {RS}},
6480{"mtivlim", XSPR(31,467,882), XSPR_MASK, TITAN, 0, {RS}},
6481{"mtdvlim", XSPR(31,467,883), XSPR_MASK, TITAN, 0, {RS}},
6482{"mtclcsr", XSPR(31,467,884), XSPR_MASK, TITAN, 0, {RS}},
6483{"mtccr1", XSPR(31,467,888), XSPR_MASK, TITAN, 0, {RS}},
6484{"mtppr", XSPR(31,467,896), XSPR_MASK, POWER7, 0, {RS}},
6485{"mtppr32", XSPR(31,467,898), XSPR_MASK, POWER7, 0, {RS}},
fa758a70
AC
6486{"mtgqr", XSPR(31,467,912), XSPRGQR_MASK, PPCPS, 0, {SPRGQR, RS}},
6487{"mthid2", XSPR(31,467,920), XSPR_MASK, GEKKO, 0, {RS}},
6488{"mtwpar", XSPR(31,467,921), XSPR_MASK, GEKKO, 0, {RS}},
6489{"mtdmau", XSPR(31,467,922), XSPR_MASK, GEKKO, 0, {RS}},
6490{"mtdmal", XSPR(31,467,923), XSPR_MASK, GEKKO, 0, {RS}},
14b57c7c
AM
6491{"mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, 0, {RS}},
6492{"mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, 0, {RS}},
6493{"mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, 0, {RS}},
6494{"mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, 0, {RS}},
6495{"mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, 0, {RS}},
6496{"mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, 0, {RS}},
6497{"mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, 0, {RS}},
6498{"mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, 0, {RS}},
6499{"mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, 0, {RS}},
6500{"mtrmmucr", XSPR(31,467,946), XSPR_MASK, TITAN, 0, {RS}},
6501{"mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, 0, {RS}},
6502{"mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, 0, {RS}},
6503{"mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, 0, {RS}},
6504{"mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, 0, {RS}},
6505{"mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, 0, {RS}},
6506{"mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, 0, {RS}},
6507{"mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, 0, {RS}},
6508{"mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, 0, {RS}},
6509{"mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, 0, {RS}},
6510{"mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, 0, {RS}},
6511{"mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, 0, {RS}},
6512{"mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, 0, {RS}},
6513{"mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, 0, {RS}},
6514{"mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, 0, {RS}},
6515{"mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, 0, {RS}},
6516{"mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, 0, {RS}},
6517{"mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, 0, {RS}},
6518{"mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, 0, {RS}},
6519{"mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, 0, {RS}},
6520{"mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, 0, {RS}},
6521{"mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, 0, {RS}},
6522{"mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, 0, {RS}},
6523{"mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, 0, {RS}},
6524{"mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, 0, {RS}},
6525{"mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, 0, {RS}},
6526{"mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, 0, {RS}},
6527{"mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, 0, {RS}},
6528{"mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, 0, {RS}},
6529{"mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, 0, {RS}},
6530{"mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, 0, {RS}},
fa758a70
AC
6531{"mthid0", XSPR(31,467,1008), XSPR_MASK, GEKKO, 0, {RS}},
6532{"mthid1", XSPR(31,467,1009), XSPR_MASK, GEKKO, 0, {RS}},
14b57c7c 6533{"mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, 0, {RS}},
fa758a70
AC
6534{"mtiabr", XSPR(31,467,1010), XSPR_MASK, GEKKO, 0, {RS}},
6535{"mthid4", XSPR(31,467,1011), XSPR_MASK, BROADWAY, 0, {RS}},
6536{"mtdbdr", XSPR(31,467,1011), XSPR_MASK, TITAN, 0, {RS}},
14b57c7c
AM
6537{"mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, 0, {RS}},
6538{"mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, 0, {RS}},
fa758a70 6539{"mtdabr", XSPR(31,467,1013), XSPR_MASK, PPC750, 0, {RS}},
14b57c7c
AM
6540{"mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, 0, {RS}},
6541{"mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, 0, {RS}},
6542{"mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, 0, {RS}},
6543{"mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, 0, {RS}},
6544{"mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, 0, {RS}},
6545{"mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, 0, {RS}},
6546{"mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, 0, {RS}},
6547{"mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, 0, {RS}},
6548{"mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, 0, {RS}},
6549{"mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, 0, {RS}},
6550{"mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, 0, {RS}},
6551{"mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, 0, {RS}},
6552{"mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, 0, {RS}},
6553{"mtspr", X(31,467), X_MASK, COM, 0, {SPR, RS}},
6554
6555{"dcbi", X(31,470), XRT_MASK, PPC, 0, {RA0, RB}},
6556
6557{"nand", XRC(31,476,0), X_MASK, COM, 0, {RA, RS, RB}},
6558{"nand.", XRC(31,476,1), X_MASK, COM, 0, {RA, RS, RB}},
6559
6560{"dsn", X(31,483), XRT_MASK, E500MC, 0, {RA, RB}},
6561
62adc510 6562{"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2, {RT, RA0, RB}},
14b57c7c
AM
6563
6564{"icbtls", X(31,486), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
6565
6566{"stvxl", X(31,487), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6567
6568{"nabs", XO(31,488,0,0), XORB_MASK, M601, 0, {RT, RA}},
6569{"nabs.", XO(31,488,0,1), XORB_MASK, M601, 0, {RT, RA}},
6570
6571{"divd", XO(31,489,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6572{"divd.", XO(31,489,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
6573
6574{"divw", XO(31,491,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6575{"divw.", XO(31,491,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6576
6577{"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
6578
6579{"slbia", X(31,498), 0xff1fffff, POWER6, 0, {IH}},
4bc0608a 6580{"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}},
1cb0a767 6581
14b57c7c 6582{"cli", X(31,502), XRB_MASK, POWER, 0, {RT, RA}},
1cb0a767 6583
14b57c7c 6584{"popcntd", X(31,506), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
066be9f7 6585
14b57c7c 6586{"cmpb", X(31,508), X_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS, RB}},
1cb0a767 6587
14b57c7c 6588{"mcrxr", X(31,512), XBFRARB_MASK, COM, POWER7, {BF}},
252b5132 6589
dfdaec14 6590{"lbdcbx", X(31,514), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 6591{"lbdx", X(31,515), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 6592
14b57c7c 6593{"bblels", X(31,518), X_MASK, PPCBRLK, 0, {0}},
252b5132 6594
14b57c7c
AM
6595{"lvlx", X(31,519), X_MASK, CELL, 0, {VD, RA0, RB}},
6596{"lbfcmux", APU(31,519,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 6597
14b57c7c
AM
6598{"subfco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6599{"sfo", XO(31,8,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6600{"subco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
6601{"subfco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6602{"sfo.", XO(31,8,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6603{"subco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
43e65147 6604
14b57c7c
AM
6605{"addco", XO(31,10,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6606{"ao", XO(31,10,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6607{"addco.", XO(31,10,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6608{"ao.", XO(31,10,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6609
14b57c7c 6610{"lxsspx", X(31,524), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
c0637f3a 6611
14b57c7c 6612{"clcs", X(31,531), XRB_MASK, M601, 0, {RT, RA}},
418c1742 6613
14b57c7c 6614{"ldbrx", X(31,532), X_MASK, CELL|POWER7|PPCA2, 0, {RT, RA0, RB}},
418c1742 6615
14b57c7c
AM
6616{"lswx", X(31,533), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, RBX}},
6617{"lsx", X(31,533), X_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6618
14b57c7c
AM
6619{"lwbrx", X(31,534), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
6620{"lbrx", X(31,534), X_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6621
14b57c7c 6622{"lfsx", X(31,535), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
702f0fb4 6623
14b57c7c
AM
6624{"srw", XRC(31,536,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6625{"sr", XRC(31,536,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
6626{"srw.", XRC(31,536,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6627{"sr.", XRC(31,536,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
252b5132 6628
14b57c7c
AM
6629{"rrib", XRC(31,537,0), X_MASK, M601, 0, {RA, RS, RB}},
6630{"rrib.", XRC(31,537,1), X_MASK, M601, 0, {RA, RS, RB}},
23976049 6631
14b57c7c
AM
6632{"cnttzw", XRC(31,538,0), XRB_MASK, POWER9, 0, {RA, RS}},
6633{"cnttzw.", XRC(31,538,1), XRB_MASK, POWER9, 0, {RA, RS}},
a680de9a 6634
14b57c7c
AM
6635{"srd", XRC(31,539,0), X_MASK, PPC64, 0, {RA, RS, RB}},
6636{"srd.", XRC(31,539,1), X_MASK, PPC64, 0, {RA, RS, RB}},
f509565f 6637
14b57c7c
AM
6638{"maskir", XRC(31,541,0), X_MASK, M601, 0, {RA, RS, RB}},
6639{"maskir.", XRC(31,541,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6640
dfdaec14 6641{"lhdcbx", X(31,546), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 6642{"lhdx", X(31,547), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 6643
ac8f0f72 6644{"lvtrx", X(31,549), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6645
14b57c7c 6646{"bbelr", X(31,550), X_MASK, PPCBRLK, 0, {0}},
418c1742 6647
14b57c7c
AM
6648{"lvrx", X(31,551), X_MASK, CELL, 0, {VD, RA0, RB}},
6649{"lhfcmux", APU(31,551,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 6650
14b57c7c
AM
6651{"subfo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6652{"subo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RB, RA}},
6653{"subfo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6654{"subo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RB, RA}},
252b5132 6655
14b57c7c 6656{"tlbsync", X(31,566), 0xffffffff, PPC, 0, {0}},
252b5132 6657
14b57c7c 6658{"lfsux", X(31,567), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
252b5132 6659
14b57c7c
AM
6660{"cnttzd", XRC(31,570,0), XRB_MASK, POWER9, 0, {RA, RS}},
6661{"cnttzd.", XRC(31,570,1), XRB_MASK, POWER9, 0, {RA, RS}},
a680de9a 6662
14b57c7c 6663{"mcrxrx", X(31,576), XBFRARB_MASK, POWER9, 0, {BF}},
a680de9a 6664
dfdaec14 6665{"lwdcbx", X(31,578), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 6666{"lwdx", X(31,579), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 6667
ac8f0f72 6668{"lvtlx", X(31,581), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6669
14b57c7c 6670{"lwat", X(31,582), X_MASK, POWER9, 0, {RT, RA0, FC}},
a680de9a 6671
14b57c7c 6672{"lwfcmux", APU(31,583,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 6673
14b57c7c 6674{"lxsdx", X(31,588), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
066be9f7 6675
14b57c7c 6676{"mfsr", X(31,595), XRB_MASK|(1<<20), COM, NON32, {RT, SR}},
252b5132 6677
14b57c7c
AM
6678{"lswi", X(31,597), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, NBI}},
6679{"lsi", X(31,597), X_MASK, PWRCOM, 0, {RT, RA0, NB}},
252b5132 6680
dc302c00 6681{"hwsync", XSYNC(31,598,0), 0xffffffff, POWER4, BOOKE|PPC476, {0}},
e01d869a 6682{"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, E500, {0}},
14b57c7c 6683{"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, 0, {0}},
fd486b63
PB
6684{"sync", X(31,598), XSYNCLE_MASK, E6500, 0, {LS, ESYNC}},
6685{"sync", X(31,598), XSYNC_MASK, PPCCOM, BOOKE|PPC476, {LS}},
14b57c7c
AM
6686{"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, 0, {0}},
6687{"sync", X(31,598), 0xffffffff, BOOKE|PPC476, E6500, {0}},
6688{"lwsync", X(31,598), 0xffffffff, E500, 0, {0}},
6689{"dcs", X(31,598), 0xffffffff, PWRCOM, 0, {0}},
418c1742 6690
14b57c7c 6691{"lfdx", X(31,599), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
23976049 6692
066be9f7 6693{"mffgpr", XRC(31,607,0), XRA_MASK, POWER6, POWER7, {FRT, RB}},
14b57c7c 6694{"lfdepx", X(31,607), X_MASK, E500MC|PPCA2, 0, {FRT, RA0, RB}},
252b5132 6695
14b57c7c 6696{"lddx", X(31,611), X_MASK, E500MC, 0, {RT, RA, RB}},
19a6653c 6697
ac8f0f72 6698{"lvswx", X(31,613), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6699
14b57c7c 6700{"ldat", X(31,614), X_MASK, POWER9, 0, {RT, RA0, FC}},
a680de9a 6701
14b57c7c 6702{"lqfcmux", APU(31,615,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 6703
14b57c7c
AM
6704{"nego", XO(31,104,1,0), XORB_MASK, COM, 0, {RT, RA}},
6705{"nego.", XO(31,104,1,1), XORB_MASK, COM, 0, {RT, RA}},
252b5132 6706
14b57c7c
AM
6707{"mulo", XO(31,107,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
6708{"mulo.", XO(31,107,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 6709
14b57c7c 6710{"mfsri", X(31,627), X_MASK, M601, 0, {RT, RA, RB}},
252b5132 6711
14b57c7c 6712{"dclst", X(31,630), XRB_MASK, M601, 0, {RS, RA}},
252b5132 6713
14b57c7c 6714{"lfdux", X(31,631), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
252b5132 6715
dfdaec14 6716{"stbdcbx", X(31,642), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 6717{"stbdx", X(31,643), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 6718
14b57c7c
AM
6719{"stvlx", X(31,647), X_MASK, CELL, 0, {VS, RA0, RB}},
6720{"stbfcmux", APU(31,647,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
23976049 6721
14b57c7c 6722{"stxsspx", X(31,652), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
c0637f3a 6723
14b57c7c 6724{"tbegin.", XRC(31,654,1), XRTLRARB_MASK, PPCHTM, 0, {HTM_R}},
5817ffd1 6725
14b57c7c
AM
6726{"subfeo", XO(31,136,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6727{"sfeo", XO(31,136,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6728{"subfeo.", XO(31,136,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6729{"sfeo.", XO(31,136,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6730
14b57c7c
AM
6731{"addeo", XO(31,138,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6732{"aeo", XO(31,138,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6733{"addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6734{"aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6735
14b57c7c 6736{"mfsrin", X(31,659), XRA_MASK, PPC, NON32, {RT, RB}},
418c1742 6737
14b57c7c 6738{"stdbrx", X(31,660), X_MASK, CELL|POWER7|PPCA2, 0, {RS, RA0, RB}},
252b5132 6739
14b57c7c
AM
6740{"stswx", X(31,661), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, RB}},
6741{"stsx", X(31,661), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
418c1742 6742
14b57c7c
AM
6743{"stwbrx", X(31,662), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
6744{"stbrx", X(31,662), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
252b5132 6745
14b57c7c 6746{"stfsx", X(31,663), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
ede602d7 6747
14b57c7c
AM
6748{"srq", XRC(31,664,0), X_MASK, M601, 0, {RA, RS, RB}},
6749{"srq.", XRC(31,664,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6750
14b57c7c
AM
6751{"sre", XRC(31,665,0), X_MASK, M601, 0, {RA, RS, RB}},
6752{"sre.", XRC(31,665,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6753
dfdaec14 6754{"sthdcbx", X(31,674), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 6755{"sthdx", X(31,675), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 6756
ac8f0f72 6757{"stvfrx", X(31,677), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6758
14b57c7c
AM
6759{"stvrx", X(31,679), X_MASK, CELL, 0, {VS, RA0, RB}},
6760{"sthfcmux", APU(31,679,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 6761
14b57c7c
AM
6762{"tendall.", XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0, {0}},
6763{"tend.", XRC(31,686,1), XRTARARB_MASK, PPCHTM, 0, {HTM_A}},
5817ffd1 6764
14b57c7c 6765{"stbcx.", XRC(31,694,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
066be9f7 6766
14b57c7c 6767{"stfsux", X(31,695), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
252b5132 6768
14b57c7c
AM
6769{"sriq", XRC(31,696,0), X_MASK, M601, 0, {RA, RS, SH}},
6770{"sriq.", XRC(31,696,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 6771
dfdaec14 6772{"stwdcbx", X(31,706), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 6773{"stwdx", X(31,707), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 6774
ac8f0f72 6775{"stvflx", X(31,709), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6776
14b57c7c 6777{"stwat", X(31,710), X_MASK, POWER9, 0, {RS, RA0, FC}},
a680de9a 6778
14b57c7c 6779{"stwfcmux", APU(31,711,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 6780
14b57c7c 6781{"stxsdx", X(31,716), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
066be9f7 6782
14b57c7c 6783{"tcheck", X(31,718), XRTBFRARB_MASK, PPCHTM, 0, {BF}},
5817ffd1 6784
14b57c7c
AM
6785{"subfzeo", XO(31,200,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6786{"sfzeo", XO(31,200,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6787{"subfzeo.", XO(31,200,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6788{"sfzeo.", XO(31,200,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 6789
14b57c7c
AM
6790{"addzeo", XO(31,202,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6791{"azeo", XO(31,202,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6792{"addzeo.", XO(31,202,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6793{"azeo.", XO(31,202,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
fdd12ef3 6794
14b57c7c
AM
6795{"stswi", X(31,725), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, NB}},
6796{"stsi", X(31,725), X_MASK, PWRCOM, 0, {RS, RA0, NB}},
252b5132 6797
14b57c7c 6798{"sthcx.", XRC(31,726,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
066be9f7 6799
14b57c7c 6800{"stfdx", X(31,727), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
252b5132 6801
14b57c7c
AM
6802{"srlq", XRC(31,728,0), X_MASK, M601, 0, {RA, RS, RB}},
6803{"srlq.", XRC(31,728,1), X_MASK, M601, 0, {RA, RS, RB}},
418c1742 6804
14b57c7c
AM
6805{"sreq", XRC(31,729,0), X_MASK, M601, 0, {RA, RS, RB}},
6806{"sreq.", XRC(31,729,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6807
066be9f7 6808{"mftgpr", XRC(31,735,0), XRA_MASK, POWER6, POWER7, {RT, FRB}},
14b57c7c 6809{"stfdepx", X(31,735), X_MASK, E500MC|PPCA2, 0, {FRS, RA0, RB}},
252b5132 6810
14b57c7c 6811{"stddx", X(31,739), X_MASK, E500MC, 0, {RS, RA, RB}},
19a6653c 6812
ac8f0f72 6813{"stvswx", X(31,741), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 6814
14b57c7c 6815{"stdat", X(31,742), X_MASK, POWER9, 0, {RS, RA0, FC}},
a680de9a 6816
14b57c7c 6817{"stqfcmux", APU(31,743,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 6818
14b57c7c
AM
6819{"subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6820{"sfmeo", XO(31,232,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6821{"subfmeo.", XO(31,232,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6822{"sfmeo.", XO(31,232,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 6823
14b57c7c
AM
6824{"mulldo", XO(31,233,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6825{"mulldo.", XO(31,233,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
252b5132 6826
14b57c7c
AM
6827{"addmeo", XO(31,234,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6828{"ameo", XO(31,234,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6829{"addmeo.", XO(31,234,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6830{"ameo.", XO(31,234,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 6831
14b57c7c
AM
6832{"mullwo", XO(31,235,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6833{"mulso", XO(31,235,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6834{"mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6835{"mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
702f0fb4 6836
14b57c7c
AM
6837{"tsuspend.", XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM, 0, {0}},
6838{"tresume.", XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM, 0, {0}},
6839{"tsr.", XRC(31,750,1), XRTLRARB_MASK,PPCHTM, 0, {L}},
5817ffd1 6840
14b57c7c 6841{"darn", X(31,755), XLRAND_MASK, POWER9, 0, {RT, LRAND}},
a680de9a 6842
14b57c7c
AM
6843{"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
6844{"dcbal", XOPL(31,758,1), XRT_MASK, E500MC, 0, {RA0, RB}},
252b5132 6845
14b57c7c 6846{"stfdux", X(31,759), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
252b5132 6847
14b57c7c
AM
6848{"srliq", XRC(31,760,0), X_MASK, M601, 0, {RA, RS, SH}},
6849{"srliq.", XRC(31,760,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 6850
ac8f0f72 6851{"lvsm", X(31,773), X_MASK, E6500, 0, {VD, RA0, RB}},
a680de9a 6852
fd486b63 6853{"copy", XOPL(31,774,1), XRT_MASK, POWER9, 0, {RA0, RB}},
a680de9a 6854
ac8f0f72 6855{"stvepxl", X(31,775), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c
AM
6856{"lvlxl", X(31,775), X_MASK, CELL, 0, {VD, RA0, RB}},
6857{"ldfcmux", APU(31,775,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
ede602d7 6858
14b57c7c
AM
6859{"dozo", XO(31,264,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
6860{"dozo.", XO(31,264,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 6861
14b57c7c
AM
6862{"addo", XO(31,266,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6863{"caxo", XO(31,266,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6864{"addo.", XO(31,266,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6865{"caxo.", XO(31,266,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6866
14b57c7c
AM
6867{"modsd", X(31,777), X_MASK, POWER9, 0, {RT, RA, RB}},
6868{"modsw", X(31,779), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 6869
14b57c7c
AM
6870{"lxvw4x", X(31,780), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
6871{"lxsibzx", X(31,781), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
066be9f7 6872
14b57c7c 6873{"tabortwc.", XRC(31,782,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
5817ffd1 6874
14b57c7c 6875{"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
252b5132 6876
14b57c7c 6877{"lwzcix", X(31,789), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 6878
14b57c7c 6879{"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}},
252b5132 6880
73f07bff 6881{"lfdpx", X(31,791), X_MASK|Q_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
14b57c7c 6882{"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}},
418c1742 6883
14b57c7c
AM
6884{"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6885{"sra", XRC(31,792,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
6886{"sraw.", XRC(31,792,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6887{"sra.", XRC(31,792,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
fdd12ef3 6888
14b57c7c
AM
6889{"srad", XRC(31,794,0), X_MASK, PPC64, 0, {RA, RS, RB}},
6890{"srad.", XRC(31,794,1), X_MASK, PPC64, 0, {RA, RS, RB}},
252b5132 6891
74081948 6892{"evlddepx", VX (31, 1598), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
14b57c7c 6893{"lfddx", X(31,803), X_MASK, E500MC, 0, {FRT, RA, RB}},
19a6653c 6894
ac8f0f72
AM
6895{"lvtrxl", X(31,805), X_MASK, E6500, 0, {VD, RA0, RB}},
6896{"stvepx", X(31,807), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c 6897{"lvrxl", X(31,807), X_MASK, CELL, 0, {VD, RA0, RB}},
252b5132 6898
14b57c7c
AM
6899{"lxvh8x", X(31,812), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
6900{"lxsihzx", X(31,813), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 6901
14b57c7c 6902{"tabortdc.", XRC(31,814,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
5817ffd1 6903
14b57c7c 6904{"rac", X(31,818), X_MASK, M601, 0, {RT, RA, RB}},
252b5132 6905
14b57c7c 6906{"erativax", X(31,819), X_MASK, PPCA2, 0, {RS, RA0, RB}},
e0d602ec 6907
14b57c7c 6908{"lhzcix", X(31,821), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 6909
14b57c7c 6910{"dss", XDSS(31,822,0), XDSS_MASK, PPCVEC, 0, {STRM}},
252b5132 6911
14b57c7c 6912{"lfqux", X(31,823), X_MASK, POWER2, 0, {FRT, RA, RB}},
fdd12ef3 6913
14b57c7c
AM
6914{"srawi", XRC(31,824,0), X_MASK, PPCCOM, 0, {RA, RS, SH}},
6915{"srai", XRC(31,824,0), X_MASK, PWRCOM, 0, {RA, RS, SH}},
6916{"srawi.", XRC(31,824,1), X_MASK, PPCCOM, 0, {RA, RS, SH}},
6917{"srai.", XRC(31,824,1), X_MASK, PWRCOM, 0, {RA, RS, SH}},
702f0fb4 6918
14b57c7c
AM
6919{"sradi", XS(31,413,0), XS_MASK, PPC64, 0, {RA, RS, SH6}},
6920{"sradi.", XS(31,413,1), XS_MASK, PPC64, 0, {RA, RS, SH6}},
e0c21649 6921
ac8f0f72 6922{"lvtlxl", X(31,837), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6923
fd486b63 6924{"cpabort", X(31,838), XRTRARB_MASK,POWER9, 0, {0}},
a680de9a 6925
14b57c7c
AM
6926{"divo", XO(31,331,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
6927{"divo.", XO(31,331,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 6928
14b57c7c 6929{"lxvd2x", X(31,844), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
a680de9a 6930{"lxvx", X(31,844), XX1_MASK, POWER8, POWER9|PPCVSX3, {XT6, RA0, RB}},
9b4e5766 6931
14b57c7c 6932{"tabortwci.", XRC(31,846,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
5817ffd1 6933
14b57c7c 6934{"tlbsrx.", XRC(31,850,1), XRT_MASK, PPCA2, 0, {RA0, RB}},
e0d602ec 6935
fd486b63 6936{"slbiag", X(31,850), XRARB_MASK, POWER9, 0, {RS}},
14b57c7c 6937{"slbmfev", X(31,851), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
a680de9a 6938{"slbmfev", X(31,851), XRA_MASK, PPC64, POWER9, {RT, RB}},
252b5132 6939
14b57c7c 6940{"lbzcix", X(31,853), X_MASK, POWER6, 0, {RT, RA0, RB}},
418c1742 6941
9fe54b1c 6942{"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2|PPC476, {0}},
14b57c7c
AM
6943{"mbar", X(31,854), X_MASK, BOOKE|PPCA2|PPC476, 0, {MO}},
6944{"eieio", XMBAR(31,854,1),0xffffffff, E500, 0, {0}},
6945{"eieio", X(31,854), 0xffffffff, PPCA2|PPC476, 0, {0}},
418c1742 6946
14b57c7c 6947{"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, 0, {FRT, RA0, RB}},
418c1742 6948
ac8f0f72 6949{"lvswxl", X(31,869), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6950
14b57c7c
AM
6951{"abso", XO(31,360,1,0), XORB_MASK, M601, 0, {RT, RA}},
6952{"abso.", XO(31,360,1,1), XORB_MASK, M601, 0, {RT, RA}},
702f0fb4 6953
14b57c7c
AM
6954{"divso", XO(31,363,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
6955{"divso.", XO(31,363,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 6956
14b57c7c 6957{"lxvb16x", X(31,876), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 6958
14b57c7c 6959{"tabortdci.", XRC(31,878,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
5817ffd1 6960
14b57c7c 6961{"rmieg", X(31,882), XRTRA_MASK, POWER9, 0, {RB}},
a680de9a 6962
14b57c7c 6963{"ldcix", X(31,885), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 6964
14b57c7c 6965{"msgsync", X(31,886), 0xffffffff, POWER9, 0, {0}},
a680de9a 6966
14b57c7c 6967{"lfiwzx", X(31,887), X_MASK, POWER7|PPCA2, 0, {FRT, RA0, RB}},
066be9f7 6968
14b57c7c
AM
6969{"extswsli", XS(31,445,0), XS_MASK, POWER9, 0, {RA, RS, SH6}},
6970{"extswsli.", XS(31,445,1), XS_MASK, POWER9, 0, {RA, RS, SH6}},
a680de9a 6971
fd486b63 6972{"paste.", XRCL(31,902,1,1),XRT_MASK, POWER9, 0, {RA0, RB}},
a680de9a 6973
14b57c7c
AM
6974{"stvlxl", X(31,903), X_MASK, CELL, 0, {VS, RA0, RB}},
6975{"stdfcmux", APU(31,903,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 6976
14b57c7c
AM
6977{"divdeuo", XO(31,393,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6978{"divdeuo.", XO(31,393,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6979{"divweuo", XO(31,395,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6980{"divweuo.", XO(31,395,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 6981
14b57c7c
AM
6982{"stxvw4x", X(31,908), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
6983{"stxsibx", X(31,909), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
066be9f7 6984
14b57c7c 6985{"tabort.", XRC(31,910,1), XRTRB_MASK, PPCHTM, 0, {RA}},
5817ffd1 6986
14b57c7c
AM
6987{"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
6988{"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
252b5132 6989
14b57c7c 6990{"slbmfee", X(31,915), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
a680de9a 6991{"slbmfee", X(31,915), XRA_MASK, PPC64, POWER9, {RT, RB}},
702f0fb4 6992
14b57c7c 6993{"stwcix", X(31,917), X_MASK, POWER6, 0, {RS, RA0, RB}},
f5c120c5 6994
14b57c7c 6995{"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}},
252b5132 6996
73f07bff 6997{"stfdpx", X(31,919), X_MASK|Q_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
14b57c7c 6998{"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}},
6ba045b1 6999
14b57c7c
AM
7000{"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}},
7001{"sraq.", XRC(31,920,1), X_MASK, M601, 0, {RA, RS, RB}},
702f0fb4 7002
14b57c7c
AM
7003{"srea", XRC(31,921,0), X_MASK, M601, 0, {RA, RS, RB}},
7004{"srea.", XRC(31,921,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 7005
14b57c7c
AM
7006{"extsh", XRC(31,922,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
7007{"exts", XRC(31,922,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
7008{"extsh.", XRC(31,922,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
7009{"exts.", XRC(31,922,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
702f0fb4 7010
74081948 7011{"evstddepx", VX (31, 1854), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
14b57c7c 7012{"stfddx", X(31,931), X_MASK, E500MC, 0, {FRS, RA, RB}},
19a6653c 7013
ac8f0f72 7014{"stvfrxl", X(31,933), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7015
14b57c7c 7016{"wclrone", XOPL2(31,934,2),XRT_MASK, PPCA2, 0, {RA0, RB}},
a5721ba2
AM
7017{"wclrall", X(31,934), XRARB_MASK, PPCA2, 0, {L2}},
7018{"wclr", X(31,934), X_MASK, PPCA2, 0, {L2, RA0, RB}},
85d4ac0b 7019
14b57c7c 7020{"stvrxl", X(31,935), X_MASK, CELL, 0, {VS, RA0, RB}},
6ba045b1 7021
14b57c7c
AM
7022{"divdeo", XO(31,425,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7023{"divdeo.", XO(31,425,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7024{"divweo", XO(31,427,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7025{"divweo.", XO(31,427,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 7026
14b57c7c
AM
7027{"stxvh8x", X(31,940), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
7028{"stxsihx", X(31,941), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 7029
14b57c7c 7030{"treclaim.", XRC(31,942,1), XRTRB_MASK, PPCHTM, 0, {RA}},
5817ffd1 7031
e0d602ec
BE
7032{"tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
7033{"tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
14b57c7c 7034{"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
702f0fb4 7035
14b57c7c 7036{"sthcix", X(31,949), X_MASK, POWER6, 0, {RS, RA0, RB}},
252b5132 7037
14b57c7c
AM
7038{"icswepx", XRC(31,950,0), X_MASK, PPCA2, 0, {RS, RA, RB}},
7039{"icswepx.", XRC(31,950,1), X_MASK, PPCA2, 0, {RS, RA, RB}},
51b5d4a8 7040
14b57c7c 7041{"stfqux", X(31,951), X_MASK, POWER2, 0, {FRS, RA, RB}},
252b5132 7042
14b57c7c
AM
7043{"sraiq", XRC(31,952,0), X_MASK, M601, 0, {RA, RS, SH}},
7044{"sraiq.", XRC(31,952,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 7045
14b57c7c
AM
7046{"extsb", XRC(31,954,0), XRB_MASK, PPC, 0, {RA, RS}},
7047{"extsb.", XRC(31,954,1), XRB_MASK, PPC, 0, {RA, RS}},
252b5132 7048
ac8f0f72 7049{"stvflxl", X(31,965), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7050
62adc510 7051{"iccci", X(31,966), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
14b57c7c 7052{"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
43e65147 7053
14b57c7c
AM
7054{"divduo", XO(31,457,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7055{"divduo.", XO(31,457,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 7056
14b57c7c
AM
7057{"divwuo", XO(31,459,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7058{"divwuo.", XO(31,459,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
252b5132 7059
14b57c7c 7060{"stxvd2x", X(31,972), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
a680de9a 7061{"stxvx", X(31,972), XX1_MASK, POWER8, POWER9|PPCVSX3, {XS6, RA0, RB}},
9b4e5766 7062
9fe54b1c 7063{"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
14b57c7c
AM
7064{"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, 0, {RT, RA}},
7065{"tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, 0, {RT, RA}},
7066{"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
418c1742 7067
14b57c7c 7068{"slbfee.", XRC(31,979,1), XRA_MASK, POWER6, 0, {RT, RB}},
c4e676f1 7069
14b57c7c 7070{"stbcix", X(31,981), X_MASK, POWER6, 0, {RS, RA0, RB}},
252b5132 7071
14b57c7c 7072{"icbi", X(31,982), XRT_MASK, PPC, 0, {RA0, RB}},
252b5132 7073
14b57c7c 7074{"stfiwx", X(31,983), X_MASK, PPC, PPCEFS, {FRS, RA0, RB}},
702f0fb4 7075
14b57c7c
AM
7076{"extsw", XRC(31,986,0), XRB_MASK, PPC64, 0, {RA, RS}},
7077{"extsw.", XRC(31,986,1), XRB_MASK, PPC64, 0, {RA, RS}},
252b5132 7078
14b57c7c 7079{"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
19a6653c 7080
ac8f0f72 7081{"stvswxl", X(31,997), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7082
14b57c7c 7083{"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA0, RB}},
252b5132 7084
14b57c7c
AM
7085{"nabso", XO(31,488,1,0), XORB_MASK, M601, 0, {RT, RA}},
7086{"nabso.", XO(31,488,1,1), XORB_MASK, M601, 0, {RT, RA}},
252b5132 7087
14b57c7c
AM
7088{"divdo", XO(31,489,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7089{"divdo.", XO(31,489,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 7090
14b57c7c
AM
7091{"divwo", XO(31,491,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7092{"divwo.", XO(31,491,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
418c1742 7093
14b57c7c 7094{"stxvb16x", X(31,1004), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 7095
14b57c7c 7096{"trechkpt.", XRC(31,1006,1), XRTRARB_MASK,PPCHTM, 0, {0}},
702f0fb4 7097
14b57c7c 7098{"tlbli", X(31,1010), XRTRA_MASK, PPC, TITAN, {RB}},
252b5132 7099
14b57c7c 7100{"stdcix", X(31,1013), X_MASK, POWER6, 0, {RS, RA0, RB}},
418c1742 7101
14b57c7c
AM
7102{"dcbz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
7103{"dclz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
786e2c0f 7104
14b57c7c 7105{"dcbzep", XRT(31,1023,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
ede602d7 7106
14b57c7c 7107{"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPC476, {RA0, RB}},
252b5132 7108
14b57c7c
AM
7109{"cctpl", 0x7c210b78, 0xffffffff, CELL, 0, {0}},
7110{"cctpm", 0x7c421378, 0xffffffff, CELL, 0, {0}},
7111{"cctph", 0x7c631b78, 0xffffffff, CELL, 0, {0}},
252b5132 7112
14b57c7c
AM
7113{"dstt", XDSS(31,342,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
7114{"dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
7115{"dssall", XDSS(31,822,1), XDSS_MASK, PPCVEC, 0, {0}},
252b5132 7116
14b57c7c
AM
7117{"db8cyc", 0x7f9ce378, 0xffffffff, CELL, 0, {0}},
7118{"db10cyc", 0x7fbdeb78, 0xffffffff, CELL, 0, {0}},
7119{"db12cyc", 0x7fdef378, 0xffffffff, CELL, 0, {0}},
7120{"db16cyc", 0x7ffffb78, 0xffffffff, CELL, 0, {0}},
252b5132 7121
14b57c7c
AM
7122{"lwz", OP(32), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
7123{"l", OP(32), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 7124
14b57c7c
AM
7125{"lwzu", OP(33), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAL}},
7126{"lu", OP(33), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 7127
14b57c7c 7128{"lbz", OP(34), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 7129
14b57c7c 7130{"lbzu", OP(35), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 7131
14b57c7c
AM
7132{"stw", OP(36), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
7133{"st", OP(36), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 7134
14b57c7c
AM
7135{"stwu", OP(37), OP_MASK, PPCCOM, PPCVLE, {RS, D, RAS}},
7136{"stu", OP(37), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 7137
14b57c7c 7138{"stb", OP(38), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
252b5132 7139
14b57c7c 7140{"stbu", OP(39), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
252b5132 7141
14b57c7c 7142{"lhz", OP(40), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 7143
14b57c7c 7144{"lhzu", OP(41), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 7145
14b57c7c 7146{"lha", OP(42), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 7147
14b57c7c 7148{"lhau", OP(43), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 7149
14b57c7c 7150{"sth", OP(44), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
252b5132 7151
14b57c7c 7152{"sthu", OP(45), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
252b5132 7153
14b57c7c
AM
7154{"lmw", OP(46), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAM}},
7155{"lm", OP(46), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 7156
14b57c7c
AM
7157{"stmw", OP(47), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
7158{"stm", OP(47), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 7159
14b57c7c 7160{"lfs", OP(48), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
252b5132 7161
14b57c7c 7162{"lfsu", OP(49), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
252b5132 7163
14b57c7c 7164{"lfd", OP(50), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
252b5132 7165
14b57c7c 7166{"lfdu", OP(51), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
252b5132 7167
14b57c7c 7168{"stfs", OP(52), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
adadcc0c 7169
14b57c7c 7170{"stfsu", OP(53), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
252b5132 7171
14b57c7c 7172{"stfd", OP(54), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
c3d65c1c 7173
14b57c7c 7174{"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
252b5132 7175
73f07bff 7176{"lq", OP(56), OP_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
14b57c7c
AM
7177{"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
7178{"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
418c1742 7179
14b57c7c
AM
7180{"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
7181{"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
73f07bff 7182{"lfdp", OP(57), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
14b57c7c
AM
7183{"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
7184{"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
802a735e 7185
14b57c7c
AM
7186{"ld", DSO(58,0), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
7187{"ldu", DSO(58,1), DS_MASK, PPC64, PPCVLE, {RT, DS, RAL}},
7188{"lwa", DSO(58,2), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
702f0fb4 7189
14b57c7c
AM
7190{"dadd", XRC(59,2,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7191{"dadd.", XRC(59,2,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
252b5132 7192
14b57c7c
AM
7193{"dqua", ZRC(59,3,0), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
7194{"dqua.", ZRC(59,3,1), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
252b5132 7195
14b57c7c
AM
7196{"fdivs", A(59,18,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7197{"fdivs.", A(59,18,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 7198
14b57c7c
AM
7199{"fsubs", A(59,20,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7200{"fsubs.", A(59,20,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 7201
14b57c7c
AM
7202{"fadds", A(59,21,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7203{"fadds.", A(59,21,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 7204
14b57c7c
AM
7205{"fsqrts", A(59,22,0), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
7206{"fsqrts.", A(59,22,1), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
252b5132 7207
14b57c7c
AM
7208{"fres", A(59,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7209{"fres", A(59,24,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
7210{"fres.", A(59,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7211{"fres.", A(59,24,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
1ed8e1e4 7212
14b57c7c
AM
7213{"fmuls", A(59,25,0), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7214{"fmuls.", A(59,25,1), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
252b5132 7215
14b57c7c
AM
7216{"frsqrtes", A(59,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7217{"frsqrtes", A(59,26,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
7218{"frsqrtes.", A(59,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7219{"frsqrtes.", A(59,26,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
252b5132 7220
14b57c7c
AM
7221{"fmsubs", A(59,28,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7222{"fmsubs.", A(59,28,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7223
14b57c7c
AM
7224{"fmadds", A(59,29,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7225{"fmadds.", A(59,29,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7226
14b57c7c
AM
7227{"fnmsubs", A(59,30,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7228{"fnmsubs.", A(59,30,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
702f0fb4 7229
14b57c7c
AM
7230{"fnmadds", A(59,31,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7231{"fnmadds.", A(59,31,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
702f0fb4 7232
14b57c7c
AM
7233{"dmul", XRC(59,34,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7234{"dmul.", XRC(59,34,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
702f0fb4 7235
14b57c7c
AM
7236{"drrnd", ZRC(59,35,0), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
7237{"drrnd.", ZRC(59,35,1), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
702f0fb4 7238
14b57c7c
AM
7239{"dscli", ZRC(59,66,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
7240{"dscli.", ZRC(59,66,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
702f0fb4 7241
14b57c7c
AM
7242{"dquai", ZRC(59,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
7243{"dquai.", ZRC(59,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
702f0fb4 7244
14b57c7c
AM
7245{"dscri", ZRC(59,98,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
7246{"dscri.", ZRC(59,98,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
702f0fb4 7247
14b57c7c
AM
7248{"drintx", ZRC(59,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7249{"drintx.", ZRC(59,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
702f0fb4 7250
14b57c7c 7251{"dcmpo", X(59,130), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
702f0fb4 7252
14b57c7c
AM
7253{"dtstex", X(59,162), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7254{"dtstdc", Z(59,194), Z_MASK, POWER6, PPCVLE, {BF, FRA, DCM}},
7255{"dtstdg", Z(59,226), Z_MASK, POWER6, PPCVLE, {BF, FRA, DGM}},
7256
7257{"drintn", ZRC(59,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7258{"drintn.", ZRC(59,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7259
7260{"dctdp", XRC(59,258,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7261{"dctdp.", XRC(59,258,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7262
7263{"dctfix", XRC(59,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7264{"dctfix.", XRC(59,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7265
7266{"ddedpd", XRC(59,322,0), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
7267{"ddedpd.", XRC(59,322,1), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
7268
7269{"dxex", XRC(59,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7270{"dxex.", XRC(59,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7271
7272{"dsub", XRC(59,514,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7273{"dsub.", XRC(59,514,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7274
7275{"ddiv", XRC(59,546,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7276{"ddiv.", XRC(59,546,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7277
7278{"dcmpu", X(59,642), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7279
7280{"dtstsf", X(59,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7281{"dtstsfi", X(59,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRB}},
7282
7283{"drsp", XRC(59,770,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7284{"drsp.", XRC(59,770,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7285
7286{"dcffix", XRC(59,802,0), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7287{"dcffix.", XRC(59,802,1), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7288
7289{"denbcd", XRC(59,834,0), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
7290{"denbcd.", XRC(59,834,1), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
7291
7292{"fcfids", XRC(59,846,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7293{"fcfids.", XRC(59,846,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7294
7295{"diex", XRC(59,866,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7296{"diex.", XRC(59,866,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7297
7298{"fcfidus", XRC(59,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7299{"fcfidus.", XRC(59,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7300
7301{"xsaddsp", XX3(60,0), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7302{"xsmaddasp", XX3(60,1), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7303{"xxsldwi", XX3(60,2), XX3SHW_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, SHW}},
7304{"xscmpeqdp", XX3(60,3), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7305{"xsrsqrtesp", XX2(60,10), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7306{"xssqrtsp", XX2(60,11), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7307{"xxsel", XX4(60,3), XX4_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, XC6}},
7308{"xssubsp", XX3(60,8), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7309{"xsmaddmsp", XX3(60,9), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
98553ad3 7310{"xxspltd", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XAB6, DMEX}},
14b57c7c 7311{"xxmrghd", XX3(60,10), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
98553ad3 7312{"xxswapd", XX3(60,10)|(2<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
14b57c7c
AM
7313{"xxmrgld", XX3(60,10)|(3<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7314{"xxpermdi", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, DM}},
7315{"xscmpgtdp", XX3(60,11), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7316{"xsresp", XX2(60,26), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7317{"xsmulsp", XX3(60,16), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7318{"xsmsubasp", XX3(60,17), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7319{"xxmrghw", XX3(60,18), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7320{"xscmpgedp", XX3(60,19), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7321{"xsdivsp", XX3(60,24), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7322{"xsmsubmsp", XX3(60,25), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7323{"xxperm", XX3(60,26), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7324{"xsadddp", XX3(60,32), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7325{"xsmaddadp", XX3(60,33), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7326{"xscmpudp", XX3(60,35), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7327{"xscvdpuxws", XX2(60,72), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7328{"xsrdpi", XX2(60,73), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7329{"xsrsqrtedp", XX2(60,74), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7330{"xssqrtdp", XX2(60,75), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7331{"xssubdp", XX3(60,40), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7332{"xsmaddmdp", XX3(60,41), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7333{"xscmpodp", XX3(60,43), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7334{"xscvdpsxws", XX2(60,88), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7335{"xsrdpiz", XX2(60,89), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7336{"xsredp", XX2(60,90), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7337{"xsmuldp", XX3(60,48), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7338{"xsmsubadp", XX3(60,49), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7339{"xxmrglw", XX3(60,50), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7340{"xsrdpip", XX2(60,105), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7341{"xstsqrtdp", XX2(60,106), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
7342{"xsrdpic", XX2(60,107), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7343{"xsdivdp", XX3(60,56), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7344{"xsmsubmdp", XX3(60,57), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7345{"xxpermr", XX3(60,58), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7346{"xscmpexpdp", XX3(60,59), XX3BF_MASK, PPCVSX3, PPCVLE, {BF, XA6, XB6}},
7347{"xsrdpim", XX2(60,121), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7348{"xstdivdp", XX3(60,61), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7349{"xvaddsp", XX3(60,64), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7350{"xvmaddasp", XX3(60,65), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7351{"xvcmpeqsp", XX3RC(60,67,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7352{"xvcmpeqsp.", XX3RC(60,67,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7353{"xvcvspuxws", XX2(60,136), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7354{"xvrspi", XX2(60,137), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7355{"xvrsqrtesp", XX2(60,138), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7356{"xvsqrtsp", XX2(60,139), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7357{"xvsubsp", XX3(60,72), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7358{"xvmaddmsp", XX3(60,73), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7359{"xvcmpgtsp", XX3RC(60,75,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7360{"xvcmpgtsp.", XX3RC(60,75,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7361{"xvcvspsxws", XX2(60,152), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7362{"xvrspiz", XX2(60,153), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7363{"xvresp", XX2(60,154), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7364{"xvmulsp", XX3(60,80), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7365{"xvmsubasp", XX3(60,81), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7366{"xxspltw", XX2(60,164), XX2UIM_MASK, PPCVSX, PPCVLE, {XT6, XB6, UIM}},
7367{"xxextractuw", XX2(60,165), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
7368{"xvcmpgesp", XX3RC(60,83,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7369{"xvcmpgesp.", XX3RC(60,83,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7370{"xvcvuxwsp", XX2(60,168), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7371{"xvrspip", XX2(60,169), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7372{"xvtsqrtsp", XX2(60,170), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
7373{"xvrspic", XX2(60,171), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7374{"xvdivsp", XX3(60,88), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7375{"xvmsubmsp", XX3(60,89), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7376{"xxspltib", X(60,360), XX1_MASK|3<<19, PPCVSX3, PPCVLE, {XT6, IMM8}},
7377{"xxinsertw", XX2(60,181), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
7378{"xvcvsxwsp", XX2(60,184), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7379{"xvrspim", XX2(60,185), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7380{"xvtdivsp", XX3(60,93), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7381{"xvadddp", XX3(60,96), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7382{"xvmaddadp", XX3(60,97), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7383{"xvcmpeqdp", XX3RC(60,99,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7384{"xvcmpeqdp.", XX3RC(60,99,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7385{"xvcvdpuxws", XX2(60,200), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7386{"xvrdpi", XX2(60,201), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7387{"xvrsqrtedp", XX2(60,202), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7388{"xvsqrtdp", XX2(60,203), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7389{"xvsubdp", XX3(60,104), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7390{"xvmaddmdp", XX3(60,105), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7391{"xvcmpgtdp", XX3RC(60,107,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7392{"xvcmpgtdp.", XX3RC(60,107,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7393{"xvcvdpsxws", XX2(60,216), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7394{"xvrdpiz", XX2(60,217), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7395{"xvredp", XX2(60,218), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7396{"xvmuldp", XX3(60,112), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7397{"xvmsubadp", XX3(60,113), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7398{"xvcmpgedp", XX3RC(60,115,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7399{"xvcmpgedp.", XX3RC(60,115,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7400{"xvcvuxwdp", XX2(60,232), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7401{"xvrdpip", XX2(60,233), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7402{"xvtsqrtdp", XX2(60,234), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
7403{"xvrdpic", XX2(60,235), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7404{"xvdivdp", XX3(60,120), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7405{"xvmsubmdp", XX3(60,121), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7406{"xvcvsxwdp", XX2(60,248), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7407{"xvrdpim", XX2(60,249), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7408{"xvtdivdp", XX3(60,125), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7409{"xsmaxcdp", XX3(60,128), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7410{"xsnmaddasp", XX3(60,129), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7411{"xxland", XX3(60,130), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7412{"xscvdpsp", XX2(60,265), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7413{"xscvdpspn", XX2(60,267), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7414{"xsmincdp", XX3(60,136), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7415{"xsnmaddmsp", XX3(60,137), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7416{"xxlandc", XX3(60,138), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7417{"xsrsp", XX2(60,281), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7418{"xsmaxjdp", XX3(60,144), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7419{"xsnmsubasp", XX3(60,145), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7420{"xxlor", XX3(60,146), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7421{"xscvuxdsp", XX2(60,296), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7422{"xststdcsp", XX2(60,298), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
7423{"xsminjdp", XX3(60,152), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7424{"xsnmsubmsp", XX3(60,153), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7425{"xxlxor", XX3(60,154), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7426{"xscvsxdsp", XX2(60,312), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7427{"xsmaxdp", XX3(60,160), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7428{"xsnmaddadp", XX3(60,161), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7429{"xxlnor", XX3(60,162), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7430{"xscvdpuxds", XX2(60,328), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7431{"xscvspdp", XX2(60,329), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7432{"xscvspdpn", XX2(60,331), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7433{"xsmindp", XX3(60,168), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7434{"xsnmaddmdp", XX3(60,169), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7435{"xxlorc", XX3(60,170), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7436{"xscvdpsxds", XX2(60,344), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7437{"xsabsdp", XX2(60,345), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7438{"xsxexpdp", XX2VA(60,347,0),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
7439{"xsxsigdp", XX2VA(60,347,1),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
7440{"xscvhpdp", XX2VA(60,347,16),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7441{"xscvdphp", XX2VA(60,347,17),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7442{"xscpsgndp", XX3(60,176), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7443{"xsnmsubadp", XX3(60,177), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7444{"xxlnand", XX3(60,178), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7445{"xscvuxddp", XX2(60,360), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7446{"xsnabsdp", XX2(60,361), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7447{"xststdcdp", XX2(60,362), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
7448{"xsnmsubmdp", XX3(60,185), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7449{"xxleqv", XX3(60,186), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7450{"xscvsxddp", XX2(60,376), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7451{"xsnegdp", XX2(60,377), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7452{"xvmaxsp", XX3(60,192), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7453{"xvnmaddasp", XX3(60,193), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7454{"xvcvspuxds", XX2(60,392), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7455{"xvcvdpsp", XX2(60,393), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7456{"xvminsp", XX3(60,200), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7457{"xvnmaddmsp", XX3(60,201), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7458{"xvcvspsxds", XX2(60,408), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7459{"xvabssp", XX2(60,409), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
98553ad3 7460{"xvmovsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
14b57c7c
AM
7461{"xvcpsgnsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7462{"xvnmsubasp", XX3(60,209), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7463{"xvcvuxdsp", XX2(60,424), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7464{"xvnabssp", XX2(60,425), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7465{"xvtstdcsp", XX2(60,426), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
7466{"xviexpsp", XX3(60,216), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7467{"xvnmsubmsp", XX3(60,217), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7468{"xvcvsxdsp", XX2(60,440), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7469{"xvnegsp", XX2(60,441), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7470{"xvmaxdp", XX3(60,224), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7471{"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7472{"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7473{"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7474{"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}},
7475{"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7476{"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7477{"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7478{"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7479{"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7480{"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7481{"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7482{"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7483{"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7484{"xxbrw", XX2VA(60,475,15),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7485{"xxbrd", XX2VA(60,475,23),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7486{"xvcvhpsp", XX2VA(60,475,24),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7487{"xvcvsphp", XX2VA(60,475,25),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7488{"xxbrq", XX2VA(60,475,31),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
98553ad3 7489{"xvmovdp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
14b57c7c
AM
7490{"xvcpsgndp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7491{"xvnmsubadp", XX3(60,241), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7492{"xvcvuxddp", XX2(60,488), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7493{"xvnabsdp", XX2(60,489), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7494{"xvtstdcdp", XX2(60,490), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
7495{"xviexpdp", XX3(60,248), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7496{"xvnmsubmdp", XX3(60,249), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7497{"xvcvsxddp", XX2(60,504), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7498{"xvnegdp", XX2(60,505), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7499
7500{"psq_st", OP(60), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
7501{"stfq", OP(60), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
7502
7503{"lxv", DQX(61,1), DQX_MASK, PPCVSX3, PPCVLE, {XTQ6, DQ, RA0}},
7504{"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}},
7505{"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
7506{"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
73f07bff 7507{"stfdp", OP(61), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
14b57c7c
AM
7508{"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
7509{"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
7510
7511{"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}},
7512{"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}},
73f07bff 7513{"stq", DSO(62,2), DS_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
14b57c7c
AM
7514
7515{"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
7516
73f07bff
AM
7517{"daddq", XRC(63,2,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7518{"daddq.", XRC(63,2,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
14b57c7c 7519
73f07bff
AM
7520{"dquaq", ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
7521{"dquaq.", ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
14b57c7c
AM
7522
7523{"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7524{"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7525
7526{"xsrqpi", ZRC(63,5,0), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
7527{"xsrqpix", ZRC(63,5,1), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
7528
7529{"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
7530{"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
7531
7532{"frsp", XRC(63,12,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7533{"frsp.", XRC(63,12,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7534
7535{"fctiw", XRC(63,14,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7536{"fcir", XRC(63,14,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7537{"fctiw.", XRC(63,14,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7538{"fcir.", XRC(63,14,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7539
7540{"fctiwz", XRC(63,15,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7541{"fcirz", XRC(63,15,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7542{"fctiwz.", XRC(63,15,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7543{"fcirz.", XRC(63,15,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7544
7545{"fdiv", A(63,18,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7546{"fd", A(63,18,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7547{"fdiv.", A(63,18,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7548{"fd.", A(63,18,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7549
7550{"fsub", A(63,20,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7551{"fs", A(63,20,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7552{"fsub.", A(63,20,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7553{"fs.", A(63,20,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7554
7555{"fadd", A(63,21,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7556{"fa", A(63,21,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7557{"fadd.", A(63,21,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7558{"fa.", A(63,21,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7559
7560{"fsqrt", A(63,22,0), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
7561{"fsqrt.", A(63,22,1), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
7562
7563{"fsel", A(63,23,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7564{"fsel.", A(63,23,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7565
7566{"fre", A(63,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7567{"fre", A(63,24,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
7568{"fre.", A(63,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7569{"fre.", A(63,24,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
1ed8e1e4 7570
14b57c7c
AM
7571{"fmul", A(63,25,0), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7572{"fm", A(63,25,0), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
7573{"fmul.", A(63,25,1), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7574{"fm.", A(63,25,1), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
252b5132 7575
14b57c7c
AM
7576{"frsqrte", A(63,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7577{"frsqrte", A(63,26,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
7578{"frsqrte.", A(63,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7579{"frsqrte.", A(63,26,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
252b5132 7580
14b57c7c
AM
7581{"fmsub", A(63,28,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7582{"fms", A(63,28,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7583{"fmsub.", A(63,28,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7584{"fms.", A(63,28,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7585
14b57c7c
AM
7586{"fmadd", A(63,29,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7587{"fma", A(63,29,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7588{"fmadd.", A(63,29,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7589{"fma.", A(63,29,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7590
14b57c7c
AM
7591{"fnmsub", A(63,30,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7592{"fnms", A(63,30,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7593{"fnmsub.", A(63,30,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7594{"fnms.", A(63,30,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7595
14b57c7c
AM
7596{"fnmadd", A(63,31,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7597{"fnma", A(63,31,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7598{"fnmadd.", A(63,31,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7599{"fnma.", A(63,31,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 7600
14b57c7c 7601{"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
252b5132 7602
73f07bff
AM
7603{"dmulq", XRC(63,34,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7604{"dmulq.", XRC(63,34,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 7605
73f07bff
AM
7606{"drrndq", ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
7607{"drrndq.", ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
702f0fb4 7608
14b57c7c
AM
7609{"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7610{"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7611
14b57c7c 7612{"xsrqpxp", Z(63,37), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
a680de9a 7613
96a86c01
AM
7614{"mtfsb1", XRC(63,38,0), XRARB_MASK, COM, PPCVLE, {BTF}},
7615{"mtfsb1.", XRC(63,38,1), XRARB_MASK, COM, PPCVLE, {BTF}},
252b5132 7616
14b57c7c
AM
7617{"fneg", XRC(63,40,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7618{"fneg.", XRC(63,40,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 7619
14b57c7c 7620{"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
252b5132 7621
73f07bff
AM
7622{"dscliq", ZRC(63,66,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
7623{"dscliq.", ZRC(63,66,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
702f0fb4 7624
73f07bff
AM
7625{"dquaiq", ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
7626{"dquaiq.", ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
702f0fb4 7627
96a86c01
AM
7628{"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BTF}},
7629{"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BTF}},
252b5132 7630
14b57c7c
AM
7631{"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7632{"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 7633
73f07bff
AM
7634{"dscriq", ZRC(63,98,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
7635{"dscriq.", ZRC(63,98,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
702f0fb4 7636
73f07bff
AM
7637{"drintxq", ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
7638{"drintxq.", ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
702f0fb4 7639
14b57c7c 7640{"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7641
14b57c7c 7642{"ftdiv", X(63,128), XBF_MASK, POWER7, PPCVLE, {BF, FRA, FRB}},
066be9f7 7643
14b57c7c 7644{"dcmpoq", X(63,130), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
702f0fb4 7645
14b57c7c 7646{"xscmpoqp", X(63,132), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 7647
14b57c7c
AM
7648{"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
7649{"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
7650{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
7651{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
252b5132 7652
14b57c7c
AM
7653{"fnabs", XRC(63,136,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7654{"fnabs.", XRC(63,136,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 7655
14b57c7c
AM
7656{"fctiwu", XRC(63,142,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7657{"fctiwu.", XRC(63,142,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7658{"fctiwuz", XRC(63,143,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7659{"fctiwuz.", XRC(63,143,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
066be9f7 7660
14b57c7c 7661{"ftsqrt", X(63,160), XBF_MASK|FRA_MASK, POWER7, PPCVLE, {BF, FRB}},
066be9f7 7662
14b57c7c 7663{"dtstexq", X(63,162), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
a680de9a 7664
14b57c7c 7665{"xscmpexpqp", X(63,164), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 7666
14b57c7c
AM
7667{"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}},
7668{"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}},
702f0fb4 7669
73f07bff
AM
7670{"drintnq", ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
7671{"drintnq.", ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
702f0fb4 7672
73f07bff
AM
7673{"dctqpq", XRC(63,258,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
7674{"dctqpq.", XRC(63,258,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
702f0fb4 7675
14b57c7c
AM
7676{"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7677{"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 7678
14b57c7c
AM
7679{"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
7680{"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
702f0fb4 7681
73f07bff
AM
7682{"ddedpdq", XRC(63,322,0), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
7683{"ddedpdq.", XRC(63,322,1), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
702f0fb4 7684
14b57c7c
AM
7685{"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
7686{"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
702f0fb4 7687
14b57c7c
AM
7688{"xsmaddqp", XRC(63,388,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7689{"xsmaddqpo", XRC(63,388,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7690
14b57c7c
AM
7691{"frin", XRC(63,392,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
7692{"frin.", XRC(63,392,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 7693
14b57c7c
AM
7694{"xsmsubqp", XRC(63,420,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7695{"xsmsubqpo", XRC(63,420,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7696
14b57c7c
AM
7697{"friz", XRC(63,424,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
7698{"friz.", XRC(63,424,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 7699
14b57c7c
AM
7700{"xsnmaddqp", XRC(63,452,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7701{"xsnmaddqpo", XRC(63,452,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7702
14b57c7c
AM
7703{"frip", XRC(63,456,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
7704{"frip.", XRC(63,456,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 7705
14b57c7c
AM
7706{"xsnmsubqp", XRC(63,484,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7707{"xsnmsubqpo", XRC(63,484,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7708
14b57c7c
AM
7709{"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
7710{"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
ce7a772b 7711
73f07bff
AM
7712{"dsubq", XRC(63,514,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7713{"dsubq.", XRC(63,514,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 7714
14b57c7c
AM
7715{"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7716{"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7717
73f07bff
AM
7718{"ddivq", XRC(63,546,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7719{"ddivq.", XRC(63,546,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 7720
14b57c7c
AM
7721{"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7722{"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7723
14b57c7c
AM
7724{"mffs", XRC(63,583,0), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
7725{"mffs.", XRC(63,583,1), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
252b5132 7726
6fd3a02d
PB
7727{"mffsce", XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
7728{"mffscdrn", XMMF(63,583,2,4), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
7729{"mffscdrni", XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE, {FRT, DRM}},
7730{"mffscrn", XMMF(63,583,2,6), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
7731{"mffscrni", XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE, {FRT, RM}},
7732{"mffsl", XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
7733
14b57c7c 7734{"dcmpuq", X(63,642), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
702f0fb4 7735
14b57c7c 7736{"xscmpuqp", X(63,644), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 7737
14b57c7c
AM
7738{"dtstsfq", X(63,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRBp}},
7739{"dtstsfiq", X(63,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRBp}},
a680de9a 7740
14b57c7c 7741{"xststdcqp", X(63,708), X_MASK, PPCVSX3, PPCVLE, {BF, VB, DCMX}},
702f0fb4 7742
14b57c7c
AM
7743{"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
7744{"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
7745{"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
7746{"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
252b5132 7747
73f07bff
AM
7748{"drdpq", XRC(63,770,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
7749{"drdpq.", XRC(63,770,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
702f0fb4 7750
73f07bff
AM
7751{"dcffixq", XRC(63,802,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
7752{"dcffixq.", XRC(63,802,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
702f0fb4 7753
14b57c7c
AM
7754{"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7755{"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7756{"xsnabsqp", XVA(63,804,8), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7757{"xsnegqp", XVA(63,804,16), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7758{"xsxsigqp", XVA(63,804,18), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7759{"xssqrtqp", XVARC(63,804,27,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7760{"xssqrtqpo", XVARC(63,804,27,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
a680de9a 7761
14b57c7c
AM
7762{"fctid", XRC(63,814,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7763{"fctid", XRC(63,814,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
7764{"fctid.", XRC(63,814,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7765{"fctid.", XRC(63,814,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 7766
14b57c7c
AM
7767{"fctidz", XRC(63,815,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7768{"fctidz", XRC(63,815,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
7769{"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7770{"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 7771
73f07bff
AM
7772{"denbcdq", XRC(63,834,0), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
7773{"denbcdq.", XRC(63,834,1), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
702f0fb4 7774
14b57c7c
AM
7775{"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7776{"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7777{"xscvqpswz", XVA(63,836,9), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7778{"xscvsdqp", XVA(63,836,10), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7779{"xscvqpudz", XVA(63,836,17), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7780{"xscvqpdp", XVARC(63,836,20,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7781{"xscvqpdpo", XVARC(63,836,20,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7782{"xscvdpqp", XVA(63,836,22), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
7783{"xscvqpsdz", XVA(63,836,25), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
a680de9a 7784
14b57c7c 7785{"fmrgow", X(63,838), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
c0637f3a 7786
14b57c7c
AM
7787{"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7788{"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
7789{"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
7790{"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 7791
73f07bff
AM
7792{"diexq", XRC(63,866,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
7793{"diexq.", XRC(63,866,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
702f0fb4 7794
14b57c7c 7795{"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 7796
14b57c7c
AM
7797{"fctidu", XRC(63,942,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7798{"fctidu.", XRC(63,942,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
066be9f7 7799
14b57c7c
AM
7800{"fctiduz", XRC(63,943,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7801{"fctiduz.", XRC(63,943,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
066be9f7 7802
14b57c7c 7803{"fmrgew", X(63,966), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
c0637f3a 7804
14b57c7c
AM
7805{"fcfidu", XRC(63,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7806{"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
252b5132
RH
7807};
7808
2ceb7719 7809const unsigned int powerpc_num_opcodes =
252b5132
RH
7810 sizeof (powerpc_opcodes) / sizeof (powerpc_opcodes[0]);
7811\f
dd7efa79
PB
7812/* The opcode table for 8-byte prefix instructions.
7813
7814 The format of this opcode table is the same as the main opcode table. */
7815
7816const struct powerpc_opcode prefix_opcodes[] = {
7817{"pnop", PMRR, PREFIX_MASK, POWERXX, 0, {0}},
7818};
7819
7820const unsigned int prefix_num_opcodes =
7821 sizeof (prefix_opcodes) / sizeof (prefix_opcodes[0]);
7822\f
b9c361e0
JL
7823/* The VLE opcode table.
7824
7825 The format of this opcode table is the same as the main opcode table. */
7826
7827const struct powerpc_opcode vle_opcodes[] = {
14b57c7c
AM
7828{"se_illegal", C(0), C_MASK, PPCVLE, 0, {}},
7829{"se_isync", C(1), C_MASK, PPCVLE, 0, {}},
7830{"se_sc", C(2), C_MASK, PPCVLE, 0, {}},
7831{"se_blr", C_LK(2,0), C_LK_MASK, PPCVLE, 0, {}},
7832{"se_blrl", C_LK(2,1), C_LK_MASK, PPCVLE, 0, {}},
7833{"se_bctr", C_LK(3,0), C_LK_MASK, PPCVLE, 0, {}},
7834{"se_bctrl", C_LK(3,1), C_LK_MASK, PPCVLE, 0, {}},
7835{"se_rfi", C(8), C_MASK, PPCVLE, 0, {}},
7836{"se_rfci", C(9), C_MASK, PPCVLE, 0, {}},
7837{"se_rfdi", C(10), C_MASK, PPCVLE, 0, {}},
7838{"se_rfmci", C(11), C_MASK, PPCRFMCI|PPCVLE, 0, {}},
a8cc8a54 7839{"se_rfgi", C(12), C_MASK, PPCVLE, 0, {}},
14b57c7c
AM
7840{"se_not", SE_R(0,2), SE_R_MASK, PPCVLE, 0, {RX}},
7841{"se_neg", SE_R(0,3), SE_R_MASK, PPCVLE, 0, {RX}},
7842{"se_mflr", SE_R(0,8), SE_R_MASK, PPCVLE, 0, {RX}},
7843{"se_mtlr", SE_R(0,9), SE_R_MASK, PPCVLE, 0, {RX}},
7844{"se_mfctr", SE_R(0,10), SE_R_MASK, PPCVLE, 0, {RX}},
7845{"se_mtctr", SE_R(0,11), SE_R_MASK, PPCVLE, 0, {RX}},
7846{"se_extzb", SE_R(0,12), SE_R_MASK, PPCVLE, 0, {RX}},
7847{"se_extsb", SE_R(0,13), SE_R_MASK, PPCVLE, 0, {RX}},
7848{"se_extzh", SE_R(0,14), SE_R_MASK, PPCVLE, 0, {RX}},
7849{"se_extsh", SE_R(0,15), SE_R_MASK, PPCVLE, 0, {RX}},
7850{"se_mr", SE_RR(0,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
7851{"se_mtar", SE_RR(0,2), SE_RR_MASK, PPCVLE, 0, {ARX, RY}},
7852{"se_mfar", SE_RR(0,3), SE_RR_MASK, PPCVLE, 0, {RX, ARY}},
7853{"se_add", SE_RR(1,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
7854{"se_mullw", SE_RR(1,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
7855{"se_sub", SE_RR(1,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
7856{"se_subf", SE_RR(1,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
7857{"se_cmp", SE_RR(3,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
7858{"se_cmpl", SE_RR(3,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
7859{"se_cmph", SE_RR(3,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
7860{"se_cmphl", SE_RR(3,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
7861
e3c2f928
AF
7862/* by major opcode */
7863{"zvaddih", VX(4, 0x200), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
7864{"zvsubifh", VX(4, 0x201), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
7865{"zvaddh", VX(4, 0x204), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7866{"zvsubfh", VX(4, 0x205), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7867{"zvaddsubfh", VX(4, 0x206), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7868{"zvsubfaddh", VX(4, 0x207), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7869{"zvaddhx", VX(4, 0x20C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7870{"zvsubfhx", VX(4, 0x20D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7871{"zvaddsubfhx", VX(4, 0x20E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7872{"zvsubfaddhx", VX(4, 0x20F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7873{"zaddwus", VX(4, 0x210), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7874{"zsubfwus", VX(4, 0x211), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7875{"zaddwss", VX(4, 0x212), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7876{"zsubfwss", VX(4, 0x213), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7877{"zvaddhus", VX(4, 0x214), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7878{"zvsubfhus", VX(4, 0x215), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7879{"zvaddhss", VX(4, 0x216), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7880{"zvsubfhss", VX(4, 0x217), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7881{"zvaddsubfhss", VX(4, 0x21A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7882{"zvsubfaddhss", VX(4, 0x21B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7883{"zvaddhxss", VX(4, 0x21C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7884{"zvsubfhxss", VX(4, 0x21D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7885{"zvaddsubfhxss", VX(4, 0x21E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7886{"zvsubfaddhxss", VX(4, 0x21F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7887{"zaddheuw", VX(4, 0x220), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7888{"zsubfheuw", VX(4, 0x221), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7889{"zaddhesw", VX(4, 0x222), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7890{"zsubfhesw", VX(4, 0x223), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7891{"zaddhouw", VX(4, 0x224), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7892{"zsubfhouw", VX(4, 0x225), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7893{"zaddhosw", VX(4, 0x226), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7894{"zsubfhosw", VX(4, 0x227), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7895{"zvmergehih", VX(4, 0x22C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7896{"zvmergeloh", VX(4, 0x22D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7897{"zvmergehiloh", VX(4, 0x22E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7898{"zvmergelohih", VX(4, 0x22F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7899{"zvcmpgthu", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
7900{"zvcmpgths", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
7901{"zvcmplthu", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
7902{"zvcmplths", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
7903{"zvcmpeqh", VX(4, 0x232), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
7904{"zpkswgshfrs", VX(4, 0x238), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7905{"zpkswgswfrs", VX(4, 0x239), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7906{"zvpkshgwshfrs", VX(4, 0x23A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7907{"zvpkswshfrs", VX(4, 0x23B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7908{"zvpkswuhs", VX(4, 0x23C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7909{"zvpkswshs", VX(4, 0x23D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7910{"zvpkuwuhs", VX(4, 0x23E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7911{"zvsplatih", VX_LSP(4, 0x23F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
7912{"zvsplatfih", VX_LSP(4, 0xA3F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
7913{"zcntlsw", VX_LSP(4, 0x2A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7914{"zvcntlzh", VX_LSP(4, 0x323F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7915{"zvcntlsh", VX_LSP(4, 0x3A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7916{"znegws", VX_LSP(4, 0x4A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7917{"zvnegh", VX_LSP(4, 0x523F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7918{"zvneghs", VX_LSP(4, 0x5A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7919{"zvnegho", VX_LSP(4, 0x623F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7920{"zvneghos", VX_LSP(4, 0x6A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7921{"zrndwh", VX_LSP(4, 0x823F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7922{"zrndwhss", VX_LSP(4, 0x8A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7923{"zvabsh", VX_LSP(4, 0xA23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7924{"zvabshs", VX_LSP(4, 0xAA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7925{"zabsw", VX_LSP(4, 0xB23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7926{"zabsws", VX_LSP(4, 0xBA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7927{"zsatswuw", VX_LSP(4, 0xC23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7928{"zsatuwsw", VX_LSP(4, 0xCA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7929{"zsatswuh", VX_LSP(4, 0xD23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7930{"zsatswsh", VX_LSP(4, 0xDA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7931{"zvsatshuh", VX_LSP(4, 0xE23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7932{"zvsatuhsh", VX_LSP(4, 0xEA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7933{"zsatuwuh", VX_LSP(4, 0xF23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7934{"zsatuwsh", VX_LSP(4, 0xFA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
7935{"zsatsduw", VX(4, 0x260), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7936{"zsatsdsw", VX(4, 0x261), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7937{"zsatuduw", VX(4, 0x262), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7938{"zvselh", VX(4, 0x264), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7939{"zxtrw", VX(4, 0x264), VX_LSP_OFF_MASK, PPCLSP, 0, {RD, RA, RB, VX_OFF}},
7940{"zbrminc", VX(4, 0x268), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7941{"zcircinc", VX(4, 0x269), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7942{"zdivwsf", VX(4, 0x26B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7943{"zvsrhu", VX(4, 0x270), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7944{"zvsrhs", VX(4, 0x271), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7945{"zvsrhiu", VX(4, 0x272), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
7946{"zvsrhis", VX(4, 0x273), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
7947{"zvslh", VX(4, 0x274), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7948{"zvrlh", VX(4, 0x275), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7949{"zvslhi", VX(4, 0x276), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
7950{"zvrlhi", VX(4, 0x277), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
7951{"zvslhus", VX(4, 0x278), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7952{"zvslhss", VX(4, 0x279), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7953{"zvslhius", VX(4, 0x27A), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
7954{"zvslhiss", VX(4, 0x27B), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
7955{"zslwus", VX(4, 0x27C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7956{"zslwss", VX(4, 0x27D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7957{"zslwius", VX(4, 0x27E), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
7958{"zslwiss", VX(4, 0x27F), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
7959{"zaddwgui", VX(4, 0x460), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7960{"zsubfwgui", VX(4, 0x461), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7961{"zaddd", VX(4, 0x462), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7962{"zsubfd", VX(4, 0x463), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7963{"zvaddsubfw", VX(4, 0x464), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7964{"zvsubfaddw", VX(4, 0x465), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7965{"zvaddw", VX(4, 0x466), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7966{"zvsubfw", VX(4, 0x467), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7967{"zaddwgsi", VX(4, 0x468), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7968{"zsubfwgsi", VX(4, 0x469), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7969{"zadddss", VX(4, 0x46A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7970{"zsubfdss", VX(4, 0x46B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7971{"zvaddsubfwss", VX(4, 0x46C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7972{"zvsubfaddwss", VX(4, 0x46D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7973{"zvaddwss", VX(4, 0x46E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7974{"zvsubfwss", VX(4, 0x46F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7975{"zaddwgsf", VX(4, 0x470), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7976{"zsubfwgsf", VX(4, 0x471), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7977{"zadddus", VX(4, 0x472), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7978{"zsubfdus", VX(4, 0x473), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7979{"zvaddwus", VX(4, 0x476), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7980{"zvsubfwus", VX(4, 0x477), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7981{"zvunpkhgwsf", VX_LSP(4, 0x478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
7982{"zvunpkhsf", VX_LSP(4, 0xC78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
7983{"zvunpkhui", VX_LSP(4, 0x1478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
7984{"zvunpkhsi", VX_LSP(4, 0x1C78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
7985{"zunpkwgsf", VX_LSP(4, 0x2478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
7986{"zvdotphgwasmf", VX(4, 0x488), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7987{"zvdotphgwasmfr", VX(4, 0x489), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7988{"zvdotphgwasmfaa", VX(4, 0x48A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7989{"zvdotphgwasmfraa", VX(4, 0x48B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7990{"zvdotphgwasmfan", VX(4, 0x48C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7991{"zvdotphgwasmfran", VX(4, 0x48D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
7992{"zvmhulgwsmf", VX(4, 0x490), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7993{"zvmhulgwsmfr", VX(4, 0x491), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7994{"zvmhulgwsmfaa", VX(4, 0x492), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7995{"zvmhulgwsmfraa", VX(4, 0x493), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7996{"zvmhulgwsmfan", VX(4, 0x494), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7997{"zvmhulgwsmfran", VX(4, 0x495), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7998{"zvmhulgwsmfanp", VX(4, 0x496), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
7999{"zvmhulgwsmfranp", VX(4, 0x497), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8000{"zmhegwsmf", VX(4, 0x498), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8001{"zmhegwsmfr", VX(4, 0x499), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8002{"zmhegwsmfaa", VX(4, 0x49A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8003{"zmhegwsmfraa", VX(4, 0x49B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8004{"zmhegwsmfan", VX(4, 0x49C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8005{"zmhegwsmfran", VX(4, 0x49D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8006{"zvdotphxgwasmf", VX(4, 0x4A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8007{"zvdotphxgwasmfr", VX(4, 0x4A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8008{"zvdotphxgwasmfaa", VX(4, 0x4AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8009{"zvdotphxgwasmfraa", VX(4, 0x4AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8010{"zvdotphxgwasmfan", VX(4, 0x4AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8011{"zvdotphxgwasmfran", VX(4, 0x4AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8012{"zvmhllgwsmf", VX(4, 0x4B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8013{"zvmhllgwsmfr", VX(4, 0x4B1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8014{"zvmhllgwsmfaa", VX(4, 0x4B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8015{"zvmhllgwsmfraa", VX(4, 0x4B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8016{"zvmhllgwsmfan", VX(4, 0x4B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8017{"zvmhllgwsmfran", VX(4, 0x4B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8018{"zvmhllgwsmfanp", VX(4, 0x4B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8019{"zvmhllgwsmfranp", VX(4, 0x4B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8020{"zmheogwsmf", VX(4, 0x4B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8021{"zmheogwsmfr", VX(4, 0x4B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8022{"zmheogwsmfaa", VX(4, 0x4BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8023{"zmheogwsmfraa", VX(4, 0x4BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8024{"zmheogwsmfan", VX(4, 0x4BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8025{"zmheogwsmfran", VX(4, 0x4BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8026{"zvdotphgwssmf", VX(4, 0x4C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8027{"zvdotphgwssmfr", VX(4, 0x4C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8028{"zvdotphgwssmfaa", VX(4, 0x4CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8029{"zvdotphgwssmfraa", VX(4, 0x4CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8030{"zvdotphgwssmfan", VX(4, 0x4CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8031{"zvdotphgwssmfran", VX(4, 0x4CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8032{"zvmhuugwsmf", VX(4, 0x4D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8033{"zvmhuugwsmfr", VX(4, 0x4D1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8034{"zvmhuugwsmfaa", VX(4, 0x4D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8035{"zvmhuugwsmfraa", VX(4, 0x4D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8036{"zvmhuugwsmfan", VX(4, 0x4D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8037{"zvmhuugwsmfran", VX(4, 0x4D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8038{"zvmhuugwsmfanp", VX(4, 0x4D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8039{"zvmhuugwsmfranp", VX(4, 0x4D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8040{"zmhogwsmf", VX(4, 0x4D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8041{"zmhogwsmfr", VX(4, 0x4D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8042{"zmhogwsmfaa", VX(4, 0x4DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8043{"zmhogwsmfraa", VX(4, 0x4DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8044{"zmhogwsmfan", VX(4, 0x4DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8045{"zmhogwsmfran", VX(4, 0x4DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8046{"zvmhxlgwsmf", VX(4, 0x4F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8047{"zvmhxlgwsmfr", VX(4, 0x4F1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8048{"zvmhxlgwsmfaa", VX(4, 0x4F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8049{"zvmhxlgwsmfraa", VX(4, 0x4F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8050{"zvmhxlgwsmfan", VX(4, 0x4F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8051{"zvmhxlgwsmfran", VX(4, 0x4F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8052{"zvmhxlgwsmfanp", VX(4, 0x4F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8053{"zvmhxlgwsmfranp", VX(4, 0x4F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8054{"zmhegui", VX(4, 0x500), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8055{"zvdotphgaui", VX(4, 0x501), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8056{"zmheguiaa", VX(4, 0x502), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8057{"zvdotphgauiaa", VX(4, 0x503), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8058{"zmheguian", VX(4, 0x504), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8059{"zvdotphgauian", VX(4, 0x505), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8060{"zmhegsi", VX(4, 0x508), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8061{"zvdotphgasi", VX(4, 0x509), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8062{"zmhegsiaa", VX(4, 0x50A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8063{"zvdotphgasiaa", VX(4, 0x50B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8064{"zmhegsian", VX(4, 0x50C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8065{"zvdotphgasian", VX(4, 0x50D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8066{"zmhegsui", VX(4, 0x510), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8067{"zvdotphgasui", VX(4, 0x511), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8068{"zmhegsuiaa", VX(4, 0x512), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8069{"zvdotphgasuiaa", VX(4, 0x513), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8070{"zmhegsuian", VX(4, 0x514), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8071{"zvdotphgasuian", VX(4, 0x515), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8072{"zmhegsmf", VX(4, 0x518), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8073{"zvdotphgasmf", VX(4, 0x519), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8074{"zmhegsmfaa", VX(4, 0x51A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8075{"zvdotphgasmfaa", VX(4, 0x51B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8076{"zmhegsmfan", VX(4, 0x51C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8077{"zvdotphgasmfan", VX(4, 0x51D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8078{"zmheogui", VX(4, 0x520), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8079{"zvdotphxgaui", VX(4, 0x521), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8080{"zmheoguiaa", VX(4, 0x522), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8081{"zvdotphxgauiaa", VX(4, 0x523), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8082{"zmheoguian", VX(4, 0x524), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8083{"zvdotphxgauian", VX(4, 0x525), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8084{"zmheogsi", VX(4, 0x528), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8085{"zvdotphxgasi", VX(4, 0x529), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8086{"zmheogsiaa", VX(4, 0x52A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8087{"zvdotphxgasiaa", VX(4, 0x52B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8088{"zmheogsian", VX(4, 0x52C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8089{"zvdotphxgasian", VX(4, 0x52D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8090{"zmheogsui", VX(4, 0x530), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8091{"zvdotphxgasui", VX(4, 0x531), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8092{"zmheogsuiaa", VX(4, 0x532), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8093{"zvdotphxgasuiaa", VX(4, 0x533), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8094{"zmheogsuian", VX(4, 0x534), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8095{"zvdotphxgasuian", VX(4, 0x535), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8096{"zmheogsmf", VX(4, 0x538), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8097{"zvdotphxgasmf", VX(4, 0x539), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8098{"zmheogsmfaa", VX(4, 0x53A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8099{"zvdotphxgasmfaa", VX(4, 0x53B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8100{"zmheogsmfan", VX(4, 0x53C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8101{"zvdotphxgasmfan", VX(4, 0x53D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8102{"zmhogui", VX(4, 0x540), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8103{"zvdotphgsui", VX(4, 0x541), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8104{"zmhoguiaa", VX(4, 0x542), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8105{"zvdotphgsuiaa", VX(4, 0x543), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8106{"zmhoguian", VX(4, 0x544), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8107{"zvdotphgsuian", VX(4, 0x545), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8108{"zmhogsi", VX(4, 0x548), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8109{"zvdotphgssi", VX(4, 0x549), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8110{"zmhogsiaa", VX(4, 0x54A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8111{"zvdotphgssiaa", VX(4, 0x54B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8112{"zmhogsian", VX(4, 0x54C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8113{"zvdotphgssian", VX(4, 0x54D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8114{"zmhogsui", VX(4, 0x550), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8115{"zvdotphgssui", VX(4, 0x551), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8116{"zmhogsuiaa", VX(4, 0x552), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8117{"zvdotphgssuiaa", VX(4, 0x553), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8118{"zmhogsuian", VX(4, 0x554), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8119{"zvdotphgssuian", VX(4, 0x555), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8120{"zmhogsmf", VX(4, 0x558), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8121{"zvdotphgssmf", VX(4, 0x559), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8122{"zmhogsmfaa", VX(4, 0x55A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8123{"zvdotphgssmfaa", VX(4, 0x55B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8124{"zmhogsmfan", VX(4, 0x55C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8125{"zvdotphgssmfan", VX(4, 0x55D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8126{"zmwgui", VX(4, 0x560), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8127{"zmwguiaa", VX(4, 0x562), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8128{"zmwguiaas", VX(4, 0x563), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8129{"zmwguian", VX(4, 0x564), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8130{"zmwguians", VX(4, 0x565), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8131{"zmwgsi", VX(4, 0x568), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8132{"zmwgsiaa", VX(4, 0x56A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8133{"zmwgsiaas", VX(4, 0x56B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8134{"zmwgsian", VX(4, 0x56C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8135{"zmwgsians", VX(4, 0x56D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8136{"zmwgsui", VX(4, 0x570), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8137{"zmwgsuiaa", VX(4, 0x572), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8138{"zmwgsuiaas", VX(4, 0x573), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8139{"zmwgsuian", VX(4, 0x574), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8140{"zmwgsuians", VX(4, 0x575), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8141{"zmwgsmf", VX(4, 0x578), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8142{"zmwgsmfr", VX(4, 0x579), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8143{"zmwgsmfaa", VX(4, 0x57A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8144{"zmwgsmfraa", VX(4, 0x57B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8145{"zmwgsmfan", VX(4, 0x57C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8146{"zmwgsmfran", VX(4, 0x57D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8147{"zvmhului", VX(4, 0x580), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8148{"zvmhuluiaa", VX(4, 0x582), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8149{"zvmhuluiaas", VX(4, 0x583), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8150{"zvmhuluian", VX(4, 0x584), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8151{"zvmhuluians", VX(4, 0x585), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8152{"zvmhuluianp", VX(4, 0x586), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8153{"zvmhuluianps", VX(4, 0x587), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8154{"zvmhulsi", VX(4, 0x588), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8155{"zvmhulsiaa", VX(4, 0x58A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8156{"zvmhulsiaas", VX(4, 0x58B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8157{"zvmhulsian", VX(4, 0x58C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8158{"zvmhulsians", VX(4, 0x58D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8159{"zvmhulsianp", VX(4, 0x58E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8160{"zvmhulsianps", VX(4, 0x58F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8161{"zvmhulsui", VX(4, 0x590), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8162{"zvmhulsuiaa", VX(4, 0x592), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8163{"zvmhulsuiaas", VX(4, 0x593), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8164{"zvmhulsuian", VX(4, 0x594), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8165{"zvmhulsuians", VX(4, 0x595), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8166{"zvmhulsuianp", VX(4, 0x596), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8167{"zvmhulsuianps", VX(4, 0x597), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8168{"zvmhulsf", VX(4, 0x598), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8169{"zvmhulsfr", VX(4, 0x599), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8170{"zvmhulsfaas", VX(4, 0x59A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8171{"zvmhulsfraas", VX(4, 0x59B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8172{"zvmhulsfans", VX(4, 0x59C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8173{"zvmhulsfrans", VX(4, 0x59D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8174{"zvmhulsfanps", VX(4, 0x59E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8175{"zvmhulsfranps", VX(4, 0x59F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8176{"zvmhllui", VX(4, 0x5A0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8177{"zvmhlluiaa", VX(4, 0x5A2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8178{"zvmhlluiaas", VX(4, 0x5A3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8179{"zvmhlluian", VX(4, 0x5A4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8180{"zvmhlluians", VX(4, 0x5A5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8181{"zvmhlluianp", VX(4, 0x5A6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8182{"zvmhlluianps", VX(4, 0x5A7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8183{"zvmhllsi", VX(4, 0x5A8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8184{"zvmhllsiaa", VX(4, 0x5AA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8185{"zvmhllsiaas", VX(4, 0x5AB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8186{"zvmhllsian", VX(4, 0x5AC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8187{"zvmhllsians", VX(4, 0x5AD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8188{"zvmhllsianp", VX(4, 0x5AE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8189{"zvmhllsianps", VX(4, 0x5AF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8190{"zvmhllsui", VX(4, 0x5B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8191{"zvmhllsuiaa", VX(4, 0x5B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8192{"zvmhllsuiaas", VX(4, 0x5B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8193{"zvmhllsuian", VX(4, 0x5B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8194{"zvmhllsuians", VX(4, 0x5B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8195{"zvmhllsuianp", VX(4, 0x5B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8196{"zvmhllsuianps", VX(4, 0x5B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8197{"zvmhllsf", VX(4, 0x5B8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8198{"zvmhllsfr", VX(4, 0x5B9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8199{"zvmhllsfaas", VX(4, 0x5BA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8200{"zvmhllsfraas", VX(4, 0x5BB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8201{"zvmhllsfans", VX(4, 0x5BC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8202{"zvmhllsfrans", VX(4, 0x5BD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8203{"zvmhllsfanps", VX(4, 0x5BE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8204{"zvmhllsfranps", VX(4, 0x5BF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8205{"zvmhuuui", VX(4, 0x5C0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8206{"zvmhuuuiaa", VX(4, 0x5C2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8207{"zvmhuuuiaas", VX(4, 0x5C3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8208{"zvmhuuuian", VX(4, 0x5C4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8209{"zvmhuuuians", VX(4, 0x5C5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8210{"zvmhuuuianp", VX(4, 0x5C6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8211{"zvmhuuuianps", VX(4, 0x5C7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8212{"zvmhuusi", VX(4, 0x5C8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8213{"zvmhuusiaa", VX(4, 0x5CA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8214{"zvmhuusiaas", VX(4, 0x5CB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8215{"zvmhuusian", VX(4, 0x5CC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8216{"zvmhuusians", VX(4, 0x5CD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8217{"zvmhuusianp", VX(4, 0x5CE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8218{"zvmhuusianps", VX(4, 0x5CF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8219{"zvmhuusui", VX(4, 0x5D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8220{"zvmhuusuiaa", VX(4, 0x5D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8221{"zvmhuusuiaas", VX(4, 0x5D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8222{"zvmhuusuian", VX(4, 0x5D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8223{"zvmhuusuians", VX(4, 0x5D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8224{"zvmhuusuianp", VX(4, 0x5D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8225{"zvmhuusuianps", VX(4, 0x5D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8226{"zvmhuusf", VX(4, 0x5D8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8227{"zvmhuusfr", VX(4, 0x5D9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8228{"zvmhuusfaas", VX(4, 0x5DA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8229{"zvmhuusfraas", VX(4, 0x5DB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8230{"zvmhuusfans", VX(4, 0x5DC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8231{"zvmhuusfrans", VX(4, 0x5DD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8232{"zvmhuusfanps", VX(4, 0x5DE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8233{"zvmhuusfranps", VX(4, 0x5DF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8234{"zvmhxlui", VX(4, 0x5E0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8235{"zvmhxluiaa", VX(4, 0x5E2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8236{"zvmhxluiaas", VX(4, 0x5E3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8237{"zvmhxluian", VX(4, 0x5E4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8238{"zvmhxluians", VX(4, 0x5E5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8239{"zvmhxluianp", VX(4, 0x5E6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8240{"zvmhxluianps", VX(4, 0x5E7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8241{"zvmhxlsi", VX(4, 0x5E8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8242{"zvmhxlsiaa", VX(4, 0x5EA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8243{"zvmhxlsiaas", VX(4, 0x5EB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8244{"zvmhxlsian", VX(4, 0x5EC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8245{"zvmhxlsians", VX(4, 0x5ED), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8246{"zvmhxlsianp", VX(4, 0x5EE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8247{"zvmhxlsianps", VX(4, 0x5EF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8248{"zvmhxlsui", VX(4, 0x5F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8249{"zvmhxlsuiaa", VX(4, 0x5F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8250{"zvmhxlsuiaas", VX(4, 0x5F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8251{"zvmhxlsuian", VX(4, 0x5F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8252{"zvmhxlsuians", VX(4, 0x5F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8253{"zvmhxlsuianp", VX(4, 0x5F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8254{"zvmhxlsuianps", VX(4, 0x5F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8255{"zvmhxlsf", VX(4, 0x5F8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8256{"zvmhxlsfr", VX(4, 0x5F9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8257{"zvmhxlsfaas", VX(4, 0x5FA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8258{"zvmhxlsfraas", VX(4, 0x5FB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8259{"zvmhxlsfans", VX(4, 0x5FC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8260{"zvmhxlsfrans", VX(4, 0x5FD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8261{"zvmhxlsfanps", VX(4, 0x5FE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8262{"zvmhxlsfranps", VX(4, 0x5FF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8263{"zmheui", VX(4, 0x600), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8264{"zmheuiaa", VX(4, 0x602), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8265{"zmheuiaas", VX(4, 0x603), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8266{"zmheuian", VX(4, 0x604), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8267{"zmheuians", VX(4, 0x605), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8268{"zmhesi", VX(4, 0x608), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8269{"zmhesiaa", VX(4, 0x60A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8270{"zmhesiaas", VX(4, 0x60B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8271{"zmhesian", VX(4, 0x60C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8272{"zmhesians", VX(4, 0x60D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8273{"zmhesui", VX(4, 0x610), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8274{"zmhesuiaa", VX(4, 0x612), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8275{"zmhesuiaas", VX(4, 0x613), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8276{"zmhesuian", VX(4, 0x614), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8277{"zmhesuians", VX(4, 0x615), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8278{"zmhesf", VX(4, 0x618), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8279{"zmhesfr", VX(4, 0x619), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8280{"zmhesfaas", VX(4, 0x61A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8281{"zmhesfraas", VX(4, 0x61B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8282{"zmhesfans", VX(4, 0x61C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8283{"zmhesfrans", VX(4, 0x61D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8284{"zmheoui", VX(4, 0x620), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8285{"zmheouiaa", VX(4, 0x622), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8286{"zmheouiaas", VX(4, 0x623), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8287{"zmheouian", VX(4, 0x624), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8288{"zmheouians", VX(4, 0x625), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8289{"zmheosi", VX(4, 0x628), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8290{"zmheosiaa", VX(4, 0x62A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8291{"zmheosiaas", VX(4, 0x62B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8292{"zmheosian", VX(4, 0x62C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8293{"zmheosians", VX(4, 0x62D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8294{"zmheosui", VX(4, 0x630), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8295{"zmheosuiaa", VX(4, 0x632), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8296{"zmheosuiaas", VX(4, 0x633), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8297{"zmheosuian", VX(4, 0x634), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8298{"zmheosuians", VX(4, 0x635), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8299{"zmheosf", VX(4, 0x638), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8300{"zmheosfr", VX(4, 0x639), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8301{"zmheosfaas", VX(4, 0x63A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8302{"zmheosfraas", VX(4, 0x63B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8303{"zmheosfans", VX(4, 0x63C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8304{"zmheosfrans", VX(4, 0x63D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8305{"zmhoui", VX(4, 0x640), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8306{"zmhouiaa", VX(4, 0x642), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8307{"zmhouiaas", VX(4, 0x643), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8308{"zmhouian", VX(4, 0x644), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8309{"zmhouians", VX(4, 0x645), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8310{"zmhosi", VX(4, 0x648), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8311{"zmhosiaa", VX(4, 0x64A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8312{"zmhosiaas", VX(4, 0x64B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8313{"zmhosian", VX(4, 0x64C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8314{"zmhosians", VX(4, 0x64D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8315{"zmhosui", VX(4, 0x650), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8316{"zmhosuiaa", VX(4, 0x652), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8317{"zmhosuiaas", VX(4, 0x653), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8318{"zmhosuian", VX(4, 0x654), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8319{"zmhosuians", VX(4, 0x655), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8320{"zmhosf", VX(4, 0x658), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8321{"zmhosfr", VX(4, 0x659), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8322{"zmhosfaas", VX(4, 0x65A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8323{"zmhosfraas", VX(4, 0x65B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8324{"zmhosfans", VX(4, 0x65C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8325{"zmhosfrans", VX(4, 0x65D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8326{"zvmhuih", VX(4, 0x660), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8327{"zvmhuihs", VX(4, 0x661), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8328{"zvmhuiaah", VX(4, 0x662), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8329{"zvmhuiaahs", VX(4, 0x663), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8330{"zvmhuianh", VX(4, 0x664), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8331{"zvmhuianhs", VX(4, 0x665), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8332{"zvmhsihs", VX(4, 0x669), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8333{"zvmhsiaahs", VX(4, 0x66B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8334{"zvmhsianhs", VX(4, 0x66D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8335{"zvmhsuihs", VX(4, 0x671), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8336{"zvmhsuiaahs", VX(4, 0x673), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8337{"zvmhsuianhs", VX(4, 0x675), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8338{"zvmhsfh", VX(4, 0x678), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8339{"zvmhsfrh", VX(4, 0x679), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8340{"zvmhsfaahs", VX(4, 0x67A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8341{"zvmhsfraahs", VX(4, 0x67B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8342{"zvmhsfanhs", VX(4, 0x67C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8343{"zvmhsfranhs", VX(4, 0x67D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8344{"zvdotphaui", VX(4, 0x680), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8345{"zvdotphauis", VX(4, 0x681), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8346{"zvdotphauiaa", VX(4, 0x682), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8347{"zvdotphauiaas", VX(4, 0x683), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8348{"zvdotphauian", VX(4, 0x684), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8349{"zvdotphauians", VX(4, 0x685), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8350{"zvdotphasi", VX(4, 0x688), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8351{"zvdotphasis", VX(4, 0x689), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8352{"zvdotphasiaa", VX(4, 0x68A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8353{"zvdotphasiaas", VX(4, 0x68B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8354{"zvdotphasian", VX(4, 0x68C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8355{"zvdotphasians", VX(4, 0x68D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8356{"zvdotphasui", VX(4, 0x690), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8357{"zvdotphasuis", VX(4, 0x691), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8358{"zvdotphasuiaa", VX(4, 0x692), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8359{"zvdotphasuiaas", VX(4, 0x693), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8360{"zvdotphasuian", VX(4, 0x694), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8361{"zvdotphasuians", VX(4, 0x695), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8362{"zvdotphasfs", VX(4, 0x698), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8363{"zvdotphasfrs", VX(4, 0x699), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8364{"zvdotphasfaas", VX(4, 0x69A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8365{"zvdotphasfraas", VX(4, 0x69B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8366{"zvdotphasfans", VX(4, 0x69C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8367{"zvdotphasfrans", VX(4, 0x69D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8368{"zvdotphxaui", VX(4, 0x6A0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8369{"zvdotphxauis", VX(4, 0x6A1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8370{"zvdotphxauiaa", VX(4, 0x6A2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8371{"zvdotphxauiaas", VX(4, 0x6A3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8372{"zvdotphxauian", VX(4, 0x6A4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8373{"zvdotphxauians", VX(4, 0x6A5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8374{"zvdotphxasi", VX(4, 0x6A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8375{"zvdotphxasis", VX(4, 0x6A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8376{"zvdotphxasiaa", VX(4, 0x6AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8377{"zvdotphxasiaas", VX(4, 0x6AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8378{"zvdotphxasian", VX(4, 0x6AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8379{"zvdotphxasians", VX(4, 0x6AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8380{"zvdotphxasui", VX(4, 0x6B0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8381{"zvdotphxasuis", VX(4, 0x6B1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8382{"zvdotphxasuiaa", VX(4, 0x6B2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8383{"zvdotphxasuiaas", VX(4, 0x6B3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8384{"zvdotphxasuian", VX(4, 0x6B4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8385{"zvdotphxasuians", VX(4, 0x6B5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8386{"zvdotphxasfs", VX(4, 0x6B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8387{"zvdotphxasfrs", VX(4, 0x6B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8388{"zvdotphxasfaas", VX(4, 0x6BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8389{"zvdotphxasfraas", VX(4, 0x6BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8390{"zvdotphxasfans", VX(4, 0x6BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8391{"zvdotphxasfrans", VX(4, 0x6BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8392{"zvdotphsui", VX(4, 0x6C0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8393{"zvdotphsuis", VX(4, 0x6C1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8394{"zvdotphsuiaa", VX(4, 0x6C2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8395{"zvdotphsuiaas", VX(4, 0x6C3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8396{"zvdotphsuian", VX(4, 0x6C4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8397{"zvdotphsuians", VX(4, 0x6C5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8398{"zvdotphssi", VX(4, 0x6C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8399{"zvdotphssis", VX(4, 0x6C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8400{"zvdotphssiaa", VX(4, 0x6CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8401{"zvdotphssiaas", VX(4, 0x6CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8402{"zvdotphssian", VX(4, 0x6CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8403{"zvdotphssians", VX(4, 0x6CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8404{"zvdotphssui", VX(4, 0x6D0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8405{"zvdotphssuis", VX(4, 0x6D1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8406{"zvdotphssuiaa", VX(4, 0x6D2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8407{"zvdotphssuiaas", VX(4, 0x6D3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8408{"zvdotphssuian", VX(4, 0x6D4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8409{"zvdotphssuians", VX(4, 0x6D5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8410{"zvdotphssfs", VX(4, 0x6D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8411{"zvdotphssfrs", VX(4, 0x6D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8412{"zvdotphssfaas", VX(4, 0x6DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8413{"zvdotphssfraas", VX(4, 0x6DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8414{"zvdotphssfans", VX(4, 0x6DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8415{"zvdotphssfrans", VX(4, 0x6DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8416{"zmwluis", VX(4, 0x6E1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8417{"zmwluiaa", VX(4, 0x6E2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8418{"zmwluiaas", VX(4, 0x6E3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8419{"zmwluian", VX(4, 0x6E4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8420{"zmwluians", VX(4, 0x6E5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8421{"zmwlsis", VX(4, 0x6E9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8422{"zmwlsiaas", VX(4, 0x6EB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8423{"zmwlsians", VX(4, 0x6ED), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8424{"zmwlsuis", VX(4, 0x6F1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8425{"zmwlsuiaas", VX(4, 0x6F3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8426{"zmwlsuians", VX(4, 0x6F5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8427{"zmwsf", VX(4, 0x6F8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8428{"zmwsfr", VX(4, 0x6F9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8429{"zmwsfaas", VX(4, 0x6FA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8430{"zmwsfraas", VX(4, 0x6FB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8431{"zmwsfans", VX(4, 0x6FC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8432{"zmwsfrans", VX(4, 0x6FD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8433{"zlddx", VX(4, 0x300), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8434{"zldd", VX(4, 0x301), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
8435{"zldwx", VX(4, 0x302), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8436{"zldw", VX(4, 0x303), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
8437{"zldhx", VX(4, 0x304), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8438{"zldh", VX(4, 0x305), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
8439{"zlwgsfdx", VX(4, 0x308), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8440{"zlwgsfd", VX(4, 0x309), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8441{"zlwwosdx", VX(4, 0x30A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8442{"zlwwosd", VX(4, 0x30B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8443{"zlwhsplatwdx", VX(4, 0x30C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8444{"zlwhsplatwd", VX(4, 0x30D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8445{"zlwhsplatdx", VX(4, 0x30E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8446{"zlwhsplatd", VX(4, 0x30F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8447{"zlwhgwsfdx", VX(4, 0x310), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8448{"zlwhgwsfd", VX(4, 0x311), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8449{"zlwhedx", VX(4, 0x312), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8450{"zlwhed", VX(4, 0x313), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8451{"zlwhosdx", VX(4, 0x314), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8452{"zlwhosd", VX(4, 0x315), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8453{"zlwhoudx", VX(4, 0x316), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8454{"zlwhoud", VX(4, 0x317), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8455{"zlwhx", VX(4, 0x318), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8456{"zlwh", VX(4, 0x319), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
8457{"zlwwx", VX(4, 0x31A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8458{"zlww", VX(4, 0x31B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
8459{"zlhgwsfx", VX(4, 0x31C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8460{"zlhgwsf", VX(4, 0x31D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8461{"zlhhsplatx", VX(4, 0x31E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8462{"zlhhsplat", VX(4, 0x31F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8463{"zstddx", VX(4, 0x320), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8464{"zstdd", VX(4, 0x321), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
8465{"zstdwx", VX(4, 0x322), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8466{"zstdw", VX(4, 0x323), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
8467{"zstdhx", VX(4, 0x324), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8468{"zstdh", VX(4, 0x325), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
8469{"zstwhedx", VX(4, 0x328), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8470{"zstwhed", VX(4, 0x329), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
8471{"zstwhodx", VX(4, 0x32A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8472{"zstwhod", VX(4, 0x32B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
8473{"zlhhex", VX(4, 0x330), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8474{"zlhhe", VX(4, 0x331), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8475{"zlhhosx", VX(4, 0x332), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8476{"zlhhos", VX(4, 0x333), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8477{"zlhhoux", VX(4, 0x334), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8478{"zlhhou", VX(4, 0x335), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8479{"zsthex", VX(4, 0x338), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8480{"zsthe", VX(4, 0x339), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
8481{"zsthox", VX(4, 0x33A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8482{"zstho", VX(4, 0x33B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
8483{"zstwhx", VX(4, 0x33C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8484{"zstwh", VX(4, 0x33D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
8485{"zstwwx", VX(4, 0x33E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8486{"zstww", VX(4, 0x33F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
8487{"zlddmx", VX(4, 0x340), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8488{"zlddu", VX(4, 0x341), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
8489{"zldwmx", VX(4, 0x342), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8490{"zldwu", VX(4, 0x343), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
8491{"zldhmx", VX(4, 0x344), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8492{"zldhu", VX(4, 0x345), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
8493{"zlwgsfdmx", VX(4, 0x348), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8494{"zlwgsfdu", VX(4, 0x349), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8495{"zlwwosdmx", VX(4, 0x34A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8496{"zlwwosdu", VX(4, 0x34B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8497{"zlwhsplatwdmx", VX(4, 0x34C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8498{"zlwhsplatwdu", VX(4, 0x34D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8499{"zlwhsplatdmx", VX(4, 0x34E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8500{"zlwhsplatdu", VX(4, 0x34F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8501{"zlwhgwsfdmx", VX(4, 0x350), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8502{"zlwhgwsfdu", VX(4, 0x351), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8503{"zlwhedmx", VX(4, 0x352), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8504{"zlwhedu", VX(4, 0x353), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8505{"zlwhosdmx", VX(4, 0x354), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8506{"zlwhosdu", VX(4, 0x355), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8507{"zlwhoudmx", VX(4, 0x356), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8508{"zlwhoudu", VX(4, 0x357), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8509{"zlwhmx", VX(4, 0x358), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8510{"zlwhu", VX(4, 0x359), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
8511{"zlwwmx", VX(4, 0x35A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8512{"zlwwu", VX(4, 0x35B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
8513{"zlhgwsfmx", VX(4, 0x35C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8514{"zlhgwsfu", VX(4, 0x35D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8515{"zlhhsplatmx", VX(4, 0x35E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8516{"zlhhsplatu", VX(4, 0x35F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8517{"zstddmx", VX(4, 0x360), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8518{"zstddu", VX(4, 0x361), VX_MASK, PPCLSP, 0, {RS, EVUIMM_8_EX0, RA}},
8519{"zstdwmx", VX(4, 0x362), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8520{"zstdwu", VX(4, 0x363), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
8521{"zstdhmx", VX(4, 0x364), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8522{"zstdhu", VX(4, 0x365), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
8523{"zstwhedmx", VX(4, 0x368), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8524{"zstwhedu", VX(4, 0x369), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
8525{"zstwhodmx", VX(4, 0x36A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8526{"zstwhodu", VX(4, 0x36B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
8527{"zlhhemx", VX(4, 0x370), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8528{"zlhheu", VX(4, 0x371), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8529{"zlhhosmx", VX(4, 0x372), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8530{"zlhhosu", VX(4, 0x373), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8531{"zlhhoumx", VX(4, 0x374), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8532{"zlhhouu", VX(4, 0x375), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8533{"zsthemx", VX(4, 0x378), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8534{"zstheu", VX(4, 0x379), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
8535{"zsthomx", VX(4, 0x37A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8536{"zsthou", VX(4, 0x37B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
8537{"zstwhmx", VX(4, 0x37C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8538{"zstwhu", VX(4, 0x37D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
8539{"zstwwmx", VX(4, 0x37E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8540{"zstwwu", VX(4, 0x37F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
8541
14b57c7c 8542{"e_cmpi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
dfdaec14 8543{"e_cmpwi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
14b57c7c 8544{"e_cmpli", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
dfdaec14 8545{"e_cmplwi", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
14b57c7c
AM
8546{"e_addi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8547{"e_subi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
8548{"e_addi.", SCI8(6,17), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8549{"e_addic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8550{"e_subic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
8551{"e_addic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8552{"e_subic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
8553{"e_mulli", SCI8(6,20), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8554{"e_subfic", SCI8(6,22), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8555{"e_subfic.", SCI8(6,23), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8556{"e_andi", SCI8(6,24), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8557{"e_andi.", SCI8(6,25), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8558{"e_nop", SCI8(6,26), 0xffffffff, PPCVLE, 0, {0}},
8559{"e_ori", SCI8(6,26), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8560{"e_ori.", SCI8(6,27), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8561{"e_xori", SCI8(6,28), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8562{"e_xori.", SCI8(6,29), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8563{"e_lbzu", OPVUP(6,0), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8564{"e_lhau", OPVUP(6,3), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8565{"e_lhzu", OPVUP(6,1), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8566{"e_lmw", OPVUP(6,8), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8567{"e_lwzu", OPVUP(6,2), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8568{"e_stbu", OPVUP(6,4), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8569{"e_sthu", OPVUP(6,5), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8570{"e_stwu", OPVUP(6,6), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8571{"e_stmw", OPVUP(6,9), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
d2e6c9a3 8572{"e_lmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8573{"e_ldmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8574{"e_stmvgprw", OPVUPRT(6,17,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 8575{"e_lmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8576{"e_ldmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8577{"e_stmvsprw", OPVUPRT(6,17,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 8578{"e_lmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8579{"e_ldmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8580{"e_stmvsrrw", OPVUPRT(6,17,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 8581{"e_lmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8582{"e_ldmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8583{"e_stmvcsrrw", OPVUPRT(6,17,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 8584{"e_lmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
8585{"e_ldmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8586{"e_stmvdsrrw", OPVUPRT(6,17,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3
AF
8587{"e_lmvmcsrrw", OPVUPRT(6,16,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8588{"e_stmvmcsrrw", OPVUPRT(6,17,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
14b57c7c
AM
8589{"e_add16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, SI}},
8590{"e_la", OP(7), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8591{"e_sub16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, NSI}},
8592
8593{"se_addi", SE_IM5(8,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
8594{"se_cmpli", SE_IM5(8,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
8595{"se_subi", SE_IM5(9,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
8596{"se_subi.", SE_IM5(9,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
8597{"se_cmpi", SE_IM5(10,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8598{"se_bmaski", SE_IM5(11,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8599{"se_andi", SE_IM5(11,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8600
8601{"e_lbz", OP(12), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8602{"e_stb", OP(13), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8603{"e_lha", OP(14), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8604
8605{"se_srw", SE_RR(16,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8606{"se_sraw", SE_RR(16,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8607{"se_slw", SE_RR(16,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8608{"se_nop", SE_RR(17,0), 0xffff, PPCVLE, 0, {0}},
8609{"se_or", SE_RR(17,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8610{"se_andc", SE_RR(17,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8611{"se_and", SE_RR(17,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8612{"se_and.", SE_RR(17,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8613{"se_li", IM7(9), IM7_MASK, PPCVLE, 0, {RX, UI7}},
8614
8615{"e_lwz", OP(20), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8616{"e_stw", OP(21), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8617{"e_lhz", OP(22), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8618{"e_sth", OP(23), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
8619
8620{"se_bclri", SE_IM5(24,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8621{"se_bgeni", SE_IM5(24,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8622{"se_bseti", SE_IM5(25,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8623{"se_btsti", SE_IM5(25,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8624{"se_srwi", SE_IM5(26,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8625{"se_srawi", SE_IM5(26,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8626{"se_slwi", SE_IM5(27,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
8627
8628{"e_lis", I16L(28,28), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8629{"e_and2is.", I16L(28,29), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8630{"e_or2is", I16L(28,26), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8631{"e_and2i.", I16L(28,25), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8632{"e_or2i", I16L(28,24), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
8633{"e_cmphl16i", IA16(28,23), IA16_MASK, PPCVLE, 0, {RA, VLEUIMM}},
8634{"e_cmph16i", IA16(28,22), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
8635{"e_cmpl16i", I16A(28,21), I16A_MASK, PPCVLE, 0, {RA, VLEUIMM}},
14b57c7c
AM
8636{"e_mull2i", I16A(28,20), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
8637{"e_cmp16i", IA16(28,19), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
14b57c7c
AM
8638{"e_sub2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
8639{"e_add2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
8640{"e_sub2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
8641{"e_add2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
8642{"e_li", LI20(28,0), LI20_MASK, PPCVLE, 0, {RT, IMM20}},
8643{"e_rlwimi", M(29,0), M_MASK, PPCVLE, 0, {RA, RS, SH, MB, ME}},
8644{"e_rlwinm", M(29,1), M_MASK, PPCVLE, 0, {RA, RT, SH, MBE, ME}},
8645{"e_b", BD24(30,0,0), BD24_MASK, PPCVLE, 0, {B24}},
8646{"e_bl", BD24(30,0,1), BD24_MASK, PPCVLE, 0, {B24}},
8647{"e_bdnz", EBD15(30,8,BO32DNZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
8648{"e_bdnzl", EBD15(30,8,BO32DNZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
8649{"e_bdz", EBD15(30,8,BO32DZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
8650{"e_bdzl", EBD15(30,8,BO32DZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
8651{"e_bge", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8652{"e_bgel", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8653{"e_bnl", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8654{"e_bnll", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8655{"e_blt", EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8656{"e_bltl", EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8657{"e_bgt", EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8658{"e_bgtl", EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8659{"e_ble", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8660{"e_blel", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8661{"e_bng", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8662{"e_bngl", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8663{"e_bne", EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8664{"e_bnel", EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8665{"e_beq", EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8666{"e_beql", EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8667{"e_bso", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8668{"e_bsol", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8669{"e_bun", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8670{"e_bunl", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8671{"e_bns", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8672{"e_bnsl", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8673{"e_bnu", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8674{"e_bnul", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
8675{"e_bc", BD15(30,8,0), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
8676{"e_bcl", BD15(30,8,1), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
8677
8678{"e_bf", EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
8679{"e_bfl", EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
8680{"e_bt", EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
8681{"e_btl", EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
8682
8683{"e_cmph", X(31,14), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
a8cc8a54 8684{"e_sc", X(31,36), XRTRA_MASK, PPCVLE, 0, {ELEV}},
14b57c7c
AM
8685{"e_cmphl", X(31,46), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
8686{"e_crandc", XL(31,129), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8687{"e_crnand", XL(31,225), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
98553ad3 8688{"e_crnot", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BAB}},
14b57c7c 8689{"e_crnor", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
98553ad3 8690{"e_crclr", XL(31,193), XL_MASK, PPCVLE, 0, {BTAB}},
14b57c7c
AM
8691{"e_crxor", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8692{"e_mcrf", XL(31,16), XL_MASK, PPCVLE, 0, {CRD, CR}},
8693{"e_slwi", EX(31,112), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8694{"e_slwi.", EX(31,113), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8695
8696{"e_crand", XL(31,257), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8697
8698{"e_rlw", EX(31,560), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
8699{"e_rlw.", EX(31,561), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
8700
98553ad3 8701{"e_crset", XL(31,289), XL_MASK, PPCVLE, 0, {BTAB}},
14b57c7c
AM
8702{"e_creqv", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8703
8704{"e_rlwi", EX(31,624), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8705{"e_rlwi.", EX(31,625), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8706
8707{"e_crorc", XL(31,417), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8708
98553ad3 8709{"e_crmove", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BAB}},
14b57c7c
AM
8710{"e_cror", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
8711
8712{"mtmas1", XSPR(31,467,625), XSPR_MASK, PPCVLE, 0, {RS}},
8713
8714{"e_srwi", EX(31,1136), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8715{"e_srwi.", EX(31,1137), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
8716
8717{"se_lbz", SD4(8), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
8718
8719{"se_stb", SD4(9), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
8720
8721{"se_lhz", SD4(10), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
8722
8723{"se_sth", SD4(11), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
8724
8725{"se_lwz", SD4(12), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
8726
8727{"se_stw", SD4(13), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
8728
8729{"se_bge", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8730{"se_bnl", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8731{"se_ble", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8732{"se_bng", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8733{"se_bne", EBD8IO(28,0,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8734{"se_bns", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8735{"se_bnu", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8736{"se_bf", EBD8IO(28,0,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
8737{"se_blt", EBD8IO(28,1,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8738{"se_bgt", EBD8IO(28,1,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8739{"se_beq", EBD8IO(28,1,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8740{"se_bso", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8741{"se_bun", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
8742{"se_bt", EBD8IO(28,1,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
8743{"se_bc", BD8IO(28), BD8IO_MASK, PPCVLE, 0, {BO16, BI16, B8}},
8744{"se_b", BD8(58,0,0), BD8_MASK, PPCVLE, 0, {B8}},
8745{"se_bl", BD8(58,0,1), BD8_MASK, PPCVLE, 0, {B8}},
b9c361e0
JL
8746};
8747
2ceb7719 8748const unsigned int vle_num_opcodes =
b9c361e0
JL
8749 sizeof (vle_opcodes) / sizeof (vle_opcodes[0]);
8750\f
252b5132
RH
8751/* The macro table. This is only used by the assembler. */
8752
8753/* The expressions of the form (-x ! 31) & (x | 31) have the value 0
8754 when x=0; 32-x when x is between 1 and 31; are negative if x is
8755 negative; and are 32 or more otherwise. This is what you want
8756 when, for instance, you are emulating a right shift by a
8757 rotate-left-and-mask, because the underlying instructions support
8758 shifts of size 0 but not shifts of size 32. By comparison, when
8759 extracting x bits from some word you want to use just 32-x, because
8760 the underlying instructions don't support extracting 0 bits but do
8761 support extracting the whole word (32 bits in this case). */
8762
8763const struct powerpc_macro powerpc_macros[] = {
de866fcc
AM
8764{"extldi", 4, PPC64, "rldicr %0,%1,%3,(%2)-1"},
8765{"extldi.", 4, PPC64, "rldicr. %0,%1,%3,(%2)-1"},
bdc7fcfe
AM
8766{"extrdi", 4, PPC64, "rldicl %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
8767{"extrdi.", 4, PPC64, "rldicl. %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
de866fcc
AM
8768{"insrdi", 4, PPC64, "rldimi %0,%1,64-((%2)+(%3)),%3"},
8769{"insrdi.", 4, PPC64, "rldimi. %0,%1,64-((%2)+(%3)),%3"},
8770{"rotrdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),0"},
8771{"rotrdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),0"},
8772{"sldi", 3, PPC64, "rldicr %0,%1,%2,63-(%2)"},
8773{"sldi.", 3, PPC64, "rldicr. %0,%1,%2,63-(%2)"},
8774{"srdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),%2"},
8775{"srdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),%2"},
8776{"clrrdi", 3, PPC64, "rldicr %0,%1,0,63-(%2)"},
8777{"clrrdi.", 3, PPC64, "rldicr. %0,%1,0,63-(%2)"},
8778{"clrlsldi", 4, PPC64, "rldic %0,%1,%3,(%2)-(%3)"},
14b57c7c 8779{"clrlsldi.",4, PPC64, "rldic. %0,%1,%3,(%2)-(%3)"},
de866fcc
AM
8780
8781{"extlwi", 4, PPCCOM, "rlwinm %0,%1,%3,0,(%2)-1"},
8782{"extlwi.", 4, PPCCOM, "rlwinm. %0,%1,%3,0,(%2)-1"},
8783{"extrwi", 4, PPCCOM, "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
8784{"extrwi.", 4, PPCCOM, "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
8785{"inslwi", 4, PPCCOM, "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
8786{"inslwi.", 4, PPCCOM, "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
8787{"insrwi", 4, PPCCOM, "rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
8788{"insrwi.", 4, PPCCOM, "rlwimi. %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
8789{"rotrwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
8790{"rotrwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),0,31"},
8791{"slwi", 3, PPCCOM, "rlwinm %0,%1,%2,0,31-(%2)"},
8792{"sli", 3, PWRCOM, "rlinm %0,%1,%2,0,31-(%2)"},
8793{"slwi.", 3, PPCCOM, "rlwinm. %0,%1,%2,0,31-(%2)"},
8794{"sli.", 3, PWRCOM, "rlinm. %0,%1,%2,0,31-(%2)"},
8795{"srwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8796{"sri", 3, PWRCOM, "rlinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8797{"srwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8798{"sri.", 3, PWRCOM, "rlinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8799{"clrrwi", 3, PPCCOM, "rlwinm %0,%1,0,0,31-(%2)"},
8800{"clrrwi.", 3, PPCCOM, "rlwinm. %0,%1,0,0,31-(%2)"},
8801{"clrlslwi", 4, PPCCOM, "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
8802{"clrlslwi.",4, PPCCOM, "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)"},
a4ebc835
AM
8803
8804{"e_extlwi", 4, PPCVLE, "e_rlwinm %0,%1,%3,0,(%2)-1"},
8805{"e_extrwi", 4, PPCVLE, "e_rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
8806{"e_inslwi", 4, PPCVLE, "e_rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
8807{"e_insrwi", 4, PPCVLE, "e_rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
8808{"e_rotlwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31"},
8809{"e_rotrwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
8810{"e_slwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31-(%2)"},
8811{"e_srwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
8812{"e_clrlwi", 3, PPCVLE, "e_rlwinm %0,%1,0,%2,31"},
8813{"e_clrrwi", 3, PPCVLE, "e_rlwinm %0,%1,0,0,31-(%2)"},
8814{"e_clrlslwi",4, PPCVLE, "e_rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
74081948
AF
8815
8816/* old SPE instructions have new names with the same opcodes */
8817{"evsadd", 3, PPCSPE|PPCVLE, "efsadd %0,%1,%2"},
8818{"evssub", 3, PPCSPE|PPCVLE, "efssub %0,%1,%2"},
8819{"evsabs", 2, PPCSPE|PPCVLE, "efsabs %0,%1"},
8820{"evsnabs", 2, PPCSPE|PPCVLE, "efsnabs %0,%1"},
8821{"evsneg", 2, PPCSPE|PPCVLE, "efsneg %0,%1"},
8822{"evsmul", 3, PPCSPE|PPCVLE, "efsmul %0,%1,%2"},
8823{"evsdiv", 3, PPCSPE|PPCVLE, "efsdiv %0,%1,%2"},
8824{"evscmpgt", 3, PPCSPE|PPCVLE, "efscmpgt %0,%1,%2"},
8825{"evsgmplt", 3, PPCSPE|PPCVLE, "efscmplt %0,%1,%2"},
8826{"evsgmpeq", 3, PPCSPE|PPCVLE, "efscmpeq %0,%1,%2"},
8827{"evscfui", 2, PPCSPE|PPCVLE, "efscfui %0,%1"},
8828{"evscfsi", 2, PPCSPE|PPCVLE, "efscfsi %0,%1"},
8829{"evscfuf", 2, PPCSPE|PPCVLE, "efscfuf %0,%1"},
8830{"evscfsf", 2, PPCSPE|PPCVLE, "efscfsf %0,%1"},
8831{"evsctui", 2, PPCSPE|PPCVLE, "efsctui %0,%1"},
8832{"evsctsi", 2, PPCSPE|PPCVLE, "efsctsi %0,%1"},
8833{"evsctuf", 2, PPCSPE|PPCVLE, "efsctuf %0,%1"},
8834{"evsctsf", 2, PPCSPE|PPCVLE, "efsctsf %0,%1"},
8835{"evsctuiz", 2, PPCSPE|PPCVLE, "efsctuiz %0,%1"},
8836{"evsctsiz", 2, PPCSPE|PPCVLE, "efsctsiz %0,%1"},
8837{"evststgt", 3, PPCSPE|PPCVLE, "efststgt %0,%1,%2"},
8838{"evststlt", 3, PPCSPE|PPCVLE, "efststlt %0,%1,%2"},
8839{"evststeq", 3, PPCSPE|PPCVLE, "efststeq %0,%1,%2"},
8840
8841/* SPE2 instructions which just are mapped to SPE2 */
8842{"evdotphsssi", 3, PPCSPE2, "evdotphssmi %0,%1,%2"},
8843{"evdotphsssia", 3, PPCSPE2, "evdotphssmia %0,%1,%2"},
8844{"evdotpwsssi", 3, PPCSPE2, "evdotpwssmi %0,%1,%2"},
8845{"evdotpwsssia", 3, PPCSPE2, "evdotpwssmia %0,%1,%2"}
252b5132
RH
8846};
8847
8848const int powerpc_num_macros =
8849 sizeof (powerpc_macros) / sizeof (powerpc_macros[0]);
74081948
AF
8850
8851/* SPE v2 instruction set from SPE2PIM Rev. 2 08/2011 */
8852const struct powerpc_opcode spe2_opcodes[] = {
8853{"evdotpwcssi", VX (4, 128), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8854{"evdotpwcsmi", VX (4, 129), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8855{"evdotpwcssfr", VX (4, 130), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8856{"evdotpwcssf", VX (4, 131), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8857{"evdotpwgasmf", VX (4, 136), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8858{"evdotpwxgasmf", VX (4, 137), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8859{"evdotpwgasmfr", VX (4, 138), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8860{"evdotpwxgasmfr", VX (4, 139), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8861{"evdotpwgssmf", VX (4, 140), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8862{"evdotpwxgssmf", VX (4, 141), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8863{"evdotpwgssmfr", VX (4, 142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8864{"evdotpwxgssmfr", VX (4, 143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8865{"evdotpwcssiaaw3", VX (4, 144), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8866{"evdotpwcsmiaaw3", VX (4, 145), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8867{"evdotpwcssfraaw3", VX (4, 146), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8868{"evdotpwcssfaaw3", VX (4, 147), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8869{"evdotpwgasmfaa3", VX (4, 152), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8870{"evdotpwxgasmfaa3", VX (4, 153), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8871{"evdotpwgasmfraa3", VX (4, 154), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8872{"evdotpwxgasmfraa3", VX (4, 155), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8873{"evdotpwgssmfaa3", VX (4, 156), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8874{"evdotpwxgssmfaa3", VX (4, 157), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8875{"evdotpwgssmfraa3", VX (4, 158), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8876{"evdotpwxgssmfraa3", VX (4, 159), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8877{"evdotpwcssia", VX (4, 160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8878{"evdotpwcsmia", VX (4, 161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8879{"evdotpwcssfra", VX (4, 162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8880{"evdotpwcssfa", VX (4, 163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8881{"evdotpwgasmfa", VX (4, 168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8882{"evdotpwxgasmfa", VX (4, 169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8883{"evdotpwgasmfra", VX (4, 170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8884{"evdotpwxgasmfra", VX (4, 171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8885{"evdotpwgssmfa", VX (4, 172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8886{"evdotpwxgssmfa", VX (4, 173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8887{"evdotpwgssmfra", VX (4, 174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8888{"evdotpwxgssmfra", VX (4, 175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8889{"evdotpwcssiaaw", VX (4, 176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8890{"evdotpwcsmiaaw", VX (4, 177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8891{"evdotpwcssfraaw", VX (4, 178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8892{"evdotpwcssfaaw", VX (4, 179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8893{"evdotpwgasmfaa", VX (4, 184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8894{"evdotpwxgasmfaa", VX (4, 185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8895{"evdotpwgasmfraa", VX (4, 186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8896{"evdotpwxgasmfraa", VX (4, 187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8897{"evdotpwgssmfaa", VX (4, 188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8898{"evdotpwxgssmfaa", VX (4, 189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8899{"evdotpwgssmfraa", VX (4, 190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8900{"evdotpwxgssmfraa", VX (4, 191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8901{"evdotphihcssi", VX (4, 256), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8902{"evdotplohcssi", VX (4, 257), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8903{"evdotphihcssf", VX (4, 258), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8904{"evdotplohcssf", VX (4, 259), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8905{"evdotphihcsmi", VX (4, 264), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8906{"evdotplohcsmi", VX (4, 265), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8907{"evdotphihcssfr", VX (4, 266), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8908{"evdotplohcssfr", VX (4, 267), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8909{"evdotphihcssiaaw3", VX (4, 272), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8910{"evdotplohcssiaaw3", VX (4, 273), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8911{"evdotphihcssfaaw3", VX (4, 274), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8912{"evdotplohcssfaaw3", VX (4, 275), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8913{"evdotphihcsmiaaw3", VX (4, 280), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8914{"evdotplohcsmiaaw3", VX (4, 281), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8915{"evdotphihcssfraaw3", VX (4, 282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8916{"evdotplohcssfraaw3", VX (4, 283), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8917{"evdotphihcssia", VX (4, 288), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8918{"evdotplohcssia", VX (4, 289), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8919{"evdotphihcssfa", VX (4, 290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8920{"evdotplohcssfa", VX (4, 291), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8921{"evdotphihcsmia", VX (4, 296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8922{"evdotplohcsmia", VX (4, 297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8923{"evdotphihcssfra", VX (4, 298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8924{"evdotplohcssfra", VX (4, 299), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8925{"evdotphihcssiaaw", VX (4, 304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8926{"evdotplohcssiaaw", VX (4, 305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8927{"evdotphihcssfaaw", VX (4, 306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8928{"evdotplohcssfaaw", VX (4, 307), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8929{"evdotphihcsmiaaw", VX (4, 312), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8930{"evdotplohcsmiaaw", VX (4, 313), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8931{"evdotphihcssfraaw", VX (4, 314), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8932{"evdotplohcssfraaw", VX (4, 315), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8933{"evdotphausi", VX (4, 320), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8934{"evdotphassi", VX (4, 321), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8935{"evdotphasusi", VX (4, 322), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8936{"evdotphassf", VX (4, 323), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8937{"evdotphsssf", VX (4, 327), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8938{"evdotphaumi", VX (4, 328), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8939{"evdotphasmi", VX (4, 329), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8940{"evdotphasumi", VX (4, 330), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8941{"evdotphassfr", VX (4, 331), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8942{"evdotphssmi", VX (4, 333), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8943{"evdotphsssfr", VX (4, 335), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8944{"evdotphausiaaw3", VX (4, 336), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8945{"evdotphassiaaw3", VX (4, 337), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8946{"evdotphasusiaaw3", VX (4, 338), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8947{"evdotphassfaaw3", VX (4, 339), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8948{"evdotphsssiaaw3", VX (4, 341), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8949{"evdotphsssfaaw3", VX (4, 343), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8950{"evdotphaumiaaw3", VX (4, 344), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8951{"evdotphasmiaaw3", VX (4, 345), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8952{"evdotphasumiaaw3", VX (4, 346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8953{"evdotphassfraaw3", VX (4, 347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8954{"evdotphssmiaaw3", VX (4, 349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8955{"evdotphsssfraaw3", VX (4, 351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8956{"evdotphausia", VX (4, 352), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8957{"evdotphassia", VX (4, 353), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8958{"evdotphasusia", VX (4, 354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8959{"evdotphassfa", VX (4, 355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8960{"evdotphsssfa", VX (4, 359), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8961{"evdotphaumia", VX (4, 360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8962{"evdotphasmia", VX (4, 361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8963{"evdotphasumia", VX (4, 362), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8964{"evdotphassfra", VX (4, 363), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8965{"evdotphssmia", VX (4, 365), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8966{"evdotphsssfra", VX (4, 367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8967{"evdotphausiaaw", VX (4, 368), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8968{"evdotphassiaaw", VX (4, 369), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8969{"evdotphasusiaaw", VX (4, 370), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8970{"evdotphassfaaw", VX (4, 371), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8971{"evdotphsssiaaw", VX (4, 373), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8972{"evdotphsssfaaw", VX (4, 375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8973{"evdotphaumiaaw", VX (4, 376), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8974{"evdotphasmiaaw", VX (4, 377), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8975{"evdotphasumiaaw", VX (4, 378), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8976{"evdotphassfraaw", VX (4, 379), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8977{"evdotphssmiaaw", VX (4, 381), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8978{"evdotphsssfraaw", VX (4, 383), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8979{"evdotp4hgaumi", VX (4, 384), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8980{"evdotp4hgasmi", VX (4, 385), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8981{"evdotp4hgasumi", VX (4, 386), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8982{"evdotp4hgasmf", VX (4, 387), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8983{"evdotp4hgssmi", VX (4, 388), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8984{"evdotp4hgssmf", VX (4, 389), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8985{"evdotp4hxgasmi", VX (4, 390), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8986{"evdotp4hxgasmf", VX (4, 391), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8987{"evdotpbaumi", VX (4, 392), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8988{"evdotpbasmi", VX (4, 393), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8989{"evdotpbasumi", VX (4, 394), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8990{"evdotp4hxgssmi", VX (4, 398), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8991{"evdotp4hxgssmf", VX (4, 399), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8992{"evdotp4hgaumiaa3", VX (4, 400), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8993{"evdotp4hgasmiaa3", VX (4, 401), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8994{"evdotp4hgasumiaa3", VX (4, 402), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8995{"evdotp4hgasmfaa3", VX (4, 403), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8996{"evdotp4hgssmiaa3", VX (4, 404), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8997{"evdotp4hgssmfaa3", VX (4, 405), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8998{"evdotp4hxgasmiaa3", VX (4, 406), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8999{"evdotp4hxgasmfaa3", VX (4, 407), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9000{"evdotpbaumiaaw3", VX (4, 408), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9001{"evdotpbasmiaaw3", VX (4, 409), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9002{"evdotpbasumiaaw3", VX (4, 410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9003{"evdotp4hxgssmiaa3", VX (4, 414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9004{"evdotp4hxgssmfaa3", VX (4, 415), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9005{"evdotp4hgaumia", VX (4, 416), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9006{"evdotp4hgasmia", VX (4, 417), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9007{"evdotp4hgasumia", VX (4, 418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9008{"evdotp4hgasmfa", VX (4, 419), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9009{"evdotp4hgssmia", VX (4, 420), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9010{"evdotp4hgssmfa", VX (4, 421), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9011{"evdotp4hxgasmia", VX (4, 422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9012{"evdotp4hxgasmfa", VX (4, 423), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9013{"evdotpbaumia", VX (4, 424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9014{"evdotpbasmia", VX (4, 425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9015{"evdotpbasumia", VX (4, 426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9016{"evdotp4hxgssmia", VX (4, 430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9017{"evdotp4hxgssmfa", VX (4, 431), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9018{"evdotp4hgaumiaa", VX (4, 432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9019{"evdotp4hgasmiaa", VX (4, 433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9020{"evdotp4hgasumiaa", VX (4, 434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9021{"evdotp4hgasmfaa", VX (4, 435), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9022{"evdotp4hgssmiaa", VX (4, 436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9023{"evdotp4hgssmfaa", VX (4, 437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9024{"evdotp4hxgasmiaa", VX (4, 438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9025{"evdotp4hxgasmfaa", VX (4, 439), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9026{"evdotpbaumiaaw", VX (4, 440), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9027{"evdotpbasmiaaw", VX (4, 441), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9028{"evdotpbasumiaaw", VX (4, 442), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9029{"evdotp4hxgssmiaa", VX (4, 446), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9030{"evdotp4hxgssmfaa", VX (4, 447), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9031{"evdotpwausi", VX (4, 448), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9032{"evdotpwassi", VX (4, 449), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9033{"evdotpwasusi", VX (4, 450), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9034{"evdotpwaumi", VX (4, 456), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9035{"evdotpwasmi", VX (4, 457), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9036{"evdotpwasumi", VX (4, 458), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9037{"evdotpwssmi", VX (4, 461), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9038{"evdotpwausiaa3", VX (4, 464), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9039{"evdotpwassiaa3", VX (4, 465), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9040{"evdotpwasusiaa3", VX (4, 466), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9041{"evdotpwsssiaa3", VX (4, 469), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9042{"evdotpwaumiaa3", VX (4, 472), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9043{"evdotpwasmiaa3", VX (4, 473), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9044{"evdotpwasumiaa3", VX (4, 474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9045{"evdotpwssmiaa3", VX (4, 477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9046{"evdotpwausia", VX (4, 480), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9047{"evdotpwassia", VX (4, 481), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9048{"evdotpwasusia", VX (4, 482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9049{"evdotpwaumia", VX (4, 488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9050{"evdotpwasmia", VX (4, 489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9051{"evdotpwasumia", VX (4, 490), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9052{"evdotpwssmia", VX (4, 493), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9053{"evdotpwausiaa", VX (4, 496), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9054{"evdotpwassiaa", VX (4, 497), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9055{"evdotpwasusiaa", VX (4, 498), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9056{"evdotpwsssiaa", VX (4, 501), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9057{"evdotpwaumiaa", VX (4, 504), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9058{"evdotpwasmiaa", VX (4, 505), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9059{"evdotpwasumiaa", VX (4, 506), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9060{"evdotpwssmiaa", VX (4, 509), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9061{"evaddib", VX (4, 515), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
9062{"evaddih", VX (4, 513), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
9063{"evsubifh", VX (4, 517), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
9064{"evsubifb", VX (4, 519), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
9065{"evabsb", VX_RB_CONST(4, 520, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9066{"evabsh", VX_RB_CONST(4, 520, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9067{"evabsd", VX_RB_CONST(4, 520, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9068{"evabss", VX_RB_CONST(4, 520, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9069{"evabsbs", VX_RB_CONST(4, 520, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9070{"evabshs", VX_RB_CONST(4, 520, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9071{"evabsds", VX_RB_CONST(4, 520, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9072{"evnegwo", VX_RB_CONST(4, 521, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9073{"evnegb", VX_RB_CONST(4, 521, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9074{"evnegbo", VX_RB_CONST(4, 521, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9075{"evnegh", VX_RB_CONST(4, 521, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9076{"evnegho", VX_RB_CONST(4, 521, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9077{"evnegd", VX_RB_CONST(4, 521, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9078{"evnegs", VX_RB_CONST(4, 521, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9079{"evnegwos", VX_RB_CONST(4, 521, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9080{"evnegbs", VX_RB_CONST(4, 521, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9081{"evnegbos", VX_RB_CONST(4, 521, 11), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9082{"evneghs", VX_RB_CONST(4, 521, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9083{"evneghos", VX_RB_CONST(4, 521, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9084{"evnegds", VX_RB_CONST(4, 521, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9085{"evextzb", VX_RB_CONST(4, 522, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9086{"evextsbh", VX_RB_CONST(4, 522, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9087{"evextsw", VX_RB_CONST(4, 523, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9088{"evrndwh", VX_RB_CONST(4, 524, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9089{"evrndhb", VX_RB_CONST(4, 524, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9090{"evrnddw", VX_RB_CONST(4, 524, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9091{"evrndwhus", VX_RB_CONST(4, 524, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9092{"evrndwhss", VX_RB_CONST(4, 524, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9093{"evrndhbus", VX_RB_CONST(4, 524, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9094{"evrndhbss", VX_RB_CONST(4, 524, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9095{"evrnddwus", VX_RB_CONST(4, 524, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9096{"evrnddwss", VX_RB_CONST(4, 524, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9097{"evrndwnh", VX_RB_CONST(4, 524, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9098{"evrndhnb", VX_RB_CONST(4, 524, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9099{"evrnddnw", VX_RB_CONST(4, 524, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9100{"evrndwnhus", VX_RB_CONST(4, 524, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9101{"evrndwnhss", VX_RB_CONST(4, 524, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9102{"evrndhnbus", VX_RB_CONST(4, 524, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9103{"evrndhnbss", VX_RB_CONST(4, 524, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9104{"evrnddnwus", VX_RB_CONST(4, 524, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9105{"evrnddnwss", VX_RB_CONST(4, 524, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9106{"evcntlzh", VX_RB_CONST(4, 525, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9107{"evcntlsh", VX_RB_CONST(4, 526, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9108{"evpopcntb", VX_RB_CONST(4, 526, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9109{"circinc", VX (4, 528), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9110{"evunpkhibui", VX_RB_CONST(4, 540, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9111{"evunpkhibsi", VX_RB_CONST(4, 540, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9112{"evunpkhihui", VX_RB_CONST(4, 540, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9113{"evunpkhihsi", VX_RB_CONST(4, 540, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9114{"evunpklobui", VX_RB_CONST(4, 540, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9115{"evunpklobsi", VX_RB_CONST(4, 540, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9116{"evunpklohui", VX_RB_CONST(4, 540, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9117{"evunpklohsi", VX_RB_CONST(4, 540, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9118{"evunpklohf", VX_RB_CONST(4, 540, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9119{"evunpkhihf", VX_RB_CONST(4, 540, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9120{"evunpklowgsf", VX_RB_CONST(4, 540, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9121{"evunpkhiwgsf", VX_RB_CONST(4, 540, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9122{"evsatsduw", VX_RB_CONST(4, 540, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9123{"evsatsdsw", VX_RB_CONST(4, 540, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9124{"evsatshub", VX_RB_CONST(4, 540, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9125{"evsatshsb", VX_RB_CONST(4, 540, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9126{"evsatuwuh", VX_RB_CONST(4, 540, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9127{"evsatswsh", VX_RB_CONST(4, 540, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9128{"evsatswuh", VX_RB_CONST(4, 540, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9129{"evsatuhub", VX_RB_CONST(4, 540, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9130{"evsatuduw", VX_RB_CONST(4, 540, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9131{"evsatuwsw", VX_RB_CONST(4, 540, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9132{"evsatshuh", VX_RB_CONST(4, 540, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9133{"evsatuhsh", VX_RB_CONST(4, 540, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9134{"evsatswuw", VX_RB_CONST(4, 540, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9135{"evsatswgsdf", VX_RB_CONST(4, 540, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9136{"evsatsbub", VX_RB_CONST(4, 540, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9137{"evsatubsb", VX_RB_CONST(4, 540, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9138{"evmaxhpuw", VX_RB_CONST(4, 541, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9139{"evmaxhpsw", VX_RB_CONST(4, 541, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9140{"evmaxbpuh", VX_RB_CONST(4, 541, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9141{"evmaxbpsh", VX_RB_CONST(4, 541, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9142{"evmaxwpud", VX_RB_CONST(4, 541, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9143{"evmaxwpsd", VX_RB_CONST(4, 541, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9144{"evminhpuw", VX_RB_CONST(4, 541, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9145{"evminhpsw", VX_RB_CONST(4, 541, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9146{"evminbpuh", VX_RB_CONST(4, 541, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9147{"evminbpsh", VX_RB_CONST(4, 541, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9148{"evminwpud", VX_RB_CONST(4, 541, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9149{"evminwpsd", VX_RB_CONST(4, 541, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9150{"evmaxmagws", VX (4, 543), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9151{"evsl", VX (4, 549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9152{"evsli", VX (4, 551), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
9153{"evsplatie", VX_RB_CONST (4, 553, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9154{"evsplatib", VX_RB_CONST (4, 553, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9155{"evsplatibe", VX_RB_CONST (4, 553, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9156{"evsplatih", VX_RB_CONST (4, 553, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9157{"evsplatihe", VX_RB_CONST (4, 553, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9158{"evsplatid", VX_RB_CONST (4, 553, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9159{"evsplatia", VX_RB_CONST (4, 553, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9160{"evsplatiea", VX_RB_CONST (4, 553, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9161{"evsplatiba", VX_RB_CONST (4, 553, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9162{"evsplatibea", VX_RB_CONST (4, 553, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9163{"evsplatiha", VX_RB_CONST (4, 553, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9164{"evsplatihea", VX_RB_CONST (4, 553, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9165{"evsplatida", VX_RB_CONST (4, 553, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9166{"evsplatfio", VX_RB_CONST (4, 555, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9167{"evsplatfib", VX_RB_CONST (4, 555, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9168{"evsplatfibo", VX_RB_CONST (4, 555, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9169{"evsplatfih", VX_RB_CONST (4, 555, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9170{"evsplatfiho", VX_RB_CONST (4, 555, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9171{"evsplatfid", VX_RB_CONST (4, 555, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9172{"evsplatfia", VX_RB_CONST (4, 555, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9173{"evsplatfioa", VX_RB_CONST (4, 555, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9174{"evsplatfiba", VX_RB_CONST (4, 555, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9175{"evsplatfiboa", VX_RB_CONST (4, 555, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9176{"evsplatfiha", VX_RB_CONST (4, 555, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9177{"evsplatfihoa", VX_RB_CONST (4, 555, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9178{"evsplatfida", VX_RB_CONST (4, 555, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9179{"evcmpgtdu", VX_SPE_CRFD (4, 560, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9180{"evcmpgtds", VX_SPE_CRFD (4, 561, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9181{"evcmpltdu", VX_SPE_CRFD (4, 562, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9182{"evcmpltds", VX_SPE_CRFD (4, 563, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9183{"evcmpeqd", VX_SPE_CRFD (4, 564, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9184{"evswapbhilo", VX (4, 568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9185{"evswapblohi", VX (4, 569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9186{"evswaphhilo", VX (4, 570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9187{"evswaphlohi", VX (4, 571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9188{"evswaphe", VX (4, 572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9189{"evswaphhi", VX (4, 573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9190{"evswaphlo", VX (4, 574), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9191{"evswapho", VX (4, 575), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9192{"evinsb", VX (4, 584), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
9193{"evxtrb", VX (4, 586), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
9194{"evsplath", VX_SPE2_HH (4, 588, 0, 0), VX_SPE2_HH_MASK, PPCSPE2, 0, {RD, RA, HH}},
9195{"evsplatb", VX_SPE2_SPLATB (4, 588, 2), VX_SPE2_SPLATB_MASK, PPCSPE2, 0, {RD, RA, BBB}},
9196{"evinsh", VX_SPE2_DDHH (4, 589, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
9197{"evclrbe", VX_SPE2_CLR (4, 590, 0), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
9198{"evclrbo", VX_SPE2_CLR (4, 590, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
9199{"evclrh", VX_SPE2_CLR (4, 591, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
9200{"evxtrh", VX_SPE2_DDHH (4, 591, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
9201{"evselbitm0", VX (4, 592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9202{"evselbitm1", VX (4, 593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9203{"evselbit", VX (4, 594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9204{"evperm", VX (4, 596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9205{"evperm2", VX (4, 597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9206{"evperm3", VX (4, 598), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9207{"evxtrd", VX (4, 600), VX_OFF_SPE2_MASK, PPCSPE2, 0, {RD, RA, RB, VX_OFF_SPE2}},
9208{"evsrbu", VX (4, 608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9209{"evsrbs", VX (4, 609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9210{"evsrbiu", VX (4, 610), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9211{"evsrbis", VX (4, 611), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9212{"evslb", VX (4, 612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9213{"evrlb", VX (4, 613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9214{"evslbi", VX (4, 614), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9215{"evrlbi", VX (4, 615), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9216{"evsrhu", VX (4, 616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9217{"evsrhs", VX (4, 617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9218{"evsrhiu", VX (4, 618), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9219{"evsrhis", VX (4, 619), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9220{"evslh", VX (4, 620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9221{"evrlh", VX (4, 621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9222{"evslhi", VX (4, 622), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9223{"evrlhi", VX (4, 623), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9224{"evsru", VX (4, 624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9225{"evsrs", VX (4, 625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9226{"evsriu", VX (4, 626), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
9227{"evsris", VX (4, 627), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
9228{"evlvsl", VX (4, 628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9229{"evlvsr", VX (4, 629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9230{"evsroiu", VX_SPE2_OCTET (4, 631, 0), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
9231{"evsrois", VX_SPE2_OCTET (4, 631, 1), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
9232{"evsloi", VX_SPE2_OCTET (4, 631, 2), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
9233{"evldbx", VX (4, 774), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9234{"evldb", VX (4, 775), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8, RA}},
9235{"evlhhsplathx", VX (4, 778), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9236{"evlhhsplath", VX (4, 779), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2, RA}},
9237{"evlwbsplatwx", VX (4, 786), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9238{"evlwbsplatw", VX (4, 787), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9239{"evlwhsplatwx", VX (4, 794), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9240{"evlwhsplatw", VX (4, 795), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9241{"evlbbsplatbx", VX (4, 798), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9242{"evlbbsplatb", VX (4, 799), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1, RA}},
9243{"evstdbx", VX (4, 806), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9244{"evstdb", VX (4, 807), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8, RA}},
9245{"evlwbex", VX (4, 810), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9246{"evlwbe", VX (4, 811), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9247{"evlwboux", VX (4, 812), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9248{"evlwbou", VX (4, 813), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9249{"evlwbosx", VX (4, 814), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9250{"evlwbos", VX (4, 815), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9251{"evstwbex", VX (4, 818), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9252{"evstwbe", VX (4, 819), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
9253{"evstwbox", VX (4, 822), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9254{"evstwbo", VX (4, 823), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
9255{"evstwbx", VX (4, 826), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9256{"evstwb", VX (4, 827), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
9257{"evsthbx", VX (4, 830), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9258{"evsthb", VX (4, 831), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2, RA}},
9259{"evlddmx", VX (4, 832), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9260{"evlddu", VX (4, 833), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9261{"evldwmx", VX (4, 834), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9262{"evldwu", VX (4, 835), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9263{"evldhmx", VX (4, 836), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9264{"evldhu", VX (4, 837), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9265{"evldbmx", VX (4, 838), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9266{"evldbu", VX (4, 839), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9267{"evlhhesplatmx", VX (4, 840), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9268{"evlhhesplatu", VX (4, 841), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9269{"evlhhsplathmx", VX (4, 842), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9270{"evlhhsplathu", VX (4, 843), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9271{"evlhhousplatmx", VX (4, 844), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9272{"evlhhousplatu", VX (4, 845), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9273{"evlhhossplatmx", VX (4, 846), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9274{"evlhhossplatu", VX (4, 847), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9275{"evlwhemx", VX (4, 848), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9276{"evlwheu", VX (4, 849), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9277{"evlwbsplatwmx", VX (4, 850), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9278{"evlwbsplatwu", VX (4, 851), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9279{"evlwhoumx", VX (4, 852), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9280{"evlwhouu", VX (4, 853), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9281{"evlwhosmx", VX (4, 854), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9282{"evlwhosu", VX (4, 855), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9283{"evlwwsplatmx", VX (4, 856), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9284{"evlwwsplatu", VX (4, 857), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9285{"evlwhsplatwmx", VX (4, 858), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9286{"evlwhsplatwu", VX (4, 859), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9287{"evlwhsplatmx", VX (4, 860), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9288{"evlwhsplatu", VX (4, 861), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9289{"evlbbsplatbmx", VX (4, 862), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9290{"evlbbsplatbu", VX (4, 863), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1_EX0, RA}},
9291{"evstddmx", VX (4, 864), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9292{"evstddu", VX (4, 865), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9293{"evstdwmx", VX (4, 866), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9294{"evstdwu", VX (4, 867), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9295{"evstdhmx", VX (4, 868), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9296{"evstdhu", VX (4, 869), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9297{"evstdbmx", VX (4, 870), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9298{"evstdbu", VX (4, 871), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9299{"evlwbemx", VX (4, 874), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9300{"evlwbeu", VX (4, 875), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9301{"evlwboumx", VX (4, 876), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9302{"evlwbouu", VX (4, 877), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9303{"evlwbosmx", VX (4, 878), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9304{"evlwbosu", VX (4, 879), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9305{"evstwhemx", VX (4, 880), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9306{"evstwheu", VX (4, 881), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9307{"evstwbemx", VX (4, 882), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9308{"evstwbeu", VX (4, 883), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9309{"evstwhomx", VX (4, 884), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9310{"evstwhou", VX (4, 885), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9311{"evstwbomx", VX (4, 886), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9312{"evstwbou", VX (4, 887), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9313{"evstwwemx", VX (4, 888), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9314{"evstwweu", VX (4, 889), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9315{"evstwbmx", VX (4, 890), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9316{"evstwbu", VX (4, 891), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9317{"evstwwomx", VX (4, 892), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9318{"evstwwou", VX (4, 893), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9319{"evsthbmx", VX (4, 894), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9320{"evsthbu", VX (4, 895), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2_EX0, RA}},
9321{"evmhusi", VX (4, 1024), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9322{"evmhssi", VX (4, 1025), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9323{"evmhsusi", VX (4, 1026), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9324{"evmhssf", VX (4, 1028), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9325{"evmhumi", VX (4, 1029), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9326{"evmhssfr", VX (4, 1030), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9327{"evmhesumi", VX (4, 1034), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9328{"evmhosumi", VX (4, 1038), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9329{"evmbeumi", VX (4, 1048), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9330{"evmbesmi", VX (4, 1049), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9331{"evmbesumi", VX (4, 1050), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9332{"evmboumi", VX (4, 1052), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9333{"evmbosmi", VX (4, 1053), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9334{"evmbosumi", VX (4, 1054), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9335{"evmhesumia", VX (4, 1066), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9336{"evmhosumia", VX (4, 1070), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9337{"evmbeumia", VX (4, 1080), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9338{"evmbesmia", VX (4, 1081), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9339{"evmbesumia", VX (4, 1082), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9340{"evmboumia", VX (4, 1084), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9341{"evmbosmia", VX (4, 1085), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9342{"evmbosumia", VX (4, 1086), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9343{"evmwusiw", VX (4, 1088), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9344{"evmwssiw", VX (4, 1089), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9345{"evmwhssfr", VX (4, 1094), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9346{"evmwehgsmfr", VX (4, 1110), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9347{"evmwehgsmf", VX (4, 1111), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9348{"evmwohgsmfr", VX (4, 1118), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9349{"evmwohgsmf", VX (4, 1119), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9350{"evmwhssfra", VX (4, 1126), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9351{"evmwehgsmfra", VX (4, 1142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9352{"evmwehgsmfa", VX (4, 1143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9353{"evmwohgsmfra", VX (4, 1150), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9354{"evmwohgsmfa", VX (4, 1151), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9355{"evaddusiaa", VX_RB_CONST(4, 1152, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9356{"evaddssiaa", VX_RB_CONST(4, 1153, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9357{"evsubfusiaa", VX_RB_CONST(4, 1154, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9358{"evsubfssiaa", VX_RB_CONST(4, 1155, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9359{"evaddsmiaa", VX_RB_CONST(4, 1156, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9360{"evsubfsmiaa", VX_RB_CONST(4, 1158, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9361{"evaddh", VX (4, 1160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9362{"evaddhss", VX (4, 1161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9363{"evsubfh", VX (4, 1162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9364{"evsubfhss", VX (4, 1163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9365{"evaddhx", VX (4, 1164), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9366{"evaddhxss", VX (4, 1165), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9367{"evsubfhx", VX (4, 1166), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9368{"evsubfhxss", VX (4, 1167), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9369{"evaddd", VX (4, 1168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9370{"evadddss", VX (4, 1169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9371{"evsubfd", VX (4, 1170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9372{"evsubfdss", VX (4, 1171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9373{"evaddb", VX (4, 1172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9374{"evaddbss", VX (4, 1173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9375{"evsubfb", VX (4, 1174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9376{"evsubfbss", VX (4, 1175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9377{"evaddsubfh", VX (4, 1176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9378{"evaddsubfhss", VX (4, 1177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9379{"evsubfaddh", VX (4, 1178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9380{"evsubfaddhss", VX (4, 1179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9381{"evaddsubfhx", VX (4, 1180), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9382{"evaddsubfhxss", VX (4, 1181), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9383{"evsubfaddhx", VX (4, 1182), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9384{"evsubfaddhxss", VX (4, 1183), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9385{"evadddus", VX (4, 1184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9386{"evaddbus", VX (4, 1185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9387{"evsubfdus", VX (4, 1186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9388{"evsubfbus", VX (4, 1187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9389{"evaddwus", VX (4, 1188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9390{"evaddwxus", VX (4, 1189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9391{"evsubfwus", VX (4, 1190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9392{"evsubfwxus", VX (4, 1191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9393{"evadd2subf2h", VX (4, 1192), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9394{"evadd2subf2hss", VX (4, 1193), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9395{"evsubf2add2h", VX (4, 1194), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9396{"evsubf2add2hss", VX (4, 1195), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9397{"evaddhus", VX (4, 1196), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9398{"evaddhxus", VX (4, 1197), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9399{"evsubfhus", VX (4, 1198), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9400{"evsubfhxus", VX (4, 1199), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9401{"evaddwss", VX (4, 1201), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9402{"evsubfwss", VX (4, 1203), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9403{"evaddwx", VX (4, 1204), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9404{"evaddwxss", VX (4, 1205), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9405{"evsubfwx", VX (4, 1206), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9406{"evsubfwxss", VX (4, 1207), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9407{"evaddsubfw", VX (4, 1208), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9408{"evaddsubfwss", VX (4, 1209), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9409{"evsubfaddw", VX (4, 1210), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9410{"evsubfaddwss", VX (4, 1211), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9411{"evaddsubfwx", VX (4, 1212), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9412{"evaddsubfwxss", VX (4, 1213), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9413{"evsubfaddwx", VX (4, 1214), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9414{"evsubfaddwxss", VX (4, 1215), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9415{"evmar", VX_SPE2_EVMAR (4, 1220), VX_SPE2_EVMAR_MASK, PPCSPE2, 0, {RD}},
9416{"evsumwu", VX_RB_CONST(4, 1221, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9417{"evsumws", VX_RB_CONST(4, 1221, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9418{"evsum4bu", VX_RB_CONST(4, 1221, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9419{"evsum4bs", VX_RB_CONST(4, 1221, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9420{"evsum2hu", VX_RB_CONST(4, 1221, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9421{"evsum2hs", VX_RB_CONST(4, 1221, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9422{"evdiff2his", VX_RB_CONST(4, 1221, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9423{"evsum2his", VX_RB_CONST(4, 1221, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9424{"evsumwua", VX_RB_CONST(4, 1221, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9425{"evsumwsa", VX_RB_CONST(4, 1221, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9426{"evsum4bua", VX_RB_CONST(4, 1221, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9427{"evsum4bsa", VX_RB_CONST(4, 1221, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9428{"evsum2hua", VX_RB_CONST(4, 1221, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9429{"evsum2hsa", VX_RB_CONST(4, 1221, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9430{"evdiff2hisa", VX_RB_CONST(4, 1221, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9431{"evsum2hisa", VX_RB_CONST(4, 1221, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9432{"evsumwuaa", VX_RB_CONST(4, 1221, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9433{"evsumwsaa", VX_RB_CONST(4, 1221, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9434{"evsum4buaaw", VX_RB_CONST(4, 1221, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9435{"evsum4bsaaw", VX_RB_CONST(4, 1221, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9436{"evsum2huaaw", VX_RB_CONST(4, 1221, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9437{"evsum2hsaaw", VX_RB_CONST(4, 1221, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9438{"evdiff2hisaaw", VX_RB_CONST(4, 1221, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9439{"evsum2hisaaw", VX_RB_CONST(4, 1221, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9440{"evdivwsf", VX (4, 1228), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9441{"evdivwuf", VX (4, 1229), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9442{"evdivs", VX (4, 1230), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9443{"evdivu", VX (4, 1231), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9444{"evaddwegsi", VX (4, 1232), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9445{"evaddwegsf", VX (4, 1233), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9446{"evsubfwegsi", VX (4, 1234), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9447{"evsubfwegsf", VX (4, 1235), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9448{"evaddwogsi", VX (4, 1236), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9449{"evaddwogsf", VX (4, 1237), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9450{"evsubfwogsi", VX (4, 1238), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9451{"evsubfwogsf", VX (4, 1239), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9452{"evaddhhiuw", VX (4, 1240), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9453{"evaddhhisw", VX (4, 1241), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9454{"evsubfhhiuw", VX (4, 1242), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9455{"evsubfhhisw", VX (4, 1243), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9456{"evaddhlouw", VX (4, 1244), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9457{"evaddhlosw", VX (4, 1245), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9458{"evsubfhlouw", VX (4, 1246), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9459{"evsubfhlosw", VX (4, 1247), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9460{"evmhesusiaaw", VX (4, 1282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9461{"evmhosusiaaw", VX (4, 1286), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9462{"evmhesumiaaw", VX (4, 1290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9463{"evmhosumiaaw", VX (4, 1294), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9464{"evmbeusiaah", VX (4, 1296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9465{"evmbessiaah", VX (4, 1297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9466{"evmbesusiaah", VX (4, 1298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9467{"evmbousiaah", VX (4, 1300), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9468{"evmbossiaah", VX (4, 1301), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9469{"evmbosusiaah", VX (4, 1302), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9470{"evmbeumiaah", VX (4, 1304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9471{"evmbesmiaah", VX (4, 1305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9472{"evmbesumiaah", VX (4, 1306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9473{"evmboumiaah", VX (4, 1308), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9474{"evmbosmiaah", VX (4, 1309), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9475{"evmbosumiaah", VX (4, 1310), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9476{"evmwlusiaaw3", VX (4, 1346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9477{"evmwlssiaaw3", VX (4, 1347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9478{"evmwhssfraaw3", VX (4, 1348), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9479{"evmwhssfaaw3", VX (4, 1349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9480{"evmwhssfraaw", VX (4, 1350), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9481{"evmwhssfaaw", VX (4, 1351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9482{"evmwlumiaaw3", VX (4, 1354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9483{"evmwlsmiaaw3", VX (4, 1355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9484{"evmwusiaa", VX (4, 1360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9485{"evmwssiaa", VX (4, 1361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9486{"evmwehgsmfraa", VX (4, 1366), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9487{"evmwehgsmfaa", VX (4, 1367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9488{"evmwohgsmfraa", VX (4, 1374), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9489{"evmwohgsmfaa", VX (4, 1375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9490{"evmhesusianw", VX (4, 1410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9491{"evmhosusianw", VX (4, 1414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9492{"evmhesumianw", VX (4, 1418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9493{"evmhosumianw", VX (4, 1422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9494{"evmbeusianh", VX (4, 1424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9495{"evmbessianh", VX (4, 1425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9496{"evmbesusianh", VX (4, 1426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9497{"evmbousianh", VX (4, 1428), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9498{"evmbossianh", VX (4, 1429), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9499{"evmbosusianh", VX (4, 1430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9500{"evmbeumianh", VX (4, 1432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9501{"evmbesmianh", VX (4, 1433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9502{"evmbesumianh", VX (4, 1434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9503{"evmboumianh", VX (4, 1436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9504{"evmbosmianh", VX (4, 1437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9505{"evmbosumianh", VX (4, 1438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9506{"evmwlusianw3", VX (4, 1474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9507{"evmwlssianw3", VX (4, 1475), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9508{"evmwhssfranw3", VX (4, 1476), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9509{"evmwhssfanw3", VX (4, 1477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9510{"evmwhssfranw", VX (4, 1478), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9511{"evmwhssfanw", VX (4, 1479), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9512{"evmwlumianw3", VX (4, 1482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9513{"evmwlsmianw3", VX (4, 1483), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9514{"evmwusian", VX (4, 1488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9515{"evmwssian", VX (4, 1489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9516{"evmwehgsmfran", VX (4, 1494), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9517{"evmwehgsmfan", VX (4, 1495), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9518{"evmwohgsmfran", VX (4, 1502), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9519{"evmwohgsmfan", VX (4, 1503), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9520{"evseteqb", VX (4, 1536), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9521{"evseteqb.", VX (4, 1537), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9522{"evseteqh", VX (4, 1538), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9523{"evseteqh.", VX (4, 1539), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9524{"evseteqw", VX (4, 1540), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9525{"evseteqw.", VX (4, 1541), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9526{"evsetgthu", VX (4, 1544), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9527{"evsetgthu.", VX (4, 1545), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9528{"evsetgths", VX (4, 1546), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9529{"evsetgths.", VX (4, 1547), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9530{"evsetgtwu", VX (4, 1548), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9531{"evsetgtwu.", VX (4, 1549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9532{"evsetgtws", VX (4, 1550), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9533{"evsetgtws.", VX (4, 1551), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9534{"evsetgtbu", VX (4, 1552), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9535{"evsetgtbu.", VX (4, 1553), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9536{"evsetgtbs", VX (4, 1554), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9537{"evsetgtbs.", VX (4, 1555), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9538{"evsetltbu", VX (4, 1556), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9539{"evsetltbu.", VX (4, 1557), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9540{"evsetltbs", VX (4, 1558), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9541{"evsetltbs.", VX (4, 1559), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9542{"evsetlthu", VX (4, 1560), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9543{"evsetlthu.", VX (4, 1561), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9544{"evsetlths", VX (4, 1562), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9545{"evsetlths.", VX (4, 1563), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9546{"evsetltwu", VX (4, 1564), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9547{"evsetltwu.", VX (4, 1565), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9548{"evsetltws", VX (4, 1566), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9549{"evsetltws.", VX (4, 1567), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9550{"evsaduw", VX (4, 1568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9551{"evsadsw", VX (4, 1569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9552{"evsad4ub", VX (4, 1570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9553{"evsad4sb", VX (4, 1571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9554{"evsad2uh", VX (4, 1572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9555{"evsad2sh", VX (4, 1573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9556{"evsaduwa", VX (4, 1576), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9557{"evsadswa", VX (4, 1577), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9558{"evsad4uba", VX (4, 1578), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9559{"evsad4sba", VX (4, 1579), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9560{"evsad2uha", VX (4, 1580), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9561{"evsad2sha", VX (4, 1581), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9562{"evabsdifuw", VX (4, 1584), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9563{"evabsdifsw", VX (4, 1585), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9564{"evabsdifub", VX (4, 1586), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9565{"evabsdifsb", VX (4, 1587), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9566{"evabsdifuh", VX (4, 1588), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9567{"evabsdifsh", VX (4, 1589), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9568{"evsaduwaa", VX (4, 1592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9569{"evsadswaa", VX (4, 1593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9570{"evsad4ubaaw", VX (4, 1594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9571{"evsad4sbaaw", VX (4, 1595), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9572{"evsad2uhaaw", VX (4, 1596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9573{"evsad2shaaw", VX (4, 1597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9574{"evpkshubs", VX (4, 1600), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9575{"evpkshsbs", VX (4, 1601), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9576{"evpkswuhs", VX (4, 1602), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9577{"evpkswshs", VX (4, 1603), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9578{"evpkuhubs", VX (4, 1604), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9579{"evpkuwuhs", VX (4, 1605), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9580{"evpkswshilvs", VX (4, 1606), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9581{"evpkswgshefrs", VX (4, 1607), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9582{"evpkswshfrs", VX (4, 1608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9583{"evpkswshilvfrs", VX (4, 1609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9584{"evpksdswfrs", VX (4, 1610), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9585{"evpksdshefrs", VX (4, 1611), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9586{"evpkuduws", VX (4, 1612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9587{"evpksdsws", VX (4, 1613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9588{"evpkswgswfrs", VX (4, 1614), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9589{"evilveh", VX (4, 1616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9590{"evilveoh", VX (4, 1617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9591{"evilvhih", VX (4, 1618), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9592{"evilvhiloh", VX (4, 1619), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9593{"evilvloh", VX (4, 1620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9594{"evilvlohih", VX (4, 1621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9595{"evilvoeh", VX (4, 1622), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9596{"evilvoh", VX (4, 1623), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9597{"evdlveb", VX (4, 1624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9598{"evdlveh", VX (4, 1625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9599{"evdlveob", VX (4, 1626), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9600{"evdlveoh", VX (4, 1627), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9601{"evdlvob", VX (4, 1628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9602{"evdlvoh", VX (4, 1629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9603{"evdlvoeb", VX (4, 1630), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9604{"evdlvoeh", VX (4, 1631), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9605{"evmaxbu", VX (4, 1632), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9606{"evmaxbs", VX (4, 1633), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9607{"evmaxhu", VX (4, 1634), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9608{"evmaxhs", VX (4, 1635), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9609{"evmaxwu", VX (4, 1636), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9610{"evmaxws", VX (4, 1637), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9611{"evmaxdu", VX (4, 1638), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9612{"evmaxds", VX (4, 1639), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9613{"evminbu", VX (4, 1640), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9614{"evminbs", VX (4, 1641), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9615{"evminhu", VX (4, 1642), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9616{"evminhs", VX (4, 1643), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9617{"evminwu", VX (4, 1644), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9618{"evminws", VX (4, 1645), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9619{"evmindu", VX (4, 1646), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9620{"evminds", VX (4, 1647), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9621{"evavgwu", VX (4, 1648), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9622{"evavgws", VX (4, 1649), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9623{"evavgbu", VX (4, 1650), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9624{"evavgbs", VX (4, 1651), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9625{"evavghu", VX (4, 1652), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9626{"evavghs", VX (4, 1653), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9627{"evavgdu", VX (4, 1654), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9628{"evavgds", VX (4, 1655), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9629{"evavgwur", VX (4, 1656), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9630{"evavgwsr", VX (4, 1657), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9631{"evavgbur", VX (4, 1658), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9632{"evavgbsr", VX (4, 1659), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9633{"evavghur", VX (4, 1660), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9634{"evavghsr", VX (4, 1661), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9635{"evavgdur", VX (4, 1662), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9636{"evavgdsr", VX (4, 1663), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9637};
9638
2ceb7719 9639const unsigned int spe2_num_opcodes =
74081948 9640 sizeof (spe2_opcodes) / sizeof (spe2_opcodes[0]);