45ab0fd034b653b2b583739abee64dfb1e45257b
[deliverable/binutils-gdb.git] / opcodes / ppc-opc.c
1 /* ppc-opc.c -- PowerPC opcode list
2 Copyright (C) 1994-2020 Free Software Foundation, Inc.
3 Written by Ian Lance Taylor, Cygnus Support
4
5 This file is part of the GNU opcodes library.
6
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.
11
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.
16
17 You should have received a copy of the GNU General Public License
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. */
21
22 #include "sysdep.h"
23 #include <stdio.h>
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
32 the text segment.
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. */
37
38 /* The functions used to insert and extract complicated operands. */
39
40 /* The ARX, ARY, RX and RY operands are alternate encodings of GPRs. */
41
42 static uint64_t
43 insert_arx (uint64_t insn,
44 int64_t value,
45 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
46 const char **errmsg ATTRIBUTE_UNUSED)
47 {
48 value -= 8;
49 if (value < 0 || value >= 16)
50 {
51 *errmsg = _("invalid register");
52 value = 0xf;
53 }
54 return insn | value;
55 }
56
57 static int64_t
58 extract_arx (uint64_t insn,
59 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
60 int *invalid ATTRIBUTE_UNUSED)
61 {
62 return (insn & 0xf) + 8;
63 }
64
65 static uint64_t
66 insert_ary (uint64_t insn,
67 int64_t value,
68 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
69 const char **errmsg ATTRIBUTE_UNUSED)
70 {
71 value -= 8;
72 if (value < 0 || value >= 16)
73 {
74 *errmsg = _("invalid register");
75 value = 0xf;
76 }
77 return insn | (value << 4);
78 }
79
80 static int64_t
81 extract_ary (uint64_t insn,
82 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
83 int *invalid ATTRIBUTE_UNUSED)
84 {
85 return ((insn >> 4) & 0xf) + 8;
86 }
87
88 static uint64_t
89 insert_rx (uint64_t insn,
90 int64_t value,
91 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
92 const char **errmsg)
93 {
94 if (value >= 0 && value < 8)
95 ;
96 else if (value >= 24 && value <= 31)
97 value -= 16;
98 else
99 {
100 *errmsg = _("invalid register");
101 value = 0xf;
102 }
103 return insn | value;
104 }
105
106 static int64_t
107 extract_rx (uint64_t insn,
108 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
109 int *invalid ATTRIBUTE_UNUSED)
110 {
111 int64_t value = insn & 0xf;
112 if (value >= 0 && value < 8)
113 return value;
114 else
115 return value + 16;
116 }
117
118 static uint64_t
119 insert_ry (uint64_t insn,
120 int64_t value,
121 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
122 const char **errmsg)
123 {
124 if (value >= 0 && value < 8)
125 ;
126 else if (value >= 24 && value <= 31)
127 value -= 16;
128 else
129 {
130 *errmsg = _("invalid register");
131 value = 0xf;
132 }
133 return insn | (value << 4);
134 }
135
136 static int64_t
137 extract_ry (uint64_t insn,
138 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
139 int *invalid ATTRIBUTE_UNUSED)
140 {
141 int64_t value = (insn >> 4) & 0xf;
142 if (value >= 0 && value < 8)
143 return value;
144 else
145 return value + 16;
146 }
147
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. */
152
153 static uint64_t
154 insert_bab (uint64_t insn,
155 int64_t value,
156 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
157 const char **errmsg ATTRIBUTE_UNUSED)
158 {
159 value &= 0x1f;
160 return insn | (value << 16) | (value << 11);
161 }
162
163 static int64_t
164 extract_bab (uint64_t insn,
165 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
166 int *invalid)
167 {
168 int64_t ba = (insn >> 16) & 0x1f;
169 int64_t bb = (insn >> 11) & 0x1f;
170
171 if (ba != bb)
172 *invalid = 1;
173 return ba;
174 }
175
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. */
179
180 static uint64_t
181 insert_btab (uint64_t insn,
182 int64_t value,
183 ppc_cpu_t dialect,
184 const char **errmsg)
185 {
186 value &= 0x1f;
187 return (value << 21) | insert_bab (insn, value, dialect, errmsg);
188 }
189
190 static int64_t
191 extract_btab (uint64_t insn,
192 ppc_cpu_t dialect,
193 int *invalid)
194 {
195 int64_t bt = (insn >> 21) & 0x1f;
196 int64_t bab = extract_bab (insn, dialect, invalid);
197
198 if (bt != bab)
199 *invalid = 1;
200 return bt;
201 }
202
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. */
219
220 #define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
221
222 static uint64_t
223 insert_bdm (uint64_t insn,
224 int64_t value,
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 }
242
243 static int64_t
244 extract_bdm (uint64_t insn,
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 }
259
260 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
261 }
262
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. */
266
267 static uint64_t
268 insert_bdp (uint64_t insn,
269 int64_t value,
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 }
287
288 static int64_t
289 extract_bdp (uint64_t insn,
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 }
304
305 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
306 }
307
308 static inline int
309 valid_bo_pre_v2 (int64_t value)
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)
324 /* BO: 0000y, 0001y, 0100y, 0101y. */
325 return 1;
326 else if ((value & 0x14) == 0x4)
327 /* BO: 001zy, 011zy. */
328 return (value & 0x2) == 0;
329 else if ((value & 0x14) == 0x10)
330 /* BO: 1z00y, 1z01y. */
331 return (value & 0x8) == 0;
332 else
333 /* BO: 1z1zz. */
334 return value == 0x14;
335 }
336
337 static inline int
338 valid_bo_post_v2 (int64_t value)
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)
353 /* BO: 0000z, 0001z, 0100z, 0101z. */
354 return (value & 0x1) == 0;
355 else if ((value & 0x14) == 0x14)
356 /* BO: 1z1zz. */
357 return value == 0x14;
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;
364 else
365 return 1;
366 }
367
368 /* Check for legal values of a BO field. */
369
370 static int
371 valid_bo (int64_t value, ppc_cpu_t dialect, int extract)
372 {
373 int valid_y = valid_bo_pre_v2 (value);
374 int valid_at = valid_bo_post_v2 (value);
375
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 }
385
386 /* The BO field in a B form instruction. Warn about attempts to set
387 the field to an illegal value. */
388
389 static uint64_t
390 insert_bo (uint64_t insn,
391 int64_t value,
392 ppc_cpu_t dialect,
393 const char **errmsg)
394 {
395 if (!valid_bo (value, dialect, 0))
396 *errmsg = _("invalid conditional option");
397 else if (PPC_OP (insn) == 19
398 && (((insn >> 1) & 0x3ff) == 528) && ! (value & 4))
399 *errmsg = _("invalid counter access");
400 return insn | ((value & 0x1f) << 21);
401 }
402
403 static int64_t
404 extract_bo (uint64_t insn,
405 ppc_cpu_t dialect,
406 int *invalid)
407 {
408 int64_t value = (insn >> 21) & 0x1f;
409 if (!valid_bo (value, dialect, 1))
410 *invalid = 1;
411 return value;
412 }
413
414 /* For the given BO value, return a bit mask detailing which bits
415 define the branch hints. */
416
417 static int64_t
418 get_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. */
444
445 static uint64_t
446 insert_boe (uint64_t insn,
447 int64_t value,
448 ppc_cpu_t dialect,
449 const char **errmsg,
450 int branch_taken)
451 {
452 int64_t implied_hint;
453 int64_t hint_mask = get_bo_hint_mask (value, dialect);
454
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);
476 }
477
478 static int64_t
479 extract_boe (uint64_t insn,
480 ppc_cpu_t dialect,
481 int *invalid,
482 int branch_taken)
483 {
484 int64_t value = (insn >> 21) & 0x1f;
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)
496 *invalid = 1;
497 return value;
498 }
499
500 /* The BO field in a B form instruction when the - modifier is used. */
501
502 static uint64_t
503 insert_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
511 static int64_t
512 extract_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
521 static uint64_t
522 insert_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
530 static int64_t
531 extract_bop (uint64_t insn,
532 ppc_cpu_t dialect,
533 int *invalid)
534 {
535 return extract_boe (insn, dialect, invalid, 1);
536 }
537
538 /* The DCMX field in a X form instruction when the field is split
539 into separate DC, DM and DX fields. */
540
541 static uint64_t
542 insert_dcmxs (uint64_t insn,
543 int64_t value,
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 }
552
553 static int64_t
554 extract_dcmxs (uint64_t insn,
555 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
556 int *invalid ATTRIBUTE_UNUSED)
557 {
558 return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
559 }
560
561 /* The D field in a DX form instruction when the field is split
562 into separate D0, D1 and D2 fields. */
563
564 static uint64_t
565 insert_dxd (uint64_t insn,
566 int64_t value,
567 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
568 const char **errmsg ATTRIBUTE_UNUSED)
569 {
570 return insn | (value & 0xffc1) | ((value & 0x3e) << 15);
571 }
572
573 static int64_t
574 extract_dxd (uint64_t insn,
575 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
576 int *invalid ATTRIBUTE_UNUSED)
577 {
578 uint64_t dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e);
579 return (dxd ^ 0x8000) - 0x8000;
580 }
581
582 static uint64_t
583 insert_dxdn (uint64_t insn,
584 int64_t value,
585 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
586 const char **errmsg ATTRIBUTE_UNUSED)
587 {
588 return insert_dxd (insn, -value, dialect, errmsg);
589 }
590
591 static int64_t
592 extract_dxdn (uint64_t insn,
593 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
594 int *invalid)
595 {
596 return -extract_dxd (insn, dialect, invalid);
597 }
598
599 /* The D field in a 64-bit D form prefix instruction when the field is split
600 into separate D0 and D1 fields. */
601
602 static uint64_t
603 insert_d34 (uint64_t insn,
604 int64_t value,
605 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
606 const char **errmsg ATTRIBUTE_UNUSED)
607 {
608 return insn | ((value & 0x3ffff0000ULL) << 16) | (value & 0xffff);
609 }
610
611 static int64_t
612 extract_d34 (uint64_t insn,
613 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
614 int *invalid ATTRIBUTE_UNUSED)
615 {
616 int64_t mask = 1ULL << 33;
617 int64_t value = ((insn >> 16) & 0x3ffff0000ULL) | (insn & 0xffff);
618 value = (value ^ mask) - mask;
619 return value;
620 }
621
622 /* The NSI34 field in an 8-byte D form prefix instruction. This is the same
623 as the SI34 field, only negated. The extraction function always marks it
624 as invalid, since we never want to recognize an instruction which uses
625 a field of this type. */
626
627 static uint64_t
628 insert_nsi34 (uint64_t insn,
629 int64_t value,
630 ppc_cpu_t dialect,
631 const char **errmsg)
632 {
633 return insert_d34 (insn, -value, dialect, errmsg);
634 }
635
636 static int64_t
637 extract_nsi34 (uint64_t insn,
638 ppc_cpu_t dialect,
639 int *invalid)
640 {
641 int64_t value = extract_d34 (insn, dialect, invalid);
642 *invalid = 1;
643 return -value;
644 }
645
646 /* The split IMM32 field in a vector splat insn. */
647
648 static uint64_t
649 insert_imm32 (uint64_t insn,
650 int64_t value,
651 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
652 const char **errmsg ATTRIBUTE_UNUSED)
653 {
654 return insn | ((value & 0xffff0000) << 16) | (value & 0xffff);
655 }
656
657 static int64_t
658 extract_imm32 (uint64_t insn,
659 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
660 int *invalid ATTRIBUTE_UNUSED)
661 {
662 return (insn & 0xffff) | ((insn >> 16) & 0xffff0000);
663 }
664
665 /* The R field in an 8-byte prefix instruction when there are restrictions
666 between R's value and the RA value (ie, they cannot both be non zero). */
667
668 static uint64_t
669 insert_pcrel (uint64_t insn,
670 int64_t value,
671 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
672 const char **errmsg)
673 {
674 value &= 0x1;
675 int64_t ra = (insn >> 16) & 0x1f;
676 if (ra != 0 && value != 0)
677 *errmsg = _("invalid R operand");
678
679 return insn | (value << 52);
680 }
681
682 static int64_t
683 extract_pcrel (uint64_t insn,
684 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
685 int *invalid)
686 {
687 /* If called with *invalid < 0 to return the value for missing
688 operands, *invalid will be the negative count of missing operands
689 including this one. Return a default value of 1 if the PRA0/PRAQ
690 operand was also omitted (ie. *invalid is -2). Return a default
691 value of 0 if the PRA0/PRAQ operand was not omitted
692 (ie. *invalid is -1). */
693 if (*invalid < 0)
694 return ~ *invalid & 1;
695
696 int64_t ra = (insn >> 16) & 0x1f;
697 int64_t pcrel = (insn >> 52) & 0x1;
698 if (ra != 0 && pcrel != 0)
699 *invalid = 1;
700
701 return pcrel;
702 }
703
704 /* Variant of extract_pcrel that sets invalid for R bit set. The idea
705 is to disassemble "paddi rt,0,offset,1" as "pla rt,offset". */
706
707 static int64_t
708 extract_pcrel0 (uint64_t insn,
709 ppc_cpu_t dialect,
710 int *invalid)
711 {
712 int64_t pcrel = extract_pcrel (insn, dialect, invalid);
713 if (pcrel)
714 *invalid = 1;
715 return pcrel;
716 }
717
718 /* FXM mask in mfcr and mtcrf instructions. */
719
720 static uint64_t
721 insert_fxm (uint64_t insn,
722 int64_t value,
723 ppc_cpu_t dialect,
724 const char **errmsg)
725 {
726 /* If we're handling the mfocrf and mtocrf insns ensure that exactly
727 one bit of the mask field is set. */
728 if ((insn & (1 << 20)) != 0)
729 {
730 if (value == 0 || (value & -value) != value)
731 {
732 *errmsg = _("invalid mask field");
733 value = 0;
734 }
735 }
736
737 /* If only one bit of the FXM field is set, we can use the new form
738 of the instruction, which is faster. Unlike the Power4 branch hint
739 encoding, this is not backward compatible. Do not generate the
740 new form unless -mpower4 has been given, or -many and the two
741 operand form of mfcr was used. */
742 else if (value > 0
743 && (value & -value) == value
744 && ((dialect & PPC_OPCODE_POWER4) != 0
745 || ((dialect & PPC_OPCODE_ANY) != 0
746 && (insn & (0x3ff << 1)) == 19 << 1)))
747 insn |= 1 << 20;
748
749 /* Any other value on mfcr is an error. */
750 else if ((insn & (0x3ff << 1)) == 19 << 1)
751 {
752 /* A value of -1 means we used the one operand form of
753 mfcr which is valid. */
754 if (value != -1)
755 *errmsg = _("invalid mfcr mask");
756 value = 0;
757 }
758
759 return insn | ((value & 0xff) << 12);
760 }
761
762 static int64_t
763 extract_fxm (uint64_t insn,
764 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
765 int *invalid)
766 {
767 /* Return a value of -1 for a missing optional operand, which is
768 used as a flag by insert_fxm. */
769 if (*invalid < 0)
770 return -1;
771
772 int64_t mask = (insn >> 12) & 0xff;
773 /* Is this a Power4 insn? */
774 if ((insn & (1 << 20)) != 0)
775 {
776 /* Exactly one bit of MASK should be set. */
777 if (mask == 0 || (mask & -mask) != mask)
778 *invalid = 1;
779 }
780
781 /* Check that non-power4 form of mfcr has a zero MASK. */
782 else if ((insn & (0x3ff << 1)) == 19 << 1)
783 {
784 if (mask != 0)
785 *invalid = 1;
786 else
787 mask = -1;
788 }
789
790 return mask;
791 }
792
793 /* L field in the paste. instruction. */
794
795 static uint64_t
796 insert_l1opt (uint64_t insn,
797 int64_t value,
798 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
799 const char **errmsg ATTRIBUTE_UNUSED)
800 {
801 return insn | ((value & 1) << 21);
802 }
803
804 static int64_t
805 extract_l1opt (uint64_t insn,
806 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
807 int *invalid)
808 {
809 /* Return a value of 1 for a missing optional operand. */
810 if (*invalid < 0)
811 return 1;
812
813 return (insn >> 21) & 1;
814 }
815
816 static uint64_t
817 insert_li20 (uint64_t insn,
818 int64_t value,
819 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
820 const char **errmsg ATTRIBUTE_UNUSED)
821 {
822 return (insn
823 | ((value & 0xf0000) >> 5)
824 | ((value & 0x0f800) << 5)
825 | (value & 0x7ff));
826 }
827
828 static int64_t
829 extract_li20 (uint64_t insn,
830 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
831 int *invalid ATTRIBUTE_UNUSED)
832 {
833 return ((((insn << 5) & 0xf0000)
834 | ((insn >> 5) & 0xf800)
835 | (insn & 0x7ff)) ^ 0x80000) - 0x80000;
836 }
837
838 /* The 2-bit L field in a SYNC or WC field in a WAIT instruction.
839 For SYNC, some L values are reserved:
840 * Value 3 is reserved on newer server cpus.
841 * Values 2 and 3 are reserved on all other cpus. */
842
843 static uint64_t
844 insert_ls (uint64_t insn,
845 int64_t value,
846 ppc_cpu_t dialect,
847 const char **errmsg)
848 {
849 /* For SYNC, some L values are illegal. */
850 if (((insn >> 1) & 0x3ff) == 598)
851 {
852 int64_t max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1;
853 if (value > max_lvalue)
854 *errmsg = _("illegal L operand value");
855 }
856
857 return insn | ((value & 0x3) << 21);
858 }
859
860 static int64_t
861 extract_ls (uint64_t insn,
862 ppc_cpu_t dialect,
863 int *invalid)
864 {
865 /* Missing optional operands have a value of zero. */
866 if (*invalid < 0)
867 return 0;
868
869 uint64_t lvalue = (insn >> 21) & 3;
870 if (((insn >> 1) & 0x3ff) == 598)
871 {
872 uint64_t max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1;
873 if (lvalue > max_lvalue)
874 *invalid = 1;
875 }
876 return lvalue;
877 }
878
879 /* The 4-bit E field in a sync instruction that accepts 2 operands.
880 If ESYNC is non-zero, then the L field must be either 0 or 1 and
881 the complement of ESYNC-bit2. */
882
883 static uint64_t
884 insert_esync (uint64_t insn,
885 int64_t value,
886 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
887 const char **errmsg)
888 {
889 uint64_t ls = (insn >> 21) & 0x03;
890
891 if (value != 0
892 && ((~value >> 1) & 0x1) != ls)
893 *errmsg = _("incompatible L operand value");
894
895 return insn | ((value & 0xf) << 16);
896 }
897
898 static int64_t
899 extract_esync (uint64_t insn,
900 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
901 int *invalid)
902 {
903 /* Missing optional operands have a value of zero. */
904 if (*invalid < 0)
905 return 0;
906
907 uint64_t ls = (insn >> 21) & 0x3;
908 uint64_t value = (insn >> 16) & 0xf;
909 if (value != 0
910 && ((~value >> 1) & 0x1) != ls)
911 *invalid = 1;
912 return value;
913 }
914
915 /* The MB and ME fields in an M form instruction expressed as a single
916 operand which is itself a bitmask. The extraction function always
917 marks it as invalid, since we never want to recognize an
918 instruction which uses a field of this type. */
919
920 static uint64_t
921 insert_mbe (uint64_t insn,
922 int64_t value,
923 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
924 const char **errmsg)
925 {
926 uint64_t uval, mask;
927 long mb, me, mx, count, last;
928
929 uval = value;
930
931 if (uval == 0)
932 {
933 *errmsg = _("illegal bitmask");
934 return insn;
935 }
936
937 mb = 0;
938 me = 32;
939 if ((uval & 1) != 0)
940 last = 1;
941 else
942 last = 0;
943 count = 0;
944
945 /* mb: location of last 0->1 transition */
946 /* me: location of last 1->0 transition */
947 /* count: # transitions */
948
949 for (mx = 0, mask = (uint64_t) 1 << 31; mx < 32; ++mx, mask >>= 1)
950 {
951 if ((uval & mask) && !last)
952 {
953 ++count;
954 mb = mx;
955 last = 1;
956 }
957 else if (!(uval & mask) && last)
958 {
959 ++count;
960 me = mx;
961 last = 0;
962 }
963 }
964 if (me == 0)
965 me = 32;
966
967 if (count != 2 && (count != 0 || ! last))
968 *errmsg = _("illegal bitmask");
969
970 return insn | (mb << 6) | ((me - 1) << 1);
971 }
972
973 static int64_t
974 extract_mbe (uint64_t insn,
975 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
976 int *invalid)
977 {
978 int64_t ret;
979 long mb, me;
980 long i;
981
982 *invalid = 1;
983
984 mb = (insn >> 6) & 0x1f;
985 me = (insn >> 1) & 0x1f;
986 if (mb < me + 1)
987 {
988 ret = 0;
989 for (i = mb; i <= me; i++)
990 ret |= (uint64_t) 1 << (31 - i);
991 }
992 else if (mb == me + 1)
993 ret = ~0;
994 else /* (mb > me + 1) */
995 {
996 ret = ~0;
997 for (i = me + 1; i < mb; i++)
998 ret &= ~((uint64_t) 1 << (31 - i));
999 }
1000 return ret;
1001 }
1002
1003 /* The MB or ME field in an MD or MDS form instruction. The high bit
1004 is wrapped to the low end. */
1005
1006 static uint64_t
1007 insert_mb6 (uint64_t insn,
1008 int64_t value,
1009 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1010 const char **errmsg ATTRIBUTE_UNUSED)
1011 {
1012 return insn | ((value & 0x1f) << 6) | (value & 0x20);
1013 }
1014
1015 static int64_t
1016 extract_mb6 (uint64_t insn,
1017 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1018 int *invalid ATTRIBUTE_UNUSED)
1019 {
1020 return ((insn >> 6) & 0x1f) | (insn & 0x20);
1021 }
1022
1023 /* The NB field in an X form instruction. The value 32 is stored as
1024 0. */
1025
1026 static int64_t
1027 extract_nb (uint64_t insn,
1028 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1029 int *invalid ATTRIBUTE_UNUSED)
1030 {
1031 int64_t ret;
1032
1033 ret = (insn >> 11) & 0x1f;
1034 if (ret == 0)
1035 ret = 32;
1036 return ret;
1037 }
1038
1039 /* The NB field in an lswi instruction, which has special value
1040 restrictions. The value 32 is stored as 0. */
1041
1042 static uint64_t
1043 insert_nbi (uint64_t insn,
1044 int64_t value,
1045 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1046 const char **errmsg ATTRIBUTE_UNUSED)
1047 {
1048 int64_t rtvalue = (insn >> 21) & 0x1f;
1049 int64_t ravalue = (insn >> 16) & 0x1f;
1050
1051 if (value == 0)
1052 value = 32;
1053 if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32
1054 : ravalue))
1055 *errmsg = _("address register in load range");
1056 return insn | ((value & 0x1f) << 11);
1057 }
1058
1059 /* The NSI field in a D form instruction. This is the same as the SI
1060 field, only negated. The extraction function always marks it as
1061 invalid, since we never want to recognize an instruction which uses
1062 a field of this type. */
1063
1064 static uint64_t
1065 insert_nsi (uint64_t insn,
1066 int64_t value,
1067 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1068 const char **errmsg ATTRIBUTE_UNUSED)
1069 {
1070 return insn | (-value & 0xffff);
1071 }
1072
1073 static int64_t
1074 extract_nsi (uint64_t insn,
1075 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1076 int *invalid)
1077 {
1078 *invalid = 1;
1079 return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
1080 }
1081
1082 /* The RA field in a D or X form instruction which is an updating
1083 load, which means that the RA field may not be zero and may not
1084 equal the RT field. */
1085
1086 static uint64_t
1087 insert_ral (uint64_t insn,
1088 int64_t value,
1089 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1090 const char **errmsg)
1091 {
1092 if (value == 0
1093 || (uint64_t) value == ((insn >> 21) & 0x1f))
1094 *errmsg = "invalid register operand when updating";
1095 return insn | ((value & 0x1f) << 16);
1096 }
1097
1098 static int64_t
1099 extract_ral (uint64_t insn,
1100 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1101 int *invalid)
1102 {
1103 int64_t rtvalue = (insn >> 21) & 0x1f;
1104 int64_t ravalue = (insn >> 16) & 0x1f;
1105
1106 if (rtvalue == ravalue || ravalue == 0)
1107 *invalid = 1;
1108 return ravalue;
1109 }
1110
1111 /* The RA field in an lmw instruction, which has special value
1112 restrictions. */
1113
1114 static uint64_t
1115 insert_ram (uint64_t insn,
1116 int64_t value,
1117 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1118 const char **errmsg)
1119 {
1120 if ((uint64_t) value >= ((insn >> 21) & 0x1f))
1121 *errmsg = _("index register in load range");
1122 return insn | ((value & 0x1f) << 16);
1123 }
1124
1125 static int64_t
1126 extract_ram (uint64_t insn,
1127 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1128 int *invalid)
1129 {
1130 uint64_t rtvalue = (insn >> 21) & 0x1f;
1131 uint64_t ravalue = (insn >> 16) & 0x1f;
1132
1133 if (ravalue >= rtvalue)
1134 *invalid = 1;
1135 return ravalue;
1136 }
1137
1138 /* The RA field in the DQ form lq or an lswx instruction, which have special
1139 value restrictions. */
1140
1141 static uint64_t
1142 insert_raq (uint64_t insn,
1143 int64_t value,
1144 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1145 const char **errmsg)
1146 {
1147 int64_t rtvalue = (insn >> 21) & 0x1f;
1148
1149 if (value == rtvalue)
1150 *errmsg = _("source and target register operands must be different");
1151 return insn | ((value & 0x1f) << 16);
1152 }
1153
1154 static int64_t
1155 extract_raq (uint64_t insn,
1156 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1157 int *invalid)
1158 {
1159 /* Missing optional operands have a value of zero. */
1160 if (*invalid < 0)
1161 return 0;
1162
1163 uint64_t rtvalue = (insn >> 21) & 0x1f;
1164 uint64_t ravalue = (insn >> 16) & 0x1f;
1165 if (ravalue == rtvalue)
1166 *invalid = 1;
1167 return ravalue;
1168 }
1169
1170 /* The RA field in a D or X form instruction which is an updating
1171 store or an updating floating point load, which means that the RA
1172 field may not be zero. */
1173
1174 static uint64_t
1175 insert_ras (uint64_t insn,
1176 int64_t value,
1177 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1178 const char **errmsg)
1179 {
1180 if (value == 0)
1181 *errmsg = _("invalid register operand when updating");
1182 return insn | ((value & 0x1f) << 16);
1183 }
1184
1185 static int64_t
1186 extract_ras (uint64_t insn,
1187 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1188 int *invalid)
1189 {
1190 uint64_t ravalue = (insn >> 16) & 0x1f;
1191
1192 if (ravalue == 0)
1193 *invalid = 1;
1194 return ravalue;
1195 }
1196
1197 /* The RS and RB fields in an X form instruction when they must be the same.
1198 This is used for extended mnemonics like mr. The extraction function
1199 enforces that the fields are the same. */
1200
1201 static uint64_t
1202 insert_rsb (uint64_t insn,
1203 int64_t value,
1204 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1205 const char **errmsg ATTRIBUTE_UNUSED)
1206 {
1207 value &= 0x1f;
1208 return insn | (value << 21) | (value << 11);
1209 }
1210
1211 static int64_t
1212 extract_rsb (uint64_t insn,
1213 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1214 int *invalid)
1215 {
1216 int64_t rs = (insn >> 21) & 0x1f;
1217 int64_t rb = (insn >> 11) & 0x1f;
1218
1219 if (rs != rb)
1220 *invalid = 1;
1221 return rs;
1222 }
1223
1224 /* The RB field in an lswx instruction, which has special value
1225 restrictions. */
1226
1227 static uint64_t
1228 insert_rbx (uint64_t insn,
1229 int64_t value,
1230 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1231 const char **errmsg)
1232 {
1233 int64_t rtvalue = (insn >> 21) & 0x1f;
1234
1235 if (value == rtvalue)
1236 *errmsg = _("source and target register operands must be different");
1237 return insn | ((value & 0x1f) << 11);
1238 }
1239
1240 static int64_t
1241 extract_rbx (uint64_t insn,
1242 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1243 int *invalid)
1244 {
1245 uint64_t rtvalue = (insn >> 21) & 0x1f;
1246 uint64_t rbvalue = (insn >> 11) & 0x1f;
1247
1248 if (rbvalue == rtvalue)
1249 *invalid = 1;
1250 return rbvalue;
1251 }
1252
1253 /* The SCI8 field is made up of SCL and {U,N}I8 fields. */
1254 static uint64_t
1255 insert_sci8 (uint64_t insn,
1256 int64_t value,
1257 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1258 const char **errmsg)
1259 {
1260 uint64_t fill_scale = 0;
1261 uint64_t ui8 = value;
1262
1263 if ((ui8 & 0xffffff00) == 0)
1264 ;
1265 else if ((ui8 & 0xffffff00) == 0xffffff00)
1266 fill_scale = 0x400;
1267 else if ((ui8 & 0xffff00ff) == 0)
1268 {
1269 fill_scale = 1 << 8;
1270 ui8 >>= 8;
1271 }
1272 else if ((ui8 & 0xffff00ff) == 0xffff00ff)
1273 {
1274 fill_scale = 0x400 | (1 << 8);
1275 ui8 >>= 8;
1276 }
1277 else if ((ui8 & 0xff00ffff) == 0)
1278 {
1279 fill_scale = 2 << 8;
1280 ui8 >>= 16;
1281 }
1282 else if ((ui8 & 0xff00ffff) == 0xff00ffff)
1283 {
1284 fill_scale = 0x400 | (2 << 8);
1285 ui8 >>= 16;
1286 }
1287 else if ((ui8 & 0x00ffffff) == 0)
1288 {
1289 fill_scale = 3 << 8;
1290 ui8 >>= 24;
1291 }
1292 else if ((ui8 & 0x00ffffff) == 0x00ffffff)
1293 {
1294 fill_scale = 0x400 | (3 << 8);
1295 ui8 >>= 24;
1296 }
1297 else
1298 {
1299 *errmsg = _("illegal immediate value");
1300 ui8 = 0;
1301 }
1302
1303 return insn | fill_scale | (ui8 & 0xff);
1304 }
1305
1306 static int64_t
1307 extract_sci8 (uint64_t insn,
1308 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1309 int *invalid ATTRIBUTE_UNUSED)
1310 {
1311 int64_t fill = insn & 0x400;
1312 int64_t scale_factor = (insn & 0x300) >> 5;
1313 int64_t value = (insn & 0xff) << scale_factor;
1314
1315 if (fill != 0)
1316 value |= ~((int64_t) 0xff << scale_factor);
1317 return value;
1318 }
1319
1320 static uint64_t
1321 insert_sci8n (uint64_t insn,
1322 int64_t value,
1323 ppc_cpu_t dialect,
1324 const char **errmsg)
1325 {
1326 return insert_sci8 (insn, -value, dialect, errmsg);
1327 }
1328
1329 static int64_t
1330 extract_sci8n (uint64_t insn,
1331 ppc_cpu_t dialect,
1332 int *invalid)
1333 {
1334 return -extract_sci8 (insn, dialect, invalid);
1335 }
1336
1337 static uint64_t
1338 insert_oimm (uint64_t insn,
1339 int64_t value,
1340 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1341 const char **errmsg ATTRIBUTE_UNUSED)
1342 {
1343 return insn | (((value - 1) & 0x1f) << 4);
1344 }
1345
1346 static int64_t
1347 extract_oimm (uint64_t insn,
1348 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1349 int *invalid ATTRIBUTE_UNUSED)
1350 {
1351 return ((insn >> 4) & 0x1f) + 1;
1352 }
1353
1354 /* The SH field in an MD form instruction. This is split. */
1355
1356 static uint64_t
1357 insert_sh6 (uint64_t insn,
1358 int64_t value,
1359 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1360 const char **errmsg ATTRIBUTE_UNUSED)
1361 {
1362 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
1363 }
1364
1365 static int64_t
1366 extract_sh6 (uint64_t insn,
1367 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1368 int *invalid ATTRIBUTE_UNUSED)
1369 {
1370 return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
1371 }
1372
1373 /* The SPR field in an XFX form instruction. This is flipped--the
1374 lower 5 bits are stored in the upper 5 and vice- versa. */
1375
1376 static uint64_t
1377 insert_spr (uint64_t insn,
1378 int64_t value,
1379 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1380 const char **errmsg ATTRIBUTE_UNUSED)
1381 {
1382 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
1383 }
1384
1385 static int64_t
1386 extract_spr (uint64_t insn,
1387 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1388 int *invalid ATTRIBUTE_UNUSED)
1389 {
1390 return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
1391 }
1392
1393 /* Some dialects have 8 [DI]BAT registers instead of the standard 4. */
1394 #define ALLOW8_BAT (PPC_OPCODE_750)
1395
1396 static uint64_t
1397 insert_sprbat (uint64_t insn,
1398 int64_t value,
1399 ppc_cpu_t dialect,
1400 const char **errmsg)
1401 {
1402 if ((uint64_t) value > 7
1403 || ((uint64_t) value > 3 && (dialect & ALLOW8_BAT) == 0))
1404 *errmsg = _("invalid bat number");
1405
1406 /* If this is [di]bat4..7 then use spr 560..575, otherwise 528..543. */
1407 if ((uint64_t) value > 3)
1408 value = ((value & 3) << 6) | 1;
1409 else
1410 value = value << 6;
1411
1412 return insn | (value << 11);
1413 }
1414
1415 static int64_t
1416 extract_sprbat (uint64_t insn,
1417 ppc_cpu_t dialect,
1418 int *invalid)
1419 {
1420 uint64_t val = (insn >> 17) & 0x3;
1421
1422 val = val + ((insn >> 9) & 0x4);
1423 if (val > 3 && (dialect & ALLOW8_BAT) == 0)
1424 *invalid = 1;
1425 return val;
1426 }
1427
1428 /* Some dialects have 8 SPRG registers instead of the standard 4. */
1429 #define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405)
1430
1431 static uint64_t
1432 insert_sprg (uint64_t insn,
1433 int64_t value,
1434 ppc_cpu_t dialect,
1435 const char **errmsg)
1436 {
1437 if ((uint64_t) value > 7
1438 || ((uint64_t) value > 3 && (dialect & ALLOW8_SPRG) == 0))
1439 *errmsg = _("invalid sprg number");
1440
1441 /* If this is mfsprg4..7 then use spr 260..263 which can be read in
1442 user mode. Anything else must use spr 272..279. */
1443 if ((uint64_t) value <= 3 || (insn & 0x100) != 0)
1444 value |= 0x10;
1445
1446 return insn | ((value & 0x17) << 16);
1447 }
1448
1449 static int64_t
1450 extract_sprg (uint64_t insn,
1451 ppc_cpu_t dialect,
1452 int *invalid)
1453 {
1454 uint64_t val = (insn >> 16) & 0x1f;
1455
1456 /* mfsprg can use 260..263 and 272..279. mtsprg only uses spr 272..279
1457 If not BOOKE, 405 or VLE, then both use only 272..275. */
1458 if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0)
1459 || (val - 0x10 > 7 && (insn & 0x100) != 0)
1460 || val <= 3
1461 || (val & 8) != 0)
1462 *invalid = 1;
1463 return val & 7;
1464 }
1465
1466 /* The TBR field in an XFX instruction. This is just like SPR, but it
1467 is optional. */
1468
1469 static uint64_t
1470 insert_tbr (uint64_t insn,
1471 int64_t value,
1472 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1473 const char **errmsg)
1474 {
1475 if (value != 268 && value != 269)
1476 *errmsg = _("invalid tbr number");
1477 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
1478 }
1479
1480 static int64_t
1481 extract_tbr (uint64_t insn,
1482 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1483 int *invalid)
1484 {
1485 /* Missing optional operands have a value of 268. */
1486 if (*invalid < 0)
1487 return 268;
1488
1489 int64_t ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
1490 if (ret != 268 && ret != 269)
1491 *invalid = 1;
1492 return ret;
1493 }
1494
1495 /* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */
1496
1497 static uint64_t
1498 insert_xt6 (uint64_t insn,
1499 int64_t value,
1500 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1501 const char **errmsg ATTRIBUTE_UNUSED)
1502 {
1503 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5);
1504 }
1505
1506 static int64_t
1507 extract_xt6 (uint64_t insn,
1508 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1509 int *invalid ATTRIBUTE_UNUSED)
1510 {
1511 return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f);
1512 }
1513
1514 /* The XT and XS fields in an DQ form VSX instruction. This is split. */
1515 static uint64_t
1516 insert_xtq6 (uint64_t insn,
1517 int64_t value,
1518 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1519 const char **errmsg ATTRIBUTE_UNUSED)
1520 {
1521 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2);
1522 }
1523
1524 static int64_t
1525 extract_xtq6 (uint64_t insn,
1526 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1527 int *invalid ATTRIBUTE_UNUSED)
1528 {
1529 return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f);
1530 }
1531
1532 /* The XA field in an XX3 form instruction. This is split. */
1533
1534 static uint64_t
1535 insert_xa6 (uint64_t insn,
1536 int64_t value,
1537 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1538 const char **errmsg ATTRIBUTE_UNUSED)
1539 {
1540 return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3);
1541 }
1542
1543 static int64_t
1544 extract_xa6 (uint64_t insn,
1545 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1546 int *invalid ATTRIBUTE_UNUSED)
1547 {
1548 return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
1549 }
1550
1551 /* The XB field in an XX3 form instruction. This is split. */
1552
1553 static uint64_t
1554 insert_xb6 (uint64_t insn,
1555 int64_t value,
1556 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1557 const char **errmsg ATTRIBUTE_UNUSED)
1558 {
1559 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
1560 }
1561
1562 static int64_t
1563 extract_xb6 (uint64_t insn,
1564 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1565 int *invalid ATTRIBUTE_UNUSED)
1566 {
1567 return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f);
1568 }
1569
1570 /* The XA and XB fields in an XX3 form instruction when they must be the same.
1571 This is used for extended mnemonics like xvmovdp. The extraction function
1572 enforces that the fields are the same. */
1573
1574 static uint64_t
1575 insert_xab6 (uint64_t insn,
1576 int64_t value,
1577 ppc_cpu_t dialect,
1578 const char **errmsg)
1579 {
1580 return insert_xa6 (insn, value, dialect, errmsg)
1581 | insert_xb6 (insn, value, dialect, errmsg);
1582 }
1583
1584 static int64_t
1585 extract_xab6 (uint64_t insn,
1586 ppc_cpu_t dialect,
1587 int *invalid)
1588 {
1589 int64_t xa6 = extract_xa6 (insn, dialect, invalid);
1590 int64_t xb6 = extract_xb6 (insn, dialect, invalid);
1591
1592 if (xa6 != xb6)
1593 *invalid = 1;
1594 return xa6;
1595 }
1596
1597 /* The XC field in an XX4 form instruction. This is split. */
1598
1599 static uint64_t
1600 insert_xc6 (uint64_t insn,
1601 int64_t value,
1602 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1603 const char **errmsg ATTRIBUTE_UNUSED)
1604 {
1605 return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
1606 }
1607
1608 static int64_t
1609 extract_xc6 (uint64_t insn,
1610 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1611 int *invalid ATTRIBUTE_UNUSED)
1612 {
1613 return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
1614 }
1615
1616 /* The split XTp field in a vector paired insn. */
1617
1618 static uint64_t
1619 insert_xtp (uint64_t insn,
1620 int64_t value,
1621 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1622 const char **errmsg ATTRIBUTE_UNUSED)
1623 {
1624 return insn | ((value & 0x1e) << 21) | ((value & 0x20) << (21 - 5));
1625 }
1626
1627 static int64_t
1628 extract_xtp (uint64_t insn,
1629 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1630 int *invalid ATTRIBUTE_UNUSED)
1631 {
1632 return ((insn >> (21 - 5)) & 0x20) | ((insn >> 21) & 0x1e);
1633 }
1634
1635 /* The split XT field in a vector splat insn. */
1636
1637 static uint64_t
1638 insert_xts (uint64_t insn,
1639 int64_t value,
1640 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1641 const char **errmsg ATTRIBUTE_UNUSED)
1642 {
1643 return insn | ((value & 0x1f) << 21) | ((value & 0x20) << (16 - 5));
1644 }
1645
1646 static int64_t
1647 extract_xts (uint64_t insn,
1648 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1649 int *invalid ATTRIBUTE_UNUSED)
1650 {
1651 return ((insn >> (16 - 5)) & 0x20) | ((insn >> 21) & 0x1f);
1652 }
1653
1654 static uint64_t
1655 insert_dm (uint64_t insn,
1656 int64_t value,
1657 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1658 const char **errmsg)
1659 {
1660 if (value != 0 && value != 1)
1661 *errmsg = _("invalid constant");
1662 return insn | (((value) ? 3 : 0) << 8);
1663 }
1664
1665 static int64_t
1666 extract_dm (uint64_t insn,
1667 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1668 int *invalid)
1669 {
1670 int64_t value = (insn >> 8) & 3;
1671 if (value != 0 && value != 3)
1672 *invalid = 1;
1673 return (value) ? 1 : 0;
1674 }
1675
1676 /* The VLESIMM field in an I16A form instruction. This is split. */
1677
1678 static uint64_t
1679 insert_vlesi (uint64_t insn,
1680 int64_t value,
1681 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1682 const char **errmsg ATTRIBUTE_UNUSED)
1683 {
1684 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
1685 }
1686
1687 static int64_t
1688 extract_vlesi (uint64_t insn,
1689 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1690 int *invalid ATTRIBUTE_UNUSED)
1691 {
1692 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
1693 value = (value ^ 0x8000) - 0x8000;
1694 return value;
1695 }
1696
1697 static uint64_t
1698 insert_vlensi (uint64_t insn,
1699 int64_t value,
1700 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1701 const char **errmsg ATTRIBUTE_UNUSED)
1702 {
1703 value = -value;
1704 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
1705 }
1706 static int64_t
1707 extract_vlensi (uint64_t insn,
1708 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1709 int *invalid)
1710 {
1711 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
1712 value = (value ^ 0x8000) - 0x8000;
1713 /* Don't use for disassembly. */
1714 *invalid = 1;
1715 return -value;
1716 }
1717
1718 /* The VLEUIMM field in an I16A form instruction. This is split. */
1719
1720 static uint64_t
1721 insert_vleui (uint64_t insn,
1722 int64_t value,
1723 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1724 const char **errmsg ATTRIBUTE_UNUSED)
1725 {
1726 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
1727 }
1728
1729 static int64_t
1730 extract_vleui (uint64_t insn,
1731 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1732 int *invalid ATTRIBUTE_UNUSED)
1733 {
1734 return ((insn >> 10) & 0xf800) | (insn & 0x7ff);
1735 }
1736
1737 /* The VLEUIMML field in an I16L form instruction. This is split. */
1738
1739 static uint64_t
1740 insert_vleil (uint64_t insn,
1741 int64_t value,
1742 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1743 const char **errmsg ATTRIBUTE_UNUSED)
1744 {
1745 return insn | ((value & 0xf800) << 5) | (value & 0x7ff);
1746 }
1747
1748 static int64_t
1749 extract_vleil (uint64_t insn,
1750 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1751 int *invalid ATTRIBUTE_UNUSED)
1752 {
1753 return ((insn >> 5) & 0xf800) | (insn & 0x7ff);
1754 }
1755
1756 static uint64_t
1757 insert_evuimm1_ex0 (uint64_t insn,
1758 int64_t value,
1759 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1760 const char **errmsg)
1761 {
1762 if (value <= 0 || value > 0x1f)
1763 *errmsg = _("UIMM = 00000 is illegal");
1764 return insn | ((value & 0x1f) << 11);
1765 }
1766
1767 static int64_t
1768 extract_evuimm1_ex0 (uint64_t insn,
1769 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1770 int *invalid)
1771 {
1772 int64_t value = ((insn >> 11) & 0x1f);
1773 if (value == 0)
1774 *invalid = 1;
1775
1776 return value;
1777 }
1778
1779 static uint64_t
1780 insert_evuimm2_ex0 (uint64_t insn,
1781 int64_t value,
1782 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1783 const char **errmsg)
1784 {
1785 if (value <= 0 || value > 0x3e)
1786 *errmsg = _("UIMM = 00000 is illegal");
1787 return insn | ((value & 0x3e) << 10);
1788 }
1789
1790 static int64_t
1791 extract_evuimm2_ex0 (uint64_t insn,
1792 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1793 int *invalid)
1794 {
1795 int64_t value = ((insn >> 10) & 0x3e);
1796 if (value == 0)
1797 *invalid = 1;
1798
1799 return value;
1800 }
1801
1802 static uint64_t
1803 insert_evuimm4_ex0 (uint64_t insn,
1804 int64_t value,
1805 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1806 const char **errmsg)
1807 {
1808 if (value <= 0 || value > 0x7c)
1809 *errmsg = _("UIMM = 00000 is illegal");
1810 return insn | ((value & 0x7c) << 9);
1811 }
1812
1813 static int64_t
1814 extract_evuimm4_ex0 (uint64_t insn,
1815 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1816 int *invalid)
1817 {
1818 int64_t value = ((insn >> 9) & 0x7c);
1819 if (value == 0)
1820 *invalid = 1;
1821
1822 return value;
1823 }
1824
1825 static uint64_t
1826 insert_evuimm8_ex0 (uint64_t insn,
1827 int64_t value,
1828 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1829 const char **errmsg)
1830 {
1831 if (value <= 0 || value > 0xf8)
1832 *errmsg = _("UIMM = 00000 is illegal");
1833 return insn | ((value & 0xf8) << 8);
1834 }
1835
1836 static int64_t
1837 extract_evuimm8_ex0 (uint64_t insn,
1838 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1839 int *invalid)
1840 {
1841 int64_t value = ((insn >> 8) & 0xf8);
1842 if (value == 0)
1843 *invalid = 1;
1844
1845 return value;
1846 }
1847
1848 static uint64_t
1849 insert_evuimm_lt8 (uint64_t insn,
1850 int64_t value,
1851 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1852 const char **errmsg)
1853 {
1854 if (value < 0 || value > 7)
1855 *errmsg = _("UIMM values >7 are illegal");
1856 return insn | ((value & 0x7) << 11);
1857 }
1858
1859 static int64_t
1860 extract_evuimm_lt8 (uint64_t insn,
1861 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1862 int *invalid)
1863 {
1864 int64_t value = ((insn >> 11) & 0x1f);
1865 if (value > 7)
1866 *invalid = 1;
1867
1868 return value;
1869 }
1870
1871 static uint64_t
1872 insert_evuimm_lt16 (uint64_t insn,
1873 int64_t value,
1874 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1875 const char **errmsg)
1876 {
1877 if (value < 0 || value > 15)
1878 *errmsg = _("UIMM values >15 are illegal");
1879 return insn | ((value & 0xf) << 11);
1880 }
1881
1882 static int64_t
1883 extract_evuimm_lt16 (uint64_t insn,
1884 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1885 int *invalid)
1886 {
1887 int64_t value = ((insn >> 11) & 0x1f);
1888 if (value > 15)
1889 *invalid = 1;
1890
1891 return value;
1892 }
1893
1894 static uint64_t
1895 insert_rD_rS_even (uint64_t insn,
1896 int64_t value,
1897 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1898 const char **errmsg)
1899 {
1900 if ((value & 0x1) != 0)
1901 *errmsg = _("GPR odd is illegal");
1902 return insn | ((value & 0x1e) << 21);
1903 }
1904
1905 static int64_t
1906 extract_rD_rS_even (uint64_t insn,
1907 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1908 int *invalid)
1909 {
1910 int64_t value = ((insn >> 21) & 0x1f);
1911 if ((value & 0x1) != 0)
1912 *invalid = 1;
1913
1914 return value;
1915 }
1916
1917 static uint64_t
1918 insert_off_lsp (uint64_t insn,
1919 int64_t value,
1920 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1921 const char **errmsg)
1922 {
1923 if (value <= 0 || value > 0x3)
1924 *errmsg = _("invalid offset");
1925 return insn | (value & 0x3);
1926 }
1927
1928 static int64_t
1929 extract_off_lsp (uint64_t insn,
1930 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1931 int *invalid)
1932 {
1933 int64_t value = (insn & 0x3);
1934 if (value == 0)
1935 *invalid = 1;
1936
1937 return value;
1938 }
1939
1940 static uint64_t
1941 insert_off_spe2 (uint64_t insn,
1942 int64_t value,
1943 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1944 const char **errmsg)
1945 {
1946 if (value <= 0 || value > 0x7)
1947 *errmsg = _("invalid offset");
1948 return insn | (value & 0x7);
1949 }
1950
1951 static int64_t
1952 extract_off_spe2 (uint64_t insn,
1953 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1954 int *invalid)
1955 {
1956 int64_t value = (insn & 0x7);
1957 if (value == 0)
1958 *invalid = 1;
1959
1960 return value;
1961 }
1962
1963 static uint64_t
1964 insert_Ddd (uint64_t insn,
1965 int64_t value,
1966 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1967 const char **errmsg)
1968 {
1969 if (value < 0 || value > 0x7)
1970 *errmsg = _("invalid Ddd value");
1971 return insn | ((value & 0x3) << 11) | ((value & 0x4) >> 2);
1972 }
1973
1974 static int64_t
1975 extract_Ddd (uint64_t insn,
1976 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1977 int *invalid ATTRIBUTE_UNUSED)
1978 {
1979 return ((insn >> 11) & 0x3) | ((insn << 2) & 0x4);
1980 }
1981
1982 static uint64_t
1983 insert_sxl (uint64_t insn,
1984 int64_t value,
1985 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1986 const char **errmsg ATTRIBUTE_UNUSED)
1987 {
1988 return insn | ((value & 0x1) << 11);
1989 }
1990
1991 static int64_t
1992 extract_sxl (uint64_t insn,
1993 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1994 int *invalid)
1995 {
1996 /* Missing optional operands have a value of one. */
1997 if (*invalid < 0)
1998 return 1;
1999 return (insn >> 11) & 0x1;
2000 }
2001 \f
2002 /* The operands table.
2003
2004 The fields are bitm, shift, insert, extract, flags.
2005
2006 We used to put parens around the various additions, like the one
2007 for BA just below. However, that caused trouble with feeble
2008 compilers with a limit on depth of a parenthesized expression, like
2009 (reportedly) the compiler in Microsoft Developer Studio 5. So we
2010 omit the parens, since the macros are never used in a context where
2011 the addition will be ambiguous. */
2012
2013 const struct powerpc_operand powerpc_operands[] =
2014 {
2015 /* The zero index is used to indicate the end of the list of
2016 operands. */
2017 #define UNUSED 0
2018 { 0, 0, NULL, NULL, 0 },
2019
2020 /* The BA field in an XL form instruction. */
2021 #define BA UNUSED + 1
2022 /* The BI field in a B form or XL form instruction. */
2023 #define BI BA
2024 #define BI_MASK (0x1f << 16)
2025 { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
2026
2027 /* The BT, BA and BB fields in a XL form instruction when they must all
2028 be the same. */
2029 #define BTAB BA + 1
2030 { 0x1f, 21, insert_btab, extract_btab, PPC_OPERAND_CR_BIT },
2031
2032 /* The BB field in an XL form instruction. */
2033 #define BB BTAB + 1
2034 #define BB_MASK (0x1f << 11)
2035 { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT },
2036
2037 /* The BA and BB fields in a XL form instruction when they must be
2038 the same. */
2039 #define BAB BB + 1
2040 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_CR_BIT },
2041
2042 /* The VRA and VRB fields in a VX form instruction when they must be the same.
2043 This is used for extended mnemonics like vmr. */
2044 #define VAB BAB + 1
2045 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_VR },
2046
2047 /* The RA and RB fields in a VX form instruction when they must be the same.
2048 This is used for extended mnemonics like evmr. */
2049 #define RAB VAB + 1
2050 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_GPR },
2051
2052 /* The BD field in a B form instruction. The lower two bits are
2053 forced to zero. */
2054 #define BD RAB + 1
2055 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2056
2057 /* The BD field in a B form instruction when absolute addressing is
2058 used. */
2059 #define BDA BD + 1
2060 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2061
2062 /* The BD field in a B form instruction when the - modifier is used.
2063 This sets the y bit of the BO field appropriately. */
2064 #define BDM BDA + 1
2065 { 0xfffc, 0, insert_bdm, extract_bdm,
2066 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2067
2068 /* The BD field in a B form instruction when the - modifier is used
2069 and absolute address is used. */
2070 #define BDMA BDM + 1
2071 { 0xfffc, 0, insert_bdm, extract_bdm,
2072 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2073
2074 /* The BD field in a B form instruction when the + modifier is used.
2075 This sets the y bit of the BO field appropriately. */
2076 #define BDP BDMA + 1
2077 { 0xfffc, 0, insert_bdp, extract_bdp,
2078 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2079
2080 /* The BD field in a B form instruction when the + modifier is used
2081 and absolute addressing is used. */
2082 #define BDPA BDP + 1
2083 { 0xfffc, 0, insert_bdp, extract_bdp,
2084 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2085
2086 /* The BF field in an X or XL form instruction. */
2087 #define BF BDPA + 1
2088 /* The CRFD field in an X form instruction. */
2089 #define CRFD BF
2090 /* The CRD field in an XL form instruction. */
2091 #define CRD BF
2092 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG },
2093
2094 /* The BF field in an X or XL form instruction. */
2095 #define BFF BF + 1
2096 { 0x7, 23, NULL, NULL, 0 },
2097
2098 /* An optional BF field. This is used for comparison instructions,
2099 in which an omitted BF field is taken as zero. */
2100 #define OBF BFF + 1
2101 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
2102
2103 /* The BFA field in an X or XL form instruction. */
2104 #define BFA OBF + 1
2105 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG },
2106
2107 /* The BO field in a B form instruction. Certain values are
2108 illegal. */
2109 #define BO BFA + 1
2110 #define BO_MASK (0x1f << 21)
2111 { 0x1f, 21, insert_bo, extract_bo, 0 },
2112
2113 /* The BO field in a B form instruction when the - modifier is used. */
2114 #define BOM BO + 1
2115 { 0x1f, 21, insert_bom, extract_bom, 0 },
2116
2117 /* The BO field in a B form instruction when the + modifier is used. */
2118 #define BOP BOM + 1
2119 { 0x1f, 21, insert_bop, extract_bop, 0 },
2120
2121 /* The RM field in an X form instruction. */
2122 #define RM BOP + 1
2123 #define DD RM
2124 { 0x3, 11, NULL, NULL, 0 },
2125
2126 #define BH RM + 1
2127 { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
2128
2129 /* The BT field in an X or XL form instruction. */
2130 #define BT BH + 1
2131 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT },
2132
2133 /* The BT field in a mtfsb0 or mtfsb1 instruction. */
2134 #define BTF BT + 1
2135 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT | PPC_OPERAND_CR_REG },
2136
2137 /* The BI16 field in a BD8 form instruction. */
2138 #define BI16 BTF + 1
2139 { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT },
2140
2141 /* The BI32 field in a BD15 form instruction. */
2142 #define BI32 BI16 + 1
2143 { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
2144
2145 /* The BO32 field in a BD15 form instruction. */
2146 #define BO32 BI32 + 1
2147 { 0x3, 20, NULL, NULL, 0 },
2148
2149 /* The B8 field in a BD8 form instruction. */
2150 #define B8 BO32 + 1
2151 { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2152
2153 /* The B15 field in a BD15 form instruction. The lowest bit is
2154 forced to zero. */
2155 #define B15 B8 + 1
2156 { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2157
2158 /* The B24 field in a BD24 form instruction. The lowest bit is
2159 forced to zero. */
2160 #define B24 B15 + 1
2161 { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2162
2163 /* The condition register number portion of the BI field in a B form
2164 or XL form instruction. This is used for the extended
2165 conditional branch mnemonics, which set the lower two bits of the
2166 BI field. This field is optional. */
2167 #define CR B24 + 1
2168 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
2169
2170 /* The CRB field in an X form instruction. */
2171 #define CRB CR + 1
2172 /* The MB field in an M form instruction. */
2173 #define MB CRB
2174 #define MB_MASK (0x1f << 6)
2175 { 0x1f, 6, NULL, NULL, 0 },
2176
2177 /* The CRD32 field in an XL form instruction. */
2178 #define CRD32 CRB + 1
2179 { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG },
2180
2181 /* The CRFS field in an X form instruction. */
2182 #define CRFS CRD32 + 1
2183 { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG },
2184
2185 #define CRS CRFS + 1
2186 { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
2187
2188 /* The CT field in an X form instruction. */
2189 #define CT CRS + 1
2190 /* The MO field in an mbar instruction. */
2191 #define MO CT
2192 { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
2193
2194 /* The D field in a D form instruction. This is a displacement off
2195 a register, and implies that the next operand is a register in
2196 parentheses. */
2197 #define D CT + 1
2198 { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
2199
2200 /* The D8 field in a D form instruction. This is a displacement off
2201 a register, and implies that the next operand is a register in
2202 parentheses. */
2203 #define D8 D + 1
2204 { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
2205
2206 /* The DCMX field in an X form instruction. */
2207 #define DCMX D8 + 1
2208 { 0x7f, 16, NULL, NULL, 0 },
2209
2210 /* The split DCMX field in an X form instruction. */
2211 #define DCMXS DCMX + 1
2212 { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 },
2213
2214 /* The DQ field in a DQ form instruction. This is like D, but the
2215 lower four bits are forced to zero. */
2216 #define DQ DCMXS + 1
2217 { 0xfff0, 0, NULL, NULL,
2218 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },
2219
2220 /* The DS field in a DS form instruction. This is like D, but the
2221 lower two bits are forced to zero. */
2222 #define DS DQ + 1
2223 { 0xfffc, 0, NULL, NULL,
2224 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
2225
2226 /* The D field in an 8-byte D form prefix instruction. This is a displacement
2227 off a register, and implies that the next operand is a register in
2228 parentheses. */
2229 #define D34 DS + 1
2230 { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34,
2231 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
2232
2233 /* The SI field in an 8-byte D form prefix instruction. */
2234 #define SI34 D34 + 1
2235 { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34, PPC_OPERAND_SIGNED },
2236
2237 /* The NSI field in an 8-byte D form prefix instruction. This is the
2238 same as the SI34 field, only negated. */
2239 #define NSI34 SI34 + 1
2240 { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_nsi34, extract_nsi34,
2241 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
2242
2243 /* The IMM32 field in a vector splat immediate prefix instruction. */
2244 #define IMM32 NSI34 + 1
2245 { 0xffffffff, PPC_OPSHIFT_INV, insert_imm32, extract_imm32, 0},
2246
2247 /* The UIM field in a vector permute extended prefix instruction. */
2248 #define UIM3 IMM32 + 1
2249 { 0x7, 32, NULL, NULL, 0},
2250
2251 /* The IX field in xxsplti32dx. */
2252 #define IX UIM3 + 1
2253 { 0x1, 17, NULL, NULL, 0 },
2254
2255 /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits
2256 unsigned imediate */
2257 #define DUIS IX + 1
2258 #define BHRBE DUIS
2259 { 0x3ff, 11, NULL, NULL, 0 },
2260
2261 /* The split D field in a DX form instruction. */
2262 #define DXD DUIS + 1
2263 { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd,
2264 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
2265
2266 /* The split ND field in a DX form instruction.
2267 This is the same as the DX field, only negated. */
2268 #define NDXD DXD + 1
2269 { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn,
2270 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
2271
2272 /* The E field in a wrteei instruction. */
2273 /* And the W bit in the pair singles instructions. */
2274 /* And the ST field in a VX form instruction. */
2275 #define E NDXD + 1
2276 #define PSW E
2277 #define ST E
2278 { 0x1, 15, NULL, NULL, 0 },
2279
2280 /* The FL1 field in a POWER SC form instruction. */
2281 #define FL1 E + 1
2282 /* The U field in an X form instruction. */
2283 #define U FL1
2284 { 0xf, 12, NULL, NULL, 0 },
2285
2286 /* The FL2 field in a POWER SC form instruction. */
2287 #define FL2 FL1 + 1
2288 { 0x7, 2, NULL, NULL, 0 },
2289
2290 /* The FLM field in an XFL form instruction. */
2291 #define FLM FL2 + 1
2292 { 0xff, 17, NULL, NULL, 0 },
2293
2294 /* The FRA field in an X or A form instruction. */
2295 #define FRA FLM + 1
2296 #define FRA_MASK (0x1f << 16)
2297 { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR },
2298
2299 /* The FRAp field of DFP instructions. */
2300 #define FRAp FRA + 1
2301 { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR },
2302
2303 /* The FRB field in an X or A form instruction. */
2304 #define FRB FRAp + 1
2305 #define FRB_MASK (0x1f << 11)
2306 { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR },
2307
2308 /* The FRBp field of DFP instructions. */
2309 #define FRBp FRB + 1
2310 { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR },
2311
2312 /* The FRC field in an A form instruction. */
2313 #define FRC FRBp + 1
2314 #define FRC_MASK (0x1f << 6)
2315 { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR },
2316
2317 /* The FRS field in an X form instruction or the FRT field in a D, X
2318 or A form instruction. */
2319 #define FRS FRC + 1
2320 #define FRT FRS
2321 { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR },
2322
2323 /* The FRSp field of stfdp or the FRTp field of lfdp and DFP
2324 instructions. */
2325 #define FRSp FRS + 1
2326 #define FRTp FRSp
2327 { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR },
2328
2329 /* The FXM field in an XFX instruction. */
2330 #define FXM FRSp + 1
2331 { 0xff, 12, insert_fxm, extract_fxm, 0 },
2332
2333 /* Power4 version for mfcr. */
2334 #define FXM4 FXM + 1
2335 { 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL },
2336
2337 /* The IMM20 field in an LI instruction. */
2338 #define IMM20 FXM4 + 1
2339 { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED},
2340
2341 /* The L field in a D or X form instruction. */
2342 #define L IMM20 + 1
2343 { 0x1, 21, NULL, NULL, 0 },
2344
2345 /* The optional L field in tlbie and tlbiel instructions. */
2346 #define LOPT L + 1
2347 /* The R field in a HTM X form instruction. */
2348 #define HTM_R LOPT
2349 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
2350
2351 /* The optional L field in the paste. instruction. This is similar to LOPT
2352 above, but with a default value of 1. */
2353 #define L1OPT LOPT + 1
2354 { 0x1, 21, insert_l1opt, extract_l1opt, PPC_OPERAND_OPTIONAL },
2355
2356 /* The optional (for 32-bit) L field in cmp[l][i] instructions. */
2357 #define L32OPT L1OPT + 1
2358 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 },
2359
2360 /* The L field in dcbf instruction. */
2361 #define L2OPT L32OPT + 1
2362 { 0x3, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
2363
2364 /* The LEV field in a POWER SVC / POWER9 SCV form instruction. */
2365 #define SVC_LEV L2OPT + 1
2366 { 0x7f, 5, NULL, NULL, 0 },
2367
2368 /* The LEV field in an SC form instruction. */
2369 #define LEV SVC_LEV + 1
2370 { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL },
2371
2372 /* The LI field in an I form instruction. The lower two bits are
2373 forced to zero. */
2374 #define LI LEV + 1
2375 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2376
2377 /* The LI field in an I form instruction when used as an absolute
2378 address. */
2379 #define LIA LI + 1
2380 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2381
2382 /* The LS or WC field in an X (sync or wait) form instruction. */
2383 #define LS LIA + 1
2384 #define WC LS
2385 { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
2386
2387 /* The ME field in an M form instruction. */
2388 #define ME LS + 1
2389 #define ME_MASK (0x1f << 1)
2390 { 0x1f, 1, NULL, NULL, 0 },
2391
2392 /* The MB and ME fields in an M form instruction expressed a single
2393 operand which is a bitmask indicating which bits to select. This
2394 is a two operand form using PPC_OPERAND_NEXT. See the
2395 description in opcode/ppc.h for what this means. */
2396 #define MBE ME + 1
2397 { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },
2398 { -1, 0, insert_mbe, extract_mbe, 0 },
2399
2400 /* The MB or ME field in an MD or MDS form instruction. The high
2401 bit is wrapped to the low end. */
2402 #define MB6 MBE + 2
2403 #define ME6 MB6
2404 #define MB6_MASK (0x3f << 5)
2405 { 0x3f, 5, insert_mb6, extract_mb6, 0 },
2406
2407 /* The NB field in an X form instruction. The value 32 is stored as
2408 0. */
2409 #define NB MB6 + 1
2410 { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 },
2411
2412 /* The NBI field in an lswi instruction, which has special value
2413 restrictions. The value 32 is stored as 0. */
2414 #define NBI NB + 1
2415 { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 },
2416
2417 /* The NSI field in a D form instruction. This is the same as the
2418 SI field, only negated. */
2419 #define NSI NBI + 1
2420 { 0xffff, 0, insert_nsi, extract_nsi,
2421 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
2422
2423 /* The NSI field in a D form instruction when we accept a wide range
2424 of positive values. */
2425 #define NSISIGNOPT NSI + 1
2426 { 0xffff, 0, insert_nsi, extract_nsi,
2427 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
2428
2429 /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */
2430 #define RA NSISIGNOPT + 1
2431 #define RA_MASK (0x1f << 16)
2432 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
2433
2434 /* As above, but 0 in the RA field means zero, not r0. */
2435 #define RA0 RA + 1
2436 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 },
2437
2438 /* Similar to above, but optional. */
2439 #define PRA0 RA0 + 1
2440 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
2441
2442 /* The RA field in the DQ form lq or an lswx instruction, which have
2443 special value restrictions. */
2444 #define RAQ PRA0 + 1
2445 #define RAX RAQ
2446 { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 },
2447
2448 /* Similar to above, but optional. */
2449 #define PRAQ RAQ + 1
2450 { 0x1f, 16, insert_raq, extract_raq,
2451 PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
2452
2453 /* The R field in an 8-byte D, DS, DQ or X form prefix instruction. */
2454 #define PCREL PRAQ + 1
2455 #define PCREL_MASK (1ULL << 52)
2456 { 0x1, 52, insert_pcrel, extract_pcrel, PPC_OPERAND_OPTIONAL },
2457
2458 #define PCREL0 PCREL + 1
2459 { 0x1, 52, insert_pcrel, extract_pcrel0, PPC_OPERAND_OPTIONAL },
2460
2461 /* The RA field in a D or X form instruction which is an updating
2462 load, which means that the RA field may not be zero and may not
2463 equal the RT field. */
2464 #define RAL PCREL0 + 1
2465 { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 },
2466
2467 /* The RA field in an lmw instruction, which has special value
2468 restrictions. */
2469 #define RAM RAL + 1
2470 { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 },
2471
2472 /* The RA field in a D or X form instruction which is an updating
2473 store or an updating floating point load, which means that the RA
2474 field may not be zero. */
2475 #define RAS RAM + 1
2476 { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 },
2477
2478 /* The RA field of the tlbwe, dccci and iccci instructions,
2479 which are optional. */
2480 #define RAOPT RAS + 1
2481 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
2482
2483 /* The RB field in an X, XO, M, or MDS form instruction. */
2484 #define RB RAOPT + 1
2485 #define RB_MASK (0x1f << 11)
2486 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR },
2487
2488 /* The RS and RB fields in an X form instruction when they must be the same.
2489 This is used for extended mnemonics like mr. */
2490 #define RSB RB + 1
2491 { 0x1f, 11, insert_rsb, extract_rsb, PPC_OPERAND_GPR },
2492
2493 /* The RB field in an lswx instruction, which has special value
2494 restrictions. */
2495 #define RBX RSB + 1
2496 { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR },
2497
2498 /* The RB field of the dccci and iccci instructions, which are optional. */
2499 #define RBOPT RBX + 1
2500 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
2501
2502 /* The RC register field in an maddld, maddhd or maddhdu instruction. */
2503 #define RC RBOPT + 1
2504 { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR },
2505
2506 /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form
2507 instruction or the RT field in a D, DS, X, XFX or XO form
2508 instruction. */
2509 #define RS RC + 1
2510 #define RT RS
2511 #define RT_MASK (0x1f << 21)
2512 #define RD RS
2513 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR },
2514
2515 #define RD_EVEN RS + 1
2516 #define RS_EVEN RD_EVEN
2517 { 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR },
2518
2519 /* The RS and RT fields of the DS form stq and DQ form lq instructions,
2520 which have special value restrictions. */
2521 #define RSQ RS_EVEN + 1
2522 #define RTQ RSQ
2523 #define Q_MASK (1 << 21)
2524 { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
2525
2526 /* The RS field of the tlbwe instruction, which is optional. */
2527 #define RSO RSQ + 1
2528 #define RTO RSO
2529 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
2530
2531 /* The RX field of the SE_RR form instruction. */
2532 #define RX RSO + 1
2533 { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR },
2534
2535 /* The ARX field of the SE_RR form instruction. */
2536 #define ARX RX + 1
2537 { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR },
2538
2539 /* The RY field of the SE_RR form instruction. */
2540 #define RY ARX + 1
2541 #define RZ RY
2542 { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR },
2543
2544 /* The ARY field of the SE_RR form instruction. */
2545 #define ARY RY + 1
2546 { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR },
2547
2548 /* The SCLSCI8 field in a D form instruction. */
2549 #define SCLSCI8 ARY + 1
2550 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 },
2551
2552 /* The SCLSCI8N field in a D form instruction. This is the same as the
2553 SCLSCI8 field, only negated. */
2554 #define SCLSCI8N SCLSCI8 + 1
2555 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n,
2556 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
2557
2558 /* The SD field of the SD4 form instruction. */
2559 #define SE_SD SCLSCI8N + 1
2560 { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS },
2561
2562 /* The SD field of the SD4 form instruction, for halfword. */
2563 #define SE_SDH SE_SD + 1
2564 { 0x1e, 7, NULL, NULL, PPC_OPERAND_PARENS },
2565
2566 /* The SD field of the SD4 form instruction, for word. */
2567 #define SE_SDW SE_SDH + 1
2568 { 0x3c, 6, NULL, NULL, PPC_OPERAND_PARENS },
2569
2570 /* The SH field in an X or M form instruction. */
2571 #define SH SE_SDW + 1
2572 #define SH_MASK (0x1f << 11)
2573 /* The other UIMM field in a EVX form instruction. */
2574 #define EVUIMM SH
2575 /* The FC field in an atomic X form instruction. */
2576 #define FC SH
2577 #define UIM5 SH
2578 { 0x1f, 11, NULL, NULL, 0 },
2579
2580 #define EVUIMM_LT8 SH + 1
2581 { 0x1f, 11, insert_evuimm_lt8, extract_evuimm_lt8, 0 },
2582
2583 #define EVUIMM_LT16 EVUIMM_LT8 + 1
2584 { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 },
2585
2586 /* The SI field in a HTM X form instruction. */
2587 #define HTM_SI EVUIMM_LT16 + 1
2588 { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED },
2589
2590 /* The SH field in an MD form instruction. This is split. */
2591 #define SH6 HTM_SI + 1
2592 #define SH6_MASK ((0x1f << 11) | (1 << 1))
2593 { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 },
2594
2595 /* The SH field of some variants of the tlbre and tlbwe
2596 instructions, and the ELEV field of the e_sc instruction. */
2597 #define SHO SH6 + 1
2598 #define ELEV SHO
2599 { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
2600
2601 /* The SI field in a D form instruction. */
2602 #define SI SHO + 1
2603 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
2604
2605 /* The SI field in a D form instruction when we accept a wide range
2606 of positive values. */
2607 #define SISIGNOPT SI + 1
2608 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
2609
2610 /* The SI8 field in a D form instruction. */
2611 #define SI8 SISIGNOPT + 1
2612 { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
2613
2614 /* The SPR field in an XFX form instruction. This is flipped--the
2615 lower 5 bits are stored in the upper 5 and vice- versa. */
2616 #define SPR SI8 + 1
2617 #define PMR SPR
2618 #define TMR SPR
2619 #define SPR_MASK (0x3ff << 11)
2620 { 0x3ff, 11, insert_spr, extract_spr, PPC_OPERAND_SPR },
2621
2622 /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */
2623 #define SPRBAT SPR + 1
2624 #define SPRBAT_MASK (0xc1 << 11)
2625 { 0x7, PPC_OPSHIFT_INV, insert_sprbat, extract_sprbat, PPC_OPERAND_SPR },
2626
2627 /* The GQR index number in an XFX form m[ft]gqr instruction. */
2628 #define SPRGQR SPRBAT + 1
2629 #define SPRGQR_MASK (0x7 << 16)
2630 { 0x7, 16, NULL, NULL, PPC_OPERAND_GQR },
2631
2632 /* The SPRG register number in an XFX form m[ft]sprg instruction. */
2633 #define SPRG SPRGQR + 1
2634 { 0x1f, 16, insert_sprg, extract_sprg, PPC_OPERAND_SPR },
2635
2636 /* The SR field in an X form instruction. */
2637 #define SR SPRG + 1
2638 /* The 4-bit UIMM field in a VX form instruction. */
2639 #define UIMM4 SR
2640 { 0xf, 16, NULL, NULL, 0 },
2641
2642 /* The STRM field in an X AltiVec form instruction. */
2643 #define STRM SR + 1
2644 /* The T field in a tlbilx form instruction. */
2645 #define T STRM
2646 /* The L field in wclr instructions. */
2647 #define L2 STRM
2648 { 0x3, 21, NULL, NULL, 0 },
2649
2650 /* The ESYNC field in an X (sync) form instruction. */
2651 #define ESYNC STRM + 1
2652 { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL },
2653
2654 /* The SV field in a POWER SC form instruction. */
2655 #define SV ESYNC + 1
2656 { 0x3fff, 2, NULL, NULL, 0 },
2657
2658 /* The TBR field in an XFX form instruction. This is like the SPR
2659 field, but it is optional. */
2660 #define TBR SV + 1
2661 { 0x3ff, 11, insert_tbr, extract_tbr,
2662 PPC_OPERAND_SPR | PPC_OPERAND_OPTIONAL },
2663
2664 /* The TO field in a D or X form instruction. */
2665 #define TO TBR + 1
2666 #define DUI TO
2667 #define TO_MASK (0x1f << 21)
2668 { 0x1f, 21, NULL, NULL, 0 },
2669
2670 /* The UI field in a D form instruction. */
2671 #define UI TO + 1
2672 { 0xffff, 0, NULL, NULL, 0 },
2673
2674 #define UISIGNOPT UI + 1
2675 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT },
2676
2677 /* The IMM field in an SE_IM5 instruction. */
2678 #define UI5 UISIGNOPT + 1
2679 { 0x1f, 4, NULL, NULL, 0 },
2680
2681 /* The OIMM field in an SE_OIM5 instruction. */
2682 #define OIMM5 UI5 + 1
2683 { 0x1f, 4, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 },
2684
2685 /* The UI7 field in an SE_LI instruction. */
2686 #define UI7 OIMM5 + 1
2687 { 0x7f, 4, NULL, NULL, 0 },
2688
2689 /* The VA field in a VA, VX or VXR form instruction. */
2690 #define VA UI7 + 1
2691 { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR },
2692
2693 /* The VB field in a VA, VX or VXR form instruction. */
2694 #define VB VA + 1
2695 { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR },
2696
2697 /* The VC field in a VA form instruction. */
2698 #define VC VB + 1
2699 { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR },
2700
2701 /* The VD or VS field in a VA, VX, VXR or X form instruction. */
2702 #define VD VC + 1
2703 #define VS VD
2704 { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR },
2705
2706 /* The SIMM field in a VX form instruction, and TE in Z form. */
2707 #define SIMM VD + 1
2708 #define TE SIMM
2709 { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED},
2710
2711 /* The UIMM field in a VX form instruction. */
2712 #define UIMM SIMM + 1
2713 #define DCTL UIMM
2714 { 0x1f, 16, NULL, NULL, 0 },
2715
2716 /* The 3-bit UIMM field in a VX form instruction. */
2717 #define UIMM3 UIMM + 1
2718 { 0x7, 16, NULL, NULL, 0 },
2719
2720 /* The 6-bit UIM field in a X form instruction. */
2721 #define UIM6 UIMM3 + 1
2722 { 0x3f, 16, NULL, NULL, 0 },
2723
2724 /* The SIX field in a VX form instruction. */
2725 #define SIX UIM6 + 1
2726 #define MMMM SIX
2727 { 0xf, 11, NULL, NULL, 0 },
2728
2729 /* The PS field in a VX form instruction. */
2730 #define PS SIX + 1
2731 { 0x1, 9, NULL, NULL, 0 },
2732
2733 /* The SH field in a vector shift double by bit immediate instruction. */
2734 #define SH3 PS + 1
2735 { 0x7, 6, NULL, NULL, 0 },
2736
2737 /* The SHB field in a VA form instruction. */
2738 #define SHB SH3 + 1
2739 { 0xf, 6, NULL, NULL, 0 },
2740
2741 /* The other UIMM field in a half word EVX form instruction. */
2742 #define EVUIMM_1 SHB + 1
2743 { 0x1f, 11, NULL, NULL, PPC_OPERAND_PARENS },
2744
2745 #define EVUIMM_1_EX0 EVUIMM_1 + 1
2746 { 0x1f, 11, insert_evuimm1_ex0, extract_evuimm1_ex0, PPC_OPERAND_PARENS },
2747
2748 #define EVUIMM_2 EVUIMM_1_EX0 + 1
2749 { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS },
2750
2751 #define EVUIMM_2_EX0 EVUIMM_2 + 1
2752 { 0x3e, 10, insert_evuimm2_ex0, extract_evuimm2_ex0, PPC_OPERAND_PARENS },
2753
2754 /* The other UIMM field in a word EVX form instruction. */
2755 #define EVUIMM_4 EVUIMM_2_EX0 + 1
2756 { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS },
2757
2758 #define EVUIMM_4_EX0 EVUIMM_4 + 1
2759 { 0x7c, 9, insert_evuimm4_ex0, extract_evuimm4_ex0, PPC_OPERAND_PARENS },
2760
2761 /* The other UIMM field in a double EVX form instruction. */
2762 #define EVUIMM_8 EVUIMM_4_EX0 + 1
2763 { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS },
2764
2765 #define EVUIMM_8_EX0 EVUIMM_8 + 1
2766 { 0xf8, 8, insert_evuimm8_ex0, extract_evuimm8_ex0, PPC_OPERAND_PARENS },
2767
2768 /* The WS or DRM field in an X form instruction. */
2769 #define WS EVUIMM_8_EX0 + 1
2770 #define DRM WS
2771 /* The NNN field in a VX form instruction for SPE2 */
2772 #define NNN WS
2773 { 0x7, 11, NULL, NULL, 0 },
2774
2775 /* PowerPC paired singles extensions. */
2776 /* W bit in the pair singles instructions for x type instructions. */
2777 #define PSWM WS + 1
2778 /* The BO16 field in a BD8 form instruction. */
2779 #define BO16 PSWM
2780 { 0x1, 10, 0, 0, 0 },
2781
2782 /* IDX bits for quantization in the pair singles instructions. */
2783 #define PSQ PSWM + 1
2784 { 0x7, 12, 0, 0, PPC_OPERAND_GQR },
2785
2786 /* IDX bits for quantization in the pair singles x-type instructions. */
2787 #define PSQM PSQ + 1
2788 { 0x7, 7, 0, 0, PPC_OPERAND_GQR },
2789
2790 /* Smaller D field for quantization in the pair singles instructions. */
2791 #define PSD PSQM + 1
2792 { 0xfff, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
2793
2794 /* The L field in an mtmsrd or A form instruction or R or W in an
2795 X form. */
2796 #define A_L PSD + 1
2797 #define W A_L
2798 #define X_R A_L
2799 { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL },
2800
2801 /* The RMC or CY field in a Z23 form instruction. */
2802 #define RMC A_L + 1
2803 #define CY RMC
2804 { 0x3, 9, NULL, NULL, 0 },
2805
2806 #define R RMC + 1
2807 { 0x1, 16, NULL, NULL, 0 },
2808
2809 #define RIC R + 1
2810 { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL },
2811
2812 #define PRS RIC + 1
2813 { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL },
2814
2815 #define SP PRS + 1
2816 { 0x3, 19, NULL, NULL, 0 },
2817
2818 #define S SP + 1
2819 { 0x1, 20, NULL, NULL, 0 },
2820
2821 /* The S field in a XL form instruction. */
2822 #define SXL S + 1
2823 { 0x1, 11, insert_sxl, extract_sxl, PPC_OPERAND_OPTIONAL },
2824
2825 /* SH field starting at bit position 16. */
2826 #define SH16 SXL + 1
2827 /* The DCM and DGM fields in a Z form instruction. */
2828 #define DCM SH16
2829 #define DGM DCM
2830 { 0x3f, 10, NULL, NULL, 0 },
2831
2832 /* The EH field in larx instruction. */
2833 #define EH SH16 + 1
2834 { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL },
2835
2836 /* The L field in an mtfsf or XFL form instruction. */
2837 /* The A field in a HTM X form instruction. */
2838 #define XFL_L EH + 1
2839 #define HTM_A XFL_L
2840 { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL},
2841
2842 /* Xilinx APU related masks and macros */
2843 #define FCRT XFL_L + 1
2844 #define FCRT_MASK (0x1f << 21)
2845 { 0x1f, 21, 0, 0, PPC_OPERAND_FCR },
2846
2847 /* Xilinx FSL related masks and macros */
2848 #define FSL FCRT + 1
2849 #define FSL_MASK (0x1f << 11)
2850 { 0x1f, 11, 0, 0, PPC_OPERAND_FSL },
2851
2852 /* Xilinx UDI related masks and macros */
2853 #define URT FSL + 1
2854 { 0x1f, 21, 0, 0, PPC_OPERAND_UDI },
2855
2856 #define URA URT + 1
2857 { 0x1f, 16, 0, 0, PPC_OPERAND_UDI },
2858
2859 #define URB URA + 1
2860 { 0x1f, 11, 0, 0, PPC_OPERAND_UDI },
2861
2862 #define URC URB + 1
2863 { 0x1f, 6, 0, 0, PPC_OPERAND_UDI },
2864
2865 /* The VLESIMM field in a D form instruction. */
2866 #define VLESIMM URC + 1
2867 { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi,
2868 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
2869
2870 /* The VLENSIMM field in a D form instruction. */
2871 #define VLENSIMM VLESIMM + 1
2872 { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi,
2873 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
2874
2875 /* The VLEUIMM field in a D form instruction. */
2876 #define VLEUIMM VLENSIMM + 1
2877 { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 },
2878
2879 /* The VLEUIMML field in a D form instruction. */
2880 #define VLEUIMML VLEUIMM + 1
2881 { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 },
2882
2883 /* The XT and XS fields in an XX1 or XX3 form instruction. This is
2884 split. */
2885 #define XS6 VLEUIMML + 1
2886 #define XT6 XS6
2887 { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR },
2888
2889 /* The XT and XS fields in an DQ form VSX instruction. This is split. */
2890 #define XSQ6 XT6 + 1
2891 #define XTQ6 XSQ6
2892 { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR },
2893
2894 /* The split XTp field in a vector paired instruction. */
2895 #define XTP XSQ6 + 1
2896 { 0x3e, PPC_OPSHIFT_INV, insert_xtp, extract_xtp, PPC_OPERAND_VSR },
2897
2898 #define XTS XTP + 1
2899 { 0x3f, PPC_OPSHIFT_INV, insert_xts, extract_xts, PPC_OPERAND_VSR },
2900
2901 /* The XT field in a plxv instruction. Runs into the OP field. */
2902 #define XTOP XTS + 1
2903 { 0x3f, 21, NULL, NULL, PPC_OPERAND_VSR },
2904
2905 /* The XA field in an XX3 form instruction. This is split. */
2906 #define XA6 XTOP + 1
2907 { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR },
2908
2909 /* The XB field in an XX2 or XX3 form instruction. This is split. */
2910 #define XB6 XA6 + 1
2911 { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR },
2912
2913 /* The XA and XB fields in an XX3 form instruction when they must be the same.
2914 This is used in extended mnemonics like xvmovdp. This is split. */
2915 #define XAB6 XB6 + 1
2916 { 0x3f, PPC_OPSHIFT_INV, insert_xab6, extract_xab6, PPC_OPERAND_VSR },
2917
2918 /* The XC field in an XX4 form instruction. This is split. */
2919 #define XC6 XAB6 + 1
2920 { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR },
2921
2922 /* The DM or SHW field in an XX3 form instruction. */
2923 #define DM XC6 + 1
2924 #define SHW DM
2925 { 0x3, 8, NULL, NULL, 0 },
2926
2927 /* The DM field in an extended mnemonic XX3 form instruction. */
2928 #define DMEX DM + 1
2929 { 0x3, 8, insert_dm, extract_dm, 0 },
2930
2931 /* The UIM field in an XX2 form instruction. */
2932 #define UIM DMEX + 1
2933 /* The 2-bit UIMM field in a VX form instruction. */
2934 #define UIMM2 UIM
2935 /* The 2-bit L field in a darn instruction. */
2936 #define LRAND UIM
2937 { 0x3, 16, NULL, NULL, 0 },
2938
2939 #define ERAT_T UIM + 1
2940 { 0x7, 21, NULL, NULL, 0 },
2941
2942 #define IH ERAT_T + 1
2943 { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
2944
2945 /* The 8-bit IMM8 field in a XX1 form instruction. */
2946 #define IMM8 IH + 1
2947 { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT },
2948
2949 #define VX_OFF IMM8 + 1
2950 { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 },
2951
2952 #define VX_OFF_SPE2 VX_OFF + 1
2953 { 0x7, 0, insert_off_spe2, extract_off_spe2, 0 },
2954
2955 #define BBB VX_OFF_SPE2 + 1
2956 { 0x7, 13, NULL, NULL, 0 },
2957
2958 #define DDD BBB + 1
2959 #define VX_MASK_DDD (VX_MASK & ~0x1)
2960 { 0x7, PPC_OPSHIFT_INV, insert_Ddd, extract_Ddd, 0 },
2961
2962 #define HH DDD + 1
2963 { 0x3, 13, NULL, NULL, 0 },
2964 };
2965
2966 const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
2967 / sizeof (powerpc_operands[0]));
2968 \f
2969 /* Macros used to form opcodes. */
2970
2971 /* The main opcode. */
2972 #define OP(x) ((((uint64_t)(x)) & 0x3f) << 26)
2973 #define OP_MASK OP (0x3f)
2974
2975 /* The prefix opcode. */
2976 #define PREFIX_OP (1ULL << 58)
2977
2978 /* The 2-bit prefix form. */
2979 #define PREFIX_FORM(x) ((x & 3ULL) << 56)
2980
2981 #define SUFFIX_MASK ((1ULL << 32) - 1)
2982 #define PREFIX_MASK (SUFFIX_MASK << 32)
2983
2984 /* Prefix insn, eight byte load/store form 8LS. */
2985 #define P8LS (PREFIX_OP | PREFIX_FORM (0))
2986
2987 /* Prefix insn, eight byte register to register form 8RR. */
2988 #define P8RR (PREFIX_OP | PREFIX_FORM (1))
2989
2990 /* Prefix insn, modified load/store form MLS. */
2991 #define PMLS (PREFIX_OP | PREFIX_FORM (2))
2992
2993 /* Prefix insn, modified register to register form MRR. */
2994 #define PMRR (PREFIX_OP | PREFIX_FORM (3))
2995
2996 /* An 8-byte D form prefix instruction. */
2997 #define P_D_MASK (((-1ULL << 50) & ~PCREL_MASK) | OP_MASK)
2998
2999 /* The same as P_D_MASK, but with the RA and PCREL fields specified. */
3000 #define P_DRAPCREL_MASK (P_D_MASK | PCREL_MASK | RA_MASK)
3001
3002 /* Mask for prefix vector permute insns. */
3003 #define P_XX4_MASK (PREFIX_MASK | XX4_MASK)
3004 #define P_UXX4_MASK (P_XX4_MASK & ~(7ULL << 32))
3005
3006 /* Vector splat immediate op. */
3007 #define VSOP(op, xop) (OP (op) | (xop << 17))
3008 #define P_VS_MASK ((-1ULL << 48) | VSOP (0x3f, 0xf))
3009 #define P_VSI_MASK ((-1ULL << 48) | VSOP (0x3f, 0xe))
3010
3011 /* The main opcode combined with a trap code in the TO field of a D
3012 form instruction. Used for extended mnemonics for the trap
3013 instructions. */
3014 #define OPTO(x,to) (OP (x) | ((((uint64_t)(to)) & 0x1f) << 21))
3015 #define OPTO_MASK (OP_MASK | TO_MASK)
3016
3017 /* The main opcode combined with a comparison size bit in the L field
3018 of a D form or X form instruction. Used for extended mnemonics for
3019 the comparison instructions. */
3020 #define OPL(x,l) (OP (x) | ((((uint64_t)(l)) & 1) << 21))
3021 #define OPL_MASK OPL (0x3f,1)
3022
3023 /* The main opcode combined with an update code in D form instruction.
3024 Used for extended mnemonics for VLE memory instructions. */
3025 #define OPVUP(x,vup) (OP (x) | ((((uint64_t)(vup)) & 0xff) << 8))
3026 #define OPVUP_MASK OPVUP (0x3f, 0xff)
3027
3028 /* The main opcode combined with an update code and the RT fields
3029 specified in D form instruction. Used for VLE volatile context
3030 save/restore instructions. */
3031 #define OPVUPRT(x,vup,rt) \
3032 (OPVUP (x, vup) \
3033 | ((((uint64_t)(rt)) & 0x1f) << 21))
3034 #define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f)
3035
3036 /* An A form instruction. */
3037 #define A(op, xop, rc) \
3038 (OP (op) \
3039 | ((((uint64_t)(xop)) & 0x1f) << 1) \
3040 | (((uint64_t)(rc)) & 1))
3041 #define A_MASK A (0x3f, 0x1f, 1)
3042
3043 /* An A_MASK with the FRB field fixed. */
3044 #define AFRB_MASK (A_MASK | FRB_MASK)
3045
3046 /* An A_MASK with the FRC field fixed. */
3047 #define AFRC_MASK (A_MASK | FRC_MASK)
3048
3049 /* An A_MASK with the FRA and FRC fields fixed. */
3050 #define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)
3051
3052 /* An AFRAFRC_MASK, but with L bit clear. */
3053 #define AFRALFRC_MASK (AFRAFRC_MASK & ~((uint64_t) 1 << 16))
3054
3055 /* A B form instruction. */
3056 #define B(op, aa, lk) \
3057 (OP (op) \
3058 | ((((uint64_t)(aa)) & 1) << 1) \
3059 | ((lk) & 1))
3060 #define B_MASK B (0x3f, 1, 1)
3061
3062 /* A BD8 form instruction. This is a 16-bit instruction. */
3063 #define BD8(op, aa, lk) \
3064 (((((uint64_t)(op)) & 0x3f) << 10) \
3065 | (((aa) & 1) << 9) \
3066 | (((lk) & 1) << 8))
3067 #define BD8_MASK BD8 (0x3f, 1, 1)
3068
3069 /* Another BD8 form instruction. This is a 16-bit instruction. */
3070 #define BD8IO(op) ((((uint64_t)(op)) & 0x1f) << 11)
3071 #define BD8IO_MASK BD8IO (0x1f)
3072
3073 /* A BD8 form instruction for simplified mnemonics. */
3074 #define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8))
3075 /* A mask that excludes BO32 and BI32. */
3076 #define EBD8IO1_MASK 0xf800
3077 /* A mask that includes BO32 and excludes BI32. */
3078 #define EBD8IO2_MASK 0xfc00
3079 /* A mask that include BO32 AND BI32. */
3080 #define EBD8IO3_MASK 0xff00
3081
3082 /* A BD15 form instruction. */
3083 #define BD15(op, aa, lk) \
3084 (OP (op) \
3085 | ((((uint64_t)(aa)) & 0xf) << 22) \
3086 | ((lk) & 1))
3087 #define BD15_MASK BD15 (0x3f, 0xf, 1)
3088
3089 /* A BD15 form instruction for extended conditional branch mnemonics. */
3090 #define EBD15(op, aa, bo, lk) \
3091 (((op) & 0x3fu) << 26) \
3092 | (((aa) & 0xf) << 22) \
3093 | (((bo) & 0x3) << 20) \
3094 | ((lk) & 1)
3095 #define EBD15_MASK 0xfff00001
3096
3097 /* A BD15 form instruction for extended conditional branch mnemonics
3098 with BI. */
3099 #define EBD15BI(op, aa, bo, bi, lk) \
3100 ((((op) & 0x3fu) << 26) \
3101 | (((aa) & 0xf) << 22) \
3102 | (((bo) & 0x3) << 20) \
3103 | (((bi) & 0x3) << 16) \
3104 | ((lk) & 1))
3105
3106 #define EBD15BI_MASK 0xfff30001
3107
3108 /* A BD24 form instruction. */
3109 #define BD24(op, aa, lk) \
3110 (OP (op) \
3111 | ((((uint64_t)(aa)) & 1) << 25) \
3112 | ((lk) & 1))
3113 #define BD24_MASK BD24 (0x3f, 1, 1)
3114
3115 /* A B form instruction setting the BO field. */
3116 #define BBO(op, bo, aa, lk) \
3117 (B ((op), (aa), (lk)) \
3118 | ((((uint64_t)(bo)) & 0x1f) << 21))
3119 #define BBO_MASK BBO (0x3f, 0x1f, 1, 1)
3120
3121 /* A BBO_MASK with the y bit of the BO field removed. This permits
3122 matching a conditional branch regardless of the setting of the y
3123 bit. Similarly for the 'at' bits used for power4 branch hints. */
3124 #define Y_MASK (((uint64_t) 1) << 21)
3125 #define AT1_MASK (((uint64_t) 3) << 21)
3126 #define AT2_MASK (((uint64_t) 9) << 21)
3127 #define BBOY_MASK (BBO_MASK &~ Y_MASK)
3128 #define BBOAT_MASK (BBO_MASK &~ AT1_MASK)
3129
3130 /* A B form instruction setting the BO field and the condition bits of
3131 the BI field. */
3132 #define BBOCB(op, bo, cb, aa, lk) \
3133 (BBO ((op), (bo), (aa), (lk)) | ((((uint64_t)(cb)) & 0x3) << 16))
3134 #define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)
3135
3136 /* A BBOCB_MASK with the y bit of the BO field removed. */
3137 #define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)
3138 #define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)
3139 #define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)
3140
3141 /* A BBOYCB_MASK in which the BI field is fixed. */
3142 #define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)
3143 #define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)
3144
3145 /* A VLE C form instruction. */
3146 #define C_LK(x, lk) (((((uint64_t)(x)) & 0x7fff) << 1) | ((lk) & 1))
3147 #define C_LK_MASK C_LK(0x7fff, 1)
3148 #define C(x) ((((uint64_t)(x)) & 0xffff))
3149 #define C_MASK C(0xffff)
3150
3151 /* An Context form instruction. */
3152 #define CTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7))
3153 #define CTX_MASK CTX(0x3f, 0x7)
3154
3155 /* An User Context form instruction. */
3156 #define UCTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
3157 #define UCTX_MASK UCTX(0x3f, 0x1f)
3158
3159 /* The main opcode mask with the RA field clear. */
3160 #define DRA_MASK (OP_MASK | RA_MASK)
3161
3162 /* A DQ form VSX instruction. */
3163 #define DQX(op, xop) (OP (op) | ((xop) & 0x7))
3164 #define DQX_MASK DQX (0x3f, 7)
3165
3166 /* A DQ form VSX vector paired instruction. */
3167 #define DQXP(op, xop) (OP (op) | ((xop) & 0xf))
3168 #define DQXP_MASK DQXP (0x3f, 0xf)
3169
3170 /* A DS form instruction. */
3171 #define DSO(op, xop) (OP (op) | ((xop) & 0x3))
3172 #define DS_MASK DSO (0x3f, 3)
3173
3174 /* An DX form instruction. */
3175 #define DX(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
3176 #define DX_MASK DX (0x3f, 0x1f)
3177 /* An DX form instruction with the D bits specified. */
3178 #define NODX_MASK (DX_MASK | 0x1fffc1)
3179
3180 /* An EVSEL form instruction. */
3181 #define EVSEL(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xff) << 3)
3182 #define EVSEL_MASK EVSEL(0x3f, 0xff)
3183
3184 /* An IA16 form instruction. */
3185 #define IA16(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
3186 #define IA16_MASK IA16(0x3f, 0x1f)
3187
3188 /* An I16A form instruction. */
3189 #define I16A(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
3190 #define I16A_MASK I16A(0x3f, 0x1f)
3191
3192 /* An I16L form instruction. */
3193 #define I16L(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
3194 #define I16L_MASK I16L(0x3f, 0x1f)
3195
3196 /* An IM7 form instruction. */
3197 #define IM7(op) ((((uint64_t)(op)) & 0x1f) << 11)
3198 #define IM7_MASK IM7(0x1f)
3199
3200 /* An M form instruction. */
3201 #define M(op, rc) (OP (op) | ((rc) & 1))
3202 #define M_MASK M (0x3f, 1)
3203
3204 /* An LI20 form instruction. */
3205 #define LI20(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1) << 15)
3206 #define LI20_MASK LI20(0x3f, 0x1)
3207
3208 /* An M form instruction with the ME field specified. */
3209 #define MME(op, me, rc) \
3210 (M ((op), (rc)) \
3211 | ((((uint64_t)(me)) & 0x1f) << 1))
3212
3213 /* An M_MASK with the MB and ME fields fixed. */
3214 #define MMBME_MASK (M_MASK | MB_MASK | ME_MASK)
3215
3216 /* An M_MASK with the SH and ME fields fixed. */
3217 #define MSHME_MASK (M_MASK | SH_MASK | ME_MASK)
3218
3219 /* An MD form instruction. */
3220 #define MD(op, xop, rc) \
3221 (OP (op) \
3222 | ((((uint64_t)(xop)) & 0x7) << 2) \
3223 | ((rc) & 1))
3224 #define MD_MASK MD (0x3f, 0x7, 1)
3225
3226 /* An MD_MASK with the MB field fixed. */
3227 #define MDMB_MASK (MD_MASK | MB6_MASK)
3228
3229 /* An MD_MASK with the SH field fixed. */
3230 #define MDSH_MASK (MD_MASK | SH6_MASK)
3231
3232 /* An MDS form instruction. */
3233 #define MDS(op, xop, rc) \
3234 (OP (op) \
3235 | ((((uint64_t)(xop)) & 0xf) << 1) \
3236 | ((rc) & 1))
3237 #define MDS_MASK MDS (0x3f, 0xf, 1)
3238
3239 /* An MDS_MASK with the MB field fixed. */
3240 #define MDSMB_MASK (MDS_MASK | MB6_MASK)
3241
3242 /* An SC form instruction. */
3243 #define SC(op, sa, lk) \
3244 (OP (op) \
3245 | ((((uint64_t)(sa)) & 1) << 1) \
3246 | ((lk) & 1))
3247 #define SC_MASK \
3248 (OP_MASK \
3249 | (((uint64_t) 0x3ff) << 16) \
3250 | (((uint64_t) 1) << 1) \
3251 | 1)
3252
3253 /* An SCI8 form instruction. */
3254 #define SCI8(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 11))
3255 #define SCI8_MASK SCI8(0x3f, 0x1f)
3256
3257 /* An SCI8 form instruction. */
3258 #define SCI8BF(op, fop, xop) \
3259 (OP (op) \
3260 | ((((uint64_t)(xop)) & 0x1f) << 11) \
3261 | (((fop) & 7) << 23))
3262 #define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f)
3263
3264 /* An SD4 form instruction. This is a 16-bit instruction. */
3265 #define SD4(op) ((((uint64_t)(op)) & 0xf) << 12)
3266 #define SD4_MASK SD4(0xf)
3267
3268 /* An SE_IM5 form instruction. This is a 16-bit instruction. */
3269 #define SE_IM5(op, xop) \
3270 (((((uint64_t)(op)) & 0x3f) << 10) \
3271 | (((xop) & 0x1) << 9))
3272 #define SE_IM5_MASK SE_IM5(0x3f, 1)
3273
3274 /* An SE_R form instruction. This is a 16-bit instruction. */
3275 #define SE_R(op, xop) \
3276 (((((uint64_t)(op)) & 0x3f) << 10) \
3277 | (((xop) & 0x3f) << 4))
3278 #define SE_R_MASK SE_R(0x3f, 0x3f)
3279
3280 /* An SE_RR form instruction. This is a 16-bit instruction. */
3281 #define SE_RR(op, xop) \
3282 (((((uint64_t)(op)) & 0x3f) << 10) \
3283 | (((xop) & 0x3) << 8))
3284 #define SE_RR_MASK SE_RR(0x3f, 3)
3285
3286 /* A VX form instruction. */
3287 #define VX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
3288
3289 /* The mask for an VX form instruction. */
3290 #define VX_MASK VX(0x3f, 0x7ff)
3291
3292 /* A VX LSP form instruction. */
3293 #define VX_LSP(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xffff))
3294
3295 /* The mask for an VX LSP form instruction. */
3296 #define VX_LSP_MASK VX_LSP(0x3f, 0xffff)
3297 #define VX_LSP_OFF_MASK VX_LSP(0x3f, 0x7fc)
3298
3299 /* Additional format of VX SPE2 form instruction. */
3300 #define VX_RA_CONST(op, xop, bits11_15) \
3301 (OP (op) \
3302 | (((uint64_t)(bits11_15) & 0x1f) << 16) \
3303 | (((uint64_t)(xop)) & 0x7ff))
3304 #define VX_RA_CONST_MASK VX_RA_CONST(0x3f, 0x7ff, 0x1f)
3305
3306 #define VX_RB_CONST(op, xop, bits16_20) \
3307 (OP (op) \
3308 | (((uint64_t)(bits16_20) & 0x1f) << 11) \
3309 | (((uint64_t)(xop)) & 0x7ff))
3310 #define VX_RB_CONST_MASK VX_RB_CONST(0x3f, 0x7ff, 0x1f)
3311
3312 #define VX_OFF_SPE2_MASK VX(0x3f, 0x7f8)
3313
3314 #define VX_SPE_CRFD(op, xop, bits9_10) \
3315 (OP (op) \
3316 | (((uint64_t)(bits9_10) & 0x3) << 21) \
3317 | (((uint64_t)(xop)) & 0x7ff))
3318 #define VX_SPE_CRFD_MASK VX_SPE_CRFD(0x3f, 0x7ff, 0x3)
3319
3320 #define VX_SPE2_CLR(op, xop, bit16) \
3321 (OP (op) \
3322 | (((uint64_t)(bit16) & 0x1) << 15) \
3323 | (((uint64_t)(xop)) & 0x7ff))
3324 #define VX_SPE2_CLR_MASK VX_SPE2_CLR(0x3f, 0x7ff, 0x1)
3325
3326 #define VX_SPE2_SPLATB(op, xop, bits19_20) \
3327 (OP (op) \
3328 | (((uint64_t)(bits19_20) & 0x3) << 11) \
3329 | (((uint64_t)(xop)) & 0x7ff))
3330 #define VX_SPE2_SPLATB_MASK VX_SPE2_SPLATB(0x3f, 0x7ff, 0x3)
3331
3332 #define VX_SPE2_OCTET(op, xop, bits16_17) \
3333 (OP (op) \
3334 | (((uint64_t)(bits16_17) & 0x3) << 14) \
3335 | (((uint64_t)(xop)) & 0x7ff))
3336 #define VX_SPE2_OCTET_MASK VX_SPE2_OCTET(0x3f, 0x7ff, 0x7)
3337
3338 #define VX_SPE2_DDHH(op, xop, bit16) \
3339 (OP (op) \
3340 | (((uint64_t)(bit16) & 0x1) << 15) \
3341 | (((uint64_t)(xop)) & 0x7ff))
3342 #define VX_SPE2_DDHH_MASK VX_SPE2_DDHH(0x3f, 0x7ff, 0x1)
3343
3344 #define VX_SPE2_HH(op, xop, bit16, bits19_20) \
3345 (OP (op) \
3346 | (((uint64_t)(bit16) & 0x1) << 15) \
3347 | (((uint64_t)(bits19_20) & 0x3) << 11) \
3348 | (((uint64_t)(xop)) & 0x7ff))
3349 #define VX_SPE2_HH_MASK VX_SPE2_HH(0x3f, 0x7ff, 0x1, 0x3)
3350
3351 #define VX_SPE2_EVMAR(op, xop) \
3352 (OP (op) \
3353 | ((uint64_t)(0x1) << 11) \
3354 | (((uint64_t)(xop)) & 0x7ff))
3355 #define VX_SPE2_EVMAR_MASK \
3356 (VX_SPE2_EVMAR(0x3f, 0x7ff) \
3357 | ((uint64_t)(0x1) << 11))
3358
3359 /* A VX_MASK with the VA field fixed. */
3360 #define VXVA_MASK (VX_MASK | (0x1f << 16))
3361
3362 /* A VX_MASK with the VB field fixed. */
3363 #define VXVB_MASK (VX_MASK | (0x1f << 11))
3364
3365 /* A VX_MASK with the VA and VB fields fixed. */
3366 #define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11))
3367
3368 /* A VX_MASK with the VD and VA fields fixed. */
3369 #define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16))
3370
3371 /* A VX_MASK with a UIMM4 field. */
3372 #define VXUIMM4_MASK (VX_MASK | (0x1 << 20))
3373
3374 /* A VX_MASK with a UIMM3 field. */
3375 #define VXUIMM3_MASK (VX_MASK | (0x3 << 19))
3376
3377 /* A VX_MASK with a UIMM2 field. */
3378 #define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
3379
3380 /* A VX_MASK with a PS field. */
3381 #define VXPS_MASK (VX_MASK & ~(0x1 << 9))
3382
3383 /* A VX_MASK with the VA field fixed with a PS field. */
3384 #define VXVAPS_MASK ((VX_MASK | (0x1f << 16)) & ~(0x1 << 9))
3385
3386 /* A VX_MASK for instructions using a BF field. */
3387 #define VXBF_MASK (VX_MASK | (3 << 21))
3388
3389 /* A VX_MASK for instructions with an RC field. */
3390 #define VXRC_MASK (VX_MASK & ~(0x1f << 6))
3391
3392 /* A VX_MASK for instructions with a SH field. */
3393 #define VXSH_MASK (VX_MASK & ~(0x7 << 6))
3394
3395 /* A VA form instruction. */
3396 #define VXA(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x03f))
3397
3398 /* The mask for an VA form instruction. */
3399 #define VXA_MASK VXA(0x3f, 0x3f)
3400
3401 /* A VXA_MASK with a SHB field. */
3402 #define VXASHB_MASK (VXA_MASK | (1 << 10))
3403
3404 /* A VXR form instruction. */
3405 #define VXR(op, xop, rc) \
3406 (OP (op) \
3407 | (((uint64_t)(rc) & 1) << 10) \
3408 | (((uint64_t)(xop)) & 0x3ff))
3409
3410 /* The mask for a VXR form instruction. */
3411 #define VXR_MASK VXR(0x3f, 0x3ff, 1)
3412
3413 /* A VX form instruction with a VA tertiary opcode. */
3414 #define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16))
3415
3416 #define VXASH(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
3417 #define VXASH_MASK VXASH (0x3f, 0x1f)
3418
3419 /* An X form instruction. */
3420 #define X(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
3421
3422 /* A X form instruction for Quad-Precision FP Instructions. */
3423 #define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16))
3424
3425 /* An EX form instruction. */
3426 #define EX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
3427
3428 /* The mask for an EX form instruction. */
3429 #define EX_MASK EX (0x3f, 0x7ff)
3430
3431 /* An XX2 form instruction. */
3432 #define XX2(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 2))
3433
3434 /* A XX2 form instruction with the VA bits specified. */
3435 #define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16))
3436
3437 /* An XX3 form instruction. */
3438 #define XX3(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0xff) << 3))
3439
3440 /* An XX3 form instruction with the RC bit specified. */
3441 #define XX3RC(op, xop, rc) \
3442 (OP (op) \
3443 | (((uint64_t)(rc) & 1) << 10) \
3444 | ((((uint64_t)(xop)) & 0x7f) << 3))
3445
3446 /* An XX4 form instruction. */
3447 #define XX4(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3) << 4))
3448
3449 /* A Z form instruction. */
3450 #define Z(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 1))
3451
3452 /* An X form instruction with the RC bit specified. */
3453 #define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1))
3454
3455 /* A X form instruction for Quad-Precision FP Instructions with RC bit. */
3456 #define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1))
3457
3458 /* An X form instruction with the RA bits specified as two ops. */
3459 #define XMMF(op, xop, mop0, mop1) \
3460 (X ((op), (xop)) \
3461 | ((mop0) & 3) << 19 \
3462 | ((mop1) & 7) << 16)
3463
3464 /* A Z form instruction with the RC bit specified. */
3465 #define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1))
3466
3467 /* The mask for an X form instruction. */
3468 #define X_MASK XRC (0x3f, 0x3ff, 1)
3469
3470 /* The mask for an X form instruction with the BF bits specified. */
3471 #define XBF_MASK (X_MASK | (3 << 21))
3472
3473 /* An X form wait instruction with everything filled in except the WC
3474 field. */
3475 #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
3476
3477 /* The mask for an XX1 form instruction. */
3478 #define XX1_MASK X (0x3f, 0x3ff)
3479
3480 /* An XX1_MASK with the RB field fixed. */
3481 #define XX1RB_MASK (XX1_MASK | RB_MASK)
3482
3483 /* The mask for an XX2 form instruction. */
3484 #define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
3485
3486 /* The mask for an XX2 form instruction with the UIM bits specified. */
3487 #define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18))
3488
3489 /* The mask for an XX2 form instruction with the 4 UIM bits specified. */
3490 #define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20))
3491
3492 /* The mask for an XX2 form instruction with the BF bits specified. */
3493 #define XX2BF_MASK (XX2_MASK | (3 << 21) | (1))
3494
3495 /* The mask for an XX2 form instruction with the BF and DCMX bits
3496 specified. */
3497 #define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1)
3498
3499 /* The mask for an XX2 form instruction with a split DCMX bits
3500 specified. */
3501 #define XX2DCMXS_MASK XX2 (0x3f, 0x1ee)
3502
3503 /* The mask for an XX3 form instruction. */
3504 #define XX3_MASK XX3 (0x3f, 0xff)
3505
3506 /* The mask for an XX3 form instruction with the BF bits specified. */
3507 #define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1))
3508
3509 /* The mask for an XX3 form instruction with the DM or SHW bits
3510 specified. */
3511 #define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10))
3512 #define XX3SHW_MASK XX3DM_MASK
3513
3514 /* The mask for an XX4 form instruction. */
3515 #define XX4_MASK XX4 (0x3f, 0x3)
3516
3517 /* An X form wait instruction with everything filled in except the WC
3518 field. */
3519 #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
3520
3521 /* The mask for an XMMF form instruction. */
3522 #define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1))
3523
3524 /* The mask for a Z form instruction. */
3525 #define Z_MASK ZRC (0x3f, 0x1ff, 1)
3526 #define Z2_MASK ZRC (0x3f, 0xff, 1)
3527
3528 /* An X_MASK with the RA/VA field fixed. */
3529 #define XRA_MASK (X_MASK | RA_MASK)
3530 #define XVA_MASK XRA_MASK
3531
3532 /* An XRA_MASK with the A_L/W field clear. */
3533 #define XWRA_MASK (XRA_MASK & ~((uint64_t) 1 << 16))
3534 #define XRLA_MASK XWRA_MASK
3535
3536 /* An X_MASK with the RB field fixed. */
3537 #define XRB_MASK (X_MASK | RB_MASK)
3538
3539 /* An X_MASK with the RT field fixed. */
3540 #define XRT_MASK (X_MASK | RT_MASK)
3541
3542 /* An XRT_MASK mask with the L bits clear. */
3543 #define XLRT_MASK (XRT_MASK & ~((uint64_t) 0x3 << 21))
3544
3545 /* An X_MASK with the RA and RB fields fixed. */
3546 #define XRARB_MASK (X_MASK | RA_MASK | RB_MASK)
3547
3548 /* An XBF_MASK with the RA and RB fields fixed. */
3549 #define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK)
3550
3551 /* An XRARB_MASK, but with the L bit clear. */
3552 #define XRLARB_MASK (XRARB_MASK & ~((uint64_t) 1 << 16))
3553
3554 /* An XRARB_MASK, but with the L bits in a darn instruction clear. */
3555 #define XLRAND_MASK (XRARB_MASK & ~((uint64_t) 3 << 16))
3556
3557 /* An X_MASK with the RT and RA fields fixed. */
3558 #define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK)
3559
3560 /* An X_MASK with the RT and RB fields fixed. */
3561 #define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK)
3562
3563 /* An XRTRA_MASK, but with L bit clear. */
3564 #define XRTLRA_MASK (XRTRA_MASK & ~((uint64_t) 1 << 21))
3565
3566 /* An X_MASK with the RT, RA and RB fields fixed. */
3567 #define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK)
3568
3569 /* An XRTRARB_MASK, but with L bit clear. */
3570 #define XRTLRARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 21))
3571
3572 /* An XRTRARB_MASK, but with A bit clear. */
3573 #define XRTARARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 25))
3574
3575 /* An XRTRARB_MASK, but with BF bits clear. */
3576 #define XRTBFRARB_MASK (XRTRARB_MASK & ~((uint64_t) 7 << 23))
3577
3578 /* An X form instruction with the L bit specified. */
3579 #define XOPL(op, xop, l) \
3580 (X ((op), (xop)) \
3581 | ((((uint64_t)(l)) & 1) << 21))
3582
3583 /* An X form instruction with the L bits specified. */
3584 #define XOPL2(op, xop, l) \
3585 (X ((op), (xop)) \
3586 | ((((uint64_t)(l)) & 3) << 21))
3587
3588 /* An X form instruction with the L bit and RC bit specified. */
3589 #define XRCL(op, xop, l, rc) \
3590 (XRC ((op), (xop), (rc)) \
3591 | ((((uint64_t)(l)) & 1) << 21))
3592
3593 /* An X form instruction with RT fields specified */
3594 #define XRT(op, xop, rt) \
3595 (X ((op), (xop)) \
3596 | ((((uint64_t)(rt)) & 0x1f) << 21))
3597
3598 /* An X form instruction with RT and RA fields specified */
3599 #define XRTRA(op, xop, rt, ra) \
3600 (X ((op), (xop)) \
3601 | ((((uint64_t)(rt)) & 0x1f) << 21) \
3602 | ((((uint64_t)(ra)) & 0x1f) << 16))
3603
3604 /* The mask for an X form comparison instruction. */
3605 #define XCMP_MASK (X_MASK | (((uint64_t)1) << 22))
3606
3607 /* The mask for an X form comparison instruction with the L field
3608 fixed. */
3609 #define XCMPL_MASK (XCMP_MASK | (((uint64_t)1) << 21))
3610
3611 /* An X form trap instruction with the TO field specified. */
3612 #define XTO(op, xop, to) \
3613 (X ((op), (xop)) \
3614 | ((((uint64_t)(to)) & 0x1f) << 21))
3615 #define XTO_MASK (X_MASK | TO_MASK)
3616
3617 /* An X form tlb instruction with the SH field specified. */
3618 #define XTLB(op, xop, sh) \
3619 (X ((op), (xop)) \
3620 | ((((uint64_t)(sh)) & 0x1f) << 11))
3621 #define XTLB_MASK (X_MASK | SH_MASK)
3622
3623 /* An X form sync instruction. */
3624 #define XSYNC(op, xop, l) \
3625 (X ((op), (xop)) \
3626 | ((((uint64_t)(l)) & 3) << 21))
3627
3628 /* An X form sync instruction with everything filled in except the LS
3629 field. */
3630 #define XSYNC_MASK (0xff9fffff)
3631
3632 /* An X form sync instruction with everything filled in except the L
3633 and E fields. */
3634 #define XSYNCLE_MASK (0xff90ffff)
3635
3636 /* An X_MASK, but with the EH bit clear. */
3637 #define XEH_MASK (X_MASK & ~((uint64_t )1))
3638
3639 /* An X form AltiVec dss instruction. */
3640 #define XDSS(op, xop, a) (X ((op), (xop)) | ((((uint64_t)(a)) & 1) << 25))
3641 #define XDSS_MASK XDSS(0x3f, 0x3ff, 1)
3642
3643 /* An XFL form instruction. */
3644 #define XFL(op, xop, rc) \
3645 (OP (op) \
3646 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
3647 | (((uint64_t)(rc)) & 1))
3648 #define XFL_MASK XFL (0x3f, 0x3ff, 1)
3649
3650 /* An X form isel instruction. */
3651 #define XISEL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
3652 #define XISEL_MASK XISEL(0x3f, 0x1f)
3653
3654 /* An XL form instruction with the LK field set to 0. */
3655 #define XL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
3656
3657 /* An XL form instruction which uses the LK field. */
3658 #define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1))
3659
3660 /* The mask for an XL form instruction. */
3661 #define XL_MASK XLLK (0x3f, 0x3ff, 1)
3662
3663 /* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear. */
3664 #define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11))
3665
3666 /* An XL form instruction which explicitly sets the BO field. */
3667 #define XLO(op, bo, xop, lk) \
3668 (XLLK ((op), (xop), (lk)) | ((((uint64_t)(bo)) & 0x1f) << 21))
3669 #define XLO_MASK (XL_MASK | BO_MASK)
3670
3671 /* An XL form instruction which sets the BO field and the condition
3672 bits of the BI field. */
3673 #define XLOCB(op, bo, cb, xop, lk) \
3674 (XLO ((op), (bo), (xop), (lk)) | ((((uint64_t)(cb)) & 3) << 16))
3675 #define XLOCB_MASK XLOCB (0x3f, 0x1f, 0x3, 0x3ff, 1)
3676
3677 /* An XL_MASK or XLOCB_MASK with the BB field fixed. */
3678 #define XLBB_MASK (XL_MASK | BB_MASK)
3679 #define XLBOCBBB_MASK (XLOCB_MASK | BB_MASK)
3680
3681 /* A mask for branch instructions using the BH field. */
3682 #define XLBH_MASK (XL_MASK | (BB_MASK & ~(3 << 11)))
3683
3684 /* An XL_MASK with the BO and BB fields fixed. */
3685 #define XLBOBB_MASK (XL_MASK | BO_MASK | BB_MASK)
3686
3687 /* An XL_MASK with the BO, BI and BB fields fixed. */
3688 #define XLBOBIBB_MASK (XL_MASK | BO_MASK | BI_MASK | BB_MASK)
3689
3690 /* An X form mbar instruction with MO field. */
3691 #define XMBAR(op, xop, mo) \
3692 (X ((op), (xop)) \
3693 | ((((uint64_t)(mo)) & 1) << 21))
3694
3695 /* An XO form instruction. */
3696 #define XO(op, xop, oe, rc) \
3697 (OP (op) \
3698 | ((((uint64_t)(xop)) & 0x1ff) << 1) \
3699 | ((((uint64_t)(oe)) & 1) << 10) \
3700 | (((unsigned long)(rc)) & 1))
3701 #define XO_MASK XO (0x3f, 0x1ff, 1, 1)
3702
3703 /* An XO_MASK with the RB field fixed. */
3704 #define XORB_MASK (XO_MASK | RB_MASK)
3705
3706 /* An XOPS form instruction for paired singles. */
3707 #define XOPS(op, xop, rc) \
3708 (OP (op) \
3709 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
3710 | (((uint64_t)(rc)) & 1))
3711 #define XOPS_MASK XOPS (0x3f, 0x3ff, 1)
3712
3713
3714 /* An XS form instruction. */
3715 #define XS(op, xop, rc) \
3716 (OP (op) \
3717 | ((((uint64_t)(xop)) & 0x1ff) << 2) \
3718 | (((uint64_t)(rc)) & 1))
3719 #define XS_MASK XS (0x3f, 0x1ff, 1)
3720
3721 /* A mask for the FXM version of an XFX form instruction. */
3722 #define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20))
3723
3724 /* An XFX form instruction with the FXM field filled in. */
3725 #define XFXM(op, xop, fxm, p4) \
3726 (X ((op), (xop)) \
3727 | ((((uint64_t)(fxm)) & 0xff) << 12) \
3728 | ((uint64_t)(p4) << 20))
3729
3730 /* An XFX form instruction with the SPR field filled in. */
3731 #define XSPR(op, xop, spr) \
3732 (X ((op), (xop)) \
3733 | ((((uint64_t)(spr)) & 0x1f) << 16) \
3734 | ((((uint64_t)(spr)) & 0x3e0) << 6))
3735 #define XSPR_MASK (X_MASK | SPR_MASK)
3736
3737 /* An XFX form instruction with the SPR field filled in except for the
3738 SPRBAT field. */
3739 #define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK)
3740
3741 /* An XFX form instruction with the SPR field filled in except for the
3742 SPRGQR field. */
3743 #define XSPRGQR_MASK (XSPR_MASK &~ SPRGQR_MASK)
3744
3745 /* An XFX form instruction with the SPR field filled in except for the
3746 SPRG field. */
3747 #define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16))
3748
3749 /* An X form instruction with everything filled in except the E field. */
3750 #define XE_MASK (0xffff7fff)
3751
3752 /* An X form user context instruction. */
3753 #define XUC(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
3754 #define XUC_MASK XUC(0x3f, 0x1f)
3755
3756 /* An XW form instruction. */
3757 #define XW(op, xop, rc) \
3758 (OP (op) \
3759 | ((((uint64_t)(xop)) & 0x3f) << 1) \
3760 | ((rc) & 1))
3761 /* The mask for a G form instruction. rc not supported at present. */
3762 #define XW_MASK XW (0x3f, 0x3f, 0)
3763
3764 /* An APU form instruction. */
3765 #define APU(op, xop, rc) \
3766 (OP (op) \
3767 | (((uint64_t)(xop)) & 0x3ff) << 1 \
3768 | ((rc) & 1))
3769
3770 /* The mask for an APU form instruction. */
3771 #define APU_MASK APU (0x3f, 0x3ff, 1)
3772 #define APU_RT_MASK (APU_MASK | RT_MASK)
3773 #define APU_RA_MASK (APU_MASK | RA_MASK)
3774
3775 /* The BO encodings used in extended conditional branch mnemonics. */
3776 #define BODNZF (0x0)
3777 #define BODNZFP (0x1)
3778 #define BODZF (0x2)
3779 #define BODZFP (0x3)
3780 #define BODNZT (0x8)
3781 #define BODNZTP (0x9)
3782 #define BODZT (0xa)
3783 #define BODZTP (0xb)
3784
3785 #define BOF (0x4)
3786 #define BOFP (0x5)
3787 #define BOFM4 (0x6)
3788 #define BOFP4 (0x7)
3789 #define BOT (0xc)
3790 #define BOTP (0xd)
3791 #define BOTM4 (0xe)
3792 #define BOTP4 (0xf)
3793
3794 #define BODNZ (0x10)
3795 #define BODNZP (0x11)
3796 #define BODZ (0x12)
3797 #define BODZP (0x13)
3798 #define BODNZM4 (0x18)
3799 #define BODNZP4 (0x19)
3800 #define BODZM4 (0x1a)
3801 #define BODZP4 (0x1b)
3802
3803 #define BOU (0x14)
3804
3805 /* The BO16 encodings used in extended VLE conditional branch mnemonics. */
3806 #define BO16F (0x0)
3807 #define BO16T (0x1)
3808
3809 /* The BO32 encodings used in extended VLE conditional branch mnemonics. */
3810 #define BO32F (0x0)
3811 #define BO32T (0x1)
3812 #define BO32DNZ (0x2)
3813 #define BO32DZ (0x3)
3814
3815 /* The BI condition bit encodings used in extended conditional branch
3816 mnemonics. */
3817 #define CBLT (0)
3818 #define CBGT (1)
3819 #define CBEQ (2)
3820 #define CBSO (3)
3821
3822 /* The TO encodings used in extended trap mnemonics. */
3823 #define TOLGT (0x1)
3824 #define TOLLT (0x2)
3825 #define TOEQ (0x4)
3826 #define TOLGE (0x5)
3827 #define TOLNL (0x5)
3828 #define TOLLE (0x6)
3829 #define TOLNG (0x6)
3830 #define TOGT (0x8)
3831 #define TOGE (0xc)
3832 #define TONL (0xc)
3833 #define TOLT (0x10)
3834 #define TOLE (0x14)
3835 #define TONG (0x14)
3836 #define TONE (0x18)
3837 #define TOU (0x1f)
3838 \f
3839 /* Smaller names for the flags so each entry in the opcodes table will
3840 fit on a single line. */
3841 #undef PPC
3842 #define PPC PPC_OPCODE_PPC
3843 #define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON
3844 #define POWER4 PPC_OPCODE_POWER4
3845 #define POWER5 PPC_OPCODE_POWER5
3846 #define POWER6 PPC_OPCODE_POWER6
3847 #define POWER7 PPC_OPCODE_POWER7
3848 #define POWER8 PPC_OPCODE_POWER8
3849 #define POWER9 PPC_OPCODE_POWER9
3850 #define POWER10 PPC_OPCODE_POWER10
3851 #define CELL PPC_OPCODE_CELL
3852 #define PPC64 PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE
3853 #define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 \
3854 | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
3855 #define PPC403 PPC_OPCODE_403
3856 #define PPC405 PPC_OPCODE_405
3857 #define PPC440 PPC_OPCODE_440
3858 #define PPC464 PPC440
3859 #define PPC476 PPC_OPCODE_476
3860 #define PPC750 PPC_OPCODE_750
3861 #define GEKKO PPC_OPCODE_750
3862 #define BROADWAY PPC_OPCODE_750
3863 #define PPC7450 PPC_OPCODE_7450
3864 #define PPC860 PPC_OPCODE_860
3865 #define PPCPS PPC_OPCODE_PPCPS
3866 #define PPCVEC PPC_OPCODE_ALTIVEC
3867 #define PPCVEC2 (PPC_OPCODE_POWER8 | PPC_OPCODE_E6500)
3868 #define PPCVEC3 PPC_OPCODE_POWER9
3869 #define PPCVSX PPC_OPCODE_VSX
3870 #define PPCVSX2 PPC_OPCODE_POWER8
3871 #define PPCVSX3 PPC_OPCODE_POWER9
3872 #define POWER PPC_OPCODE_POWER
3873 #define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2
3874 #define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
3875 #define PPCPWR2 (PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 \
3876 | PPC_OPCODE_COMMON)
3877 #define COM PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON
3878 #define M601 PPC_OPCODE_POWER | PPC_OPCODE_601
3879 #define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON
3880 #define MFDEC1 PPC_OPCODE_POWER
3881 #define MFDEC2 (PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
3882 | PPC_OPCODE_TITAN)
3883 #define BOOKE PPC_OPCODE_BOOKE
3884 #define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
3885 #define PPCE300 PPC_OPCODE_E300
3886 #define PPCSPE PPC_OPCODE_SPE
3887 #define PPCSPE2 PPC_OPCODE_SPE2
3888 #define PPCISEL PPC_OPCODE_ISEL
3889 #define PPCEFS PPC_OPCODE_EFS
3890 #define PPCEFS2 PPC_OPCODE_EFS2
3891 #define PPCBRLK PPC_OPCODE_BRLOCK
3892 #define PPCPMR PPC_OPCODE_PMR
3893 #define PPCTMR PPC_OPCODE_TMR
3894 #define PPCCHLK PPC_OPCODE_CACHELCK
3895 #define PPCRFMCI PPC_OPCODE_RFMCI
3896 #define E500MC PPC_OPCODE_E500MC
3897 #define PPCA2 PPC_OPCODE_A2
3898 #define TITAN PPC_OPCODE_TITAN
3899 #define MULHW PPC_OPCODE_405 | PPC_OPCODE_440 | PPC_OPCODE_476 | TITAN
3900 #define E500 PPC_OPCODE_E500
3901 #define E6500 PPC_OPCODE_E6500
3902 #define PPCVLE PPC_OPCODE_VLE
3903 #define PPCHTM PPC_OPCODE_POWER8
3904 #define E200Z4 PPC_OPCODE_E200Z4
3905 #define PPCLSP PPC_OPCODE_LSP
3906 /* The list of embedded processors that use the embedded operand ordering
3907 for the 3 operand dcbt and dcbtst instructions. */
3908 #define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
3909 | PPC_OPCODE_A2)
3910
3911
3912 \f
3913 /* The opcode table.
3914
3915 The format of the opcode table is:
3916
3917 NAME OPCODE MASK FLAGS ANTI {OPERANDS}
3918
3919 NAME is the name of the instruction.
3920 OPCODE is the instruction opcode.
3921 MASK is the opcode mask; this is used to tell the disassembler
3922 which bits in the actual opcode must match OPCODE.
3923 FLAGS are flags indicating which processors support the instruction.
3924 ANTI indicates which processors don't support the instruction.
3925 OPERANDS is the list of operands.
3926
3927 The disassembler reads the table in order and prints the first
3928 instruction which matches, so this table is sorted to put more
3929 specific instructions before more general instructions.
3930
3931 This table must be sorted by major opcode. Please try to keep it
3932 vaguely sorted within major opcode too, except of course where
3933 constrained otherwise by disassembler operation. */
3934
3935 const struct powerpc_opcode powerpc_opcodes[] = {
3936 {"attn", X(0,256), X_MASK, POWER4|PPCA2, PPC476|PPCVLE, {0}},
3937 {"tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3938 {"tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3939 {"tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3940 {"tdlgei", OPTO(2,TOLGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3941 {"tdlnli", OPTO(2,TOLNL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3942 {"tdllei", OPTO(2,TOLLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3943 {"tdlngi", OPTO(2,TOLNG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3944 {"tdgti", OPTO(2,TOGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3945 {"tdgei", OPTO(2,TOGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3946 {"tdnli", OPTO(2,TONL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3947 {"tdlti", OPTO(2,TOLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3948 {"tdlei", OPTO(2,TOLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3949 {"tdngi", OPTO(2,TONG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3950 {"tdnei", OPTO(2,TONE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3951 {"tdui", OPTO(2,TOU), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
3952 {"tdi", OP(2), OP_MASK, PPC64, PPCVLE, {TO, RA, SI}},
3953
3954 {"twlgti", OPTO(3,TOLGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3955 {"tlgti", OPTO(3,TOLGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3956 {"twllti", OPTO(3,TOLLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3957 {"tllti", OPTO(3,TOLLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3958 {"tweqi", OPTO(3,TOEQ), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3959 {"teqi", OPTO(3,TOEQ), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3960 {"twlgei", OPTO(3,TOLGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3961 {"tlgei", OPTO(3,TOLGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3962 {"twlnli", OPTO(3,TOLNL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3963 {"tlnli", OPTO(3,TOLNL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3964 {"twllei", OPTO(3,TOLLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3965 {"tllei", OPTO(3,TOLLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3966 {"twlngi", OPTO(3,TOLNG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3967 {"tlngi", OPTO(3,TOLNG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3968 {"twgti", OPTO(3,TOGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3969 {"tgti", OPTO(3,TOGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3970 {"twgei", OPTO(3,TOGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3971 {"tgei", OPTO(3,TOGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3972 {"twnli", OPTO(3,TONL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3973 {"tnli", OPTO(3,TONL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3974 {"twlti", OPTO(3,TOLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3975 {"tlti", OPTO(3,TOLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3976 {"twlei", OPTO(3,TOLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3977 {"tlei", OPTO(3,TOLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3978 {"twngi", OPTO(3,TONG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3979 {"tngi", OPTO(3,TONG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3980 {"twnei", OPTO(3,TONE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3981 {"tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3982 {"twui", OPTO(3,TOU), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
3983 {"tui", OPTO(3,TOU), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
3984 {"twi", OP(3), OP_MASK, PPCCOM, PPCVLE, {TO, RA, SI}},
3985 {"ti", OP(3), OP_MASK, PWRCOM, PPCVLE, {TO, RA, SI}},
3986
3987 {"ps_cmpu0", X (4, 0), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
3988 {"vaddubm", VX (4, 0), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3989 {"vmul10cuq", VX (4, 1), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
3990 {"vmaxub", VX (4, 2), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3991 {"vrlb", VX (4, 4), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3992 {"vrlq", VX (4, 5), VX_MASK, POWER10, 0, {VD, VA, VB}},
3993 {"vcmpequb", VXR(4, 6,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
3994 {"vcmpneb", VXR(4, 7,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
3995 {"vmuloub", VX (4, 8), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3996 {"vaddfp", VX (4, 10), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
3997 {"vdivuq", VX (4, 11), VX_MASK, POWER10, 0, {VD, VA, VB}},
3998 {"psq_lx", XW (4, 6,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
3999 {"vmrghb", VX (4, 12), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4000 {"psq_stx", XW (4, 7,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
4001 {"vpkuhum", VX (4, 14), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4002 {"vinsbvlx", VX (4, 15), VX_MASK, POWER10, 0, {VD, RA, VB}},
4003 {"mulhhwu", XRC(4, 8,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4004 {"mulhhwu.", XRC(4, 8,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4005 {"ps_sum0", A (4, 10,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4006 {"ps_sum0.", A (4, 10,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4007 {"vsldbi", VX (4, 22), VXSH_MASK, POWER10, 0, {VD, VA, VB, SH3}},
4008 {"ps_sum1", A (4, 11,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4009 {"ps_sum1.", A (4, 11,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4010 {"vextdubvlx", VX (4, 24), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
4011 {"ps_muls0", A (4, 12,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4012 {"machhwu", XO (4, 12,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4013 {"vextdubvrx", VX (4, 25), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
4014 {"ps_muls0.", A (4, 12,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4015 {"machhwu.", XO (4, 12,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4016 {"vextduhvlx", VX (4, 26), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
4017 {"ps_muls1", A (4, 13,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4018 {"vextduhvrx", VX (4, 27), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
4019 {"ps_muls1.", A (4, 13,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4020 {"vextduwvlx", VX (4, 28), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
4021 {"ps_madds0", A (4, 14,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4022 {"vextduwvrx", VX (4, 29), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
4023 {"ps_madds0.", A (4, 14,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4024 {"vextddvlx", VX (4, 30), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
4025 {"ps_madds1", A (4, 15,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4026 {"vextddvrx", VX (4, 31), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
4027 {"ps_madds1.", A (4, 15,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4028 {"vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4029 {"vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4030 {"vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4031 {"vmsumudm", VXA(4, 35), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
4032 {"ps_div", A (4, 18,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4033 {"vmsumcud", VXA(4, 23), VXA_MASK, POWER10, 0, {VD, VA, VB, VC}},
4034 {"vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4035 {"ps_div.", A (4, 18,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4036 {"vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4037 {"vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4038 {"vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4039 {"ps_sub", A (4, 20,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4040 {"vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4041 {"ps_sub.", A (4, 20,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4042 {"vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4043 {"ps_add", A (4, 21,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4044 {"vsel", VXA(4, 42), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4045 {"ps_add.", A (4, 21,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4046 {"vperm", VXA(4, 43), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4047 {"vsldoi", VXA(4, 44), VXASHB_MASK, PPCVEC, 0, {VD, VA, VB, SHB}},
4048 {"vpermxor", VXA(4, 45), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4049 {"ps_sel", A (4, 23,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4050 {"vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
4051 {"ps_sel.", A (4, 23,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4052 {"vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
4053 {"ps_res", A (4, 24,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
4054 {"maddhd", VXA(4, 48), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
4055 {"ps_res.", A (4, 24,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
4056 {"maddhdu", VXA(4, 49), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
4057 {"ps_mul", A (4, 25,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4058 {"ps_mul.", A (4, 25,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4059 {"maddld", VXA(4, 51), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
4060 {"ps_rsqrte", A (4, 26,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
4061 {"ps_rsqrte.", A (4, 26,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
4062 {"ps_msub", A (4, 28,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4063 {"ps_msub.", A (4, 28,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4064 {"ps_madd", A (4, 29,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4065 {"ps_madd.", A (4, 29,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4066 {"vpermr", VXA(4, 59), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
4067 {"ps_nmsub", A (4, 30,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4068 {"vaddeuqm", VXA(4, 60), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4069 {"ps_nmsub.", A (4, 30,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4070 {"vaddecuq", VXA(4, 61), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4071 {"ps_nmadd", A (4, 31,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4072 {"vsubeuqm", VXA(4, 62), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4073 {"ps_nmadd.", A (4, 31,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4074 {"vsubecuq", VXA(4, 63), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4075 {"ps_cmpo0", X (4, 32), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
4076 {"vadduhm", VX (4, 64), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4077 {"vmul10ecuq", VX (4, 65), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4078 {"vmaxuh", VX (4, 66), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4079 {"vrlh", VX (4, 68), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4080 {"vrlqmi", VX (4, 69), VX_MASK, POWER10, 0, {VD, VA, VB}},
4081 {"vcmpequh", VXR(4, 70,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4082 {"vcmpneh", VXR(4, 71,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4083 {"vmulouh", VX (4, 72), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4084 {"vsubfp", VX (4, 74), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4085 {"psq_lux", XW (4, 38,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
4086 {"vmrghh", VX (4, 76), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4087 {"psq_stux", XW (4, 39,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
4088 {"vpkuwum", VX (4, 78), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4089 {"vinshvlx", VX (4, 79), VX_MASK, POWER10, 0, {VD, RA, VB}},
4090 {"ps_neg", XRC(4, 40,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4091 {"mulhhw", XRC(4, 40,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4092 {"ps_neg.", XRC(4, 40,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4093 {"mulhhw.", XRC(4, 40,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4094 {"machhw", XO (4, 44,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4095 {"machhw.", XO (4, 44,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4096 {"nmachhw", XO (4, 46,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4097 {"nmachhw.", XO (4, 46,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4098 {"ps_cmpu1", X (4, 64), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
4099 {"vadduwm", VX (4, 128), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4100 {"vmaxuw", VX (4, 130), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4101 {"vrlw", VX (4, 132), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4102 {"vrlwmi", VX (4, 133), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4103 {"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4104 {"vcmpnew", VXR(4, 135,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4105 {"vmulouw", VX (4, 136), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4106 {"vmuluwm", VX (4, 137), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4107 {"vdivuw", VX (4, 139), VX_MASK, POWER10, 0, {VD, VA, VB}},
4108 {"vmrghw", VX (4, 140), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4109 {"vpkuhus", VX (4, 142), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4110 {"vinswvlx", VX (4, 143), VX_MASK, POWER10, 0, {VD, RA, VB}},
4111 {"ps_mr", XRC(4, 72,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4112 {"ps_mr.", XRC(4, 72,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4113 {"machhwsu", XO (4, 76,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4114 {"machhwsu.", XO (4, 76,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4115 {"ps_cmpo1", X (4, 96), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
4116 {"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4117 {"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4118 {"vrld", VX (4, 196), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4119 {"vrldmi", VX (4, 197), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4120 {"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4121 {"vcmpequd", VXR(4, 199,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4122 {"vmuloud", VX (4, 200), VX_MASK, POWER10, 0, {VD, VA, VB}},
4123 {"vdivud", VX (4, 203), VX_MASK, POWER10, 0, {VD, VA, VB}},
4124 {"vpkuwus", VX (4, 206), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4125 {"vinsw", VX (4, 207), VXUIMM4_MASK, POWER10, 0, {VD, RB, UIMM4}},
4126 {"machhws", XO (4, 108,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4127 {"machhws.", XO (4, 108,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4128 {"nmachhws", XO (4, 110,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4129 {"nmachhws.", XO (4, 110,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4130 {"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4131 {"vcmpuq", VX (4, 257), VXBF_MASK, POWER10, 0, {OBF, VA, VB}},
4132 {"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4133 {"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4134 {"vslq", VX (4, 261), VX_MASK, POWER10, 0, {VD, VA, VB}},
4135 {"vcmpnezb", VXR(4, 263,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4136 {"vmulosb", VX (4, 264), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4137 {"vrefp", VX (4, 266), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4138 {"vdivsq", VX (4, 267), VX_MASK, POWER10, 0, {VD, VA, VB}},
4139 {"vmrglb", VX (4, 268), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4140 {"vpkshus", VX (4, 270), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4141 {"vinsbvrx", VX (4, 271), VX_MASK, POWER10, 0, {VD, RA, VB}},
4142 {"ps_nabs", XRC(4, 136,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4143 {"mulchwu", XRC(4, 136,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4144 {"ps_nabs.", XRC(4, 136,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4145 {"mulchwu.", XRC(4, 136,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4146 {"macchwu", XO (4, 140,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4147 {"macchwu.", XO (4, 140,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4148 {"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4149 {"vcmpsq", VX (4, 321), VXBF_MASK, POWER10, 0, {OBF, VA, VB}},
4150 {"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4151 {"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4152 {"vrlqnm", VX (4, 325), VX_MASK, POWER10, 0, {VD, VA, VB}},
4153 {"vcmpnezh", VXR(4, 327,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4154 {"vmulosh", VX (4, 328), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4155 {"vrsqrtefp", VX (4, 330), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4156 {"vmrglh", VX (4, 332), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4157 {"vpkswus", VX (4, 334), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4158 {"vinshvrx", VX (4, 335), VX_MASK, POWER10, 0, {VD, RA, VB}},
4159 {"mulchw", XRC(4, 168,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4160 {"mulchw.", XRC(4, 168,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4161 {"macchw", XO (4, 172,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4162 {"macchw.", XO (4, 172,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4163 {"nmacchw", XO (4, 174,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4164 {"nmacchw.", XO (4, 174,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4165 {"vaddcuw", VX (4, 384), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4166 {"vmaxsw", VX (4, 386), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4167 {"vslw", VX (4, 388), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4168 {"vrlwnm", VX (4, 389), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4169 {"vcmpnezw", VXR(4, 391,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4170 {"vmulosw", VX (4, 392), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4171 {"vexptefp", VX (4, 394), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4172 {"vdivsw", VX (4, 395), VX_MASK, POWER10, 0, {VD, VA, VB}},
4173 {"vmrglw", VX (4, 396), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4174 {"vpkshss", VX (4, 398), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4175 {"vinswvrx", VX (4, 399), VX_MASK, POWER10, 0, {VD, RA, VB}},
4176 {"macchwsu", XO (4, 204,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4177 {"macchwsu.", XO (4, 204,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4178 {"vmaxsd", VX (4, 450), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4179 {"vsl", VX (4, 452), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4180 {"vrldnm", VX (4, 453), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4181 {"vcmpgefp", VXR(4, 454,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4182 {"vcmpequq", VXR(4, 455,0), VXR_MASK, POWER10, 0, {VD, VA, VB}},
4183 {"vmulosd", VX (4, 456), VX_MASK, POWER10, 0, {VD, VA, VB}},
4184 {"vmulld", VX (4, 457), VX_MASK, POWER10, 0, {VD, VA, VB}},
4185 {"vlogefp", VX (4, 458), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4186 {"vdivsd", VX (4, 459), VX_MASK, POWER10, 0, {VD, VA, VB}},
4187 {"vpkswss", VX (4, 462), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4188 {"vinsd", VX (4, 463), VXUIMM4_MASK, POWER10, 0, {VD, RB, UIMM4}},
4189 {"macchws", XO (4, 236,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4190 {"macchws.", XO (4, 236,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4191 {"nmacchws", XO (4, 238,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4192 {"nmacchws.", XO (4, 238,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4193 {"evaddw", VX (4, 512), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4194 {"vaddubs", VX (4, 512), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4195 {"vmul10uq", VX (4, 513), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
4196 {"evaddiw", VX (4, 514), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
4197 {"vminub", VX (4, 514), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4198 {"evsubfw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4199 {"evsubw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RB, RA}},
4200 {"vsrb", VX (4, 516), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4201 {"vsrq", VX (4, 517), VX_MASK, POWER10, 0, {VD, VA, VB}},
4202 {"evsubifw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, UIMM, RB}},
4203 {"evsubiw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
4204 {"vcmpgtub", VXR(4, 518,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4205 {"evabs", VX (4, 520), VX_MASK, PPCSPE, 0, {RS, RA}},
4206 {"vmuleub", VX (4, 520), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4207 {"evneg", VX (4, 521), VX_MASK, PPCSPE, 0, {RS, RA}},
4208 {"evextsb", VX (4, 522), VX_MASK, PPCSPE, 0, {RS, RA}},
4209 {"vrfin", VX (4, 522), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4210 {"vdiveuq", VX (4, 523), VX_MASK, POWER10, 0, {VD, VA, VB}},
4211 {"evextsh", VX (4, 523), VX_MASK, PPCSPE, 0, {RS, RA}},
4212 {"evrndw", VX (4, 524), VX_MASK, PPCSPE, 0, {RS, RA}},
4213 {"vspltb", VX (4, 524), VXUIMM4_MASK, PPCVEC, 0, {VD, VB, UIMM4}},
4214 {"vextractub", VX (4, 525), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4215 {"evcntlzw", VX (4, 525), VX_MASK, PPCSPE, 0, {RS, RA}},
4216 {"evcntlsw", VX (4, 526), VX_MASK, PPCSPE, 0, {RS, RA}},
4217 {"vupkhsb", VX (4, 526), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4218 {"vinsblx", VX (4, 527), VX_MASK, POWER10, 0, {VD, RA, RB}},
4219 {"brinc", VX (4, 527), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4220 {"ps_abs", XRC(4, 264,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4221 {"ps_abs.", XRC(4, 264,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4222 {"evand", VX (4, 529), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4223 {"evandc", VX (4, 530), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4224 {"vsrdbi", VX (4, 534), VXSH_MASK, POWER10, 0, {VD, VA, VB, SH3}},
4225 {"evxor", VX (4, 534), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4226 {"evmr", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RAB}},
4227 {"evor", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4228 {"evnot", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RAB}},
4229 {"evnor", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4230 {"get", APU(4, 268,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4231 {"eveqv", VX (4, 537), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4232 {"evorc", VX (4, 539), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4233 {"evnand", VX (4, 542), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4234 {"evsrwu", VX (4, 544), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4235 {"evsrws", VX (4, 545), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4236 {"evsrwiu", VX (4, 546), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4237 {"evsrwis", VX (4, 547), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4238 {"evslw", VX (4, 548), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4239 {"evslwi", VX (4, 550), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4240 {"evrlw", VX (4, 552), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4241 {"evsplati", VX (4, 553), VX_MASK, PPCSPE, 0, {RS, SIMM}},
4242 {"evrlwi", VX (4, 554), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4243 {"evsplatfi", VX (4, 555), VX_MASK, PPCSPE, 0, {RS, SIMM}},
4244 {"evmergehi", VX (4, 556), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4245 {"evmergelo", VX (4, 557), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4246 {"evmergehilo", VX (4, 558), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4247 {"evmergelohi", VX (4, 559), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4248 {"evcmpgtu", VX (4, 560), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4249 {"evcmpgts", VX (4, 561), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4250 {"evcmpltu", VX (4, 562), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4251 {"evcmplts", VX (4, 563), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4252 {"evcmpeq", VX (4, 564), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4253 {"cget", APU(4, 284,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4254 {"vadduhs", VX (4, 576), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4255 {"vmul10euq", VX (4, 577), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4256 {"vminuh", VX (4, 578), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4257 {"vsrh", VX (4, 580), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4258 {"vcmpgtuh", VXR(4, 582,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4259 {"vmuleuh", VX (4, 584), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4260 {"vrfiz", VX (4, 586), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4261 {"vsplth", VX (4, 588), VXUIMM3_MASK, PPCVEC, 0, {VD, VB, UIMM3}},
4262 {"vextractuh", VX (4, 589), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4263 {"vupkhsh", VX (4, 590), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4264 {"vinshlx", VX (4, 591), VX_MASK, POWER10, 0, {VD, RA, RB}},
4265 {"nget", APU(4, 300,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4266 {"evsel", EVSEL(4,79), EVSEL_MASK, PPCSPE, 0, {RS, RA, RB, CRFS}},
4267 {"ncget", APU(4, 316,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4268 {"evfsadd", VX (4, 640), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4269 {"vadduws", VX (4, 640), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4270 {"evfssub", VX (4, 641), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4271 {"evfsmadd", VX (4, 642), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4272 {"vminuw", VX (4, 642), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4273 {"evfsmsub", VX (4, 643), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4274 {"evfsabs", VX (4, 644), VX_MASK, PPCSPE, 0, {RS, RA}},
4275 {"vsrw", VX (4, 644), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4276 {"evfsnabs", VX (4, 645), VX_MASK, PPCSPE, 0, {RS, RA}},
4277 {"evfsneg", VX (4, 646), VX_MASK, PPCSPE, 0, {RS, RA}},
4278 {"vcmpgtuw", VXR(4, 646,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4279 {"vcmpgtuq", VXR(4, 647,0), VXR_MASK, POWER10, 0, {VD, VA, VB}},
4280 {"evfssqrt", VX_RB_CONST(4, 647, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
4281 {"vmuleuw", VX (4, 648), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4282 {"evfsmul", VX (4, 648), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4283 {"vmulhuw", VX (4, 649), VX_MASK, POWER10, 0, {VD, VA, VB}},
4284 {"evfsdiv", VX (4, 649), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4285 {"evfsnmadd", VX (4, 650), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4286 {"vrfip", VX (4, 650), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4287 {"vdiveuw", VX (4, 651), VX_MASK, POWER10, 0, {VD, VA, VB}},
4288 {"evfsnmsub", VX (4, 651), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4289 {"evfscmpgt", VX (4, 652), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4290 {"vspltw", VX (4, 652), VXUIMM2_MASK, PPCVEC, 0, {VD, VB, UIMM2}},
4291 {"vextractuw", VX (4, 653), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4292 {"evfscmplt", VX (4, 653), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4293 {"evfscmpeq", VX (4, 654), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4294 {"vupklsb", VX (4, 654), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4295 {"vinswlx", VX (4, 655), VX_MASK, POWER10, 0, {VD, RA, RB}},
4296 {"evfscfui", VX (4, 656), VX_MASK, PPCSPE, 0, {RS, RB}},
4297 {"evfscfh", VX_RA_CONST(4, 657, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
4298 {"evfscfsi", VX (4, 657), VX_MASK, PPCSPE, 0, {RS, RB}},
4299 {"evfscfuf", VX (4, 658), VX_MASK, PPCSPE, 0, {RS, RB}},
4300 {"evfscfsf", VX (4, 659), VX_MASK, PPCSPE, 0, {RS, RB}},
4301 {"evfsctui", VX (4, 660), VX_MASK, PPCSPE, 0, {RS, RB}},
4302 {"evfscth", VX_RA_CONST(4, 661, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
4303 {"evfsctsi", VX (4, 661), VX_MASK, PPCSPE, 0, {RS, RB}},
4304 {"evfsctuf", VX (4, 662), VX_MASK, PPCSPE, 0, {RS, RB}},
4305 {"evfsctsf", VX (4, 663), VX_MASK, PPCSPE, 0, {RS, RB}},
4306 {"evfsctuiz", VX (4, 664), VX_MASK, PPCSPE, 0, {RS, RB}},
4307 {"put", APU(4, 332,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
4308 {"evfsctsiz", VX (4, 666), VX_MASK, PPCSPE, 0, {RS, RB}},
4309 {"evfststgt", VX (4, 668), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4310 {"evfststlt", VX (4, 669), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4311 {"evfststeq", VX (4, 670), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4312 {"evfsmax", VX (4, 672), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4313 {"evfsmin", VX (4, 673), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4314 {"evfsaddsub", VX (4, 674), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4315 {"evfssubadd", VX (4, 675), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4316 {"evfssum", VX (4, 676), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4317 {"evfsdiff", VX (4, 677), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4318 {"evfssumdiff", VX (4, 678), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4319 {"evfsdiffsum", VX (4, 679), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4320 {"evfsaddx", VX (4, 680), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4321 {"evfssubx", VX (4, 681), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4322 {"evfsaddsubx", VX (4, 682), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4323 {"evfssubaddx", VX (4, 683), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4324 {"evfsmulx", VX (4, 684), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4325 {"evfsmule", VX (4, 686), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4326 {"evfsmulo", VX (4, 687), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4327 {"efsmax", VX (4, 688), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4328 {"efsmin", VX (4, 689), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4329 {"efdmax", VX (4, 696), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4330 {"cput", APU(4, 348,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
4331 {"efdmin", VX (4, 697), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4332 {"efsadd", VX (4, 704), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4333 {"efssub", VX (4, 705), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4334 {"efsmadd", VX (4, 706), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
4335 {"vminud", VX (4, 706), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4336 {"efsmsub", VX (4, 707), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
4337 {"efsabs", VX (4, 708), VX_MASK, PPCEFS, 0, {RS, RA}},
4338 {"vsr", VX (4, 708), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4339 {"efsnabs", VX (4, 709), VX_MASK, PPCEFS, 0, {RS, RA}},
4340 {"efsneg", VX (4, 710), VX_MASK, PPCEFS, 0, {RS, RA}},
4341 {"vcmpgtfp", VXR(4, 710,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4342 {"efssqrt", VX_RB_CONST(4, 711, 0), VX_RB_CONST_MASK,PPCEFS2, 0, {RD, RA}},
4343 {"vcmpgtud", VXR(4, 711,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4344 {"vmuleud", VX (4, 712), VX_MASK, POWER10, 0, {VD, VA, VB}},
4345 {"efsmul", VX (4, 712), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4346 {"vmulhud", VX (4, 713), VX_MASK, POWER10, 0, {VD, VA, VB}},
4347 {"efsdiv", VX (4, 713), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4348 {"efsnmadd", VX (4, 714), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
4349 {"vrfim", VX (4, 714), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4350 {"vdiveud", VX (4, 715), VX_MASK, POWER10, 0, {VD, VA, VB}},
4351 {"efsnmsub", VX (4, 715), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
4352 {"efscmpgt", VX (4, 716), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4353 {"vextractd", VX (4, 717), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4354 {"efscmplt", VX (4, 717), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4355 {"efscmpeq", VX (4, 718), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4356 {"vupklsh", VX (4, 718), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4357 {"vinsdlx", VX (4, 719), VX_MASK, POWER10, 0, {VD, RA, RB}},
4358 {"efscfd", VX (4, 719), VX_MASK, PPCEFS, 0, {RS, RB}},
4359 {"efscfui", VX (4, 720), VX_MASK, PPCEFS, 0, {RS, RB}},
4360 {"efscfh", VX_RA_CONST(4, 721, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
4361 {"efscfsi", VX (4, 721), VX_MASK, PPCEFS, 0, {RS, RB}},
4362 {"efscfuf", VX (4, 722), VX_MASK, PPCEFS, 0, {RS, RB}},
4363 {"efscfsf", VX (4, 723), VX_MASK, PPCEFS, 0, {RS, RB}},
4364 {"efsctui", VX (4, 724), VX_MASK, PPCEFS, 0, {RS, RB}},
4365 {"efscth", VX_RA_CONST(4, 725, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
4366 {"efsctsi", VX (4, 725), VX_MASK, PPCEFS, 0, {RS, RB}},
4367 {"efsctuf", VX (4, 726), VX_MASK, PPCEFS, 0, {RS, RB}},
4368 {"efsctsf", VX (4, 727), VX_MASK, PPCEFS, 0, {RS, RB}},
4369 {"efsctuiz", VX (4, 728), VX_MASK, PPCEFS, 0, {RS, RB}},
4370 {"nput", APU(4, 364,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
4371 {"efsctsiz", VX (4, 730), VX_MASK, PPCEFS, 0, {RS, RB}},
4372 {"efststgt", VX (4, 732), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4373 {"efststlt", VX (4, 733), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4374 {"efststeq", VX (4, 734), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4375 {"efdadd", VX (4, 736), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4376 {"efdsub", VX (4, 737), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4377 {"efdmadd", VX (4, 738), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4378 {"efdcfuid", VX (4, 738), VX_MASK, E500|E500MC,0, {RS, RB}},
4379 {"efdmsub", VX (4, 739), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4380 {"efdcfsid", VX (4, 739), VX_MASK, E500|E500MC,0, {RS, RB}},
4381 {"efdabs", VX (4, 740), VX_MASK, PPCEFS, 0, {RS, RA}},
4382 {"efdnabs", VX (4, 741), VX_MASK, PPCEFS, 0, {RS, RA}},
4383 {"efdneg", VX (4, 742), VX_MASK, PPCEFS, 0, {RS, RA}},
4384 {"efdsqrt", VX_RB_CONST(4, 743, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
4385 {"efdmul", VX (4, 744), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4386 {"efddiv", VX (4, 745), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4387 {"efdnmadd", VX (4, 746), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4388 {"efdctuidz", VX (4, 746), VX_MASK, E500|E500MC,0, {RS, RB}},
4389 {"efdnmsub", VX (4, 747), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4390 {"efdctsidz", VX (4, 747), VX_MASK, E500|E500MC,0, {RS, RB}},
4391 {"efdcmpgt", VX (4, 748), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4392 {"efdcmplt", VX (4, 749), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4393 {"efdcmpeq", VX (4, 750), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4394 {"efdcfs", VX (4, 751), VX_MASK, PPCEFS, 0, {RS, RB}},
4395 {"efdcfui", VX_RA_CONST(4, 752, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4396 {"efdcfuid", VX_RA_CONST(4, 752, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4397 {"efdcfsi", VX_RA_CONST(4, 753, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4398 {"efdcfsid", VX_RA_CONST(4, 753, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4399 {"efdcfh", VX_RA_CONST(4, 753, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
4400 {"efdcfuf", VX (4, 754), VX_MASK, PPCEFS, 0, {RS, RB}},
4401 {"efdcfsf", VX (4, 755), VX_MASK, PPCEFS, 0, {RS, RB}},
4402 {"efdctui", VX (4, 756), VX_MASK, PPCEFS, 0, {RS, RB}},
4403 {"efdcth", VX_RA_CONST(4, 757, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
4404 {"efdctsi", VX (4, 757), VX_MASK, PPCEFS, 0, {RS, RB}},
4405 {"efdctuf", VX (4, 758), VX_MASK, PPCEFS, 0, {RS, RB}},
4406 {"efdctsf", VX (4, 759), VX_MASK, PPCEFS, 0, {RS, RB}},
4407 {"efdctuiz", VX_RA_CONST(4, 760, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4408 {"efdctuidz", VX_RA_CONST(4, 760, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4409 {"ncput", APU(4, 380,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
4410 {"efdctsiz", VX_RA_CONST(4, 762, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4411 {"efdctsidz", VX_RA_CONST(4, 762, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4412 {"efdtstgt", VX (4, 764), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4413 {"efdtstlt", VX (4, 765), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4414 {"efdtsteq", VX (4, 766), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4415 {"evlddx", VX (4, 768), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4416 {"vaddsbs", VX (4, 768), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4417 {"evldd", VX (4, 769), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4418 {"evldwx", VX (4, 770), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4419 {"vminsb", VX (4, 770), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4420 {"evldw", VX (4, 771), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4421 {"evldhx", VX (4, 772), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4422 {"vsrab", VX (4, 772), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4423 {"vsraq", VX (4, 773), VX_MASK, POWER10, 0, {VD, VA, VB}},
4424 {"evldh", VX (4, 773), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4425 {"vcmpgtsb", VXR(4, 774,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4426 {"evlhhesplatx",VX (4, 776), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4427 {"vmulesb", VX (4, 776), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4428 {"evlhhesplat", VX (4, 777), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4429 {"vcfux", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4430 {"vcuxwfp", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4431 {"vdivesq", VX (4, 779), VX_MASK, POWER10, 0, {VD, VA, VB}},
4432 {"evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4433 {"vspltisb", VX (4, 780), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4434 {"vinsertb", VX (4, 781), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4435 {"evlhhousplat",VX (4, 781), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4436 {"evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4437 {"vpkpx", VX (4, 782), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4438 {"vinsbrx", VX (4, 783), VX_MASK, POWER10, 0, {VD, RA, RB}},
4439 {"evlhhossplat",VX (4, 783), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4440 {"mullhwu", XRC(4, 392,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4441 {"evlwhex", VX (4, 784), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4442 {"mullhwu.", XRC(4, 392,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4443 {"evlwhe", VX (4, 785), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4444 {"evlwhoux", VX (4, 788), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4445 {"evlwhou", VX (4, 789), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4446 {"evlwhosx", VX (4, 790), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4447 {"evlwhos", VX (4, 791), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4448 {"maclhwu", XO (4, 396,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4449 {"evlwwsplatx", VX (4, 792), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4450 {"maclhwu.", XO (4, 396,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4451 {"evlwwsplat", VX (4, 793), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4452 {"evlwhsplatx", VX (4, 796), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4453 {"evlwhsplat", VX (4, 797), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4454 {"evstddx", VX (4, 800), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4455 {"evstdd", VX (4, 801), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4456 {"evstdwx", VX (4, 802), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4457 {"evstdw", VX (4, 803), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4458 {"evstdhx", VX (4, 804), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4459 {"evstdh", VX (4, 805), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4460 {"evstwhex", VX (4, 816), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4461 {"evstwhe", VX (4, 817), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4462 {"evstwhox", VX (4, 820), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4463 {"evstwho", VX (4, 821), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4464 {"evstwwex", VX (4, 824), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4465 {"evstwwe", VX (4, 825), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4466 {"evstwwox", VX (4, 828), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4467 {"evstwwo", VX (4, 829), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4468 {"vaddshs", VX (4, 832), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4469 {"bcdcpsgn.", VX (4, 833), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4470 {"vminsh", VX (4, 834), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4471 {"vsrah", VX (4, 836), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4472 {"vcmpgtsh", VXR(4, 838,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4473 {"vmulesh", VX (4, 840), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4474 {"vcfsx", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4475 {"vcsxwfp", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4476 {"vspltish", VX (4, 844), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4477 {"vinserth", VX (4, 845), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4478 {"vupkhpx", VX (4, 846), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4479 {"vinshrx", VX (4, 847), VX_MASK, POWER10, 0, {VD, RA, RB}},
4480 {"mullhw", XRC(4, 424,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4481 {"mullhw.", XRC(4, 424,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4482 {"maclhw", XO (4, 428,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4483 {"maclhw.", XO (4, 428,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4484 {"nmaclhw", XO (4, 430,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4485 {"nmaclhw.", XO (4, 430,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4486 {"vaddsws", VX (4, 896), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4487 {"vminsw", VX (4, 898), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4488 {"vsraw", VX (4, 900), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4489 {"vcmpgtsw", VXR(4, 902,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4490 {"vcmpgtsq", VXR(4, 903,0), VXR_MASK, POWER10, 0, {VD, VA, VB}},
4491 {"vmulesw", VX (4, 904), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4492 {"vmulhsw", VX (4, 905), VX_MASK, POWER10, 0, {VD, VA, VB}},
4493 {"vctuxs", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4494 {"vcfpuxws", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4495 {"vdivesw", VX (4, 907), VX_MASK, POWER10, 0, {VD, VA, VB}},
4496 {"vspltisw", VX (4, 908), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4497 {"vinsertw", VX (4, 909), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4498 {"vinswrx", VX (4, 911), VX_MASK, POWER10, 0, {VD, RA, RB}},
4499 {"maclhwsu", XO (4, 460,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4500 {"maclhwsu.", XO (4, 460,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4501 {"vminsd", VX (4, 962), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4502 {"vsrad", VX (4, 964), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4503 {"vcmpbfp", VXR(4, 966,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4504 {"vcmpgtsd", VXR(4, 967,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4505 {"vmulesd", VX (4, 968), VX_MASK, POWER10, 0, {VD, VA, VB}},
4506 {"vmulhsd", VX (4, 969), VX_MASK, POWER10, 0, {VD, VA, VB}},
4507 {"vctsxs", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4508 {"vcfpsxws", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4509 {"vdivesd", VX (4, 971), VX_MASK, POWER10, 0, {VD, VA, VB}},
4510 {"vinsertd", VX (4, 973), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4511 {"vupklpx", VX (4, 974), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4512 {"vinsdrx", VX (4, 975), VX_MASK, POWER10, 0, {VD, RA, RB}},
4513 {"maclhws", XO (4, 492,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4514 {"maclhws.", XO (4, 492,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4515 {"nmaclhws", XO (4, 494,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4516 {"nmaclhws.", XO (4, 494,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4517 {"vsububm", VX (4,1024), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4518 {"bcdadd.", VX (4,1025), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
4519 {"vavgub", VX (4,1026), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4520 {"vabsdub", VX (4,1027), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4521 {"evmhessf", VX (4,1027), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4522 {"vand", VX (4,1028), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4523 {"vcmpequb.", VXR(4, 6,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4524 {"vcmpneb.", VXR(4, 7,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4525 {"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4526 {"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4527 {"evmhossf", VX (4,1031), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4528 {"vpmsumb", VX (4,1032), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4529 {"evmheumi", VX (4,1032), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4530 {"evmhesmi", VX (4,1033), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4531 {"vmaxfp", VX (4,1034), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4532 {"evmhesmf", VX (4,1035), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4533 {"evmhoumi", VX (4,1036), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4534 {"vslo", VX (4,1036), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4535 {"evmhosmi", VX (4,1037), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4536 {"evmhosmf", VX (4,1039), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4537 {"machhwuo", XO (4, 12,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4538 {"machhwuo.", XO (4, 12,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4539 {"ps_merge00", XOPS(4,528,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4540 {"ps_merge00.", XOPS(4,528,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4541 {"evmhessfa", VX (4,1059), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4542 {"evmhossfa", VX (4,1063), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4543 {"evmheumia", VX (4,1064), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4544 {"evmhesmia", VX (4,1065), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4545 {"evmhesmfa", VX (4,1067), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4546 {"evmhoumia", VX (4,1068), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4547 {"evmhosmia", VX (4,1069), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4548 {"evmhosmfa", VX (4,1071), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4549 {"vsubuhm", VX (4,1088), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4550 {"bcdsub.", VX (4,1089), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
4551 {"vavguh", VX (4,1090), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4552 {"evmwlssf", VX (4,1091), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4553 {"vabsduh", VX (4,1091), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4554 {"vandc", VX (4,1092), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4555 {"vcmpequh.", VXR(4, 70,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4556 {"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4557 {"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4558 {"vcmpneh.", VXR(4, 71,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4559 {"evmwhssf", VX (4,1095), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4560 {"vpmsumh", VX (4,1096), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4561 {"evmwlumi", VX (4,1096), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4562 {"vminfp", VX (4,1098), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4563 {"evmwlsmf", VX (4,1099), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4564 {"evmwhumi", VX (4,1100), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4565 {"vsro", VX (4,1100), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4566 {"evmwhsmi", VX (4,1101), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4567 {"vpkudum", VX (4,1102), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4568 {"evmwhsmf", VX (4,1103), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4569 {"evmwssf", VX (4,1107), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4570 {"machhwo", XO (4, 44,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4571 {"evmwumi", VX (4,1112), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4572 {"machhwo.", XO (4, 44,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4573 {"evmwsmi", VX (4,1113), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4574 {"evmwsmf", VX (4,1115), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4575 {"nmachhwo", XO (4, 46,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4576 {"nmachhwo.", XO (4, 46,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4577 {"ps_merge01", XOPS(4,560,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4578 {"ps_merge01.", XOPS(4,560,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4579 {"evmwlssfa", VX (4,1123), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4580 {"evmwhssfa", VX (4,1127), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4581 {"evmwlumia", VX (4,1128), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4582 {"evmwlsmfa", VX (4,1131), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4583 {"evmwhumia", VX (4,1132), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4584 {"evmwhsmia", VX (4,1133), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4585 {"evmwhsmfa", VX (4,1135), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4586 {"evmwssfa", VX (4,1139), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4587 {"evmwumia", VX (4,1144), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4588 {"evmwsmia", VX (4,1145), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4589 {"evmwsmfa", VX (4,1147), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4590 {"vsubuwm", VX (4,1152), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4591 {"bcdus.", VX (4,1153), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4592 {"vavguw", VX (4,1154), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4593 {"vabsduw", VX (4,1155), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4594 {"vmr", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VAB}},
4595 {"vor", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4596 {"vcmpnew.", VXR(4, 135,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4597 {"vpmsumw", VX (4,1160), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4598 {"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4599 {"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4600 {"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4601 {"machhwsuo", XO (4, 76,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4602 {"machhwsuo.", XO (4, 76,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4603 {"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4604 {"ps_merge10.", XOPS(4,592,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4605 {"vsubudm", VX (4,1216), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4606 {"evaddusiaaw", VX (4,1216), VX_MASK, PPCSPE, 0, {RS, RA}},
4607 {"bcds.", VX (4,1217), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
4608 {"evaddssiaaw", VX (4,1217), VX_MASK, PPCSPE, 0, {RS, RA}},
4609 {"evsubfusiaaw",VX (4,1218), VX_MASK, PPCSPE, 0, {RS, RA}},
4610 {"evsubfssiaaw",VX (4,1219), VX_MASK, PPCSPE, 0, {RS, RA}},
4611 {"evmra", VX (4,1220), VX_MASK, PPCSPE, 0, {RS, RA}},
4612 {"vxor", VX (4,1220), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4613 {"evdivws", VX (4,1222), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4614 {"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4615 {"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4616 {"vcmpequd.", VXR(4, 199,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4617 {"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4618 {"evdivwu", VX (4,1223), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4619 {"vpmsumd", VX (4,1224), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4620 {"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE, 0, {RS, RA}},
4621 {"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE, 0, {RS, RA}},
4622 {"evsubfumiaaw",VX (4,1226), VX_MASK, PPCSPE, 0, {RS, RA}},
4623 {"evsubfsmiaaw",VX (4,1227), VX_MASK, PPCSPE, 0, {RS, RA}},
4624 {"vpkudus", VX (4,1230), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4625 {"machhwso", XO (4, 108,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4626 {"machhwso.", XO (4, 108,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4627 {"nmachhwso", XO (4, 110,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4628 {"nmachhwso.", XO (4, 110,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4629 {"ps_merge11", XOPS(4,624,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4630 {"ps_merge11.", XOPS(4,624,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4631 {"vsubuqm", VX (4,1280), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4632 {"evmheusiaaw", VX (4,1280), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4633 {"bcdtrunc.", VX (4,1281), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
4634 {"evmhessiaaw", VX (4,1281), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4635 {"vavgsb", VX (4,1282), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4636 {"evmhessfaaw", VX (4,1283), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4637 {"evmhousiaaw", VX (4,1284), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4638 {"vnot", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VAB}},
4639 {"vnor", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4640 {"evmhossiaaw", VX (4,1285), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4641 {"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4642 {"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4643 {"vcmpnezb.", VXR(4, 263,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4644 {"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4645 {"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4646 {"vcipher", VX (4,1288), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4647 {"vcipherlast", VX (4,1289), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4648 {"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4649 {"evmhesmfaaw", VX (4,1291), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4650 {"vgbbd", VX (4,1292), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4651 {"evmhoumiaaw", VX (4,1292), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4652 {"evmhosmiaaw", VX (4,1293), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4653 {"evmhosmfaaw", VX (4,1295), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4654 {"macchwuo", XO (4, 140,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4655 {"macchwuo.", XO (4, 140,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4656 {"evmhegumiaa", VX (4,1320), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4657 {"evmhegsmiaa", VX (4,1321), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4658 {"evmhegsmfaa", VX (4,1323), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4659 {"evmhogumiaa", VX (4,1324), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4660 {"evmhogsmiaa", VX (4,1325), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4661 {"evmhogsmfaa", VX (4,1327), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4662 {"vsubcuq", VX (4,1344), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4663 {"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4664 {"bcdutrunc.", VX (4,1345), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4665 {"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4666 {"vavgsh", VX (4,1346), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4667 {"evmwlssfaaw", VX (4,1347), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4668 {"evmwhusiaa", VX (4,1348), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4669 {"vorc", VX (4,1348), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4670 {"evmwhssmaa", VX (4,1349), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4671 {"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4672 {"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4673 {"vcmpnezh.", VXR(4, 327,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4674 {"evmwhssfaa", VX (4,1351), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4675 {"vncipher", VX (4,1352), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4676 {"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4677 {"vncipherlast",VX (4,1353), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4678 {"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4679 {"evmwlsmfaaw", VX (4,1355), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4680 {"evmwhumiaa", VX (4,1356), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4681 {"vbpermq", VX (4,1356), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4682 {"evmwhsmiaa", VX (4,1357), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4683 {"vpksdus", VX (4,1358), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4684 {"evmwhsmfaa", VX (4,1359), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4685 {"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4686 {"macchwo", XO (4, 172,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4687 {"evmwumiaa", VX (4,1368), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4688 {"macchwo.", XO (4, 172,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4689 {"evmwsmiaa", VX (4,1369), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4690 {"evmwsmfaa", VX (4,1371), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4691 {"nmacchwo", XO (4, 174,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4692 {"nmacchwo.", XO (4, 174,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4693 {"evmwhgumiaa", VX (4,1380), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4694 {"evmwhgsmiaa", VX (4,1381), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4695 {"evmwhgssfaa", VX (4,1383), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4696 {"evmwhgsmfaa", VX (4,1391), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4697 {"evmheusianw", VX (4,1408), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4698 {"vsubcuw", VX (4,1408), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4699 {"evmhessianw", VX (4,1409), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4700 {"bcdctsq.", VXVA(4,1409,0), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4701 {"bcdcfsq.", VXVA(4,1409,2), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4702 {"bcdctz.", VXVA(4,1409,4), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4703 {"bcdctn.", VXVA(4,1409,5), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4704 {"bcdcfz.", VXVA(4,1409,6), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4705 {"bcdcfn.", VXVA(4,1409,7), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4706 {"bcdsetsgn.", VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
4707 {"vavgsw", VX (4,1410), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4708 {"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4709 {"vnand", VX (4,1412), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4710 {"evmhousianw", VX (4,1412), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4711 {"evmhossianw", VX (4,1413), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4712 {"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4713 {"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4714 {"vcmpnezw.", VXR(4, 391,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4715 {"evmhossfanw", VX (4,1415), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4716 {"evmheumianw", VX (4,1416), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4717 {"evmhesmianw", VX (4,1417), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4718 {"evmhesmfanw", VX (4,1419), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4719 {"evmhoumianw", VX (4,1420), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4720 {"evmhosmianw", VX (4,1421), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4721 {"evmhosmfanw", VX (4,1423), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4722 {"macchwsuo", XO (4, 204,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4723 {"macchwsuo.", XO (4, 204,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4724 {"evmhegumian", VX (4,1448), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4725 {"evmhegsmian", VX (4,1449), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4726 {"evmhegsmfan", VX (4,1451), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4727 {"evmhogumian", VX (4,1452), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4728 {"evmhogsmian", VX (4,1453), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4729 {"evmhogsmfan", VX (4,1455), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4730 {"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4731 {"bcdsr.", VX (4,1473), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
4732 {"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4733 {"evmwlssfanw", VX (4,1475), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4734 {"evmwhusian", VX (4,1476), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4735 {"vsld", VX (4,1476), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4736 {"evmwhssian", VX (4,1477), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4737 {"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4738 {"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4739 {"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4740 {"vcmpequq.", VXR(4, 455,1), VXR_MASK, POWER10, 0, {VD, VA, VB}},
4741 {"evmwhssfan", VX (4,1479), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4742 {"vsbox", VX (4,1480), VXVB_MASK, PPCVEC2, 0, {VD, VA}},
4743 {"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4744 {"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4745 {"evmwlsmfanw", VX (4,1483), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4746 {"evmwhumian", VX (4,1484), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4747 {"vbpermd", VX (4,1484), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4748 {"evmwhsmian", VX (4,1485), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4749 {"vpksdss", VX (4,1486), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4750 {"evmwhsmfan", VX (4,1487), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4751 {"evmwssfan", VX (4,1491), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4752 {"macchwso", XO (4, 236,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4753 {"evmwumian", VX (4,1496), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4754 {"macchwso.", XO (4, 236,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4755 {"evmwsmian", VX (4,1497), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4756 {"evmwsmfan", VX (4,1499), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4757 {"evmwhgumian", VX (4,1508), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4758 {"evmwhgsmian", VX (4,1509), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4759 {"evmwhgssfan", VX (4,1511), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4760 {"evmwhgsmfan", VX (4,1519), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
4761 {"nmacchwso", XO (4, 238,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4762 {"nmacchwso.", XO (4, 238,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4763 {"vsububs", VX (4,1536), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4764 {"vclzlsbb", VXVA(4,1538,0), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
4765 {"vctzlsbb", VXVA(4,1538,1), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
4766 {"vnegw", VXVA(4,1538,6), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4767 {"vnegd", VXVA(4,1538,7), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4768 {"vprtybw", VXVA(4,1538,8), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4769 {"vprtybd", VXVA(4,1538,9), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4770 {"vprtybq", VXVA(4,1538,10), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4771 {"vextsb2w", VXVA(4,1538,16), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4772 {"vextsh2w", VXVA(4,1538,17), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4773 {"vextsb2d", VXVA(4,1538,24), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4774 {"vextsh2d", VXVA(4,1538,25), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4775 {"vextsw2d", VXVA(4,1538,26), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4776 {"vextsd2q", VXVA(4,1538,27), VXVA_MASK, POWER10, 0, {VD, VB}},
4777 {"vctzb", VXVA(4,1538,28), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4778 {"vctzh", VXVA(4,1538,29), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4779 {"vctzw", VXVA(4,1538,30), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4780 {"vctzd", VXVA(4,1538,31), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
4781 {"mfvscr", VX (4,1540), VXVAVB_MASK, PPCVEC, 0, {VD}},
4782 {"vcmpgtub.", VXR(4, 518,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4783 {"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4784 {"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
4785 {"vsum4ubs", VX (4,1544), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4786 {"vmoduq", VX (4,1547), VX_MASK, POWER10, 0, {VD, VA, VB}},
4787 {"vextublx", VX (4,1549), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4788 {"vsubuhs", VX (4,1600), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4789 {"mtvscr", VX (4,1604), VXVDVA_MASK, PPCVEC, 0, {VB}},
4790 {"vcmpgtuh.", VXR(4, 582,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4791 {"vsum4shs", VX (4,1608), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4792 {"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4793 {"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
4794 {"vextuhlx", VX (4,1613), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4795 {"vupkhsw", VX (4,1614), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4796 {"vsubuws", VX (4,1664), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4797 {"vshasigmaw", VX (4,1666), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
4798 {"veqv", VX (4,1668), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4799 {"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4800 {"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4801 {"vcmpgtuq.", VXR(4, 647,1), VXR_MASK, POWER10, 0, {VD, VA, VB}},
4802 {"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
4803 {"vsum2sws", VX (4,1672), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4804 {"vmoduw", VX (4,1675), VX_MASK, POWER10, 0, {VD, VA, VB}},
4805 {"vmrgow", VX (4,1676), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4806 {"vextuwlx", VX (4,1677), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4807 {"vshasigmad", VX (4,1730), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
4808 {"vsrd", VX (4,1732), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4809 {"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4810 {"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4811 {"vcmpgtud.", VXR(4, 711,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4812 {"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
4813 {"vmodud", VX (4,1739), VX_MASK, POWER10, 0, {VD, VA, VB}},
4814 {"vupklsw", VX (4,1742), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4815 {"vsubsbs", VX (4,1792), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4816 {"vclzb", VX (4,1794), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4817 {"vpopcntb", VX (4,1795), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4818 {"vsrv", VX (4,1796), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4819 {"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4820 {"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4821 {"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
4822 {"vsum4sbs", VX (4,1800), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4823 {"vmodsq", VX (4,1803), VX_MASK, POWER10, 0, {VD, VA, VB}},
4824 {"vextubrx", VX (4,1805), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4825 {"maclhwuo", XO (4, 396,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4826 {"maclhwuo.", XO (4, 396,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4827 {"vsubshs", VX (4,1856), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4828 {"vclzh", VX (4,1858), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4829 {"vpopcnth", VX (4,1859), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4830 {"vslv", VX (4,1860), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4831 {"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4832 {"vextuhrx", VX (4,1869), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4833 {"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4834 {"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
4835 {"maclhwo", XO (4, 428,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4836 {"maclhwo.", XO (4, 428,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4837 {"nmaclhwo", XO (4, 430,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4838 {"nmaclhwo.", XO (4, 430,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4839 {"vsubsws", VX (4,1920), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4840 {"vclzw", VX (4,1922), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4841 {"vpopcntw", VX (4,1923), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4842 {"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4843 {"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4844 {"vcmpgtsq.", VXR(4, 903,1), VXR_MASK, POWER10, 0, {VD, VA, VB}},
4845 {"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
4846 {"vsumsws", VX (4,1928), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4847 {"vmodsw", VX (4,1931), VX_MASK, POWER10, 0, {VD, VA, VB}},
4848 {"vmrgew", VX (4,1932), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4849 {"vextuwrx", VX (4,1933), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
4850 {"maclhwsuo", XO (4, 460,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4851 {"maclhwsuo.", XO (4, 460,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4852 {"vclzd", VX (4,1986), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4853 {"vpopcntd", VX (4,1987), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
4854 {"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4855 {"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
4856 {"vcmpgtsd.", VXR(4, 967,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
4857 {"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
4858 {"vmodsd", VX (4,1995), VX_MASK, POWER10, 0, {VD, VA, VB}},
4859 {"maclhwso", XO (4, 492,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4860 {"maclhwso.", XO (4, 492,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4861 {"nmaclhwso", XO (4, 494,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4862 {"nmaclhwso.", XO (4, 494,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4863 {"dcbz_l", X (4,1014), XRT_MASK, PPCPS, 0, {RA, RB}},
4864
4865 {"lxvp", DQXP(6,0), DQXP_MASK, POWER10, PPCVLE, {XTP, DQ, RA0}},
4866 {"stxvp", DQXP(6,1), DQXP_MASK, POWER10, PPCVLE, {XTP, DQ, RA0}},
4867
4868 {"mulli", OP(7), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4869 {"muli", OP(7), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4870
4871 {"subfic", OP(8), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4872 {"sfi", OP(8), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4873
4874 {"dozi", OP(9), OP_MASK, M601, PPCVLE, {RT, RA, SI}},
4875
4876 {"cmplwi", OPL(10,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, UISIGNOPT}},
4877 {"cmpldi", OPL(10,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, UISIGNOPT}},
4878 {"cmpli", OP(10), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, UISIGNOPT}},
4879 {"cmpli", OP(10), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, UISIGNOPT}},
4880
4881 {"cmpwi", OPL(11,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, SI}},
4882 {"cmpdi", OPL(11,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, SI}},
4883 {"cmpi", OP(11), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, SI}},
4884 {"cmpi", OP(11), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, SI}},
4885
4886 {"addic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4887 {"ai", OP(12), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4888 {"subic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
4889
4890 {"addic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
4891 {"ai.", OP(13), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
4892 {"subic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
4893
4894 {"li", OP(14), DRA_MASK, PPCCOM, PPCVLE, {RT, SI}},
4895 {"lil", OP(14), DRA_MASK, PWRCOM, PPCVLE, {RT, SI}},
4896 {"addi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SI}},
4897 {"cal", OP(14), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
4898 {"subi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSI}},
4899 {"la", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
4900
4901 {"lis", OP(15), DRA_MASK, PPCCOM, PPCVLE, {RT, SISIGNOPT}},
4902 {"liu", OP(15), DRA_MASK, PWRCOM, PPCVLE, {RT, SISIGNOPT}},
4903 {"addis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
4904 {"cau", OP(15), OP_MASK, PWRCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
4905 {"subis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSISIGNOPT}},
4906
4907 {"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4908 {"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4909 {"bdnz", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
4910 {"bdn", BBO(16,BODNZ,0,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
4911 {"bdnzl-", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4912 {"bdnzl+", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4913 {"bdnzl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
4914 {"bdnl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
4915 {"bdnza-", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4916 {"bdnza+", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4917 {"bdnza", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
4918 {"bdna", BBO(16,BODNZ,1,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
4919 {"bdnzla-", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4920 {"bdnzla+", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4921 {"bdnzla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
4922 {"bdnla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
4923 {"bdz-", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4924 {"bdz+", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4925 {"bdz", BBO(16,BODZ,0,0), BBOATBI_MASK, COM, PPCVLE, {BD}},
4926 {"bdzl-", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
4927 {"bdzl+", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
4928 {"bdzl", BBO(16,BODZ,0,1), BBOATBI_MASK, COM, PPCVLE, {BD}},
4929 {"bdza-", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4930 {"bdza+", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4931 {"bdza", BBO(16,BODZ,1,0), BBOATBI_MASK, COM, PPCVLE, {BDA}},
4932 {"bdzla-", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
4933 {"bdzla+", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
4934 {"bdzla", BBO(16,BODZ,1,1), BBOATBI_MASK, COM, PPCVLE, {BDA}},
4935
4936 {"bge-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4937 {"bge+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4938 {"bge", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4939 {"bnl-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4940 {"bnl+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4941 {"bnl", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4942 {"bgel-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4943 {"bgel+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4944 {"bgel", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4945 {"bnll-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4946 {"bnll+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4947 {"bnll", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4948 {"bgea-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4949 {"bgea+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4950 {"bgea", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4951 {"bnla-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4952 {"bnla+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4953 {"bnla", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4954 {"bgela-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4955 {"bgela+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4956 {"bgela", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4957 {"bnlla-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4958 {"bnlla+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4959 {"bnlla", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4960 {"ble-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4961 {"ble+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4962 {"ble", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4963 {"bng-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4964 {"bng+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4965 {"bng", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4966 {"blel-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4967 {"blel+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4968 {"blel", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4969 {"bngl-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4970 {"bngl+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4971 {"bngl", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4972 {"blea-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4973 {"blea+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4974 {"blea", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4975 {"bnga-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4976 {"bnga+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4977 {"bnga", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4978 {"blela-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4979 {"blela+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4980 {"blela", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4981 {"bngla-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4982 {"bngla+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4983 {"bngla", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4984 {"bne-", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4985 {"bne+", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4986 {"bne", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4987 {"bnel-", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4988 {"bnel+", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4989 {"bnel", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4990 {"bnea-", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4991 {"bnea+", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4992 {"bnea", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4993 {"bnela-", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
4994 {"bnela+", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
4995 {"bnela", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
4996 {"bns-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
4997 {"bns+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
4998 {"bns", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
4999 {"bnu-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5000 {"bnu+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5001 {"bnu", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
5002 {"bnsl-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5003 {"bnsl+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5004 {"bnsl", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5005 {"bnul-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5006 {"bnul+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5007 {"bnul", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
5008 {"bnsa-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5009 {"bnsa+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5010 {"bnsa", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5011 {"bnua-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5012 {"bnua+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5013 {"bnua", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
5014 {"bnsla-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5015 {"bnsla+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5016 {"bnsla", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5017 {"bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5018 {"bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5019 {"bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
5020
5021 {"blt-", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5022 {"blt+", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5023 {"blt", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5024 {"bltl-", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5025 {"bltl+", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5026 {"bltl", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5027 {"blta-", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5028 {"blta+", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5029 {"blta", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5030 {"bltla-", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5031 {"bltla+", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5032 {"bltla", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5033 {"bgt-", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5034 {"bgt+", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5035 {"bgt", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5036 {"bgtl-", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5037 {"bgtl+", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5038 {"bgtl", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5039 {"bgta-", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5040 {"bgta+", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5041 {"bgta", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5042 {"bgtla-", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5043 {"bgtla+", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5044 {"bgtla", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5045 {"beq-", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5046 {"beq+", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5047 {"beq", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5048 {"beql-", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5049 {"beql+", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5050 {"beql", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5051 {"beqa-", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5052 {"beqa+", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5053 {"beqa", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5054 {"beqla-", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5055 {"beqla+", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5056 {"beqla", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5057 {"bso-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5058 {"bso+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5059 {"bso", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5060 {"bun-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5061 {"bun+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5062 {"bun", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
5063 {"bsol-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5064 {"bsol+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5065 {"bsol", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5066 {"bunl-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5067 {"bunl+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5068 {"bunl", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
5069 {"bsoa-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5070 {"bsoa+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5071 {"bsoa", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5072 {"buna-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5073 {"buna+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5074 {"buna", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
5075 {"bsola-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5076 {"bsola+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5077 {"bsola", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5078 {"bunla-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5079 {"bunla+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5080 {"bunla", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
5081
5082 {"bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5083 {"bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5084 {"bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5085 {"bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5086 {"bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5087 {"bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5088 {"bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5089 {"bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5090 {"bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5091 {"bdnzfla-", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5092 {"bdnzfla+", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5093 {"bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5094 {"bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5095 {"bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5096 {"bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5097 {"bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5098 {"bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5099 {"bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5100 {"bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5101 {"bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5102 {"bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5103 {"bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5104 {"bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5105 {"bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5106
5107 {"bf-", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
5108 {"bf+", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
5109 {"bf", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
5110 {"bbf", BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
5111 {"bfl-", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
5112 {"bfl+", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
5113 {"bfl", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
5114 {"bbfl", BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
5115 {"bfa-", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
5116 {"bfa+", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
5117 {"bfa", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5118 {"bbfa", BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
5119 {"bfla-", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
5120 {"bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
5121 {"bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5122 {"bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
5123
5124 {"bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5125 {"bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5126 {"bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5127 {"bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5128 {"bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5129 {"bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5130 {"bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5131 {"bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5132 {"bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5133 {"bdnztla-", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5134 {"bdnztla+", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5135 {"bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5136 {"bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5137 {"bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5138 {"bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5139 {"bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5140 {"bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5141 {"bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5142 {"bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5143 {"bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5144 {"bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5145 {"bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5146 {"bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5147 {"bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5148
5149 {"bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
5150 {"bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
5151 {"bt", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
5152 {"bbt", BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
5153 {"btl-", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
5154 {"btl+", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
5155 {"btl", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
5156 {"bbtl", BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
5157 {"bta-", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
5158 {"bta+", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
5159 {"bta", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5160 {"bbta", BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
5161 {"btla-", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
5162 {"btla+", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
5163 {"btla", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5164 {"bbtla", BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
5165
5166 {"bc-", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDM}},
5167 {"bc+", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDP}},
5168 {"bc", B(16,0,0), B_MASK, COM, PPCVLE, {BO, BI, BD}},
5169 {"bcl-", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDM}},
5170 {"bcl+", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDP}},
5171 {"bcl", B(16,0,1), B_MASK, COM, PPCVLE, {BO, BI, BD}},
5172 {"bca-", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDMA}},
5173 {"bca+", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDPA}},
5174 {"bca", B(16,1,0), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
5175 {"bcla-", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDMA}},
5176 {"bcla+", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDPA}},
5177 {"bcla", B(16,1,1), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
5178
5179 {"svc", SC(17,0,0), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
5180 {"scv", SC(17,0,1), SC_MASK, POWER9, PPCVLE, {SVC_LEV}},
5181 {"svcl", SC(17,0,1), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
5182 {"sc", SC(17,1,0), SC_MASK, PPC, PPCVLE, {LEV}},
5183 {"svca", SC(17,1,0), SC_MASK, PWRCOM, PPCVLE, {SV}},
5184 {"svcla", SC(17,1,1), SC_MASK, POWER, PPCVLE, {SV}},
5185
5186 {"b", B(18,0,0), B_MASK, COM, PPCVLE, {LI}},
5187 {"bl", B(18,0,1), B_MASK, COM, PPCVLE, {LI}},
5188 {"ba", B(18,1,0), B_MASK, COM, PPCVLE, {LIA}},
5189 {"bla", B(18,1,1), B_MASK, COM, PPCVLE, {LIA}},
5190
5191 {"mcrf", XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
5192
5193 {"lnia", DX(19,2), NODX_MASK, POWER9, PPCVLE, {RT}},
5194 {"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}},
5195 {"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, NDXD}},
5196
5197 {"bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
5198 {"bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
5199 {"bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
5200 {"bdnzlrl-", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
5201 {"bdnzlrl+", XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
5202 {"bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
5203 {"bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
5204 {"bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
5205 {"bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
5206 {"bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
5207 {"bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
5208 {"bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
5209 {"blr", XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
5210 {"br", XLO(19,BOU,16,0), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}},
5211 {"blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
5212 {"brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}},
5213 {"bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5214 {"bdnzlrl-", XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5215 {"bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5216 {"bdnzlrl+", XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5217 {"bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5218 {"bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5219 {"bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5220 {"bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
5221
5222 {"bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5223 {"bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5224 {"bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5225 {"bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5226 {"bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5227 {"bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5228 {"bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5229 {"bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5230 {"bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5231 {"bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5232 {"bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5233 {"bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5234 {"bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5235 {"bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5236 {"bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5237 {"bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5238 {"blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5239 {"blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5240 {"blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5241 {"bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5242 {"bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5243 {"bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5244 {"bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5245 {"bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5246 {"blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5247 {"blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5248 {"blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5249 {"blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5250 {"bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5251 {"bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5252 {"bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5253 {"bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5254 {"bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5255 {"bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5256 {"bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5257 {"bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5258 {"bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5259 {"bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5260 {"bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5261 {"bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5262 {"bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5263 {"bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5264 {"bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5265 {"bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5266 {"bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5267 {"bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5268 {"bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5269 {"bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5270 {"bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5271 {"bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5272 {"bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5273 {"bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5274 {"bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5275 {"bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5276 {"bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5277 {"bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5278 {"bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5279 {"bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5280 {"blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5281 {"bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5282 {"blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5283 {"bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5284 {"bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5285 {"bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5286 {"bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5287 {"bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5288 {"bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5289 {"bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5290 {"bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5291 {"bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5292 {"bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5293 {"bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5294 {"blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5295 {"bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5296 {"blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5297 {"bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5298 {"bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5299 {"bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5300 {"bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5301 {"bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5302 {"bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5303 {"bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5304 {"bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5305 {"bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5306 {"bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5307 {"bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5308 {"bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5309 {"bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5310 {"bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5311 {"bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5312 {"bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5313 {"bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5314 {"bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5315 {"bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5316 {"bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5317 {"bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5318 {"bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5319 {"bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5320 {"beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5321 {"beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5322 {"beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5323 {"beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5324 {"beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5325 {"beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5326 {"beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5327 {"beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5328 {"bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5329 {"bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5330 {"bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5331 {"bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5332 {"bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5333 {"bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5334 {"bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5335 {"bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5336 {"bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5337 {"bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5338 {"bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
5339 {"bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5340 {"bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5341 {"bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5342 {"bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5343 {"bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5344 {"bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5345 {"bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5346 {"beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5347 {"beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5348 {"bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5349 {"bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5350 {"bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5351 {"bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5352 {"bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5353 {"bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5354 {"bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5355 {"bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5356 {"beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5357 {"beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5358 {"bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5359 {"bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5360 {"bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5361 {"bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5362
5363 {"bdnzflr-", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5364 {"bdnzflr+", XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5365 {"bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5366 {"bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5367 {"bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5368 {"bdnzflrl", XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5369 {"bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5370 {"bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5371 {"bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5372 {"bdzflrl-", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5373 {"bdzflrl+", XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5374 {"bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5375 {"bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5376 {"bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5377 {"bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5378 {"bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
5379 {"bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5380 {"bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5381 {"bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5382 {"bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
5383 {"bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5384 {"bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5385 {"bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5386 {"bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5387 {"bdnztlr-", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5388 {"bdnztlr+", XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5389 {"bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5390 {"bdnztlrl-", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5391 {"bdnztlrl+", XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5392 {"bdnztlrl", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5393 {"bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5394 {"bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5395 {"bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5396 {"bdztlrl-", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5397 {"bdztlrl+", XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5398 {"bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5399 {"btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5400 {"btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5401 {"btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5402 {"bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
5403 {"btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5404 {"btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5405 {"btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5406 {"bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
5407 {"btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5408 {"btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5409 {"btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5410 {"btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5411
5412 {"bclr-", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5413 {"bclr+", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
5414 {"bclr", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
5415 {"bcr", XLLK(19,16,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
5416 {"bclrl-", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5417 {"bclrl+", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
5418 {"bclrl", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
5419 {"bcrl", XLLK(19,16,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
5420
5421 {"rfid", XL(19,18), 0xffffffff, PPC64, PPCVLE, {0}},
5422
5423 {"crnot", XL(19,33), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}},
5424 {"crnor", XL(19,33), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5425 {"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE, {0}},
5426
5427 {"rfdi", XL(19,39), 0xffffffff, E500MC, PPCVLE, {0}},
5428 {"rfi", XL(19,50), 0xffffffff, COM, PPCVLE, {0}},
5429 {"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}},
5430
5431 {"rfscv", XL(19,82), 0xffffffff, POWER9, PPCVLE, {0}},
5432 {"rfsvc", XL(19,82), 0xffffffff, POWER, PPCVLE, {0}},
5433
5434 {"rfgi", XL(19,102), 0xffffffff, E500MC|PPCA2, PPCVLE, {0}},
5435
5436 {"crandc", XL(19,129), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5437
5438 {"rfebb", XL(19,146), XLS_MASK, POWER8, PPCVLE, {SXL}},
5439
5440 {"isync", XL(19,150), 0xffffffff, PPCCOM, PPCVLE, {0}},
5441 {"ics", XL(19,150), 0xffffffff, PWRCOM, PPCVLE, {0}},
5442
5443 {"crclr", XL(19,193), XL_MASK, PPCCOM, PPCVLE, {BTAB}},
5444 {"crxor", XL(19,193), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5445
5446 {"dnh", X(19,198), X_MASK, E500MC, PPCVLE, {DUI, DUIS}},
5447
5448 {"crnand", XL(19,225), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5449
5450 {"crand", XL(19,257), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5451
5452 {"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPC476|PPCVLE, {0}},
5453
5454 {"crset", XL(19,289), XL_MASK, PPCCOM, PPCVLE, {BTAB}},
5455 {"creqv", XL(19,289), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5456
5457 {"urfid", XL(19,306), 0xffffffff, POWER9, PPCVLE, {0}},
5458 {"stop", XL(19,370), 0xffffffff, POWER9, PPCVLE, {0}},
5459
5460 {"doze", XL(19,402), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5461
5462 {"crorc", XL(19,417), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5463
5464 {"nap", XL(19,434), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5465
5466 {"crmove", XL(19,449), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}},
5467 {"cror", XL(19,449), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5468
5469 {"sleep", XL(19,466), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5470 {"rvwinkle", XL(19,498), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5471
5472 {"bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, PPCVLE, {0}},
5473 {"bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, PPCVLE, {0}},
5474
5475 {"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5476 {"bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5477 {"bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5478 {"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5479 {"bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5480 {"bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5481 {"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5482 {"bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5483 {"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5484 {"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5485 {"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5486 {"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5487 {"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5488 {"blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5489 {"blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5490 {"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5491 {"bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5492 {"bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5493 {"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5494 {"blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5495 {"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5496 {"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5497 {"bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5498 {"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5499 {"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5500 {"bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5501 {"bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5502 {"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5503 {"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5504 {"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5505 {"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5506 {"bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5507 {"bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5508 {"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5509 {"bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5510 {"bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5511 {"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5512 {"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5513 {"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5514 {"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5515 {"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5516 {"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5517 {"bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5518 {"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5519 {"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5520 {"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5521 {"blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5522 {"bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5523 {"blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5524 {"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5525 {"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5526 {"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5527 {"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5528 {"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5529 {"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5530 {"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5531 {"bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5532 {"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5533 {"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5534 {"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5535 {"blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5536 {"bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5537 {"blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5538 {"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5539 {"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5540 {"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5541 {"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5542 {"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5543 {"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5544 {"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5545 {"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5546 {"bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5547 {"bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5548 {"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5549 {"bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5550 {"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5551 {"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5552 {"bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5553 {"bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5554 {"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5555 {"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5556 {"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5557 {"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5558 {"beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5559 {"beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5560 {"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5561 {"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5562 {"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5563 {"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5564 {"bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5565 {"bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5566 {"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5567 {"bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5568 {"bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5569 {"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5570 {"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5571 {"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5572 {"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5573 {"bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
5574 {"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
5575 {"bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5576 {"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5577 {"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5578 {"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5579 {"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5580 {"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5581 {"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5582 {"bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5583 {"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5584 {"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5585 {"bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5586 {"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5587 {"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5588 {"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5589 {"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5590 {"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5591 {"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5592 {"bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5593 {"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5594 {"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
5595
5596 {"bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5597 {"bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5598 {"bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5599 {"bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5600 {"bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5601 {"bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5602 {"bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5603 {"bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5604 {"bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5605 {"bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5606 {"btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5607 {"btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5608 {"btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5609 {"btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5610 {"btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
5611 {"btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
5612 {"btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5613 {"btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5614 {"btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5615 {"btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
5616
5617 {"bcctr-", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5618 {"bcctr+", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
5619 {"bcctr", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
5620 {"bcc", XLLK(19,528,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
5621 {"bcctrl-", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5622 {"bcctrl+", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
5623 {"bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
5624 {"bccl", XLLK(19,528,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
5625
5626 {"bdnztar", XLO(19,BODNZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5627 {"bdnztarl", XLO(19,BODNZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5628 {"bdztar", XLO(19,BODZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5629 {"bdztarl", XLO(19,BODZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5630 {"btar", XLO(19,BOU,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5631 {"btarl", XLO(19,BOU,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5632 {"bdnztar-", XLO(19,BODNZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5633 {"bdnztarl-", XLO(19,BODNZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5634 {"bdnztar+", XLO(19,BODNZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5635 {"bdnztarl+", XLO(19,BODNZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5636 {"bdztar-", XLO(19,BODZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5637 {"bdztarl-", XLO(19,BODZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5638 {"bdztar+", XLO(19,BODZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5639 {"bdztarl+", XLO(19,BODZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {0}},
5640
5641 {"bgetar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5642 {"bnltar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5643 {"bgetarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5644 {"bnltarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5645 {"bletar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5646 {"bngtar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5647 {"bletarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5648 {"bngtarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5649 {"bnetar", XLOCB(19,BOF,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5650 {"bnetarl", XLOCB(19,BOF,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5651 {"bnstar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5652 {"bnutar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5653 {"bnstarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5654 {"bnutarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5655 {"bgetar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5656 {"bnltar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5657 {"bgetarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5658 {"bnltarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5659 {"bletar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5660 {"bngtar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5661 {"bletarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5662 {"bngtarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5663 {"bnetar-", XLOCB(19,BOFM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5664 {"bnetarl-",XLOCB(19,BOFM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5665 {"bnstar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5666 {"bnutar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5667 {"bnstarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5668 {"bnutarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5669 {"bgetar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5670 {"bnltar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5671 {"bgetarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5672 {"bnltarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5673 {"bletar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5674 {"bngtar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5675 {"bletarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5676 {"bngtarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5677 {"bnetar+", XLOCB(19,BOFP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5678 {"bnetarl+",XLOCB(19,BOFP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5679 {"bnstar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5680 {"bnutar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5681 {"bnstarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5682 {"bnutarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5683 {"blttar", XLOCB(19,BOT,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5684 {"blttarl", XLOCB(19,BOT,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5685 {"bgttar", XLOCB(19,BOT,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5686 {"bgttarl", XLOCB(19,BOT,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5687 {"beqtar", XLOCB(19,BOT,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5688 {"beqtarl", XLOCB(19,BOT,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5689 {"bsotar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5690 {"buntar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5691 {"bsotarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5692 {"buntarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5693 {"blttar-", XLOCB(19,BOTM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5694 {"blttarl-",XLOCB(19,BOTM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5695 {"bgttar-", XLOCB(19,BOTM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5696 {"bgttarl-",XLOCB(19,BOTM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5697 {"beqtar-", XLOCB(19,BOTM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5698 {"beqtarl-",XLOCB(19,BOTM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5699 {"bsotar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5700 {"buntar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5701 {"bsotarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5702 {"buntarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5703 {"blttar+", XLOCB(19,BOTP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5704 {"blttarl+",XLOCB(19,BOTP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5705 {"bgttar+", XLOCB(19,BOTP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5706 {"bgttarl+",XLOCB(19,BOTP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5707 {"beqtar+", XLOCB(19,BOTP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5708 {"beqtarl+",XLOCB(19,BOTP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5709 {"bsotar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5710 {"buntar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5711 {"bsotarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5712 {"buntarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR}},
5713
5714 {"bdnzftar", XLO(19,BODNZF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5715 {"bdnzftarl", XLO(19,BODNZF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5716 {"bdzftar", XLO(19,BODZF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5717 {"bdzftarl", XLO(19,BODZF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5718
5719 {"bftar", XLO(19,BOF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5720 {"bftarl", XLO(19,BOF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5721 {"bftar-", XLO(19,BOFM4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5722 {"bftarl-", XLO(19,BOFM4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5723 {"bftar+", XLO(19,BOFP4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5724 {"bftarl+", XLO(19,BOFP4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5725
5726 {"bdnzttar", XLO(19,BODNZT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5727 {"bdnzttarl", XLO(19,BODNZT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5728 {"bdzttar", XLO(19,BODZT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5729 {"bdzttarl", XLO(19,BODZT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5730
5731 {"bttar", XLO(19,BOT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5732 {"bttarl", XLO(19,BOT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5733 {"bttar-", XLO(19,BOTM4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5734 {"bttarl-", XLO(19,BOTM4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5735 {"bttar+", XLO(19,BOTP4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5736 {"bttarl+", XLO(19,BOTP4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI}},
5737
5738 {"bctar-", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BOM, BI, BH}},
5739 {"bctar+", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BOP, BI, BH}},
5740 {"bctar", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
5741 {"bctarl-", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BOM, BI, BH}},
5742 {"bctarl+", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BOP, BI, BH}},
5743 {"bctarl", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
5744
5745 {"rlwimi", M(20,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5746 {"rlimi", M(20,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5747
5748 {"rlwimi.", M(20,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5749 {"rlimi.", M(20,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5750
5751 {"rotlwi", MME(21,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
5752 {"clrlwi", MME(21,31,0), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
5753 {"rlwinm", M(21,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5754 {"rlinm", M(21,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5755 {"rotlwi.", MME(21,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
5756 {"clrlwi.", MME(21,31,1), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
5757 {"rlwinm.", M(21,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5758 {"rlinm.", M(21,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
5759
5760 {"rlmi", M(22,0), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
5761 {"rlmi.", M(22,1), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
5762
5763 {"rotlw", MME(23,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
5764 {"rlwnm", M(23,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5765 {"rlnm", M(23,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5766 {"rotlw.", MME(23,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
5767 {"rlwnm.", M(23,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5768 {"rlnm.", M(23,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
5769
5770 {"nop", OP(24), 0xffffffff, PPCCOM, PPCVLE, {0}},
5771 {"ori", OP(24), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5772 {"oril", OP(24), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5773
5774 {"oris", OP(25), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5775 {"oriu", OP(25), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5776
5777 {"xnop", OP(26), 0xffffffff, PPCCOM, PPCVLE, {0}},
5778 {"xori", OP(26), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5779 {"xoril", OP(26), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5780
5781 {"xoris", OP(27), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5782 {"xoriu", OP(27), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5783
5784 {"andi.", OP(28), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5785 {"andil.", OP(28), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5786
5787 {"andis.", OP(29), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
5788 {"andiu.", OP(29), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
5789
5790 {"rotldi", MD(30,0,0), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
5791 {"clrldi", MD(30,0,0), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
5792 {"rldicl", MD(30,0,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5793 {"rotldi.", MD(30,0,1), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
5794 {"clrldi.", MD(30,0,1), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
5795 {"rldicl.", MD(30,0,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5796
5797 {"rldicr", MD(30,1,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
5798 {"rldicr.", MD(30,1,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
5799
5800 {"rldic", MD(30,2,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5801 {"rldic.", MD(30,2,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5802
5803 {"rldimi", MD(30,3,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5804 {"rldimi.", MD(30,3,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
5805
5806 {"rotld", MDS(30,8,0), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
5807 {"rldcl", MDS(30,8,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
5808 {"rotld.", MDS(30,8,1), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
5809 {"rldcl.", MDS(30,8,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
5810
5811 {"rldcr", MDS(30,9,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
5812 {"rldcr.", MDS(30,9,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
5813
5814 {"cmpw", XOPL(31,0,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
5815 {"cmpd", XOPL(31,0,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
5816 {"cmp", X(31,0), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
5817 {"cmp", X(31,0), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
5818
5819 {"twlgt", XTO(31,4,TOLGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5820 {"tlgt", XTO(31,4,TOLGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5821 {"twllt", XTO(31,4,TOLLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5822 {"tllt", XTO(31,4,TOLLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5823 {"tweq", XTO(31,4,TOEQ), XTO_MASK, PPCCOM, 0, {RA, RB}},
5824 {"teq", XTO(31,4,TOEQ), XTO_MASK, PWRCOM, 0, {RA, RB}},
5825 {"twlge", XTO(31,4,TOLGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5826 {"tlge", XTO(31,4,TOLGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5827 {"twlnl", XTO(31,4,TOLNL), XTO_MASK, PPCCOM, 0, {RA, RB}},
5828 {"tlnl", XTO(31,4,TOLNL), XTO_MASK, PWRCOM, 0, {RA, RB}},
5829 {"twlle", XTO(31,4,TOLLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5830 {"tlle", XTO(31,4,TOLLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5831 {"twlng", XTO(31,4,TOLNG), XTO_MASK, PPCCOM, 0, {RA, RB}},
5832 {"tlng", XTO(31,4,TOLNG), XTO_MASK, PWRCOM, 0, {RA, RB}},
5833 {"twgt", XTO(31,4,TOGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5834 {"tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5835 {"twge", XTO(31,4,TOGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5836 {"tge", XTO(31,4,TOGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5837 {"twnl", XTO(31,4,TONL), XTO_MASK, PPCCOM, 0, {RA, RB}},
5838 {"tnl", XTO(31,4,TONL), XTO_MASK, PWRCOM, 0, {RA, RB}},
5839 {"twlt", XTO(31,4,TOLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
5840 {"tlt", XTO(31,4,TOLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
5841 {"twle", XTO(31,4,TOLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5842 {"tle", XTO(31,4,TOLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5843 {"twng", XTO(31,4,TONG), XTO_MASK, PPCCOM, 0, {RA, RB}},
5844 {"tng", XTO(31,4,TONG), XTO_MASK, PWRCOM, 0, {RA, RB}},
5845 {"twne", XTO(31,4,TONE), XTO_MASK, PPCCOM, 0, {RA, RB}},
5846 {"tne", XTO(31,4,TONE), XTO_MASK, PWRCOM, 0, {RA, RB}},
5847 {"trap", XTO(31,4,TOU), 0xffffffff, PPCCOM, 0, {0}},
5848 {"twu", XTO(31,4,TOU), XTO_MASK, PPCCOM, 0, {RA, RB}},
5849 {"tu", XTO(31,4,TOU), XTO_MASK, PWRCOM, 0, {RA, RB}},
5850 {"tw", X(31,4), X_MASK, PPCCOM, 0, {TO, RA, RB}},
5851 {"t", X(31,4), X_MASK, PWRCOM, 0, {TO, RA, RB}},
5852
5853 {"lvsl", X(31,6), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5854 {"lvebx", X(31,7), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5855 {"lbfcmx", APU(31,7,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
5856
5857 {"subfc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5858 {"sf", XO(31,8,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5859 {"subc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
5860 {"subfc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5861 {"sf.", XO(31,8,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5862 {"subc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
5863
5864 {"mulhdu", XO(31,9,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
5865 {"mulhdu.", XO(31,9,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
5866
5867 {"addc", XO(31,10,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5868 {"a", XO(31,10,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5869 {"addc.", XO(31,10,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
5870 {"a.", XO(31,10,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
5871
5872 {"mulhwu", XO(31,11,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
5873 {"mulhwu.", XO(31,11,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
5874
5875 {"lxsiwzx", X(31,12), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
5876
5877 {"isellt", X(31,15), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
5878
5879 {"tlbilxlpid", XTO(31,18,0), XTO_MASK, E500MC|PPCA2, 0, {0}},
5880 {"tlbilxpid", XTO(31,18,1), XTO_MASK, E500MC|PPCA2, 0, {0}},
5881 {"tlbilxva", XTO(31,18,3), XTO_MASK, E500MC|PPCA2, 0, {RA0, RB}},
5882 {"tlbilx", X(31,18), X_MASK, E500MC|PPCA2, 0, {T, RA0, RB}},
5883
5884 {"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, COM, 0, {RT, FXM4}},
5885 {"mfocrf", XFXM(31,19,0,1), XFXFXM_MASK, COM, 0, {RT, FXM}},
5886
5887 {"lwarx", X(31,20), XEH_MASK, PPC, 0, {RT, RA0, RB, EH}},
5888
5889 {"ldx", X(31,21), X_MASK, PPC64, 0, {RT, RA0, RB}},
5890
5891 {"icbt", X(31,22), X_MASK, BOOKE|PPCE300|PPCA2|PPC476, 0, {CT, RA0, RB}},
5892
5893 {"lwzx", X(31,23), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
5894 {"lx", X(31,23), X_MASK, PWRCOM, 0, {RT, RA, RB}},
5895
5896 {"slw", XRC(31,24,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
5897 {"sl", XRC(31,24,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
5898 {"slw.", XRC(31,24,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
5899 {"sl.", XRC(31,24,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
5900
5901 {"cntlzw", XRC(31,26,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
5902 {"cntlz", XRC(31,26,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
5903 {"cntlzw.", XRC(31,26,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
5904 {"cntlz.", XRC(31,26,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
5905
5906 {"sld", XRC(31,27,0), X_MASK, PPC64, 0, {RA, RS, RB}},
5907 {"sld.", XRC(31,27,1), X_MASK, PPC64, 0, {RA, RS, RB}},
5908
5909 {"and", XRC(31,28,0), X_MASK, COM, 0, {RA, RS, RB}},
5910 {"and.", XRC(31,28,1), X_MASK, COM, 0, {RA, RS, RB}},
5911
5912 {"maskg", XRC(31,29,0), X_MASK, M601, PPCA2, {RA, RS, RB}},
5913 {"maskg.", XRC(31,29,1), X_MASK, M601, PPCA2, {RA, RS, RB}},
5914
5915 {"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
5916
5917 {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
5918 {"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}},
5919
5920 {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
5921
5922 {"cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
5923 {"cmpld", XOPL(31,32,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
5924 {"cmpl", X(31,32), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
5925 {"cmpl", X(31,32), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
5926
5927 {"lvsr", X(31,38), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5928 {"lvehx", X(31,39), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5929 {"lhfcmx", APU(31,39,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
5930
5931 {"mviwsplt", X(31,46), X_MASK, E6500, 0, {VD, RA, RB}},
5932
5933 {"iselgt", X(31,47), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
5934
5935 {"lvewx", X(31,71), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
5936
5937 {"addg6s", XO(31,74,0,0), XO_MASK, POWER6, 0, {RT, RA, RB}},
5938
5939 {"lxsiwax", X(31,76), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
5940
5941 {"iseleq", X(31,79), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
5942
5943 {"isel", XISEL(31,15), XISEL_MASK, PPCISEL|TITAN, 0, {RT, RA0, RB, CRB}},
5944
5945 {"subf", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
5946 {"sub", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RB, RA}},
5947 {"subf.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
5948 {"sub.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RB, RA}},
5949
5950 {"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
5951 {"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
5952 {"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
5953 {"eratilx", X(31,51), X_MASK, PPCA2, 0, {ERAT_T, RA, RB}},
5954
5955 {"lbarx", X(31,52), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
5956
5957 {"ldux", X(31,53), X_MASK, PPC64, 0, {RT, RAL, RB}},
5958
5959 {"dcbst", X(31,54), XRT_MASK, PPC, 0, {RA0, RB}},
5960
5961 {"lwzux", X(31,55), X_MASK, PPCCOM, 0, {RT, RAL, RB}},
5962 {"lux", X(31,55), X_MASK, PWRCOM, 0, {RT, RA, RB}},
5963
5964 {"cntlzd", XRC(31,58,0), XRB_MASK, PPC64, 0, {RA, RS}},
5965 {"cntlzd.", XRC(31,58,1), XRB_MASK, PPC64, 0, {RA, RS}},
5966
5967 {"andc", XRC(31,60,0), X_MASK, COM, 0, {RA, RS, RB}},
5968 {"andc.", XRC(31,60,1), X_MASK, COM, 0, {RA, RS, RB}},
5969
5970 {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
5971 {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
5972 {"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
5973
5974 {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
5975
5976 {"tdlgt", XTO(31,68,TOLGT), XTO_MASK, PPC64, 0, {RA, RB}},
5977 {"tdllt", XTO(31,68,TOLLT), XTO_MASK, PPC64, 0, {RA, RB}},
5978 {"tdeq", XTO(31,68,TOEQ), XTO_MASK, PPC64, 0, {RA, RB}},
5979 {"tdlge", XTO(31,68,TOLGE), XTO_MASK, PPC64, 0, {RA, RB}},
5980 {"tdlnl", XTO(31,68,TOLNL), XTO_MASK, PPC64, 0, {RA, RB}},
5981 {"tdlle", XTO(31,68,TOLLE), XTO_MASK, PPC64, 0, {RA, RB}},
5982 {"tdlng", XTO(31,68,TOLNG), XTO_MASK, PPC64, 0, {RA, RB}},
5983 {"tdgt", XTO(31,68,TOGT), XTO_MASK, PPC64, 0, {RA, RB}},
5984 {"tdge", XTO(31,68,TOGE), XTO_MASK, PPC64, 0, {RA, RB}},
5985 {"tdnl", XTO(31,68,TONL), XTO_MASK, PPC64, 0, {RA, RB}},
5986 {"tdlt", XTO(31,68,TOLT), XTO_MASK, PPC64, 0, {RA, RB}},
5987 {"tdle", XTO(31,68,TOLE), XTO_MASK, PPC64, 0, {RA, RB}},
5988 {"tdng", XTO(31,68,TONG), XTO_MASK, PPC64, 0, {RA, RB}},
5989 {"tdne", XTO(31,68,TONE), XTO_MASK, PPC64, 0, {RA, RB}},
5990 {"tdu", XTO(31,68,TOU), XTO_MASK, PPC64, 0, {RA, RB}},
5991 {"td", X(31,68), X_MASK, PPC64, 0, {TO, RA, RB}},
5992
5993 {"lwfcmx", APU(31,71,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
5994 {"mulhd", XO(31,73,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
5995 {"mulhd.", XO(31,73,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
5996
5997 {"mulhw", XO(31,75,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
5998 {"mulhw.", XO(31,75,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
5999
6000 {"dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
6001 {"dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
6002
6003 {"mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, 0, {SR, RS}},
6004
6005 {"mfmsr", X(31,83), XRARB_MASK, COM, 0, {RT}},
6006
6007 {"ldarx", X(31,84), XEH_MASK, PPC64, 0, {RT, RA0, RB, EH}},
6008
6009 {"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPC476, {RA0, RB}},
6010 {"dcbf", X(31,86), XLRT_MASK, PPC, 0, {RA0, RB, L2OPT}},
6011
6012 {"lbzx", X(31,87), X_MASK, COM, 0, {RT, RA0, RB}},
6013
6014 {"lbepx", X(31,95), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
6015
6016 {"dni", XRC(31,97,1), XRB_MASK, E6500, 0, {DUI, DCTL}},
6017
6018 {"lvx", X(31,103), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
6019 {"lqfcmx", APU(31,103,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6020
6021 {"neg", XO(31,104,0,0), XORB_MASK, COM, 0, {RT, RA}},
6022 {"neg.", XO(31,104,0,1), XORB_MASK, COM, 0, {RT, RA}},
6023
6024 {"mul", XO(31,107,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6025 {"mul.", XO(31,107,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
6026
6027 {"mvidsplt", X(31,110), X_MASK, E6500, 0, {VD, RA, RB}},
6028
6029 {"mtsrdin", X(31,114), XRA_MASK, PPC64, 0, {RS, RB}},
6030
6031 {"mffprwz", X(31,115), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
6032 {"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
6033 {"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
6034
6035 {"lharx", X(31,116), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
6036
6037 {"clf", X(31,118), XTO_MASK, POWER, 0, {RA, RB}},
6038
6039 {"lbzux", X(31,119), X_MASK, COM, 0, {RT, RAL, RB}},
6040
6041 {"popcntb", X(31,122), XRB_MASK, POWER5, 0, {RA, RS}},
6042
6043 {"not", XRC(31,124,0), X_MASK, COM, 0, {RA, RSB}},
6044 {"nor", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RB}},
6045 {"not.", XRC(31,124,1), X_MASK, COM, 0, {RA, RSB}},
6046 {"nor.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RB}},
6047
6048 {"dcbfep", XRT(31,127,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
6049
6050 {"setb", X(31,128), XRB_MASK|(3<<16), POWER9, 0, {RT, BFA}},
6051
6052 {"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RS}},
6053
6054 {"dcbtstls", X(31,134), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
6055
6056 {"stvebx", X(31,135), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6057 {"stbfcmx", APU(31,135,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6058
6059 {"subfe", XO(31,136,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6060 {"sfe", XO(31,136,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6061 {"subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6062 {"sfe.", XO(31,136,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6063
6064 {"adde", XO(31,138,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6065 {"ae", XO(31,138,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6066 {"adde.", XO(31,138,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6067 {"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6068
6069 {"stxsiwx", X(31,140), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
6070
6071 {"msgsndp", XRTRA(31,142,0,0), XRTRA_MASK, POWER8, 0, {RB}},
6072 {"dcbtstlse", X(31,142), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
6073
6074 {"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, 0, {RS}},
6075 {"mtcrf", XFXM(31,144,0,0), XFXFXM_MASK, COM, 0, {FXM, RS}},
6076 {"mtocrf", XFXM(31,144,0,1), XFXFXM_MASK, COM, 0, {FXM, RS}},
6077
6078 {"mtmsr", X(31,146), XRLARB_MASK, COM, 0, {RS, A_L}},
6079
6080 {"mtsle", X(31,147), XRTLRARB_MASK, POWER8, 0, {L}},
6081
6082 {"eratsx", XRC(31,147,0), X_MASK, PPCA2, 0, {RT, RA0, RB}},
6083 {"eratsx.", XRC(31,147,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
6084
6085 {"stdx", X(31,149), X_MASK, PPC64, 0, {RS, RA0, RB}},
6086
6087 {"stwcx.", XRC(31,150,1), X_MASK, PPC, 0, {RS, RA0, RB}},
6088
6089 {"stwx", X(31,151), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
6090 {"stx", X(31,151), X_MASK, PWRCOM, 0, {RS, RA, RB}},
6091
6092 {"slq", XRC(31,152,0), X_MASK, M601, 0, {RA, RS, RB}},
6093 {"slq.", XRC(31,152,1), X_MASK, M601, 0, {RA, RS, RB}},
6094
6095 {"sle", XRC(31,153,0), X_MASK, M601, 0, {RA, RS, RB}},
6096 {"sle.", XRC(31,153,1), X_MASK, M601, 0, {RA, RS, RB}},
6097
6098 {"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS}},
6099
6100 {"brw", X(31,155), XRB_MASK, POWER10, 0, {RA, RS}},
6101
6102 {"stdepx", X(31,157), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
6103
6104 {"stwepx", X(31,159), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
6105
6106 {"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {E}},
6107
6108 {"dcbtls", X(31,166), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
6109
6110 {"stvehx", X(31,167), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6111 {"sthfcmx", APU(31,167,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6112
6113 {"addex", ZRC(31,170,0), Z2_MASK, POWER9, 0, {RT, RA, RB, CY}},
6114
6115 {"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, 0, {RB}},
6116 {"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
6117
6118 {"mtmsrd", X(31,178), XRLARB_MASK, PPC64, 0, {RS, A_L}},
6119
6120 {"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
6121 {"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
6122 {"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
6123 {"eratre", X(31,179), X_MASK, PPCA2, 0, {RT, RA, WS}},
6124
6125 {"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}},
6126
6127 {"stqcx.", XRC(31,182,1), X_MASK|Q_MASK, POWER8, 0, {RSQ, RA0, RB}},
6128 {"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}},
6129
6130 {"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}},
6131 {"stux", X(31,183), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
6132
6133 {"sliq", XRC(31,184,0), X_MASK, M601, 0, {RA, RS, SH}},
6134 {"sliq.", XRC(31,184,1), X_MASK, M601, 0, {RA, RS, SH}},
6135
6136 {"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, 0, {RA, RS}},
6137
6138 {"brd", X(31,187), XRB_MASK, POWER10, 0, {RA, RS}},
6139
6140 {"cmprb", X(31,192), XCMP_MASK, POWER9, 0, {BF, L, RA, RB}},
6141
6142 {"icblq.", XRC(31,198,1), X_MASK, E6500, 0, {CT, RA0, RB}},
6143
6144 {"stvewx", X(31,199), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6145 {"stwfcmx", APU(31,199,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6146
6147 {"subfze", XO(31,200,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6148 {"sfze", XO(31,200,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6149 {"subfze.", XO(31,200,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6150 {"sfze.", XO(31,200,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
6151
6152 {"addze", XO(31,202,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6153 {"aze", XO(31,202,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6154 {"addze.", XO(31,202,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6155 {"aze.", XO(31,202,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
6156
6157 {"msgsnd", XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
6158
6159 {"mtsr", X(31,210), XRB_MASK|(1<<20), COM, NON32, {SR, RS}},
6160
6161 {"mtfprwa", X(31,211), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
6162 {"mtvrwa", X(31,211)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
6163 {"mtvsrwa", X(31,211), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
6164 {"eratwe", X(31,211), X_MASK, PPCA2, 0, {RS, RA, WS}},
6165
6166 {"ldawx.", XRC(31,212,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
6167
6168 {"stdcx.", XRC(31,214,1), X_MASK, PPC64, 0, {RS, RA0, RB}},
6169
6170 {"stbx", X(31,215), X_MASK, COM, 0, {RS, RA0, RB}},
6171
6172 {"sllq", XRC(31,216,0), X_MASK, M601, 0, {RA, RS, RB}},
6173 {"sllq.", XRC(31,216,1), X_MASK, M601, 0, {RA, RS, RB}},
6174
6175 {"sleq", XRC(31,217,0), X_MASK, M601, 0, {RA, RS, RB}},
6176 {"sleq.", XRC(31,217,1), X_MASK, M601, 0, {RA, RS, RB}},
6177
6178 {"brh", X(31,219), XRB_MASK, POWER10, 0, {RA, RS}},
6179
6180 {"stbepx", X(31,223), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
6181
6182 {"cmpeqb", X(31,224), XCMPL_MASK, POWER9, 0, {BF, RA, RB}},
6183
6184 {"icblc", X(31,230), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
6185
6186 {"stvx", X(31,231), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6187 {"stqfcmx", APU(31,231,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6188
6189 {"subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6190 {"sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6191 {"subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6192 {"sfme.", XO(31,232,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
6193
6194 {"mulld", XO(31,233,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6195 {"mulld.", XO(31,233,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
6196
6197 {"addme", XO(31,234,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6198 {"ame", XO(31,234,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6199 {"addme.", XO(31,234,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6200 {"ame.", XO(31,234,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
6201
6202 {"mullw", XO(31,235,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6203 {"muls", XO(31,235,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6204 {"mullw.", XO(31,235,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6205 {"muls.", XO(31,235,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6206
6207 {"icblce", X(31,238), X_MASK, PPCCHLK, E500MC|PPCA2, {CT, RA, RB}},
6208 {"msgclr", XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
6209 {"mtsrin", X(31,242), XRA_MASK, PPC, NON32, {RS, RB}},
6210 {"mtsri", X(31,242), XRA_MASK, POWER, NON32, {RS, RB}},
6211
6212 {"mtfprwz", X(31,243), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
6213 {"mtvrwz", X(31,243)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
6214 {"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
6215
6216 {"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
6217 {"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
6218 {"dcbtst", X(31,246), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
6219 {"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
6220
6221 {"stbux", X(31,247), X_MASK, COM, 0, {RS, RAS, RB}},
6222
6223 {"slliq", XRC(31,248,0), X_MASK, M601, 0, {RA, RS, SH}},
6224 {"slliq.", XRC(31,248,1), X_MASK, M601, 0, {RA, RS, SH}},
6225
6226 {"bpermd", X(31,252), X_MASK, POWER7|PPCA2, 0, {RA, RS, RB}},
6227
6228 {"dcbtstep", XRT(31,255,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
6229
6230 {"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RS, RA}},
6231 {"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, 0, {RS, RA}},
6232
6233 {"lvexbx", X(31,261), X_MASK, E6500, 0, {VD, RA0, RB}},
6234
6235 {"icbt", X(31,262), XRT_MASK, PPC403, 0, {RA, RB}},
6236
6237 {"lvepxl", X(31,263), X_MASK, E6500, 0, {VD, RA0, RB}},
6238
6239 {"ldfcmx", APU(31,263,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6240 {"doz", XO(31,264,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6241 {"doz.", XO(31,264,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
6242
6243 {"modud", X(31,265), X_MASK, POWER9, 0, {RT, RA, RB}},
6244
6245 {"add", XO(31,266,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6246 {"cax", XO(31,266,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6247 {"add.", XO(31,266,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6248 {"cax.", XO(31,266,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6249
6250 {"moduw", X(31,267), X_MASK, POWER9, 0, {RT, RA, RB}},
6251
6252 {"lxvx", X(31,268), XX1_MASK|1<<6, PPCVSX3, 0, {XT6, RA0, RB}},
6253 {"lxvl", X(31,269), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
6254
6255 {"ehpriv", X(31,270), 0xffffffff, E500MC|PPCA2, 0, {0}},
6256
6257 {"tlbiel", X(31,274), X_MASK|1<<20,POWER9, 0, {RB, RSO, RIC, PRS, X_R}},
6258 {"tlbiel", X(31,274), XRTLRA_MASK, POWER4, POWER9|PPC476, {RB, LOPT}},
6259
6260 {"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}},
6261
6262 {"lqarx", X(31,276), XEH_MASK|Q_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
6263
6264 {"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}},
6265 {"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}},
6266
6267 {"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
6268 {"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
6269 {"dcbt", X(31,278), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
6270 {"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
6271
6272 {"lhzx", X(31,279), X_MASK, COM, 0, {RT, RA0, RB}},
6273
6274 {"cdtbcd", X(31,282), XRB_MASK, POWER6, 0, {RA, RS}},
6275
6276 {"eqv", XRC(31,284,0), X_MASK, COM, 0, {RA, RS, RB}},
6277 {"eqv.", XRC(31,284,1), X_MASK, COM, 0, {RA, RS, RB}},
6278
6279 {"lhepx", X(31,287), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
6280
6281 {"mfdcrux", X(31,291), X_MASK, PPC464|PPC476, 0, {RS, RA}},
6282
6283 {"lvexhx", X(31,293), X_MASK, E6500, 0, {VD, RA0, RB}},
6284 {"lvepx", X(31,295), X_MASK, E6500, 0, {VD, RA0, RB}},
6285
6286 {"lxvll", X(31,301), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
6287
6288 {"mfbhrbe", X(31,302), X_MASK, POWER8, 0, {RT, BHRBE}},
6289
6290 {"tlbie", X(31,306), X_MASK|1<<20,POWER9, TITAN, {RB, RS, RIC, PRS, X_R}},
6291 {"tlbie", X(31,306), XRA_MASK, POWER7, POWER9|TITAN, {RB, RS}},
6292 {"tlbie", X(31,306), XRTLRA_MASK, PPC, E500|POWER7|TITAN, {RB, LOPT}},
6293 {"tlbi", X(31,306), XRT_MASK, POWER, 0, {RA0, RB}},
6294
6295 {"mfvsrld", X(31,307), XX1RB_MASK, PPCVSX3, 0, {RA, XS6}},
6296
6297 {"eciwx", X(31,310), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
6298
6299 {"lhzux", X(31,311), X_MASK, COM, 0, {RT, RAL, RB}},
6300
6301 {"cbcdtd", X(31,314), XRB_MASK, POWER6, 0, {RA, RS}},
6302
6303 {"xor", XRC(31,316,0), X_MASK, COM, 0, {RA, RS, RB}},
6304 {"xor.", XRC(31,316,1), X_MASK, COM, 0, {RA, RS, RB}},
6305
6306 {"dcbtep", XRT(31,319,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
6307
6308 {"mfexisr", XSPR(31,323, 64), XSPR_MASK, PPC403, 0, {RT}},
6309 {"mfexier", XSPR(31,323, 66), XSPR_MASK, PPC403, 0, {RT}},
6310 {"mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, 0, {RT}},
6311 {"mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, 0, {RT}},
6312 {"mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, 0, {RT}},
6313 {"mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, 0, {RT}},
6314 {"mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, 0, {RT}},
6315 {"mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, 0, {RT}},
6316 {"mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, 0, {RT}},
6317 {"mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, 0, {RT}},
6318 {"mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, 0, {RT}},
6319 {"mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, 0, {RT}},
6320 {"mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, 0, {RT}},
6321 {"mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, 0, {RT}},
6322 {"mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, 0, {RT}},
6323 {"mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, 0, {RT}},
6324 {"mfdmasa0", XSPR(31,323,195), XSPR_MASK, PPC403, 0, {RT}},
6325 {"mfdmacc0", XSPR(31,323,196), XSPR_MASK, PPC403, 0, {RT}},
6326 {"mfdmacr1", XSPR(31,323,200), XSPR_MASK, PPC403, 0, {RT}},
6327 {"mfdmact1", XSPR(31,323,201), XSPR_MASK, PPC403, 0, {RT}},
6328 {"mfdmada1", XSPR(31,323,202), XSPR_MASK, PPC403, 0, {RT}},
6329 {"mfdmasa1", XSPR(31,323,203), XSPR_MASK, PPC403, 0, {RT}},
6330 {"mfdmacc1", XSPR(31,323,204), XSPR_MASK, PPC403, 0, {RT}},
6331 {"mfdmacr2", XSPR(31,323,208), XSPR_MASK, PPC403, 0, {RT}},
6332 {"mfdmact2", XSPR(31,323,209), XSPR_MASK, PPC403, 0, {RT}},
6333 {"mfdmada2", XSPR(31,323,210), XSPR_MASK, PPC403, 0, {RT}},
6334 {"mfdmasa2", XSPR(31,323,211), XSPR_MASK, PPC403, 0, {RT}},
6335 {"mfdmacc2", XSPR(31,323,212), XSPR_MASK, PPC403, 0, {RT}},
6336 {"mfdmacr3", XSPR(31,323,216), XSPR_MASK, PPC403, 0, {RT}},
6337 {"mfdmact3", XSPR(31,323,217), XSPR_MASK, PPC403, 0, {RT}},
6338 {"mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, 0, {RT}},
6339 {"mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, 0, {RT}},
6340 {"mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, 0, {RT}},
6341 {"mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, 0, {RT}},
6342 {"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}},
6343 {"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, 0, {RT, SPR}},
6344
6345 {"lvexwx", X(31,325), X_MASK, E6500, 0, {VD, RA0, RB}},
6346
6347 {"dcread", X(31,326), X_MASK, PPC476|TITAN, 0, {RT, RA0, RB}},
6348
6349 {"div", XO(31,331,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6350 {"div.", XO(31,331,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
6351
6352 {"lxvdsx", X(31,332), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
6353
6354 {"lxvpx", X(31,333), XX1_MASK, POWER10, 0, {XTP, RA0, RB}},
6355
6356 {"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, 0, {RT, PMR}},
6357 {"mftmr", X(31,366), X_MASK, PPCTMR, 0, {RT, TMR}},
6358
6359 {"slbsync", X(31,338), 0xffffffff, POWER9, 0, {0}},
6360
6361 {"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, 0, {RT}},
6362 {"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, 0, {RT}},
6363 {"mfrtcu", XSPR(31,339, 4), XSPR_MASK, COM, TITAN, {RT}},
6364 {"mfrtcl", XSPR(31,339, 5), XSPR_MASK, COM, TITAN, {RT}},
6365 {"mfdec", XSPR(31,339, 6), XSPR_MASK, MFDEC1, 0, {RT}},
6366 {"mflr", XSPR(31,339, 8), XSPR_MASK, COM, 0, {RT}},
6367 {"mfctr", XSPR(31,339, 9), XSPR_MASK, COM, 0, {RT}},
6368 {"mfdscr", XSPR(31,339, 17), XSPR_MASK, POWER6, 0, {RT}},
6369 {"mftid", XSPR(31,339, 17), XSPR_MASK, POWER, 0, {RT}},
6370 {"mfdsisr", XSPR(31,339, 18), XSPR_MASK, COM, TITAN, {RT}},
6371 {"mfdar", XSPR(31,339, 19), XSPR_MASK, COM, TITAN, {RT}},
6372 {"mfdec", XSPR(31,339, 22), XSPR_MASK, MFDEC2, MFDEC1, {RT}},
6373 {"mfsdr0", XSPR(31,339, 24), XSPR_MASK, POWER, 0, {RT}},
6374 {"mfsdr1", XSPR(31,339, 25), XSPR_MASK, COM, TITAN, {RT}},
6375 {"mfsrr0", XSPR(31,339, 26), XSPR_MASK, COM, 0, {RT}},
6376 {"mfsrr1", XSPR(31,339, 27), XSPR_MASK, COM, 0, {RT}},
6377 {"mfcfar", XSPR(31,339, 28), XSPR_MASK, POWER6, 0, {RT}},
6378 {"mfpid", XSPR(31,339, 48), XSPR_MASK, BOOKE, 0, {RT}},
6379 {"mfcsrr0", XSPR(31,339, 58), XSPR_MASK, BOOKE, 0, {RT}},
6380 {"mfcsrr1", XSPR(31,339, 59), XSPR_MASK, BOOKE, 0, {RT}},
6381 {"mfdear", XSPR(31,339, 61), XSPR_MASK, BOOKE, 0, {RT}},
6382 {"mfesr", XSPR(31,339, 62), XSPR_MASK, BOOKE, 0, {RT}},
6383 {"mfivpr", XSPR(31,339, 63), XSPR_MASK, BOOKE, 0, {RT}},
6384 {"mfctrl", XSPR(31,339,136), XSPR_MASK, POWER4, 0, {RT}},
6385 {"mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, 0, {RT}},
6386 {"mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, 0, {RT}},
6387 {"mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, 0, {RT}},
6388 {"mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, 0, {RT}},
6389 {"mficr", XSPR(31,339,148), XSPR_MASK, PPC860, 0, {RT}},
6390 {"mfder", XSPR(31,339,149), XSPR_MASK, PPC860, 0, {RT}},
6391 {"mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, 0, {RT}},
6392 {"mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, 0, {RT}},
6393 {"mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, 0, {RT}},
6394 {"mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, 0, {RT}},
6395 {"mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, 0, {RT}},
6396 {"mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, 0, {RT}},
6397 {"mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, 0, {RT}},
6398 {"mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, 0, {RT}},
6399 {"mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, 0, {RT}},
6400 {"mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, 0, {RT}},
6401 {"mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, 0, {RT}},
6402 {"mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, 0, {RT}},
6403 {"mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, 0, {RT, SPRG}},
6404 {"mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6405 {"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6406 {"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6407 {"mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6408 {"mftbu", XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
6409 {"mftb", X(31,339), X_MASK, POWER4|BOOKE, 0, {RT, TBR}},
6410 {"mftbl", XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
6411 {"mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, 0, {RT}},
6412 {"mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, 0, {RT}},
6413 {"mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, 0, {RT}},
6414 {"mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, 0, {RT}},
6415 {"mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, 0, {RT}},
6416 {"mfear", XSPR(31,339,282), XSPR_MASK, PPC, TITAN, {RT}},
6417 {"mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, 0, {RT}},
6418 {"mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, 0, {RT}},
6419 {"mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, 0, {RT}},
6420 {"mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, 0, {RT}},
6421 {"mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, 0, {RT}},
6422 {"mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, 0, {RT}},
6423 {"mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, 0, {RT}},
6424 {"mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, 0, {RT}},
6425 {"mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, 0, {RT}},
6426 {"mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, 0, {RT}},
6427 {"mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, 0, {RT}},
6428 {"mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, 0, {RT}},
6429 {"mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, 0, {RT}},
6430 {"mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, 0, {RT}},
6431 {"mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, 0, {RT}},
6432 {"mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, 0, {RT}},
6433 {"mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, 0, {RT}},
6434 {"mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, 0, {RT}},
6435 {"mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, 0, {RT}},
6436 {"mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, 0, {RT}},
6437 {"mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, 0, {RT}},
6438 {"mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, 0, {RT}},
6439 {"mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, 0, {RT}},
6440 {"mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, 0, {RT}},
6441 {"mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, 0, {RT}},
6442 {"mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, 0, {RT}},
6443 {"mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, 0, {RT}},
6444 {"mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, 0, {RT}},
6445 {"mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, 0, {RT}},
6446 {"mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, 0, {RT}},
6447 {"mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, 0, {RT}},
6448 {"mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, 0, {RT}},
6449 {"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, 0, {RT}},
6450 {"mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, 0, {RT}},
6451 {"mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, 0, {RT}},
6452 {"mfivor32", XSPR(31,339,528), XSPR_MASK, PPCSPE|E6500, 0, {RT}},
6453 {"mfivor33", XSPR(31,339,529), XSPR_MASK, PPCSPE|E6500, 0, {RT}},
6454 {"mfivor34", XSPR(31,339,530), XSPR_MASK, PPCSPE, 0, {RT}},
6455 {"mfivor35", XSPR(31,339,531), XSPR_MASK, PPCPMR, 0, {RT}},
6456 {"mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6457 {"mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6458 {"mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6459 {"mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6460 {"mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, 0, {RT}},
6461 {"mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, 0, {RT}},
6462 {"mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, 0, {RT}},
6463 {"mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, 0, {RT}},
6464 {"mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, 0, {RT}},
6465 {"mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, 0, {RT}},
6466 {"mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, 0, {RT}},
6467 {"mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, 0, {RT}},
6468 {"mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, 0, {RT}},
6469 {"mfmcar", XSPR(31,339,573), XSPR_MASK, PPCRFMCI, TITAN, {RT}},
6470 {"mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, 0, {RT}},
6471 {"mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, 0, {RT}},
6472 {"mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, 0, {RT}},
6473 {"mfupmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}},
6474 {"mfpmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}},
6475 {"mfupmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}},
6476 {"mfpmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}},
6477 {"mfupmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}},
6478 {"mfpmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}},
6479 {"mfupmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}},
6480 {"mfpmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}},
6481 {"mfupmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}},
6482 {"mfpmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}},
6483 {"mfupmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}},
6484 {"mfpmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}},
6485 {"mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, 0, {RT}},
6486 {"mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, 0, {RT}},
6487 {"mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, 0, {RT}},
6488 {"mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, 0, {RT}},
6489 {"mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, 0, {RT}},
6490 {"mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, 0, {RT}},
6491 {"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, 0, {RT}},
6492 {"mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, 0, {RT}},
6493 {"mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, 0, {RT}},
6494 {"mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, 0, {RT}},
6495 {"mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, 0, {RT}},
6496 {"mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, 0, {RT}},
6497 {"mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, 0, {RT}},
6498 {"mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, 0, {RT}},
6499 {"mfmi_dbram0", XSPR(31,339,817), XSPR_MASK, PPC860, 0, {RT}},
6500 {"mfmi_dbram1", XSPR(31,339,818), XSPR_MASK, PPC860, 0, {RT}},
6501 {"mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, 0, {RT}},
6502 {"mfmd_dbram0", XSPR(31,339,825), XSPR_MASK, PPC860, 0, {RT}},
6503 {"mfmd_dbram1", XSPR(31,339,826), XSPR_MASK, PPC860, 0, {RT}},
6504 {"mfivndx", XSPR(31,339,880), XSPR_MASK, TITAN, 0, {RT}},
6505 {"mfdvndx", XSPR(31,339,881), XSPR_MASK, TITAN, 0, {RT}},
6506 {"mfivlim", XSPR(31,339,882), XSPR_MASK, TITAN, 0, {RT}},
6507 {"mfdvlim", XSPR(31,339,883), XSPR_MASK, TITAN, 0, {RT}},
6508 {"mfclcsr", XSPR(31,339,884), XSPR_MASK, TITAN, 0, {RT}},
6509 {"mfccr1", XSPR(31,339,888), XSPR_MASK, TITAN, 0, {RT}},
6510 {"mfppr", XSPR(31,339,896), XSPR_MASK, POWER7, 0, {RT}},
6511 {"mfppr32", XSPR(31,339,898), XSPR_MASK, POWER7, 0, {RT}},
6512 {"mfgqr", XSPR(31,339,912), XSPRGQR_MASK, PPCPS, 0, {RT, SPRGQR}},
6513 {"mfhid2", XSPR(31,339,920), XSPR_MASK, GEKKO, 0, {RT}},
6514 {"mfwpar", XSPR(31,339,921), XSPR_MASK, GEKKO, 0, {RT}},
6515 {"mfdmau", XSPR(31,339,922), XSPR_MASK, GEKKO, 0, {RT}},
6516 {"mfdmal", XSPR(31,339,923), XSPR_MASK, GEKKO, 0, {RT}},
6517 {"mfrstcfg", XSPR(31,339,923), XSPR_MASK, TITAN, 0, {RT}},
6518 {"mfdcdbtrl", XSPR(31,339,924), XSPR_MASK, TITAN, 0, {RT}},
6519 {"mfdcdbtrh", XSPR(31,339,925), XSPR_MASK, TITAN, 0, {RT}},
6520 {"mficdbtr", XSPR(31,339,927), XSPR_MASK, TITAN, 0, {RT}},
6521 {"mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, 0, {RT}},
6522 {"mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, 0, {RT}},
6523 {"mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, 0, {RT}},
6524 {"mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, 0, {RT}},
6525 {"mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, 0, {RT}},
6526 {"mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, 0, {RT}},
6527 {"mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, 0, {RT}},
6528 {"mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, 0, {RT}},
6529 {"mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, 0, {RT}},
6530 {"mfmmucr", XSPR(31,339,946), XSPR_MASK, TITAN, 0, {RT}},
6531 {"mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, 0, {RT}},
6532 {"mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, 0, {RT}},
6533 {"mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, 0, {RT}},
6534 {"mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, 0, {RT}},
6535 {"mfdvc2", XSPR(31,339,951), XSPR_MASK, PPC405, 0, {RT}},
6536 {"mfmmcr0", XSPR(31,339,952), XSPR_MASK, PPC750, 0, {RT}},
6537 {"mfpmc1", XSPR(31,339,953), XSPR_MASK, PPC750, 0, {RT}},
6538 {"mfsgr", XSPR(31,339,953), XSPR_MASK, PPC403, 0, {RT}},
6539 {"mfdcwr", XSPR(31,339,954), XSPR_MASK, PPC403, 0, {RT}},
6540 {"mfpmc2", XSPR(31,339,954), XSPR_MASK, PPC750, 0, {RT}},
6541 {"mfsia", XSPR(31,339,955), XSPR_MASK, PPC750, 0, {RT}},
6542 {"mfsler", XSPR(31,339,955), XSPR_MASK, PPC405, 0, {RT}},
6543 {"mfmmcr1", XSPR(31,339,956), XSPR_MASK, PPC750, 0, {RT}},
6544 {"mfsu0r", XSPR(31,339,956), XSPR_MASK, PPC405, 0, {RT}},
6545 {"mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, 0, {RT}},
6546 {"mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, 0, {RT}},
6547 {"mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, 0, {RT}},
6548 {"mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, 0, {RT}},
6549 {"mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, 0, {RT}},
6550 {"mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, 0, {RT}},
6551 {"mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, 0, {RT}},
6552 {"mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, 0, {RT}},
6553 {"mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, 0, {RT}},
6554 {"mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, 0, {RT}},
6555 {"mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, 0, {RT}},
6556 {"mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, 0, {RT}},
6557 {"mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, 0, {RT}},
6558 {"mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, 0, {RT}},
6559 {"mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, 0, {RT}},
6560 {"mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, 0, {RT}},
6561 {"mfhid0", XSPR(31,339,1008), XSPR_MASK, GEKKO, 0, {RT}},
6562 {"mfhid1", XSPR(31,339,1009), XSPR_MASK, GEKKO, 0, {RT}},
6563 {"mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, 0, {RT}},
6564 {"mfiabr", XSPR(31,339,1010), XSPR_MASK, GEKKO, 0, {RT}},
6565 {"mfhid4", XSPR(31,339,1011), XSPR_MASK, BROADWAY, 0, {RT}},
6566 {"mfdbdr", XSPR(31,339,1011), XSPR_MASK, TITAN, 0, {RS}},
6567 {"mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, 0, {RT}},
6568 {"mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, 0, {RT}},
6569 {"mfdabr", XSPR(31,339,1013), XSPR_MASK, PPC750, 0, {RT}},
6570 {"mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, 0, {RT}},
6571 {"mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, 0, {RT}},
6572 {"mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, 0, {RT}},
6573 {"mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, 0, {RT}},
6574 {"mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, 0, {RT}},
6575 {"mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, 0, {RT}},
6576 {"mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, 0, {RT}},
6577 {"mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, 0, {RT}},
6578 {"mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, 0, {RT}},
6579 {"mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, 0, {RT}},
6580 {"mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, 0, {RT}},
6581 {"mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, 0, {RT}},
6582 {"mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, 0, {RT}},
6583 {"mfspr", X(31,339), X_MASK, COM, 0, {RT, SPR}},
6584
6585 {"lwax", X(31,341), X_MASK, PPC64, 0, {RT, RA0, RB}},
6586
6587 {"dst", XDSS(31,342,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
6588
6589 {"lhax", X(31,343), X_MASK, COM, 0, {RT, RA0, RB}},
6590
6591 {"lvxl", X(31,359), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
6592
6593 {"abs", XO(31,360,0,0), XORB_MASK, M601, 0, {RT, RA}},
6594 {"abs.", XO(31,360,0,1), XORB_MASK, M601, 0, {RT, RA}},
6595
6596 {"divs", XO(31,363,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6597 {"divs.", XO(31,363,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
6598
6599 {"lxvwsx", X(31,364), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
6600
6601 {"tlbia", X(31,370), 0xffffffff, PPC, E500|TITAN, {0}},
6602
6603 {"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371|POWER4, {RT}},
6604 {"mftb", X(31,371), X_MASK, PPC, NO371|POWER4, {RT, TBR}},
6605 {"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371|POWER4, {RT}},
6606
6607 {"lwaux", X(31,373), X_MASK, PPC64, 0, {RT, RAL, RB}},
6608
6609 {"dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
6610
6611 {"lhaux", X(31,375), X_MASK, COM, 0, {RT, RAL, RB}},
6612
6613 {"popcntw", X(31,378), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
6614
6615 {"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RA, RS}},
6616 {"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, 0, {RA, RS}},
6617
6618 {"stvexbx", X(31,389), X_MASK, E6500, 0, {VS, RA0, RB}},
6619
6620 {"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
6621 {"stdfcmx", APU(31,391,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6622
6623 {"divdeu", XO(31,393,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6624 {"divdeu.", XO(31,393,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6625 {"divweu", XO(31,395,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6626 {"divweu.", XO(31,395,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6627
6628 {"stxvx", X(31,396), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
6629 {"stxvl", X(31,397), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
6630
6631 {"dcblce", X(31,398), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
6632
6633 {"slbmte", X(31,402), XRA_MASK, PPC64, 0, {RS, RB}},
6634
6635 {"mtvsrws", X(31,403), XX1RB_MASK, PPCVSX3, 0, {XT6, RA}},
6636
6637 {"pbt.", XRC(31,404,1), X_MASK, POWER8, 0, {RS, RA0, RB}},
6638
6639 {"icswx", XRC(31,406,0), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
6640 {"icswx.", XRC(31,406,1), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
6641
6642 {"sthx", X(31,407), X_MASK, COM, 0, {RS, RA0, RB}},
6643
6644 {"orc", XRC(31,412,0), X_MASK, COM, 0, {RA, RS, RB}},
6645 {"orc.", XRC(31,412,1), X_MASK, COM, 0, {RA, RS, RB}},
6646
6647 {"sthepx", X(31,415), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
6648
6649 {"mtdcrux", X(31,419), X_MASK, PPC464|PPC476, 0, {RA, RS}},
6650
6651 {"stvexhx", X(31,421), X_MASK, E6500, 0, {VS, RA0, RB}},
6652
6653 {"dcblq.", XRC(31,422,1), X_MASK, E6500, 0, {CT, RA0, RB}},
6654
6655 {"divde", XO(31,425,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6656 {"divde.", XO(31,425,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6657 {"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6658 {"divwe.", XO(31,427,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
6659
6660 {"stxvll", X(31,429), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
6661
6662 {"clrbhrb", X(31,430), 0xffffffff, POWER8, 0, {0}},
6663
6664 {"slbie", X(31,434), XRTRA_MASK, PPC64, 0, {RB}},
6665
6666 {"mtvsrdd", X(31,435), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
6667
6668 {"ecowx", X(31,438), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
6669
6670 {"sthux", X(31,439), X_MASK, COM, 0, {RS, RAS, RB}},
6671
6672 {"mdors", 0x7f9ce378, 0xffffffff, E500MC, 0, {0}},
6673
6674 {"miso", 0x7f5ad378, 0xffffffff, E6500, 0, {0}},
6675
6676 /* The "yield", "mdoio" and "mdoom" instructions are extended mnemonics for
6677 "or rX,rX,rX", with rX being r27, r29 and r30 respectively. */
6678 {"yield", 0x7f7bdb78, 0xffffffff, POWER7, 0, {0}},
6679 {"mdoio", 0x7fbdeb78, 0xffffffff, POWER7, 0, {0}},
6680 {"mdoom", 0x7fdef378, 0xffffffff, POWER7, 0, {0}},
6681 {"mr", XRC(31,444,0), X_MASK, COM, 0, {RA, RSB}},
6682 {"or", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RB}},
6683 {"mr.", XRC(31,444,1), X_MASK, COM, 0, {RA, RSB}},
6684 {"or.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RB}},
6685
6686 {"mtexisr", XSPR(31,451, 64), XSPR_MASK, PPC403, 0, {RS}},
6687 {"mtexier", XSPR(31,451, 66), XSPR_MASK, PPC403, 0, {RS}},
6688 {"mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, 0, {RS}},
6689 {"mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, 0, {RS}},
6690 {"mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, 0, {RS}},
6691 {"mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, 0, {RS}},
6692 {"mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, 0, {RS}},
6693 {"mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, 0, {RS}},
6694 {"mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, 0, {RS}},
6695 {"mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, 0, {RS}},
6696 {"mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, 0, {RS}},
6697 {"mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, 0, {RS}},
6698 {"mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, 0, {RS}},
6699 {"mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, 0, {RS}},
6700 {"mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, 0, {RS}},
6701 {"mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, 0, {RS}},
6702 {"mtdmasa0", XSPR(31,451,195), XSPR_MASK, PPC403, 0, {RS}},
6703 {"mtdmacc0", XSPR(31,451,196), XSPR_MASK, PPC403, 0, {RS}},
6704 {"mtdmacr1", XSPR(31,451,200), XSPR_MASK, PPC403, 0, {RS}},
6705 {"mtdmact1", XSPR(31,451,201), XSPR_MASK, PPC403, 0, {RS}},
6706 {"mtdmada1", XSPR(31,451,202), XSPR_MASK, PPC403, 0, {RS}},
6707 {"mtdmasa1", XSPR(31,451,203), XSPR_MASK, PPC403, 0, {RS}},
6708 {"mtdmacc1", XSPR(31,451,204), XSPR_MASK, PPC403, 0, {RS}},
6709 {"mtdmacr2", XSPR(31,451,208), XSPR_MASK, PPC403, 0, {RS}},
6710 {"mtdmact2", XSPR(31,451,209), XSPR_MASK, PPC403, 0, {RS}},
6711 {"mtdmada2", XSPR(31,451,210), XSPR_MASK, PPC403, 0, {RS}},
6712 {"mtdmasa2", XSPR(31,451,211), XSPR_MASK, PPC403, 0, {RS}},
6713 {"mtdmacc2", XSPR(31,451,212), XSPR_MASK, PPC403, 0, {RS}},
6714 {"mtdmacr3", XSPR(31,451,216), XSPR_MASK, PPC403, 0, {RS}},
6715 {"mtdmact3", XSPR(31,451,217), XSPR_MASK, PPC403, 0, {RS}},
6716 {"mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, 0, {RS}},
6717 {"mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, 0, {RS}},
6718 {"mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, 0, {RS}},
6719 {"mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, 0, {RS}},
6720 {"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}},
6721 {"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, 0, {SPR, RS}},
6722
6723 {"stvexwx", X(31,453), X_MASK, E6500, 0, {VS, RA0, RB}},
6724
6725 {"dccci", X(31,454), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
6726 {"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
6727
6728 {"divdu", XO(31,457,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6729 {"divdu.", XO(31,457,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
6730
6731 {"divwu", XO(31,459,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6732 {"divwu.", XO(31,459,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6733
6734 {"stxvpx", X(31,461), XX1_MASK, POWER10, 0, {XTP, RA0, RB}},
6735
6736 {"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, 0, {PMR, RS}},
6737 {"mttmr", X(31,494), X_MASK, PPCTMR, 0, {TMR, RS}},
6738
6739 {"slbieg", X(31,466), XRA_MASK, POWER9, 0, {RS, RB}},
6740
6741 {"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, 0, {RS}},
6742 {"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, 0, {RS}},
6743 {"mtlr", XSPR(31,467, 8), XSPR_MASK, COM, 0, {RS}},
6744 {"mtctr", XSPR(31,467, 9), XSPR_MASK, COM, 0, {RS}},
6745 {"mtdscr", XSPR(31,467, 17), XSPR_MASK, POWER6, 0, {RS}},
6746 {"mttid", XSPR(31,467, 17), XSPR_MASK, POWER, 0, {RS}},
6747 {"mtdsisr", XSPR(31,467, 18), XSPR_MASK, COM, TITAN, {RS}},
6748 {"mtdar", XSPR(31,467, 19), XSPR_MASK, COM, TITAN, {RS}},
6749 {"mtrtcu", XSPR(31,467, 20), XSPR_MASK, COM, TITAN, {RS}},
6750 {"mtrtcl", XSPR(31,467, 21), XSPR_MASK, COM, TITAN, {RS}},
6751 {"mtdec", XSPR(31,467, 22), XSPR_MASK, COM, 0, {RS}},
6752 {"mtsdr0", XSPR(31,467, 24), XSPR_MASK, POWER, 0, {RS}},
6753 {"mtsdr1", XSPR(31,467, 25), XSPR_MASK, COM, TITAN, {RS}},
6754 {"mtsrr0", XSPR(31,467, 26), XSPR_MASK, COM, 0, {RS}},
6755 {"mtsrr1", XSPR(31,467, 27), XSPR_MASK, COM, 0, {RS}},
6756 {"mtcfar", XSPR(31,467, 28), XSPR_MASK, POWER6, 0, {RS}},
6757 {"mtpid", XSPR(31,467, 48), XSPR_MASK, BOOKE, 0, {RS}},
6758 {"mtdecar", XSPR(31,467, 54), XSPR_MASK, BOOKE, 0, {RS}},
6759 {"mtcsrr0", XSPR(31,467, 58), XSPR_MASK, BOOKE, 0, {RS}},
6760 {"mtcsrr1", XSPR(31,467, 59), XSPR_MASK, BOOKE, 0, {RS}},
6761 {"mtdear", XSPR(31,467, 61), XSPR_MASK, BOOKE, 0, {RS}},
6762 {"mtesr", XSPR(31,467, 62), XSPR_MASK, BOOKE, 0, {RS}},
6763 {"mtivpr", XSPR(31,467, 63), XSPR_MASK, BOOKE, 0, {RS}},
6764 {"mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, 0, {RS}},
6765 {"mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, 0, {RS}},
6766 {"mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, 0, {RS}},
6767 {"mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, 0, {RS}},
6768 {"mticr", XSPR(31,467,148), XSPR_MASK, PPC860, 0, {RS}},
6769 {"mtder", XSPR(31,467,149), XSPR_MASK, PPC860, 0, {RS}},
6770 {"mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, 0, {RS}},
6771 {"mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, 0, {RS}},
6772 {"mtctrl", XSPR(31,467,152), XSPR_MASK, POWER4, 0, {RS}},
6773 {"mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, 0, {RS}},
6774 {"mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, 0, {RS}},
6775 {"mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, 0, {RS}},
6776 {"mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, 0, {RS}},
6777 {"mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, 0, {RS}},
6778 {"mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, 0, {RS}},
6779 {"mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, 0, {RS}},
6780 {"mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, 0, {RS}},
6781 {"mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, 0, {RS}},
6782 {"mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, 0, {RS}},
6783 {"mtsprg", XSPR(31,467,256), XSPRG_MASK, PPC, 0, {SPRG, RS}},
6784 {"mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, 0, {RS}},
6785 {"mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, 0, {RS}},
6786 {"mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, 0, {RS}},
6787 {"mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, 0, {RS}},
6788 {"mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6789 {"mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6790 {"mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6791 {"mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
6792 {"mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, 0, {RS}},
6793 {"mtear", XSPR(31,467,282), XSPR_MASK, PPC, TITAN, {RS}},
6794 {"mttbl", XSPR(31,467,284), XSPR_MASK, PPC, 0, {RS}},
6795 {"mttbu", XSPR(31,467,285), XSPR_MASK, PPC, 0, {RS}},
6796 {"mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, 0, {RS}},
6797 {"mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, 0, {RS}},
6798 {"mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, 0, {RS}},
6799 {"mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, 0, {RS}},
6800 {"mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, 0, {RS}},
6801 {"mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, 0, {RS}},
6802 {"mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, 0, {RS}},
6803 {"mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, 0, {RS}},
6804 {"mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, 0, {RS}},
6805 {"mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, 0, {RS}},
6806 {"mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, 0, {RS}},
6807 {"mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, 0, {RS}},
6808 {"mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, 0, {RS}},
6809 {"mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, 0, {RS}},
6810 {"mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, 0, {RS}},
6811 {"mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, 0, {RS}},
6812 {"mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, 0, {RS}},
6813 {"mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, 0, {RS}},
6814 {"mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, 0, {RS}},
6815 {"mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, 0, {RS}},
6816 {"mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, 0, {RS}},
6817 {"mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, 0, {RS}},
6818 {"mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, 0, {RS}},
6819 {"mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, 0, {RS}},
6820 {"mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, 0, {RS}},
6821 {"mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, 0, {RS}},
6822 {"mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, 0, {RS}},
6823 {"mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, 0, {RS}},
6824 {"mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, 0, {RS}},
6825 {"mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, 0, {RS}},
6826 {"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, 0, {RS}},
6827 {"mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, 0, {RS}},
6828 {"mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, 0, {RS}},
6829 {"mtivor32", XSPR(31,467,528), XSPR_MASK, PPCSPE|E6500, 0, {RS}},
6830 {"mtivor33", XSPR(31,467,529), XSPR_MASK, PPCSPE|E6500, 0, {RS}},
6831 {"mtivor34", XSPR(31,467,530), XSPR_MASK, PPCSPE, 0, {RS}},
6832 {"mtivor35", XSPR(31,467,531), XSPR_MASK, PPCPMR, 0, {RS}},
6833 {"mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6834 {"mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6835 {"mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6836 {"mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
6837 {"mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, 0, {RS}},
6838 {"mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, 0, {RS}},
6839 {"mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, 0, {RS}},
6840 {"mtupmc1", XSPR(31,467,771), XSPR_MASK, POWER9, 0, {RS}},
6841 {"mtupmc2", XSPR(31,467,772), XSPR_MASK, POWER9, 0, {RS}},
6842 {"mtupmc3", XSPR(31,467,773), XSPR_MASK, POWER9, 0, {RS}},
6843 {"mtupmc4", XSPR(31,467,774), XSPR_MASK, POWER9, 0, {RS}},
6844 {"mtupmc5", XSPR(31,467,775), XSPR_MASK, POWER9, 0, {RS}},
6845 {"mtupmc6", XSPR(31,467,776), XSPR_MASK, POWER9, 0, {RS}},
6846 {"mtivndx", XSPR(31,467,880), XSPR_MASK, TITAN, 0, {RS}},
6847 {"mtdvndx", XSPR(31,467,881), XSPR_MASK, TITAN, 0, {RS}},
6848 {"mtivlim", XSPR(31,467,882), XSPR_MASK, TITAN, 0, {RS}},
6849 {"mtdvlim", XSPR(31,467,883), XSPR_MASK, TITAN, 0, {RS}},
6850 {"mtclcsr", XSPR(31,467,884), XSPR_MASK, TITAN, 0, {RS}},
6851 {"mtccr1", XSPR(31,467,888), XSPR_MASK, TITAN, 0, {RS}},
6852 {"mtppr", XSPR(31,467,896), XSPR_MASK, POWER7, 0, {RS}},
6853 {"mtppr32", XSPR(31,467,898), XSPR_MASK, POWER7, 0, {RS}},
6854 {"mtgqr", XSPR(31,467,912), XSPRGQR_MASK, PPCPS, 0, {SPRGQR, RS}},
6855 {"mthid2", XSPR(31,467,920), XSPR_MASK, GEKKO, 0, {RS}},
6856 {"mtwpar", XSPR(31,467,921), XSPR_MASK, GEKKO, 0, {RS}},
6857 {"mtdmau", XSPR(31,467,922), XSPR_MASK, GEKKO, 0, {RS}},
6858 {"mtdmal", XSPR(31,467,923), XSPR_MASK, GEKKO, 0, {RS}},
6859 {"mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, 0, {RS}},
6860 {"mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, 0, {RS}},
6861 {"mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, 0, {RS}},
6862 {"mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, 0, {RS}},
6863 {"mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, 0, {RS}},
6864 {"mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, 0, {RS}},
6865 {"mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, 0, {RS}},
6866 {"mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, 0, {RS}},
6867 {"mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, 0, {RS}},
6868 {"mtrmmucr", XSPR(31,467,946), XSPR_MASK, TITAN, 0, {RS}},
6869 {"mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, 0, {RS}},
6870 {"mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, 0, {RS}},
6871 {"mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, 0, {RS}},
6872 {"mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, 0, {RS}},
6873 {"mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, 0, {RS}},
6874 {"mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, 0, {RS}},
6875 {"mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, 0, {RS}},
6876 {"mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, 0, {RS}},
6877 {"mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, 0, {RS}},
6878 {"mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, 0, {RS}},
6879 {"mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, 0, {RS}},
6880 {"mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, 0, {RS}},
6881 {"mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, 0, {RS}},
6882 {"mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, 0, {RS}},
6883 {"mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, 0, {RS}},
6884 {"mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, 0, {RS}},
6885 {"mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, 0, {RS}},
6886 {"mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, 0, {RS}},
6887 {"mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, 0, {RS}},
6888 {"mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, 0, {RS}},
6889 {"mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, 0, {RS}},
6890 {"mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, 0, {RS}},
6891 {"mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, 0, {RS}},
6892 {"mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, 0, {RS}},
6893 {"mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, 0, {RS}},
6894 {"mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, 0, {RS}},
6895 {"mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, 0, {RS}},
6896 {"mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, 0, {RS}},
6897 {"mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, 0, {RS}},
6898 {"mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, 0, {RS}},
6899 {"mthid0", XSPR(31,467,1008), XSPR_MASK, GEKKO, 0, {RS}},
6900 {"mthid1", XSPR(31,467,1009), XSPR_MASK, GEKKO, 0, {RS}},
6901 {"mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, 0, {RS}},
6902 {"mtiabr", XSPR(31,467,1010), XSPR_MASK, GEKKO, 0, {RS}},
6903 {"mthid4", XSPR(31,467,1011), XSPR_MASK, BROADWAY, 0, {RS}},
6904 {"mtdbdr", XSPR(31,467,1011), XSPR_MASK, TITAN, 0, {RS}},
6905 {"mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, 0, {RS}},
6906 {"mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, 0, {RS}},
6907 {"mtdabr", XSPR(31,467,1013), XSPR_MASK, PPC750, 0, {RS}},
6908 {"mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, 0, {RS}},
6909 {"mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, 0, {RS}},
6910 {"mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, 0, {RS}},
6911 {"mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, 0, {RS}},
6912 {"mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, 0, {RS}},
6913 {"mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, 0, {RS}},
6914 {"mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, 0, {RS}},
6915 {"mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, 0, {RS}},
6916 {"mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, 0, {RS}},
6917 {"mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, 0, {RS}},
6918 {"mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, 0, {RS}},
6919 {"mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, 0, {RS}},
6920 {"mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, 0, {RS}},
6921 {"mtspr", X(31,467), X_MASK, COM, 0, {SPR, RS}},
6922
6923 {"dcbi", X(31,470), XRT_MASK, PPC, 0, {RA0, RB}},
6924
6925 {"nand", XRC(31,476,0), X_MASK, COM, 0, {RA, RS, RB}},
6926 {"nand.", XRC(31,476,1), X_MASK, COM, 0, {RA, RS, RB}},
6927
6928 {"dsn", X(31,483), XRT_MASK, E500MC, 0, {RA, RB}},
6929
6930 {"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2, {RT, RA0, RB}},
6931
6932 {"icbtls", X(31,486), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
6933
6934 {"stvxl", X(31,487), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6935
6936 {"nabs", XO(31,488,0,0), XORB_MASK, M601, 0, {RT, RA}},
6937 {"nabs.", XO(31,488,0,1), XORB_MASK, M601, 0, {RT, RA}},
6938
6939 {"divd", XO(31,489,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6940 {"divd.", XO(31,489,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
6941
6942 {"divw", XO(31,491,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6943 {"divw.", XO(31,491,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6944
6945 {"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
6946
6947 {"slbia", X(31,498), 0xff1fffff, POWER6, 0, {IH}},
6948 {"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}},
6949
6950 {"cli", X(31,502), XRB_MASK, POWER, 0, {RT, RA}},
6951
6952 {"popcntd", X(31,506), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
6953
6954 {"cmpb", X(31,508), X_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS, RB}},
6955
6956 {"mcrxr", X(31,512), XBFRARB_MASK, COM, POWER7, {BF}},
6957
6958 {"lbdcbx", X(31,514), X_MASK, E200Z4, 0, {RT, RA, RB}},
6959 {"lbdx", X(31,515), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
6960
6961 {"bblels", X(31,518), X_MASK, PPCBRLK, 0, {0}},
6962
6963 {"lvlx", X(31,519), X_MASK, CELL, 0, {VD, RA0, RB}},
6964 {"lbfcmux", APU(31,519,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6965
6966 {"subfco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6967 {"sfo", XO(31,8,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6968 {"subco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
6969 {"subfco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6970 {"sfo.", XO(31,8,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6971 {"subco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
6972
6973 {"addco", XO(31,10,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6974 {"ao", XO(31,10,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6975 {"addco.", XO(31,10,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6976 {"ao.", XO(31,10,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6977
6978 {"lxsspx", X(31,524), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
6979
6980 {"clcs", X(31,531), XRB_MASK, M601, 0, {RT, RA}},
6981
6982 {"ldbrx", X(31,532), X_MASK, CELL|POWER7|PPCA2, 0, {RT, RA0, RB}},
6983
6984 {"lswx", X(31,533), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, RBX}},
6985 {"lsx", X(31,533), X_MASK, PWRCOM, 0, {RT, RA, RB}},
6986
6987 {"lwbrx", X(31,534), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
6988 {"lbrx", X(31,534), X_MASK, PWRCOM, 0, {RT, RA, RB}},
6989
6990 {"lfsx", X(31,535), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
6991
6992 {"srw", XRC(31,536,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6993 {"sr", XRC(31,536,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
6994 {"srw.", XRC(31,536,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6995 {"sr.", XRC(31,536,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
6996
6997 {"rrib", XRC(31,537,0), X_MASK, M601, 0, {RA, RS, RB}},
6998 {"rrib.", XRC(31,537,1), X_MASK, M601, 0, {RA, RS, RB}},
6999
7000 {"cnttzw", XRC(31,538,0), XRB_MASK, POWER9, 0, {RA, RS}},
7001 {"cnttzw.", XRC(31,538,1), XRB_MASK, POWER9, 0, {RA, RS}},
7002
7003 {"srd", XRC(31,539,0), X_MASK, PPC64, 0, {RA, RS, RB}},
7004 {"srd.", XRC(31,539,1), X_MASK, PPC64, 0, {RA, RS, RB}},
7005
7006 {"maskir", XRC(31,541,0), X_MASK, M601, 0, {RA, RS, RB}},
7007 {"maskir.", XRC(31,541,1), X_MASK, M601, 0, {RA, RS, RB}},
7008
7009 {"lhdcbx", X(31,546), X_MASK, E200Z4, 0, {RT, RA, RB}},
7010 {"lhdx", X(31,547), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
7011
7012 {"lvtrx", X(31,549), X_MASK, E6500, 0, {VD, RA0, RB}},
7013
7014 {"bbelr", X(31,550), X_MASK, PPCBRLK, 0, {0}},
7015
7016 {"lvrx", X(31,551), X_MASK, CELL, 0, {VD, RA0, RB}},
7017 {"lhfcmux", APU(31,551,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7018
7019 {"subfo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7020 {"subo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RB, RA}},
7021 {"subfo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
7022 {"subo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RB, RA}},
7023
7024 {"tlbsync", X(31,566), 0xffffffff, PPC, 0, {0}},
7025
7026 {"lfsux", X(31,567), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
7027
7028 {"cnttzd", XRC(31,570,0), XRB_MASK, POWER9, 0, {RA, RS}},
7029 {"cnttzd.", XRC(31,570,1), XRB_MASK, POWER9, 0, {RA, RS}},
7030
7031 {"mcrxrx", X(31,576), XBFRARB_MASK, POWER9, 0, {BF}},
7032
7033 {"lwdcbx", X(31,578), X_MASK, E200Z4, 0, {RT, RA, RB}},
7034 {"lwdx", X(31,579), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
7035
7036 {"lvtlx", X(31,581), X_MASK, E6500, 0, {VD, RA0, RB}},
7037
7038 {"lwat", X(31,582), X_MASK, POWER9, 0, {RT, RA0, FC}},
7039
7040 {"lwfcmux", APU(31,583,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7041
7042 {"lxsdx", X(31,588), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
7043
7044 {"mfsr", X(31,595), XRB_MASK|(1<<20), COM, NON32, {RT, SR}},
7045
7046 {"lswi", X(31,597), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, NBI}},
7047 {"lsi", X(31,597), X_MASK, PWRCOM, 0, {RT, RA0, NB}},
7048
7049 {"hwsync", XSYNC(31,598,0), 0xffffffff, POWER4, BOOKE|PPC476, {0}},
7050 {"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, E500, {0}},
7051 {"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, 0, {0}},
7052 {"sync", X(31,598), XSYNCLE_MASK, E6500, 0, {LS, ESYNC}},
7053 {"sync", X(31,598), XSYNC_MASK, PPCCOM, BOOKE|PPC476, {LS}},
7054 {"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, 0, {0}},
7055 {"sync", X(31,598), 0xffffffff, BOOKE|PPC476, E6500, {0}},
7056 {"lwsync", X(31,598), 0xffffffff, E500, 0, {0}},
7057 {"dcs", X(31,598), 0xffffffff, PWRCOM, 0, {0}},
7058
7059 {"lfdx", X(31,599), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
7060
7061 {"mffgpr", XRC(31,607,0), XRA_MASK, POWER6, POWER7, {FRT, RB}},
7062 {"lfdepx", X(31,607), X_MASK, E500MC|PPCA2, 0, {FRT, RA0, RB}},
7063
7064 {"lddx", X(31,611), X_MASK, E500MC, 0, {RT, RA, RB}},
7065
7066 {"lvswx", X(31,613), X_MASK, E6500, 0, {VD, RA0, RB}},
7067
7068 {"ldat", X(31,614), X_MASK, POWER9, 0, {RT, RA0, FC}},
7069
7070 {"lqfcmux", APU(31,615,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7071
7072 {"nego", XO(31,104,1,0), XORB_MASK, COM, 0, {RT, RA}},
7073 {"nego.", XO(31,104,1,1), XORB_MASK, COM, 0, {RT, RA}},
7074
7075 {"mulo", XO(31,107,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7076 {"mulo.", XO(31,107,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
7077
7078 {"mfsri", X(31,627), X_MASK, M601, 0, {RT, RA, RB}},
7079
7080 {"dclst", X(31,630), XRB_MASK, M601, 0, {RS, RA}},
7081
7082 {"lfdux", X(31,631), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
7083
7084 {"stbdcbx", X(31,642), X_MASK, E200Z4, 0, {RS, RA, RB}},
7085 {"stbdx", X(31,643), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
7086
7087 {"stvlx", X(31,647), X_MASK, CELL, 0, {VS, RA0, RB}},
7088 {"stbfcmux", APU(31,647,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7089
7090 {"stxsspx", X(31,652), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
7091
7092 {"tbegin.", XRC(31,654,1), XRTLRARB_MASK, PPCHTM, 0, {HTM_R}},
7093
7094 {"subfeo", XO(31,136,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7095 {"sfeo", XO(31,136,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7096 {"subfeo.", XO(31,136,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7097 {"sfeo.", XO(31,136,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7098
7099 {"addeo", XO(31,138,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7100 {"aeo", XO(31,138,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7101 {"addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7102 {"aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7103
7104 {"mfsrin", X(31,659), XRA_MASK, PPC, NON32, {RT, RB}},
7105
7106 {"stdbrx", X(31,660), X_MASK, CELL|POWER7|PPCA2, 0, {RS, RA0, RB}},
7107
7108 {"stswx", X(31,661), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, RB}},
7109 {"stsx", X(31,661), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
7110
7111 {"stwbrx", X(31,662), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
7112 {"stbrx", X(31,662), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
7113
7114 {"stfsx", X(31,663), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
7115
7116 {"srq", XRC(31,664,0), X_MASK, M601, 0, {RA, RS, RB}},
7117 {"srq.", XRC(31,664,1), X_MASK, M601, 0, {RA, RS, RB}},
7118
7119 {"sre", XRC(31,665,0), X_MASK, M601, 0, {RA, RS, RB}},
7120 {"sre.", XRC(31,665,1), X_MASK, M601, 0, {RA, RS, RB}},
7121
7122 {"sthdcbx", X(31,674), X_MASK, E200Z4, 0, {RS, RA, RB}},
7123 {"sthdx", X(31,675), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
7124
7125 {"stvfrx", X(31,677), X_MASK, E6500, 0, {VS, RA0, RB}},
7126
7127 {"stvrx", X(31,679), X_MASK, CELL, 0, {VS, RA0, RB}},
7128 {"sthfcmux", APU(31,679,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7129
7130 {"tendall.", XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0, {0}},
7131 {"tend.", XRC(31,686,1), XRTARARB_MASK, PPCHTM, 0, {HTM_A}},
7132
7133 {"stbcx.", XRC(31,694,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
7134
7135 {"stfsux", X(31,695), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
7136
7137 {"sriq", XRC(31,696,0), X_MASK, M601, 0, {RA, RS, SH}},
7138 {"sriq.", XRC(31,696,1), X_MASK, M601, 0, {RA, RS, SH}},
7139
7140 {"stwdcbx", X(31,706), X_MASK, E200Z4, 0, {RS, RA, RB}},
7141 {"stwdx", X(31,707), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
7142
7143 {"stvflx", X(31,709), X_MASK, E6500, 0, {VS, RA0, RB}},
7144
7145 {"stwat", X(31,710), X_MASK, POWER9, 0, {RS, RA0, FC}},
7146
7147 {"stwfcmux", APU(31,711,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7148
7149 {"stxsdx", X(31,716), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
7150
7151 {"tcheck", X(31,718), XRTBFRARB_MASK, PPCHTM, 0, {BF}},
7152
7153 {"subfzeo", XO(31,200,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7154 {"sfzeo", XO(31,200,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7155 {"subfzeo.", XO(31,200,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7156 {"sfzeo.", XO(31,200,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
7157
7158 {"addzeo", XO(31,202,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7159 {"azeo", XO(31,202,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7160 {"addzeo.", XO(31,202,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7161 {"azeo.", XO(31,202,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
7162
7163 {"stswi", X(31,725), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, NB}},
7164 {"stsi", X(31,725), X_MASK, PWRCOM, 0, {RS, RA0, NB}},
7165
7166 {"sthcx.", XRC(31,726,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
7167
7168 {"stfdx", X(31,727), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
7169
7170 {"srlq", XRC(31,728,0), X_MASK, M601, 0, {RA, RS, RB}},
7171 {"srlq.", XRC(31,728,1), X_MASK, M601, 0, {RA, RS, RB}},
7172
7173 {"sreq", XRC(31,729,0), X_MASK, M601, 0, {RA, RS, RB}},
7174 {"sreq.", XRC(31,729,1), X_MASK, M601, 0, {RA, RS, RB}},
7175
7176 {"mftgpr", XRC(31,735,0), XRA_MASK, POWER6, POWER7, {RT, FRB}},
7177 {"stfdepx", X(31,735), X_MASK, E500MC|PPCA2, 0, {FRS, RA0, RB}},
7178
7179 {"stddx", X(31,739), X_MASK, E500MC, 0, {RS, RA, RB}},
7180
7181 {"stvswx", X(31,741), X_MASK, E6500, 0, {VS, RA0, RB}},
7182
7183 {"stdat", X(31,742), X_MASK, POWER9, 0, {RS, RA0, FC}},
7184
7185 {"stqfcmux", APU(31,743,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7186
7187 {"subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7188 {"sfmeo", XO(31,232,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7189 {"subfmeo.", XO(31,232,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7190 {"sfmeo.", XO(31,232,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
7191
7192 {"mulldo", XO(31,233,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7193 {"mulldo.", XO(31,233,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
7194
7195 {"addmeo", XO(31,234,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7196 {"ameo", XO(31,234,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7197 {"addmeo.", XO(31,234,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7198 {"ameo.", XO(31,234,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
7199
7200 {"mullwo", XO(31,235,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7201 {"mulso", XO(31,235,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7202 {"mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7203 {"mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7204
7205 {"tsuspend.", XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM, 0, {0}},
7206 {"tresume.", XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM, 0, {0}},
7207 {"tsr.", XRC(31,750,1), XRTLRARB_MASK,PPCHTM, 0, {L}},
7208
7209 {"darn", X(31,755), XLRAND_MASK, POWER9, 0, {RT, LRAND}},
7210
7211 {"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
7212 {"dcbal", XOPL(31,758,1), XRT_MASK, E500MC, 0, {RA0, RB}},
7213
7214 {"stfdux", X(31,759), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
7215
7216 {"srliq", XRC(31,760,0), X_MASK, M601, 0, {RA, RS, SH}},
7217 {"srliq.", XRC(31,760,1), X_MASK, M601, 0, {RA, RS, SH}},
7218
7219 {"lvsm", X(31,773), X_MASK, E6500, 0, {VD, RA0, RB}},
7220
7221 {"copy", XOPL(31,774,1), XRT_MASK, POWER9, 0, {RA0, RB}},
7222
7223 {"stvepxl", X(31,775), X_MASK, E6500, 0, {VS, RA0, RB}},
7224 {"lvlxl", X(31,775), X_MASK, CELL, 0, {VD, RA0, RB}},
7225 {"ldfcmux", APU(31,775,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7226
7227 {"dozo", XO(31,264,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7228 {"dozo.", XO(31,264,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
7229
7230 {"addo", XO(31,266,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7231 {"caxo", XO(31,266,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7232 {"addo.", XO(31,266,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7233 {"caxo.", XO(31,266,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7234
7235 {"modsd", X(31,777), X_MASK, POWER9, 0, {RT, RA, RB}},
7236 {"modsw", X(31,779), X_MASK, POWER9, 0, {RT, RA, RB}},
7237
7238 {"lxvw4x", X(31,780), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
7239 {"lxsibzx", X(31,781), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
7240
7241 {"tabortwc.", XRC(31,782,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
7242
7243 {"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
7244
7245 {"lwzcix", X(31,789), X_MASK, POWER6, 0, {RT, RA0, RB}},
7246
7247 {"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}},
7248
7249 {"lfdpx", X(31,791), X_MASK|Q_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
7250 {"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}},
7251
7252 {"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7253 {"sra", XRC(31,792,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
7254 {"sraw.", XRC(31,792,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7255 {"sra.", XRC(31,792,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
7256
7257 {"srad", XRC(31,794,0), X_MASK, PPC64, 0, {RA, RS, RB}},
7258 {"srad.", XRC(31,794,1), X_MASK, PPC64, 0, {RA, RS, RB}},
7259
7260 {"evlddepx", VX (31, 1598), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
7261 {"lfddx", X(31,803), X_MASK, E500MC, 0, {FRT, RA, RB}},
7262
7263 {"lvtrxl", X(31,805), X_MASK, E6500, 0, {VD, RA0, RB}},
7264 {"stvepx", X(31,807), X_MASK, E6500, 0, {VS, RA0, RB}},
7265 {"lvrxl", X(31,807), X_MASK, CELL, 0, {VD, RA0, RB}},
7266
7267 {"lxvh8x", X(31,812), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
7268 {"lxsihzx", X(31,813), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
7269
7270 {"tabortdc.", XRC(31,814,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
7271
7272 {"rac", X(31,818), X_MASK, M601, 0, {RT, RA, RB}},
7273
7274 {"erativax", X(31,819), X_MASK, PPCA2, 0, {RS, RA0, RB}},
7275
7276 {"lhzcix", X(31,821), X_MASK, POWER6, 0, {RT, RA0, RB}},
7277
7278 {"dss", XDSS(31,822,0), XDSS_MASK, PPCVEC, 0, {STRM}},
7279
7280 {"lfqux", X(31,823), X_MASK, POWER2, 0, {FRT, RA, RB}},
7281
7282 {"srawi", XRC(31,824,0), X_MASK, PPCCOM, 0, {RA, RS, SH}},
7283 {"srai", XRC(31,824,0), X_MASK, PWRCOM, 0, {RA, RS, SH}},
7284 {"srawi.", XRC(31,824,1), X_MASK, PPCCOM, 0, {RA, RS, SH}},
7285 {"srai.", XRC(31,824,1), X_MASK, PWRCOM, 0, {RA, RS, SH}},
7286
7287 {"sradi", XS(31,413,0), XS_MASK, PPC64, 0, {RA, RS, SH6}},
7288 {"sradi.", XS(31,413,1), XS_MASK, PPC64, 0, {RA, RS, SH6}},
7289
7290 {"lvtlxl", X(31,837), X_MASK, E6500, 0, {VD, RA0, RB}},
7291
7292 {"cpabort", X(31,838), XRTRARB_MASK,POWER9, 0, {0}},
7293
7294 {"divo", XO(31,331,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7295 {"divo.", XO(31,331,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
7296
7297 {"lxvd2x", X(31,844), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
7298 {"lxvx", X(31,844), XX1_MASK, POWER8, POWER9|PPCVSX3, {XT6, RA0, RB}},
7299
7300 {"tabortwci.", XRC(31,846,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
7301
7302 {"tlbsrx.", XRC(31,850,1), XRT_MASK, PPCA2, 0, {RA0, RB}},
7303
7304 {"slbiag", X(31,850), XRLARB_MASK, POWER10, 0, {RS, A_L}},
7305 {"slbiag", X(31,850), XRARB_MASK, POWER9, POWER10, {RS}},
7306
7307 {"slbmfev", X(31,851), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
7308 {"slbmfev", X(31,851), XRA_MASK, PPC64, POWER9, {RT, RB}},
7309
7310 {"lbzcix", X(31,853), X_MASK, POWER6, 0, {RT, RA0, RB}},
7311
7312 {"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2|PPC476, {0}},
7313 {"mbar", X(31,854), X_MASK, BOOKE|PPCA2|PPC476, 0, {MO}},
7314 {"eieio", XMBAR(31,854,1),0xffffffff, E500, 0, {0}},
7315 {"eieio", X(31,854), 0xffffffff, PPCA2|PPC476, 0, {0}},
7316
7317 {"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, 0, {FRT, RA0, RB}},
7318
7319 {"lvswxl", X(31,869), X_MASK, E6500, 0, {VD, RA0, RB}},
7320
7321 {"abso", XO(31,360,1,0), XORB_MASK, M601, 0, {RT, RA}},
7322 {"abso.", XO(31,360,1,1), XORB_MASK, M601, 0, {RT, RA}},
7323
7324 {"divso", XO(31,363,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7325 {"divso.", XO(31,363,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
7326
7327 {"lxvb16x", X(31,876), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
7328
7329 {"tabortdci.", XRC(31,878,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
7330
7331 {"rmieg", X(31,882), XRTRA_MASK, POWER9, 0, {RB}},
7332
7333 {"ldcix", X(31,885), X_MASK, POWER6, 0, {RT, RA0, RB}},
7334
7335 {"msgsync", X(31,886), 0xffffffff, POWER9, 0, {0}},
7336
7337 {"lfiwzx", X(31,887), X_MASK, POWER7|PPCA2, 0, {FRT, RA0, RB}},
7338
7339 {"extswsli", XS(31,445,0), XS_MASK, POWER9, 0, {RA, RS, SH6}},
7340 {"extswsli.", XS(31,445,1), XS_MASK, POWER9, 0, {RA, RS, SH6}},
7341
7342 {"paste.", XRC(31,902,1), XLRT_MASK, POWER10, 0, {RA0, RB, L1OPT}},
7343 {"paste.", XRCL(31,902,1,1),XRT_MASK, POWER9, POWER10, {RA0, RB}},
7344
7345 {"stvlxl", X(31,903), X_MASK, CELL, 0, {VS, RA0, RB}},
7346 {"stdfcmux", APU(31,903,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7347
7348 {"divdeuo", XO(31,393,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7349 {"divdeuo.", XO(31,393,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7350 {"divweuo", XO(31,395,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7351 {"divweuo.", XO(31,395,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7352
7353 {"stxvw4x", X(31,908), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
7354 {"stxsibx", X(31,909), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
7355
7356 {"tabort.", XRC(31,910,1), XRTRB_MASK, PPCHTM, 0, {RA}},
7357
7358 {"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
7359 {"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
7360
7361 {"slbmfee", X(31,915), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
7362 {"slbmfee", X(31,915), XRA_MASK, PPC64, POWER9, {RT, RB}},
7363
7364 {"stwcix", X(31,917), X_MASK, POWER6, 0, {RS, RA0, RB}},
7365
7366 {"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}},
7367
7368 {"stfdpx", X(31,919), X_MASK|Q_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
7369 {"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}},
7370
7371 {"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}},
7372 {"sraq.", XRC(31,920,1), X_MASK, M601, 0, {RA, RS, RB}},
7373
7374 {"srea", XRC(31,921,0), X_MASK, M601, 0, {RA, RS, RB}},
7375 {"srea.", XRC(31,921,1), X_MASK, M601, 0, {RA, RS, RB}},
7376
7377 {"extsh", XRC(31,922,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
7378 {"exts", XRC(31,922,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
7379 {"extsh.", XRC(31,922,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
7380 {"exts.", XRC(31,922,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
7381
7382 {"evstddepx", VX (31, 1854), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
7383 {"stfddx", X(31,931), X_MASK, E500MC, 0, {FRS, RA, RB}},
7384
7385 {"stvfrxl", X(31,933), X_MASK, E6500, 0, {VS, RA0, RB}},
7386
7387 {"wclrone", XOPL2(31,934,2),XRT_MASK, PPCA2, 0, {RA0, RB}},
7388 {"wclrall", X(31,934), XRARB_MASK, PPCA2, 0, {L2}},
7389 {"wclr", X(31,934), X_MASK, PPCA2, 0, {L2, RA0, RB}},
7390
7391 {"stvrxl", X(31,935), X_MASK, CELL, 0, {VS, RA0, RB}},
7392
7393 {"divdeo", XO(31,425,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7394 {"divdeo.", XO(31,425,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7395 {"divweo", XO(31,427,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7396 {"divweo.", XO(31,427,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7397
7398 {"stxvh8x", X(31,940), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
7399 {"stxsihx", X(31,941), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
7400
7401 {"treclaim.", XRC(31,942,1), XRTRB_MASK, PPCHTM, 0, {RA}},
7402
7403 {"tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
7404 {"tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
7405 {"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
7406
7407 {"sthcix", X(31,949), X_MASK, POWER6, 0, {RS, RA0, RB}},
7408
7409 {"icswepx", XRC(31,950,0), X_MASK, PPCA2, 0, {RS, RA, RB}},
7410 {"icswepx.", XRC(31,950,1), X_MASK, PPCA2, 0, {RS, RA, RB}},
7411
7412 {"stfqux", X(31,951), X_MASK, POWER2, 0, {FRS, RA, RB}},
7413
7414 {"sraiq", XRC(31,952,0), X_MASK, M601, 0, {RA, RS, SH}},
7415 {"sraiq.", XRC(31,952,1), X_MASK, M601, 0, {RA, RS, SH}},
7416
7417 {"extsb", XRC(31,954,0), XRB_MASK, PPC, 0, {RA, RS}},
7418 {"extsb.", XRC(31,954,1), XRB_MASK, PPC, 0, {RA, RS}},
7419
7420 {"stvflxl", X(31,965), X_MASK, E6500, 0, {VS, RA0, RB}},
7421
7422 {"iccci", X(31,966), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
7423 {"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
7424
7425 {"divduo", XO(31,457,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7426 {"divduo.", XO(31,457,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
7427
7428 {"divwuo", XO(31,459,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7429 {"divwuo.", XO(31,459,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
7430
7431 {"stxvd2x", X(31,972), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
7432 {"stxvx", X(31,972), XX1_MASK, POWER8, POWER9|PPCVSX3, {XS6, RA0, RB}},
7433
7434 {"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
7435 {"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, 0, {RT, RA}},
7436 {"tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, 0, {RT, RA}},
7437 {"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
7438
7439 {"slbfee.", XRC(31,979,1), XRA_MASK, POWER6, 0, {RT, RB}},
7440
7441 {"stbcix", X(31,981), X_MASK, POWER6, 0, {RS, RA0, RB}},
7442
7443 {"icbi", X(31,982), XRT_MASK, PPC, 0, {RA0, RB}},
7444
7445 {"stfiwx", X(31,983), X_MASK, PPC, PPCEFS, {FRS, RA0, RB}},
7446
7447 {"extsw", XRC(31,986,0), XRB_MASK, PPC64, 0, {RA, RS}},
7448 {"extsw.", XRC(31,986,1), XRB_MASK, PPC64, 0, {RA, RS}},
7449
7450 {"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
7451
7452 {"stvswxl", X(31,997), X_MASK, E6500, 0, {VS, RA0, RB}},
7453
7454 {"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA0, RB}},
7455
7456 {"nabso", XO(31,488,1,0), XORB_MASK, M601, 0, {RT, RA}},
7457 {"nabso.", XO(31,488,1,1), XORB_MASK, M601, 0, {RT, RA}},
7458
7459 {"divdo", XO(31,489,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7460 {"divdo.", XO(31,489,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
7461
7462 {"divwo", XO(31,491,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7463 {"divwo.", XO(31,491,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
7464
7465 {"stxvb16x", X(31,1004), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
7466
7467 {"trechkpt.", XRC(31,1006,1), XRTRARB_MASK,PPCHTM, 0, {0}},
7468
7469 {"tlbli", X(31,1010), XRTRA_MASK, PPC, TITAN, {RB}},
7470
7471 {"stdcix", X(31,1013), X_MASK, POWER6, 0, {RS, RA0, RB}},
7472
7473 {"dcbz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
7474 {"dclz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
7475
7476 {"dcbzep", XRT(31,1023,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
7477
7478 {"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPC476, {RA0, RB}},
7479
7480 {"cctpl", 0x7c210b78, 0xffffffff, CELL, 0, {0}},
7481 {"cctpm", 0x7c421378, 0xffffffff, CELL, 0, {0}},
7482 {"cctph", 0x7c631b78, 0xffffffff, CELL, 0, {0}},
7483
7484 {"dstt", XDSS(31,342,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
7485 {"dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
7486 {"dssall", XDSS(31,822,1), XDSS_MASK, PPCVEC, 0, {0}},
7487
7488 {"db8cyc", 0x7f9ce378, 0xffffffff, CELL, 0, {0}},
7489 {"db10cyc", 0x7fbdeb78, 0xffffffff, CELL, 0, {0}},
7490 {"db12cyc", 0x7fdef378, 0xffffffff, CELL, 0, {0}},
7491 {"db16cyc", 0x7ffffb78, 0xffffffff, CELL, 0, {0}},
7492
7493 {"lwz", OP(32), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
7494 {"l", OP(32), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
7495
7496 {"lwzu", OP(33), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAL}},
7497 {"lu", OP(33), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
7498
7499 {"lbz", OP(34), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
7500
7501 {"lbzu", OP(35), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
7502
7503 {"stw", OP(36), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
7504 {"st", OP(36), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
7505
7506 {"stwu", OP(37), OP_MASK, PPCCOM, PPCVLE, {RS, D, RAS}},
7507 {"stu", OP(37), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
7508
7509 {"stb", OP(38), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
7510
7511 {"stbu", OP(39), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
7512
7513 {"lhz", OP(40), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
7514
7515 {"lhzu", OP(41), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
7516
7517 {"lha", OP(42), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
7518
7519 {"lhau", OP(43), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
7520
7521 {"sth", OP(44), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
7522
7523 {"sthu", OP(45), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
7524
7525 {"lmw", OP(46), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAM}},
7526 {"lm", OP(46), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
7527
7528 {"stmw", OP(47), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
7529 {"stm", OP(47), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
7530
7531 {"lfs", OP(48), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
7532
7533 {"lfsu", OP(49), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
7534
7535 {"lfd", OP(50), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
7536
7537 {"lfdu", OP(51), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
7538
7539 {"stfs", OP(52), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
7540
7541 {"stfsu", OP(53), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
7542
7543 {"stfd", OP(54), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
7544
7545 {"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
7546
7547 {"lq", OP(56), OP_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
7548 {"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
7549 {"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
7550
7551 {"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
7552 {"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
7553 {"lfdp", OP(57), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
7554 {"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
7555 {"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
7556
7557 {"ld", DSO(58,0), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
7558 {"ldu", DSO(58,1), DS_MASK, PPC64, PPCVLE, {RT, DS, RAL}},
7559 {"lwa", DSO(58,2), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
7560
7561 {"dadd", XRC(59,2,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7562 {"dadd.", XRC(59,2,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7563
7564 {"dqua", ZRC(59,3,0), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
7565 {"dqua.", ZRC(59,3,1), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
7566
7567 {"fdivs", A(59,18,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7568 {"fdivs.", A(59,18,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7569
7570 {"fsubs", A(59,20,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7571 {"fsubs.", A(59,20,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7572
7573 {"fadds", A(59,21,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7574 {"fadds.", A(59,21,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7575
7576 {"fsqrts", A(59,22,0), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
7577 {"fsqrts.", A(59,22,1), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
7578
7579 {"fres", A(59,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7580 {"fres", A(59,24,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
7581 {"fres.", A(59,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7582 {"fres.", A(59,24,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
7583
7584 {"fmuls", A(59,25,0), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7585 {"fmuls.", A(59,25,1), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7586
7587 {"frsqrtes", A(59,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7588 {"frsqrtes", A(59,26,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
7589 {"frsqrtes.", A(59,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7590 {"frsqrtes.", A(59,26,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
7591
7592 {"fmsubs", A(59,28,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7593 {"fmsubs.", A(59,28,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7594
7595 {"fmadds", A(59,29,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7596 {"fmadds.", A(59,29,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7597
7598 {"fnmsubs", A(59,30,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7599 {"fnmsubs.", A(59,30,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7600
7601 {"fnmadds", A(59,31,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7602 {"fnmadds.", A(59,31,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7603
7604 {"dmul", XRC(59,34,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7605 {"dmul.", XRC(59,34,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7606
7607 {"drrnd", ZRC(59,35,0), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
7608 {"drrnd.", ZRC(59,35,1), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
7609
7610 {"dscli", ZRC(59,66,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
7611 {"dscli.", ZRC(59,66,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
7612
7613 {"dquai", ZRC(59,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
7614 {"dquai.", ZRC(59,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
7615
7616 {"dscri", ZRC(59,98,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
7617 {"dscri.", ZRC(59,98,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
7618
7619 {"drintx", ZRC(59,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7620 {"drintx.", ZRC(59,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7621
7622 {"dcmpo", X(59,130), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7623
7624 {"dtstex", X(59,162), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7625 {"dtstdc", Z(59,194), Z_MASK, POWER6, PPCVLE, {BF, FRA, DCM}},
7626 {"dtstdg", Z(59,226), Z_MASK, POWER6, PPCVLE, {BF, FRA, DGM}},
7627
7628 {"drintn", ZRC(59,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7629 {"drintn.", ZRC(59,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
7630
7631 {"dctdp", XRC(59,258,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7632 {"dctdp.", XRC(59,258,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7633
7634 {"dctfix", XRC(59,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7635 {"dctfix.", XRC(59,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7636
7637 {"ddedpd", XRC(59,322,0), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
7638 {"ddedpd.", XRC(59,322,1), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
7639
7640 {"dxex", XRC(59,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7641 {"dxex.", XRC(59,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7642
7643 {"dsub", XRC(59,514,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7644 {"dsub.", XRC(59,514,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7645
7646 {"ddiv", XRC(59,546,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7647 {"ddiv.", XRC(59,546,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7648
7649 {"dcmpu", X(59,642), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7650
7651 {"dtstsf", X(59,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
7652 {"dtstsfi", X(59,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRB}},
7653
7654 {"drsp", XRC(59,770,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7655 {"drsp.", XRC(59,770,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
7656
7657 {"dcffix", XRC(59,802,0), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7658 {"dcffix.", XRC(59,802,1), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
7659
7660 {"denbcd", XRC(59,834,0), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
7661 {"denbcd.", XRC(59,834,1), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
7662
7663 {"fcfids", XRC(59,846,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7664 {"fcfids.", XRC(59,846,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7665
7666 {"diex", XRC(59,866,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7667 {"diex.", XRC(59,866,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
7668
7669 {"fcfidus", XRC(59,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7670 {"fcfidus.", XRC(59,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
7671
7672 {"xsaddsp", XX3(60,0), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7673 {"xsmaddasp", XX3(60,1), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7674 {"xxsldwi", XX3(60,2), XX3SHW_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, SHW}},
7675 {"xscmpeqdp", XX3(60,3), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7676 {"xsrsqrtesp", XX2(60,10), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7677 {"xssqrtsp", XX2(60,11), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7678 {"xxsel", XX4(60,3), XX4_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, XC6}},
7679 {"xssubsp", XX3(60,8), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7680 {"xsmaddmsp", XX3(60,9), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7681 {"xxspltd", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XAB6, DMEX}},
7682 {"xxmrghd", XX3(60,10), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7683 {"xxswapd", XX3(60,10)|(2<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
7684 {"xxmrgld", XX3(60,10)|(3<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7685 {"xxpermdi", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, DM}},
7686 {"xscmpgtdp", XX3(60,11), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7687 {"xsresp", XX2(60,26), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7688 {"xsmulsp", XX3(60,16), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7689 {"xsmsubasp", XX3(60,17), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7690 {"xxmrghw", XX3(60,18), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7691 {"xscmpgedp", XX3(60,19), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7692 {"xsdivsp", XX3(60,24), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7693 {"xsmsubmsp", XX3(60,25), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7694 {"xxperm", XX3(60,26), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7695 {"xsadddp", XX3(60,32), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7696 {"xsmaddadp", XX3(60,33), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7697 {"xscmpudp", XX3(60,35), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7698 {"xscvdpuxws", XX2(60,72), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7699 {"xsrdpi", XX2(60,73), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7700 {"xsrsqrtedp", XX2(60,74), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7701 {"xssqrtdp", XX2(60,75), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7702 {"xssubdp", XX3(60,40), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7703 {"xsmaddmdp", XX3(60,41), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7704 {"xscmpodp", XX3(60,43), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7705 {"xscvdpsxws", XX2(60,88), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7706 {"xsrdpiz", XX2(60,89), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7707 {"xsredp", XX2(60,90), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7708 {"xsmuldp", XX3(60,48), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7709 {"xsmsubadp", XX3(60,49), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7710 {"xxmrglw", XX3(60,50), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7711 {"xsrdpip", XX2(60,105), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7712 {"xstsqrtdp", XX2(60,106), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
7713 {"xsrdpic", XX2(60,107), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7714 {"xsdivdp", XX3(60,56), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7715 {"xsmsubmdp", XX3(60,57), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7716 {"xxpermr", XX3(60,58), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7717 {"xscmpexpdp", XX3(60,59), XX3BF_MASK, PPCVSX3, PPCVLE, {BF, XA6, XB6}},
7718 {"xsrdpim", XX2(60,121), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7719 {"xstdivdp", XX3(60,61), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7720 {"xvaddsp", XX3(60,64), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7721 {"xvmaddasp", XX3(60,65), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7722 {"xvcmpeqsp", XX3RC(60,67,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7723 {"xvcmpeqsp.", XX3RC(60,67,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7724 {"xvcvspuxws", XX2(60,136), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7725 {"xvrspi", XX2(60,137), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7726 {"xvrsqrtesp", XX2(60,138), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7727 {"xvsqrtsp", XX2(60,139), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7728 {"xvsubsp", XX3(60,72), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7729 {"xvmaddmsp", XX3(60,73), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7730 {"xvcmpgtsp", XX3RC(60,75,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7731 {"xvcmpgtsp.", XX3RC(60,75,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7732 {"xvcvspsxws", XX2(60,152), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7733 {"xvrspiz", XX2(60,153), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7734 {"xvresp", XX2(60,154), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7735 {"xvmulsp", XX3(60,80), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7736 {"xvmsubasp", XX3(60,81), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7737 {"xxspltw", XX2(60,164), XX2UIM_MASK, PPCVSX, PPCVLE, {XT6, XB6, UIM}},
7738 {"xxextractuw", XX2(60,165), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
7739 {"xvcmpgesp", XX3RC(60,83,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7740 {"xvcmpgesp.", XX3RC(60,83,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7741 {"xvcvuxwsp", XX2(60,168), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7742 {"xvrspip", XX2(60,169), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7743 {"xvtsqrtsp", XX2(60,170), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
7744 {"xvrspic", XX2(60,171), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7745 {"xvdivsp", XX3(60,88), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7746 {"xvmsubmsp", XX3(60,89), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7747 {"xxspltib", X(60,360), XX1_MASK|3<<19, PPCVSX3, PPCVLE, {XT6, IMM8}},
7748 {"lxvkq", XVA(60,360,31), XVA_MASK&~1, POWER10, PPCVLE, {XT6, UIM5}},
7749 {"xxinsertw", XX2(60,181), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
7750 {"xvcvsxwsp", XX2(60,184), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7751 {"xvrspim", XX2(60,185), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7752 {"xvtdivsp", XX3(60,93), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7753 {"xvadddp", XX3(60,96), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7754 {"xvmaddadp", XX3(60,97), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7755 {"xvcmpeqdp", XX3RC(60,99,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7756 {"xvcmpeqdp.", XX3RC(60,99,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7757 {"xvcvdpuxws", XX2(60,200), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7758 {"xvrdpi", XX2(60,201), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7759 {"xvrsqrtedp", XX2(60,202), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7760 {"xvsqrtdp", XX2(60,203), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7761 {"xvsubdp", XX3(60,104), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7762 {"xvmaddmdp", XX3(60,105), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7763 {"xvcmpgtdp", XX3RC(60,107,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7764 {"xvcmpgtdp.", XX3RC(60,107,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7765 {"xvcvdpsxws", XX2(60,216), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7766 {"xvrdpiz", XX2(60,217), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7767 {"xvredp", XX2(60,218), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7768 {"xvmuldp", XX3(60,112), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7769 {"xvmsubadp", XX3(60,113), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7770 {"xvcmpgedp", XX3RC(60,115,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7771 {"xvcmpgedp.", XX3RC(60,115,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7772 {"xvcvuxwdp", XX2(60,232), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7773 {"xvrdpip", XX2(60,233), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7774 {"xvtsqrtdp", XX2(60,234), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
7775 {"xvrdpic", XX2(60,235), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7776 {"xvdivdp", XX3(60,120), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7777 {"xvmsubmdp", XX3(60,121), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7778 {"xvcvsxwdp", XX2(60,248), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7779 {"xvrdpim", XX2(60,249), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7780 {"xvtdivdp", XX3(60,125), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
7781 {"xsmaxcdp", XX3(60,128), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7782 {"xsnmaddasp", XX3(60,129), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7783 {"xxland", XX3(60,130), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7784 {"xscvdpsp", XX2(60,265), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7785 {"xscvdpspn", XX2(60,267), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7786 {"xsmincdp", XX3(60,136), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7787 {"xsnmaddmsp", XX3(60,137), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7788 {"xxlandc", XX3(60,138), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7789 {"xsrsp", XX2(60,281), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7790 {"xsmaxjdp", XX3(60,144), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7791 {"xsnmsubasp", XX3(60,145), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7792 {"xxlor", XX3(60,146), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7793 {"xscvuxdsp", XX2(60,296), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7794 {"xststdcsp", XX2(60,298), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
7795 {"xsminjdp", XX3(60,152), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7796 {"xsnmsubmsp", XX3(60,153), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7797 {"xxlxor", XX3(60,154), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7798 {"xscvsxdsp", XX2(60,312), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7799 {"xsmaxdp", XX3(60,160), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7800 {"xsnmaddadp", XX3(60,161), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7801 {"xxlnor", XX3(60,162), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7802 {"xscvdpuxds", XX2(60,328), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7803 {"xscvspdp", XX2(60,329), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7804 {"xscvspdpn", XX2(60,331), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
7805 {"xsmindp", XX3(60,168), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7806 {"xsnmaddmdp", XX3(60,169), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7807 {"xxlorc", XX3(60,170), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7808 {"xscvdpsxds", XX2(60,344), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7809 {"xsabsdp", XX2(60,345), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7810 {"xsxexpdp", XX2VA(60,347,0),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
7811 {"xsxsigdp", XX2VA(60,347,1),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
7812 {"xscvhpdp", XX2VA(60,347,16),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7813 {"xscvdphp", XX2VA(60,347,17),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7814 {"xscpsgndp", XX3(60,176), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7815 {"xsnmsubadp", XX3(60,177), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7816 {"xxlnand", XX3(60,178), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7817 {"xscvuxddp", XX2(60,360), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7818 {"xsnabsdp", XX2(60,361), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7819 {"xststdcdp", XX2(60,362), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
7820 {"xsnmsubmdp", XX3(60,185), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7821 {"xxleqv", XX3(60,186), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
7822 {"xscvsxddp", XX2(60,376), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7823 {"xsnegdp", XX2(60,377), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7824 {"xvmaxsp", XX3(60,192), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7825 {"xvnmaddasp", XX3(60,193), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7826 {"xvcvspuxds", XX2(60,392), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7827 {"xvcvdpsp", XX2(60,393), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7828 {"xvminsp", XX3(60,200), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7829 {"xvnmaddmsp", XX3(60,201), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7830 {"xvcvspsxds", XX2(60,408), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7831 {"xvabssp", XX2(60,409), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7832 {"xvmovsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
7833 {"xvcpsgnsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7834 {"xvnmsubasp", XX3(60,209), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7835 {"xvcvuxdsp", XX2(60,424), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7836 {"xvnabssp", XX2(60,425), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7837 {"xvtstdcsp", XX2(60,426), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
7838 {"xviexpsp", XX3(60,216), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7839 {"xvnmsubmsp", XX3(60,217), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7840 {"xvcvsxdsp", XX2(60,440), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7841 {"xvnegsp", XX2(60,441), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7842 {"xvmaxdp", XX3(60,224), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7843 {"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7844 {"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7845 {"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7846 {"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}},
7847 {"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7848 {"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7849 {"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7850 {"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7851 {"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7852 {"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7853 {"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7854 {"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7855 {"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7856 {"xxbrw", XX2VA(60,475,15),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7857 {"xxbrd", XX2VA(60,475,23),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7858 {"xvcvhpsp", XX2VA(60,475,24),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7859 {"xvcvsphp", XX2VA(60,475,25),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7860 {"xxbrq", XX2VA(60,475,31),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
7861 {"xvmovdp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
7862 {"xvcpsgndp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7863 {"xvnmsubadp", XX3(60,241), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7864 {"xvcvuxddp", XX2(60,488), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7865 {"xvnabsdp", XX2(60,489), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7866 {"xvtstdcdp", XX2(60,490), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
7867 {"xviexpdp", XX3(60,248), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
7868 {"xvnmsubmdp", XX3(60,249), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
7869 {"xvcvsxddp", XX2(60,504), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7870 {"xvnegdp", XX2(60,505), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
7871
7872 {"psq_st", OP(60), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
7873 {"stfq", OP(60), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
7874
7875 {"lxv", DQX(61,1), DQX_MASK, PPCVSX3, PPCVLE, {XTQ6, DQ, RA0}},
7876 {"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}},
7877 {"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
7878 {"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
7879 {"stfdp", OP(61), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
7880 {"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
7881 {"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
7882
7883 {"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}},
7884 {"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}},
7885 {"stq", DSO(62,2), DS_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
7886
7887 {"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
7888
7889 {"daddq", XRC(63,2,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7890 {"daddq.", XRC(63,2,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7891
7892 {"dquaq", ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
7893 {"dquaq.", ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
7894
7895 {"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7896 {"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7897
7898 {"xsrqpi", ZRC(63,5,0), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
7899 {"xsrqpix", ZRC(63,5,1), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
7900
7901 {"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
7902 {"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
7903
7904 {"frsp", XRC(63,12,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7905 {"frsp.", XRC(63,12,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7906
7907 {"fctiw", XRC(63,14,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7908 {"fcir", XRC(63,14,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7909 {"fctiw.", XRC(63,14,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7910 {"fcir.", XRC(63,14,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7911
7912 {"fctiwz", XRC(63,15,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7913 {"fcirz", XRC(63,15,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7914 {"fctiwz.", XRC(63,15,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
7915 {"fcirz.", XRC(63,15,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
7916
7917 {"fdiv", A(63,18,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7918 {"fd", A(63,18,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7919 {"fdiv.", A(63,18,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7920 {"fd.", A(63,18,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7921
7922 {"fsub", A(63,20,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7923 {"fs", A(63,20,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7924 {"fsub.", A(63,20,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7925 {"fs.", A(63,20,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7926
7927 {"fadd", A(63,21,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7928 {"fa", A(63,21,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7929 {"fadd.", A(63,21,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
7930 {"fa.", A(63,21,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
7931
7932 {"fsqrt", A(63,22,0), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
7933 {"fsqrt.", A(63,22,1), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
7934
7935 {"fsel", A(63,23,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7936 {"fsel.", A(63,23,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7937
7938 {"fre", A(63,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7939 {"fre", A(63,24,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
7940 {"fre.", A(63,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7941 {"fre.", A(63,24,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
7942
7943 {"fmul", A(63,25,0), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7944 {"fm", A(63,25,0), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
7945 {"fmul.", A(63,25,1), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
7946 {"fm.", A(63,25,1), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
7947
7948 {"frsqrte", A(63,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7949 {"frsqrte", A(63,26,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
7950 {"frsqrte.", A(63,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
7951 {"frsqrte.", A(63,26,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
7952
7953 {"fmsub", A(63,28,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7954 {"fms", A(63,28,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7955 {"fmsub.", A(63,28,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7956 {"fms.", A(63,28,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7957
7958 {"fmadd", A(63,29,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7959 {"fma", A(63,29,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7960 {"fmadd.", A(63,29,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7961 {"fma.", A(63,29,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7962
7963 {"fnmsub", A(63,30,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7964 {"fnms", A(63,30,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7965 {"fnmsub.", A(63,30,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7966 {"fnms.", A(63,30,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7967
7968 {"fnmadd", A(63,31,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7969 {"fnma", A(63,31,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7970 {"fnmadd.", A(63,31,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
7971 {"fnma.", A(63,31,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
7972
7973 {"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
7974
7975 {"dmulq", XRC(63,34,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7976 {"dmulq.", XRC(63,34,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
7977
7978 {"drrndq", ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
7979 {"drrndq.", ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
7980
7981 {"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7982 {"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
7983
7984 {"xsrqpxp", Z(63,37), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
7985
7986 {"mtfsb1", XRC(63,38,0), XRARB_MASK, COM, PPCVLE, {BTF}},
7987 {"mtfsb1.", XRC(63,38,1), XRARB_MASK, COM, PPCVLE, {BTF}},
7988
7989 {"fneg", XRC(63,40,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7990 {"fneg.", XRC(63,40,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
7991
7992 {"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
7993
7994 {"dscliq", ZRC(63,66,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
7995 {"dscliq.", ZRC(63,66,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
7996
7997 {"dquaiq", ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
7998 {"dquaiq.", ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
7999
8000 {"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BTF}},
8001 {"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BTF}},
8002
8003 {"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8004 {"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8005
8006 {"dscriq", ZRC(63,98,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
8007 {"dscriq.", ZRC(63,98,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
8008
8009 {"drintxq", ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
8010 {"drintxq.", ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
8011
8012 {"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8013
8014 {"ftdiv", X(63,128), XBF_MASK, POWER7, PPCVLE, {BF, FRA, FRB}},
8015
8016 {"dcmpoq", X(63,130), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
8017
8018 {"xscmpoqp", X(63,132), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
8019
8020 {"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
8021 {"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
8022 {"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
8023 {"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
8024
8025 {"fnabs", XRC(63,136,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8026 {"fnabs.", XRC(63,136,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8027
8028 {"fctiwu", XRC(63,142,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
8029 {"fctiwu.", XRC(63,142,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
8030 {"fctiwuz", XRC(63,143,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
8031 {"fctiwuz.", XRC(63,143,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
8032
8033 {"ftsqrt", X(63,160), XBF_MASK|FRA_MASK, POWER7, PPCVLE, {BF, FRB}},
8034
8035 {"dtstexq", X(63,162), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
8036
8037 {"xscmpexpqp", X(63,164), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
8038
8039 {"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}},
8040 {"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}},
8041
8042 {"drintnq", ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
8043 {"drintnq.", ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
8044
8045 {"dctqpq", XRC(63,258,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
8046 {"dctqpq.", XRC(63,258,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
8047
8048 {"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8049 {"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8050
8051 {"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
8052 {"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
8053
8054 {"ddedpdq", XRC(63,322,0), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
8055 {"ddedpdq.", XRC(63,322,1), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
8056
8057 {"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
8058 {"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
8059
8060 {"xsmaddqp", XRC(63,388,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8061 {"xsmaddqpo", XRC(63,388,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8062
8063 {"frin", XRC(63,392,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8064 {"frin.", XRC(63,392,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8065
8066 {"xsmsubqp", XRC(63,420,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8067 {"xsmsubqpo", XRC(63,420,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8068
8069 {"friz", XRC(63,424,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8070 {"friz.", XRC(63,424,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8071
8072 {"xsnmaddqp", XRC(63,452,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8073 {"xsnmaddqpo", XRC(63,452,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8074
8075 {"frip", XRC(63,456,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8076 {"frip.", XRC(63,456,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8077
8078 {"xsnmsubqp", XRC(63,484,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8079 {"xsnmsubqpo", XRC(63,484,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8080
8081 {"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8082 {"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8083
8084 {"dsubq", XRC(63,514,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
8085 {"dsubq.", XRC(63,514,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
8086
8087 {"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8088 {"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8089
8090 {"ddivq", XRC(63,546,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
8091 {"ddivq.", XRC(63,546,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
8092
8093 {"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8094 {"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8095
8096 {"mffs", XRC(63,583,0), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
8097 {"mffs.", XRC(63,583,1), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
8098
8099 {"mffsce", XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
8100 {"mffscdrn", XMMF(63,583,2,4), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
8101 {"mffscdrni", XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE, {FRT, DRM}},
8102 {"mffscrn", XMMF(63,583,2,6), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
8103 {"mffscrni", XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE, {FRT, RM}},
8104 {"mffsl", XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
8105
8106 {"dcmpuq", X(63,642), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
8107
8108 {"xscmpuqp", X(63,644), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
8109
8110 {"dtstsfq", X(63,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRBp}},
8111 {"dtstsfiq", X(63,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRBp}},
8112
8113 {"xststdcqp", X(63,708), X_MASK, PPCVSX3, PPCVLE, {BF, VB, DCMX}},
8114
8115 {"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
8116 {"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
8117 {"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
8118 {"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
8119
8120 {"drdpq", XRC(63,770,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
8121 {"drdpq.", XRC(63,770,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
8122
8123 {"dcffixq", XRC(63,802,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
8124 {"dcffixq.", XRC(63,802,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
8125
8126 {"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8127 {"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8128 {"xsnabsqp", XVA(63,804,8), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8129 {"xsnegqp", XVA(63,804,16), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8130 {"xsxsigqp", XVA(63,804,18), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8131 {"xssqrtqp", XVARC(63,804,27,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8132 {"xssqrtqpo", XVARC(63,804,27,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8133
8134 {"fctid", XRC(63,814,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8135 {"fctid", XRC(63,814,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
8136 {"fctid.", XRC(63,814,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8137 {"fctid.", XRC(63,814,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
8138
8139 {"fctidz", XRC(63,815,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8140 {"fctidz", XRC(63,815,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
8141 {"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8142 {"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
8143
8144 {"denbcdq", XRC(63,834,0), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
8145 {"denbcdq.", XRC(63,834,1), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
8146
8147 {"xscvqpuqz", XVA(63,836,0), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
8148 {"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8149 {"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8150 {"xscvuqqp", XVA(63,836,3), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
8151 {"xscvqpsqz", XVA(63,836,8), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
8152 {"xscvqpswz", XVA(63,836,9), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8153 {"xscvsdqp", XVA(63,836,10), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8154 {"xscvsqqp", XVA(63,836,11), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
8155 {"xscvqpudz", XVA(63,836,17), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8156 {"xscvqpdp", XVARC(63,836,20,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8157 {"xscvqpdpo", XVARC(63,836,20,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8158 {"xscvdpqp", XVA(63,836,22), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8159 {"xscvqpsdz", XVA(63,836,25), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8160
8161 {"fmrgow", X(63,838), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
8162
8163 {"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8164 {"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
8165 {"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8166 {"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
8167
8168 {"diexq", XRC(63,866,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
8169 {"diexq.", XRC(63,866,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
8170
8171 {"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8172
8173 {"fctidu", XRC(63,942,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8174 {"fctidu.", XRC(63,942,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8175
8176 {"fctiduz", XRC(63,943,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8177 {"fctiduz.", XRC(63,943,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8178
8179 {"fmrgew", X(63,966), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
8180
8181 {"fcfidu", XRC(63,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8182 {"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8183
8184 {"dcffixqq", XVA(63,994,0), XVA_MASK, POWER10, PPCVLE, {FRTp, VB}},
8185 {"dctfixqq", XVA(63,994,1), XVA_MASK, POWER10, PPCVLE, {VD, FRBp}},
8186 };
8187
8188 const unsigned int powerpc_num_opcodes =
8189 sizeof (powerpc_opcodes) / sizeof (powerpc_opcodes[0]);
8190 \f
8191 /* The opcode table for 8-byte prefix instructions.
8192
8193 The format of this opcode table is the same as the main opcode table. */
8194
8195 const struct powerpc_opcode prefix_opcodes[] = {
8196 {"pnop", PMRR, PREFIX_MASK, POWER10, 0, {0}},
8197 {"pli", PMLS|OP(14), P_DRAPCREL_MASK, POWER10, 0, {RT, SI34}},
8198 {"paddi", PMLS|OP(14), P_D_MASK, POWER10, 0, {RT, RA0, SI34, PCREL0}},
8199 {"psubi", PMLS|OP(14), P_D_MASK, POWER10, 0, {RT, RA0, NSI34, PCREL0}},
8200 {"pla", PMLS|OP(14), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8201 {"xxsplti32dx", P8RR|VSOP(32,0), P_VSI_MASK, POWER10, 0, {XTS, IX, IMM32}},
8202 {"xxspltidp", P8RR|VSOP(32,2), P_VS_MASK, POWER10, 0, {XTS, IMM32}},
8203 {"xxspltiw", P8RR|VSOP(32,3), P_VS_MASK, POWER10, 0, {XTS, IMM32}},
8204 {"plwz", PMLS|OP(32), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8205 {"xxblendvb", P8RR|XX4(33,0), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
8206 {"xxblendvh", P8RR|XX4(33,1), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
8207 {"xxblendvw", P8RR|XX4(33,2), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
8208 {"xxblendvd", P8RR|XX4(33,3), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
8209 {"xxpermx", P8RR|XX4(34,0), P_UXX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6, UIM3}},
8210 {"plbz", PMLS|OP(34), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8211 {"pstw", PMLS|OP(36), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
8212 {"pstb", PMLS|OP(38), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
8213 {"plhz", PMLS|OP(40), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8214 {"plwa", P8LS|OP(41), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8215 {"plxsd", P8LS|OP(42), P_D_MASK, POWER10, 0, {VD, D34, PRA0, PCREL}},
8216 {"plha", PMLS|OP(42), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8217 {"plxssp", P8LS|OP(43), P_D_MASK, POWER10, 0, {VD, D34, PRA0, PCREL}},
8218 {"psth", PMLS|OP(44), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
8219 {"pstxsd", P8LS|OP(46), P_D_MASK, POWER10, 0, {VS, D34, PRA0, PCREL}},
8220 {"pstxssp", P8LS|OP(47), P_D_MASK, POWER10, 0, {VS, D34, PRA0, PCREL}},
8221 {"plfs", PMLS|OP(48), P_D_MASK, POWER10, 0, {FRT, D34, PRA0, PCREL}},
8222 {"plxv", P8LS|OP(50), P_D_MASK&~OP(1), POWER10, 0, {XTOP, D34, PRA0, PCREL}},
8223 {"plfd", PMLS|OP(50), P_D_MASK, POWER10, 0, {FRT, D34, PRA0, PCREL}},
8224 {"pstfs", PMLS|OP(52), P_D_MASK, POWER10, 0, {FRS, D34, PRA0, PCREL}},
8225 {"pstxv", P8LS|OP(54), P_D_MASK&~OP(1), POWER10, 0, {XTOP, D34, PRA0, PCREL}},
8226 {"pstfd", PMLS|OP(54), P_D_MASK, POWER10, 0, {FRS, D34, PRA0, PCREL}},
8227 {"plq", P8LS|OP(56), P_D_MASK, POWER10, 0, {RTQ, D34, PRAQ, PCREL}},
8228 {"pld", P8LS|OP(57), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8229 {"plxvp", P8LS|OP(58), P_D_MASK, POWER10, 0, {XTP, D34, PRA0, PCREL}},
8230 {"pstq", P8LS|OP(60), P_D_MASK, POWER10, 0, {RSQ, D34, PRA0, PCREL}},
8231 {"pstd", P8LS|OP(61), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
8232 {"pstxvp", P8LS|OP(62), P_D_MASK, POWER10, 0, {XTP, D34, PRA0, PCREL}},
8233 };
8234
8235 const unsigned int prefix_num_opcodes =
8236 sizeof (prefix_opcodes) / sizeof (prefix_opcodes[0]);
8237 \f
8238 /* The VLE opcode table.
8239
8240 The format of this opcode table is the same as the main opcode table. */
8241
8242 const struct powerpc_opcode vle_opcodes[] = {
8243 {"se_illegal", C(0), C_MASK, PPCVLE, 0, {}},
8244 {"se_isync", C(1), C_MASK, PPCVLE, 0, {}},
8245 {"se_sc", C(2), C_MASK, PPCVLE, 0, {}},
8246 {"se_blr", C_LK(2,0), C_LK_MASK, PPCVLE, 0, {}},
8247 {"se_blrl", C_LK(2,1), C_LK_MASK, PPCVLE, 0, {}},
8248 {"se_bctr", C_LK(3,0), C_LK_MASK, PPCVLE, 0, {}},
8249 {"se_bctrl", C_LK(3,1), C_LK_MASK, PPCVLE, 0, {}},
8250 {"se_rfi", C(8), C_MASK, PPCVLE, 0, {}},
8251 {"se_rfci", C(9), C_MASK, PPCVLE, 0, {}},
8252 {"se_rfdi", C(10), C_MASK, PPCVLE, 0, {}},
8253 {"se_rfmci", C(11), C_MASK, PPCRFMCI|PPCVLE, 0, {}},
8254 {"se_rfgi", C(12), C_MASK, PPCVLE, 0, {}},
8255 {"se_not", SE_R(0,2), SE_R_MASK, PPCVLE, 0, {RX}},
8256 {"se_neg", SE_R(0,3), SE_R_MASK, PPCVLE, 0, {RX}},
8257 {"se_mflr", SE_R(0,8), SE_R_MASK, PPCVLE, 0, {RX}},
8258 {"se_mtlr", SE_R(0,9), SE_R_MASK, PPCVLE, 0, {RX}},
8259 {"se_mfctr", SE_R(0,10), SE_R_MASK, PPCVLE, 0, {RX}},
8260 {"se_mtctr", SE_R(0,11), SE_R_MASK, PPCVLE, 0, {RX}},
8261 {"se_extzb", SE_R(0,12), SE_R_MASK, PPCVLE, 0, {RX}},
8262 {"se_extsb", SE_R(0,13), SE_R_MASK, PPCVLE, 0, {RX}},
8263 {"se_extzh", SE_R(0,14), SE_R_MASK, PPCVLE, 0, {RX}},
8264 {"se_extsh", SE_R(0,15), SE_R_MASK, PPCVLE, 0, {RX}},
8265 {"se_mr", SE_RR(0,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8266 {"se_mtar", SE_RR(0,2), SE_RR_MASK, PPCVLE, 0, {ARX, RY}},
8267 {"se_mfar", SE_RR(0,3), SE_RR_MASK, PPCVLE, 0, {RX, ARY}},
8268 {"se_add", SE_RR(1,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8269 {"se_mullw", SE_RR(1,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8270 {"se_sub", SE_RR(1,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8271 {"se_subf", SE_RR(1,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8272 {"se_cmp", SE_RR(3,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8273 {"se_cmpl", SE_RR(3,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8274 {"se_cmph", SE_RR(3,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8275 {"se_cmphl", SE_RR(3,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
8276
8277 /* by major opcode */
8278 {"zvaddih", VX(4, 0x200), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
8279 {"zvsubifh", VX(4, 0x201), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
8280 {"zvaddh", VX(4, 0x204), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8281 {"zvsubfh", VX(4, 0x205), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8282 {"zvaddsubfh", VX(4, 0x206), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8283 {"zvsubfaddh", VX(4, 0x207), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8284 {"zvaddhx", VX(4, 0x20C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8285 {"zvsubfhx", VX(4, 0x20D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8286 {"zvaddsubfhx", VX(4, 0x20E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8287 {"zvsubfaddhx", VX(4, 0x20F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8288 {"zaddwus", VX(4, 0x210), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8289 {"zsubfwus", VX(4, 0x211), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8290 {"zaddwss", VX(4, 0x212), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8291 {"zsubfwss", VX(4, 0x213), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8292 {"zvaddhus", VX(4, 0x214), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8293 {"zvsubfhus", VX(4, 0x215), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8294 {"zvaddhss", VX(4, 0x216), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8295 {"zvsubfhss", VX(4, 0x217), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8296 {"zvaddsubfhss", VX(4, 0x21A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8297 {"zvsubfaddhss", VX(4, 0x21B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8298 {"zvaddhxss", VX(4, 0x21C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8299 {"zvsubfhxss", VX(4, 0x21D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8300 {"zvaddsubfhxss", VX(4, 0x21E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8301 {"zvsubfaddhxss", VX(4, 0x21F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8302 {"zaddheuw", VX(4, 0x220), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8303 {"zsubfheuw", VX(4, 0x221), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8304 {"zaddhesw", VX(4, 0x222), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8305 {"zsubfhesw", VX(4, 0x223), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8306 {"zaddhouw", VX(4, 0x224), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8307 {"zsubfhouw", VX(4, 0x225), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8308 {"zaddhosw", VX(4, 0x226), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8309 {"zsubfhosw", VX(4, 0x227), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8310 {"zvmergehih", VX(4, 0x22C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8311 {"zvmergeloh", VX(4, 0x22D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8312 {"zvmergehiloh", VX(4, 0x22E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8313 {"zvmergelohih", VX(4, 0x22F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8314 {"zvcmpgthu", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8315 {"zvcmpgths", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8316 {"zvcmplthu", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8317 {"zvcmplths", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8318 {"zvcmpeqh", VX(4, 0x232), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
8319 {"zpkswgshfrs", VX(4, 0x238), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8320 {"zpkswgswfrs", VX(4, 0x239), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8321 {"zvpkshgwshfrs", VX(4, 0x23A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8322 {"zvpkswshfrs", VX(4, 0x23B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8323 {"zvpkswuhs", VX(4, 0x23C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8324 {"zvpkswshs", VX(4, 0x23D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8325 {"zvpkuwuhs", VX(4, 0x23E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8326 {"zvsplatih", VX_LSP(4, 0x23F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
8327 {"zvsplatfih", VX_LSP(4, 0xA3F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
8328 {"zcntlsw", VX_LSP(4, 0x2A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8329 {"zvcntlzh", VX_LSP(4, 0x323F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8330 {"zvcntlsh", VX_LSP(4, 0x3A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8331 {"znegws", VX_LSP(4, 0x4A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8332 {"zvnegh", VX_LSP(4, 0x523F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8333 {"zvneghs", VX_LSP(4, 0x5A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8334 {"zvnegho", VX_LSP(4, 0x623F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8335 {"zvneghos", VX_LSP(4, 0x6A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8336 {"zrndwh", VX_LSP(4, 0x823F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8337 {"zrndwhss", VX_LSP(4, 0x8A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8338 {"zvabsh", VX_LSP(4, 0xA23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8339 {"zvabshs", VX_LSP(4, 0xAA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8340 {"zabsw", VX_LSP(4, 0xB23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8341 {"zabsws", VX_LSP(4, 0xBA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8342 {"zsatswuw", VX_LSP(4, 0xC23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8343 {"zsatuwsw", VX_LSP(4, 0xCA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8344 {"zsatswuh", VX_LSP(4, 0xD23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8345 {"zsatswsh", VX_LSP(4, 0xDA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8346 {"zvsatshuh", VX_LSP(4, 0xE23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8347 {"zvsatuhsh", VX_LSP(4, 0xEA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8348 {"zsatuwuh", VX_LSP(4, 0xF23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8349 {"zsatuwsh", VX_LSP(4, 0xFA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
8350 {"zsatsduw", VX(4, 0x260), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8351 {"zsatsdsw", VX(4, 0x261), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8352 {"zsatuduw", VX(4, 0x262), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8353 {"zvselh", VX(4, 0x264), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8354 {"zxtrw", VX(4, 0x264), VX_LSP_OFF_MASK, PPCLSP, 0, {RD, RA, RB, VX_OFF}},
8355 {"zbrminc", VX(4, 0x268), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8356 {"zcircinc", VX(4, 0x269), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8357 {"zdivwsf", VX(4, 0x26B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8358 {"zvsrhu", VX(4, 0x270), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8359 {"zvsrhs", VX(4, 0x271), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8360 {"zvsrhiu", VX(4, 0x272), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8361 {"zvsrhis", VX(4, 0x273), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8362 {"zvslh", VX(4, 0x274), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8363 {"zvrlh", VX(4, 0x275), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8364 {"zvslhi", VX(4, 0x276), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8365 {"zvrlhi", VX(4, 0x277), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8366 {"zvslhus", VX(4, 0x278), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8367 {"zvslhss", VX(4, 0x279), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8368 {"zvslhius", VX(4, 0x27A), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8369 {"zvslhiss", VX(4, 0x27B), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
8370 {"zslwus", VX(4, 0x27C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8371 {"zslwss", VX(4, 0x27D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8372 {"zslwius", VX(4, 0x27E), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
8373 {"zslwiss", VX(4, 0x27F), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
8374 {"zaddwgui", VX(4, 0x460), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8375 {"zsubfwgui", VX(4, 0x461), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8376 {"zaddd", VX(4, 0x462), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8377 {"zsubfd", VX(4, 0x463), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8378 {"zvaddsubfw", VX(4, 0x464), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8379 {"zvsubfaddw", VX(4, 0x465), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8380 {"zvaddw", VX(4, 0x466), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8381 {"zvsubfw", VX(4, 0x467), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8382 {"zaddwgsi", VX(4, 0x468), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8383 {"zsubfwgsi", VX(4, 0x469), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8384 {"zadddss", VX(4, 0x46A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8385 {"zsubfdss", VX(4, 0x46B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8386 {"zvaddsubfwss", VX(4, 0x46C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8387 {"zvsubfaddwss", VX(4, 0x46D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8388 {"zvaddwss", VX(4, 0x46E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8389 {"zvsubfwss", VX(4, 0x46F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8390 {"zaddwgsf", VX(4, 0x470), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8391 {"zsubfwgsf", VX(4, 0x471), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8392 {"zadddus", VX(4, 0x472), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8393 {"zsubfdus", VX(4, 0x473), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8394 {"zvaddwus", VX(4, 0x476), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8395 {"zvsubfwus", VX(4, 0x477), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8396 {"zvunpkhgwsf", VX_LSP(4, 0x478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8397 {"zvunpkhsf", VX_LSP(4, 0xC78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8398 {"zvunpkhui", VX_LSP(4, 0x1478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8399 {"zvunpkhsi", VX_LSP(4, 0x1C78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8400 {"zunpkwgsf", VX_LSP(4, 0x2478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
8401 {"zvdotphgwasmf", VX(4, 0x488), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8402 {"zvdotphgwasmfr", VX(4, 0x489), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8403 {"zvdotphgwasmfaa", VX(4, 0x48A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8404 {"zvdotphgwasmfraa", VX(4, 0x48B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8405 {"zvdotphgwasmfan", VX(4, 0x48C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8406 {"zvdotphgwasmfran", VX(4, 0x48D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8407 {"zvmhulgwsmf", VX(4, 0x490), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8408 {"zvmhulgwsmfr", VX(4, 0x491), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8409 {"zvmhulgwsmfaa", VX(4, 0x492), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8410 {"zvmhulgwsmfraa", VX(4, 0x493), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8411 {"zvmhulgwsmfan", VX(4, 0x494), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8412 {"zvmhulgwsmfran", VX(4, 0x495), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8413 {"zvmhulgwsmfanp", VX(4, 0x496), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8414 {"zvmhulgwsmfranp", VX(4, 0x497), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8415 {"zmhegwsmf", VX(4, 0x498), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8416 {"zmhegwsmfr", VX(4, 0x499), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8417 {"zmhegwsmfaa", VX(4, 0x49A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8418 {"zmhegwsmfraa", VX(4, 0x49B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8419 {"zmhegwsmfan", VX(4, 0x49C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8420 {"zmhegwsmfran", VX(4, 0x49D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8421 {"zvdotphxgwasmf", VX(4, 0x4A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8422 {"zvdotphxgwasmfr", VX(4, 0x4A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8423 {"zvdotphxgwasmfaa", VX(4, 0x4AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8424 {"zvdotphxgwasmfraa", VX(4, 0x4AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8425 {"zvdotphxgwasmfan", VX(4, 0x4AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8426 {"zvdotphxgwasmfran", VX(4, 0x4AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8427 {"zvmhllgwsmf", VX(4, 0x4B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8428 {"zvmhllgwsmfr", VX(4, 0x4B1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8429 {"zvmhllgwsmfaa", VX(4, 0x4B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8430 {"zvmhllgwsmfraa", VX(4, 0x4B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8431 {"zvmhllgwsmfan", VX(4, 0x4B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8432 {"zvmhllgwsmfran", VX(4, 0x4B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8433 {"zvmhllgwsmfanp", VX(4, 0x4B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8434 {"zvmhllgwsmfranp", VX(4, 0x4B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8435 {"zmheogwsmf", VX(4, 0x4B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8436 {"zmheogwsmfr", VX(4, 0x4B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8437 {"zmheogwsmfaa", VX(4, 0x4BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8438 {"zmheogwsmfraa", VX(4, 0x4BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8439 {"zmheogwsmfan", VX(4, 0x4BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8440 {"zmheogwsmfran", VX(4, 0x4BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8441 {"zvdotphgwssmf", VX(4, 0x4C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8442 {"zvdotphgwssmfr", VX(4, 0x4C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8443 {"zvdotphgwssmfaa", VX(4, 0x4CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8444 {"zvdotphgwssmfraa", VX(4, 0x4CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8445 {"zvdotphgwssmfan", VX(4, 0x4CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8446 {"zvdotphgwssmfran", VX(4, 0x4CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8447 {"zvmhuugwsmf", VX(4, 0x4D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8448 {"zvmhuugwsmfr", VX(4, 0x4D1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8449 {"zvmhuugwsmfaa", VX(4, 0x4D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8450 {"zvmhuugwsmfraa", VX(4, 0x4D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8451 {"zvmhuugwsmfan", VX(4, 0x4D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8452 {"zvmhuugwsmfran", VX(4, 0x4D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8453 {"zvmhuugwsmfanp", VX(4, 0x4D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8454 {"zvmhuugwsmfranp", VX(4, 0x4D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8455 {"zmhogwsmf", VX(4, 0x4D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8456 {"zmhogwsmfr", VX(4, 0x4D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8457 {"zmhogwsmfaa", VX(4, 0x4DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8458 {"zmhogwsmfraa", VX(4, 0x4DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8459 {"zmhogwsmfan", VX(4, 0x4DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8460 {"zmhogwsmfran", VX(4, 0x4DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8461 {"zvmhxlgwsmf", VX(4, 0x4F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8462 {"zvmhxlgwsmfr", VX(4, 0x4F1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8463 {"zvmhxlgwsmfaa", VX(4, 0x4F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8464 {"zvmhxlgwsmfraa", VX(4, 0x4F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8465 {"zvmhxlgwsmfan", VX(4, 0x4F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8466 {"zvmhxlgwsmfran", VX(4, 0x4F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8467 {"zvmhxlgwsmfanp", VX(4, 0x4F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8468 {"zvmhxlgwsmfranp", VX(4, 0x4F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8469 {"zmhegui", VX(4, 0x500), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8470 {"zvdotphgaui", VX(4, 0x501), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8471 {"zmheguiaa", VX(4, 0x502), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8472 {"zvdotphgauiaa", VX(4, 0x503), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8473 {"zmheguian", VX(4, 0x504), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8474 {"zvdotphgauian", VX(4, 0x505), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8475 {"zmhegsi", VX(4, 0x508), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8476 {"zvdotphgasi", VX(4, 0x509), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8477 {"zmhegsiaa", VX(4, 0x50A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8478 {"zvdotphgasiaa", VX(4, 0x50B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8479 {"zmhegsian", VX(4, 0x50C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8480 {"zvdotphgasian", VX(4, 0x50D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8481 {"zmhegsui", VX(4, 0x510), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8482 {"zvdotphgasui", VX(4, 0x511), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8483 {"zmhegsuiaa", VX(4, 0x512), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8484 {"zvdotphgasuiaa", VX(4, 0x513), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8485 {"zmhegsuian", VX(4, 0x514), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8486 {"zvdotphgasuian", VX(4, 0x515), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8487 {"zmhegsmf", VX(4, 0x518), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8488 {"zvdotphgasmf", VX(4, 0x519), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8489 {"zmhegsmfaa", VX(4, 0x51A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8490 {"zvdotphgasmfaa", VX(4, 0x51B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8491 {"zmhegsmfan", VX(4, 0x51C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8492 {"zvdotphgasmfan", VX(4, 0x51D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8493 {"zmheogui", VX(4, 0x520), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8494 {"zvdotphxgaui", VX(4, 0x521), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8495 {"zmheoguiaa", VX(4, 0x522), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8496 {"zvdotphxgauiaa", VX(4, 0x523), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8497 {"zmheoguian", VX(4, 0x524), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8498 {"zvdotphxgauian", VX(4, 0x525), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8499 {"zmheogsi", VX(4, 0x528), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8500 {"zvdotphxgasi", VX(4, 0x529), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8501 {"zmheogsiaa", VX(4, 0x52A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8502 {"zvdotphxgasiaa", VX(4, 0x52B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8503 {"zmheogsian", VX(4, 0x52C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8504 {"zvdotphxgasian", VX(4, 0x52D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8505 {"zmheogsui", VX(4, 0x530), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8506 {"zvdotphxgasui", VX(4, 0x531), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8507 {"zmheogsuiaa", VX(4, 0x532), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8508 {"zvdotphxgasuiaa", VX(4, 0x533), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8509 {"zmheogsuian", VX(4, 0x534), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8510 {"zvdotphxgasuian", VX(4, 0x535), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8511 {"zmheogsmf", VX(4, 0x538), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8512 {"zvdotphxgasmf", VX(4, 0x539), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8513 {"zmheogsmfaa", VX(4, 0x53A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8514 {"zvdotphxgasmfaa", VX(4, 0x53B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8515 {"zmheogsmfan", VX(4, 0x53C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8516 {"zvdotphxgasmfan", VX(4, 0x53D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8517 {"zmhogui", VX(4, 0x540), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8518 {"zvdotphgsui", VX(4, 0x541), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8519 {"zmhoguiaa", VX(4, 0x542), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8520 {"zvdotphgsuiaa", VX(4, 0x543), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8521 {"zmhoguian", VX(4, 0x544), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8522 {"zvdotphgsuian", VX(4, 0x545), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8523 {"zmhogsi", VX(4, 0x548), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8524 {"zvdotphgssi", VX(4, 0x549), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8525 {"zmhogsiaa", VX(4, 0x54A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8526 {"zvdotphgssiaa", VX(4, 0x54B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8527 {"zmhogsian", VX(4, 0x54C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8528 {"zvdotphgssian", VX(4, 0x54D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8529 {"zmhogsui", VX(4, 0x550), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8530 {"zvdotphgssui", VX(4, 0x551), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8531 {"zmhogsuiaa", VX(4, 0x552), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8532 {"zvdotphgssuiaa", VX(4, 0x553), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8533 {"zmhogsuian", VX(4, 0x554), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8534 {"zvdotphgssuian", VX(4, 0x555), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8535 {"zmhogsmf", VX(4, 0x558), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8536 {"zvdotphgssmf", VX(4, 0x559), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8537 {"zmhogsmfaa", VX(4, 0x55A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8538 {"zvdotphgssmfaa", VX(4, 0x55B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8539 {"zmhogsmfan", VX(4, 0x55C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8540 {"zvdotphgssmfan", VX(4, 0x55D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8541 {"zmwgui", VX(4, 0x560), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8542 {"zmwguiaa", VX(4, 0x562), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8543 {"zmwguiaas", VX(4, 0x563), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8544 {"zmwguian", VX(4, 0x564), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8545 {"zmwguians", VX(4, 0x565), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8546 {"zmwgsi", VX(4, 0x568), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8547 {"zmwgsiaa", VX(4, 0x56A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8548 {"zmwgsiaas", VX(4, 0x56B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8549 {"zmwgsian", VX(4, 0x56C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8550 {"zmwgsians", VX(4, 0x56D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8551 {"zmwgsui", VX(4, 0x570), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8552 {"zmwgsuiaa", VX(4, 0x572), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8553 {"zmwgsuiaas", VX(4, 0x573), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8554 {"zmwgsuian", VX(4, 0x574), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8555 {"zmwgsuians", VX(4, 0x575), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8556 {"zmwgsmf", VX(4, 0x578), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8557 {"zmwgsmfr", VX(4, 0x579), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8558 {"zmwgsmfaa", VX(4, 0x57A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8559 {"zmwgsmfraa", VX(4, 0x57B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8560 {"zmwgsmfan", VX(4, 0x57C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8561 {"zmwgsmfran", VX(4, 0x57D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8562 {"zvmhului", VX(4, 0x580), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8563 {"zvmhuluiaa", VX(4, 0x582), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8564 {"zvmhuluiaas", VX(4, 0x583), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8565 {"zvmhuluian", VX(4, 0x584), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8566 {"zvmhuluians", VX(4, 0x585), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8567 {"zvmhuluianp", VX(4, 0x586), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8568 {"zvmhuluianps", VX(4, 0x587), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8569 {"zvmhulsi", VX(4, 0x588), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8570 {"zvmhulsiaa", VX(4, 0x58A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8571 {"zvmhulsiaas", VX(4, 0x58B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8572 {"zvmhulsian", VX(4, 0x58C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8573 {"zvmhulsians", VX(4, 0x58D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8574 {"zvmhulsianp", VX(4, 0x58E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8575 {"zvmhulsianps", VX(4, 0x58F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8576 {"zvmhulsui", VX(4, 0x590), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8577 {"zvmhulsuiaa", VX(4, 0x592), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8578 {"zvmhulsuiaas", VX(4, 0x593), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8579 {"zvmhulsuian", VX(4, 0x594), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8580 {"zvmhulsuians", VX(4, 0x595), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8581 {"zvmhulsuianp", VX(4, 0x596), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8582 {"zvmhulsuianps", VX(4, 0x597), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8583 {"zvmhulsf", VX(4, 0x598), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8584 {"zvmhulsfr", VX(4, 0x599), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8585 {"zvmhulsfaas", VX(4, 0x59A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8586 {"zvmhulsfraas", VX(4, 0x59B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8587 {"zvmhulsfans", VX(4, 0x59C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8588 {"zvmhulsfrans", VX(4, 0x59D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8589 {"zvmhulsfanps", VX(4, 0x59E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8590 {"zvmhulsfranps", VX(4, 0x59F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8591 {"zvmhllui", VX(4, 0x5A0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8592 {"zvmhlluiaa", VX(4, 0x5A2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8593 {"zvmhlluiaas", VX(4, 0x5A3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8594 {"zvmhlluian", VX(4, 0x5A4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8595 {"zvmhlluians", VX(4, 0x5A5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8596 {"zvmhlluianp", VX(4, 0x5A6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8597 {"zvmhlluianps", VX(4, 0x5A7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8598 {"zvmhllsi", VX(4, 0x5A8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8599 {"zvmhllsiaa", VX(4, 0x5AA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8600 {"zvmhllsiaas", VX(4, 0x5AB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8601 {"zvmhllsian", VX(4, 0x5AC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8602 {"zvmhllsians", VX(4, 0x5AD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8603 {"zvmhllsianp", VX(4, 0x5AE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8604 {"zvmhllsianps", VX(4, 0x5AF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8605 {"zvmhllsui", VX(4, 0x5B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8606 {"zvmhllsuiaa", VX(4, 0x5B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8607 {"zvmhllsuiaas", VX(4, 0x5B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8608 {"zvmhllsuian", VX(4, 0x5B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8609 {"zvmhllsuians", VX(4, 0x5B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8610 {"zvmhllsuianp", VX(4, 0x5B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8611 {"zvmhllsuianps", VX(4, 0x5B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8612 {"zvmhllsf", VX(4, 0x5B8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8613 {"zvmhllsfr", VX(4, 0x5B9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8614 {"zvmhllsfaas", VX(4, 0x5BA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8615 {"zvmhllsfraas", VX(4, 0x5BB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8616 {"zvmhllsfans", VX(4, 0x5BC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8617 {"zvmhllsfrans", VX(4, 0x5BD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8618 {"zvmhllsfanps", VX(4, 0x5BE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8619 {"zvmhllsfranps", VX(4, 0x5BF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8620 {"zvmhuuui", VX(4, 0x5C0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8621 {"zvmhuuuiaa", VX(4, 0x5C2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8622 {"zvmhuuuiaas", VX(4, 0x5C3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8623 {"zvmhuuuian", VX(4, 0x5C4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8624 {"zvmhuuuians", VX(4, 0x5C5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8625 {"zvmhuuuianp", VX(4, 0x5C6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8626 {"zvmhuuuianps", VX(4, 0x5C7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8627 {"zvmhuusi", VX(4, 0x5C8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8628 {"zvmhuusiaa", VX(4, 0x5CA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8629 {"zvmhuusiaas", VX(4, 0x5CB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8630 {"zvmhuusian", VX(4, 0x5CC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8631 {"zvmhuusians", VX(4, 0x5CD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8632 {"zvmhuusianp", VX(4, 0x5CE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8633 {"zvmhuusianps", VX(4, 0x5CF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8634 {"zvmhuusui", VX(4, 0x5D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8635 {"zvmhuusuiaa", VX(4, 0x5D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8636 {"zvmhuusuiaas", VX(4, 0x5D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8637 {"zvmhuusuian", VX(4, 0x5D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8638 {"zvmhuusuians", VX(4, 0x5D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8639 {"zvmhuusuianp", VX(4, 0x5D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8640 {"zvmhuusuianps", VX(4, 0x5D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8641 {"zvmhuusf", VX(4, 0x5D8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8642 {"zvmhuusfr", VX(4, 0x5D9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8643 {"zvmhuusfaas", VX(4, 0x5DA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8644 {"zvmhuusfraas", VX(4, 0x5DB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8645 {"zvmhuusfans", VX(4, 0x5DC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8646 {"zvmhuusfrans", VX(4, 0x5DD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8647 {"zvmhuusfanps", VX(4, 0x5DE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8648 {"zvmhuusfranps", VX(4, 0x5DF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8649 {"zvmhxlui", VX(4, 0x5E0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8650 {"zvmhxluiaa", VX(4, 0x5E2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8651 {"zvmhxluiaas", VX(4, 0x5E3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8652 {"zvmhxluian", VX(4, 0x5E4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8653 {"zvmhxluians", VX(4, 0x5E5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8654 {"zvmhxluianp", VX(4, 0x5E6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8655 {"zvmhxluianps", VX(4, 0x5E7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8656 {"zvmhxlsi", VX(4, 0x5E8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8657 {"zvmhxlsiaa", VX(4, 0x5EA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8658 {"zvmhxlsiaas", VX(4, 0x5EB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8659 {"zvmhxlsian", VX(4, 0x5EC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8660 {"zvmhxlsians", VX(4, 0x5ED), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8661 {"zvmhxlsianp", VX(4, 0x5EE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8662 {"zvmhxlsianps", VX(4, 0x5EF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8663 {"zvmhxlsui", VX(4, 0x5F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8664 {"zvmhxlsuiaa", VX(4, 0x5F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8665 {"zvmhxlsuiaas", VX(4, 0x5F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8666 {"zvmhxlsuian", VX(4, 0x5F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8667 {"zvmhxlsuians", VX(4, 0x5F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8668 {"zvmhxlsuianp", VX(4, 0x5F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8669 {"zvmhxlsuianps", VX(4, 0x5F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8670 {"zvmhxlsf", VX(4, 0x5F8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8671 {"zvmhxlsfr", VX(4, 0x5F9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8672 {"zvmhxlsfaas", VX(4, 0x5FA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8673 {"zvmhxlsfraas", VX(4, 0x5FB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8674 {"zvmhxlsfans", VX(4, 0x5FC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8675 {"zvmhxlsfrans", VX(4, 0x5FD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8676 {"zvmhxlsfanps", VX(4, 0x5FE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8677 {"zvmhxlsfranps", VX(4, 0x5FF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8678 {"zmheui", VX(4, 0x600), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8679 {"zmheuiaa", VX(4, 0x602), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8680 {"zmheuiaas", VX(4, 0x603), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8681 {"zmheuian", VX(4, 0x604), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8682 {"zmheuians", VX(4, 0x605), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8683 {"zmhesi", VX(4, 0x608), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8684 {"zmhesiaa", VX(4, 0x60A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8685 {"zmhesiaas", VX(4, 0x60B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8686 {"zmhesian", VX(4, 0x60C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8687 {"zmhesians", VX(4, 0x60D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8688 {"zmhesui", VX(4, 0x610), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8689 {"zmhesuiaa", VX(4, 0x612), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8690 {"zmhesuiaas", VX(4, 0x613), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8691 {"zmhesuian", VX(4, 0x614), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8692 {"zmhesuians", VX(4, 0x615), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8693 {"zmhesf", VX(4, 0x618), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8694 {"zmhesfr", VX(4, 0x619), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8695 {"zmhesfaas", VX(4, 0x61A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8696 {"zmhesfraas", VX(4, 0x61B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8697 {"zmhesfans", VX(4, 0x61C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8698 {"zmhesfrans", VX(4, 0x61D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8699 {"zmheoui", VX(4, 0x620), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8700 {"zmheouiaa", VX(4, 0x622), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8701 {"zmheouiaas", VX(4, 0x623), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8702 {"zmheouian", VX(4, 0x624), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8703 {"zmheouians", VX(4, 0x625), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8704 {"zmheosi", VX(4, 0x628), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8705 {"zmheosiaa", VX(4, 0x62A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8706 {"zmheosiaas", VX(4, 0x62B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8707 {"zmheosian", VX(4, 0x62C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8708 {"zmheosians", VX(4, 0x62D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8709 {"zmheosui", VX(4, 0x630), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8710 {"zmheosuiaa", VX(4, 0x632), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8711 {"zmheosuiaas", VX(4, 0x633), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8712 {"zmheosuian", VX(4, 0x634), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8713 {"zmheosuians", VX(4, 0x635), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8714 {"zmheosf", VX(4, 0x638), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8715 {"zmheosfr", VX(4, 0x639), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8716 {"zmheosfaas", VX(4, 0x63A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8717 {"zmheosfraas", VX(4, 0x63B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8718 {"zmheosfans", VX(4, 0x63C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8719 {"zmheosfrans", VX(4, 0x63D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8720 {"zmhoui", VX(4, 0x640), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8721 {"zmhouiaa", VX(4, 0x642), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8722 {"zmhouiaas", VX(4, 0x643), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8723 {"zmhouian", VX(4, 0x644), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8724 {"zmhouians", VX(4, 0x645), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8725 {"zmhosi", VX(4, 0x648), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8726 {"zmhosiaa", VX(4, 0x64A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8727 {"zmhosiaas", VX(4, 0x64B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8728 {"zmhosian", VX(4, 0x64C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8729 {"zmhosians", VX(4, 0x64D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8730 {"zmhosui", VX(4, 0x650), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8731 {"zmhosuiaa", VX(4, 0x652), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8732 {"zmhosuiaas", VX(4, 0x653), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8733 {"zmhosuian", VX(4, 0x654), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8734 {"zmhosuians", VX(4, 0x655), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8735 {"zmhosf", VX(4, 0x658), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8736 {"zmhosfr", VX(4, 0x659), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8737 {"zmhosfaas", VX(4, 0x65A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8738 {"zmhosfraas", VX(4, 0x65B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8739 {"zmhosfans", VX(4, 0x65C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8740 {"zmhosfrans", VX(4, 0x65D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8741 {"zvmhuih", VX(4, 0x660), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8742 {"zvmhuihs", VX(4, 0x661), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8743 {"zvmhuiaah", VX(4, 0x662), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8744 {"zvmhuiaahs", VX(4, 0x663), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8745 {"zvmhuianh", VX(4, 0x664), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8746 {"zvmhuianhs", VX(4, 0x665), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8747 {"zvmhsihs", VX(4, 0x669), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8748 {"zvmhsiaahs", VX(4, 0x66B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8749 {"zvmhsianhs", VX(4, 0x66D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8750 {"zvmhsuihs", VX(4, 0x671), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8751 {"zvmhsuiaahs", VX(4, 0x673), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8752 {"zvmhsuianhs", VX(4, 0x675), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8753 {"zvmhsfh", VX(4, 0x678), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8754 {"zvmhsfrh", VX(4, 0x679), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8755 {"zvmhsfaahs", VX(4, 0x67A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8756 {"zvmhsfraahs", VX(4, 0x67B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8757 {"zvmhsfanhs", VX(4, 0x67C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8758 {"zvmhsfranhs", VX(4, 0x67D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8759 {"zvdotphaui", VX(4, 0x680), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8760 {"zvdotphauis", VX(4, 0x681), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8761 {"zvdotphauiaa", VX(4, 0x682), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8762 {"zvdotphauiaas", VX(4, 0x683), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8763 {"zvdotphauian", VX(4, 0x684), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8764 {"zvdotphauians", VX(4, 0x685), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8765 {"zvdotphasi", VX(4, 0x688), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8766 {"zvdotphasis", VX(4, 0x689), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8767 {"zvdotphasiaa", VX(4, 0x68A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8768 {"zvdotphasiaas", VX(4, 0x68B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8769 {"zvdotphasian", VX(4, 0x68C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8770 {"zvdotphasians", VX(4, 0x68D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8771 {"zvdotphasui", VX(4, 0x690), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8772 {"zvdotphasuis", VX(4, 0x691), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8773 {"zvdotphasuiaa", VX(4, 0x692), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8774 {"zvdotphasuiaas", VX(4, 0x693), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8775 {"zvdotphasuian", VX(4, 0x694), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8776 {"zvdotphasuians", VX(4, 0x695), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8777 {"zvdotphasfs", VX(4, 0x698), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8778 {"zvdotphasfrs", VX(4, 0x699), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8779 {"zvdotphasfaas", VX(4, 0x69A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8780 {"zvdotphasfraas", VX(4, 0x69B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8781 {"zvdotphasfans", VX(4, 0x69C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8782 {"zvdotphasfrans", VX(4, 0x69D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8783 {"zvdotphxaui", VX(4, 0x6A0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8784 {"zvdotphxauis", VX(4, 0x6A1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8785 {"zvdotphxauiaa", VX(4, 0x6A2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8786 {"zvdotphxauiaas", VX(4, 0x6A3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8787 {"zvdotphxauian", VX(4, 0x6A4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8788 {"zvdotphxauians", VX(4, 0x6A5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8789 {"zvdotphxasi", VX(4, 0x6A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8790 {"zvdotphxasis", VX(4, 0x6A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8791 {"zvdotphxasiaa", VX(4, 0x6AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8792 {"zvdotphxasiaas", VX(4, 0x6AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8793 {"zvdotphxasian", VX(4, 0x6AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8794 {"zvdotphxasians", VX(4, 0x6AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8795 {"zvdotphxasui", VX(4, 0x6B0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8796 {"zvdotphxasuis", VX(4, 0x6B1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8797 {"zvdotphxasuiaa", VX(4, 0x6B2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8798 {"zvdotphxasuiaas", VX(4, 0x6B3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8799 {"zvdotphxasuian", VX(4, 0x6B4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8800 {"zvdotphxasuians", VX(4, 0x6B5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8801 {"zvdotphxasfs", VX(4, 0x6B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8802 {"zvdotphxasfrs", VX(4, 0x6B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8803 {"zvdotphxasfaas", VX(4, 0x6BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8804 {"zvdotphxasfraas", VX(4, 0x6BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8805 {"zvdotphxasfans", VX(4, 0x6BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8806 {"zvdotphxasfrans", VX(4, 0x6BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8807 {"zvdotphsui", VX(4, 0x6C0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8808 {"zvdotphsuis", VX(4, 0x6C1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8809 {"zvdotphsuiaa", VX(4, 0x6C2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8810 {"zvdotphsuiaas", VX(4, 0x6C3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8811 {"zvdotphsuian", VX(4, 0x6C4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8812 {"zvdotphsuians", VX(4, 0x6C5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8813 {"zvdotphssi", VX(4, 0x6C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8814 {"zvdotphssis", VX(4, 0x6C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8815 {"zvdotphssiaa", VX(4, 0x6CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8816 {"zvdotphssiaas", VX(4, 0x6CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8817 {"zvdotphssian", VX(4, 0x6CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8818 {"zvdotphssians", VX(4, 0x6CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8819 {"zvdotphssui", VX(4, 0x6D0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8820 {"zvdotphssuis", VX(4, 0x6D1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8821 {"zvdotphssuiaa", VX(4, 0x6D2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8822 {"zvdotphssuiaas", VX(4, 0x6D3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8823 {"zvdotphssuian", VX(4, 0x6D4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8824 {"zvdotphssuians", VX(4, 0x6D5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8825 {"zvdotphssfs", VX(4, 0x6D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8826 {"zvdotphssfrs", VX(4, 0x6D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8827 {"zvdotphssfaas", VX(4, 0x6DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8828 {"zvdotphssfraas", VX(4, 0x6DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8829 {"zvdotphssfans", VX(4, 0x6DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8830 {"zvdotphssfrans", VX(4, 0x6DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8831 {"zmwluis", VX(4, 0x6E1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8832 {"zmwluiaa", VX(4, 0x6E2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8833 {"zmwluiaas", VX(4, 0x6E3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8834 {"zmwluian", VX(4, 0x6E4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8835 {"zmwluians", VX(4, 0x6E5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8836 {"zmwlsis", VX(4, 0x6E9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8837 {"zmwlsiaas", VX(4, 0x6EB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8838 {"zmwlsians", VX(4, 0x6ED), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8839 {"zmwlsuis", VX(4, 0x6F1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8840 {"zmwlsuiaas", VX(4, 0x6F3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8841 {"zmwlsuians", VX(4, 0x6F5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8842 {"zmwsf", VX(4, 0x6F8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8843 {"zmwsfr", VX(4, 0x6F9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8844 {"zmwsfaas", VX(4, 0x6FA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8845 {"zmwsfraas", VX(4, 0x6FB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8846 {"zmwsfans", VX(4, 0x6FC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8847 {"zmwsfrans", VX(4, 0x6FD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8848 {"zlddx", VX(4, 0x300), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8849 {"zldd", VX(4, 0x301), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
8850 {"zldwx", VX(4, 0x302), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8851 {"zldw", VX(4, 0x303), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
8852 {"zldhx", VX(4, 0x304), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8853 {"zldh", VX(4, 0x305), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
8854 {"zlwgsfdx", VX(4, 0x308), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8855 {"zlwgsfd", VX(4, 0x309), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8856 {"zlwwosdx", VX(4, 0x30A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8857 {"zlwwosd", VX(4, 0x30B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8858 {"zlwhsplatwdx", VX(4, 0x30C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8859 {"zlwhsplatwd", VX(4, 0x30D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8860 {"zlwhsplatdx", VX(4, 0x30E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8861 {"zlwhsplatd", VX(4, 0x30F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8862 {"zlwhgwsfdx", VX(4, 0x310), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8863 {"zlwhgwsfd", VX(4, 0x311), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8864 {"zlwhedx", VX(4, 0x312), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8865 {"zlwhed", VX(4, 0x313), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8866 {"zlwhosdx", VX(4, 0x314), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8867 {"zlwhosd", VX(4, 0x315), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8868 {"zlwhoudx", VX(4, 0x316), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8869 {"zlwhoud", VX(4, 0x317), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
8870 {"zlwhx", VX(4, 0x318), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8871 {"zlwh", VX(4, 0x319), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
8872 {"zlwwx", VX(4, 0x31A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8873 {"zlww", VX(4, 0x31B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
8874 {"zlhgwsfx", VX(4, 0x31C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8875 {"zlhgwsf", VX(4, 0x31D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8876 {"zlhhsplatx", VX(4, 0x31E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8877 {"zlhhsplat", VX(4, 0x31F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8878 {"zstddx", VX(4, 0x320), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8879 {"zstdd", VX(4, 0x321), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
8880 {"zstdwx", VX(4, 0x322), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8881 {"zstdw", VX(4, 0x323), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
8882 {"zstdhx", VX(4, 0x324), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8883 {"zstdh", VX(4, 0x325), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
8884 {"zstwhedx", VX(4, 0x328), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8885 {"zstwhed", VX(4, 0x329), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
8886 {"zstwhodx", VX(4, 0x32A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8887 {"zstwhod", VX(4, 0x32B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
8888 {"zlhhex", VX(4, 0x330), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8889 {"zlhhe", VX(4, 0x331), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8890 {"zlhhosx", VX(4, 0x332), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8891 {"zlhhos", VX(4, 0x333), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8892 {"zlhhoux", VX(4, 0x334), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8893 {"zlhhou", VX(4, 0x335), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
8894 {"zsthex", VX(4, 0x338), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8895 {"zsthe", VX(4, 0x339), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
8896 {"zsthox", VX(4, 0x33A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8897 {"zstho", VX(4, 0x33B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
8898 {"zstwhx", VX(4, 0x33C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8899 {"zstwh", VX(4, 0x33D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
8900 {"zstwwx", VX(4, 0x33E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8901 {"zstww", VX(4, 0x33F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
8902 {"zlddmx", VX(4, 0x340), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8903 {"zlddu", VX(4, 0x341), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
8904 {"zldwmx", VX(4, 0x342), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8905 {"zldwu", VX(4, 0x343), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
8906 {"zldhmx", VX(4, 0x344), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8907 {"zldhu", VX(4, 0x345), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
8908 {"zlwgsfdmx", VX(4, 0x348), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8909 {"zlwgsfdu", VX(4, 0x349), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8910 {"zlwwosdmx", VX(4, 0x34A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8911 {"zlwwosdu", VX(4, 0x34B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8912 {"zlwhsplatwdmx", VX(4, 0x34C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8913 {"zlwhsplatwdu", VX(4, 0x34D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8914 {"zlwhsplatdmx", VX(4, 0x34E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8915 {"zlwhsplatdu", VX(4, 0x34F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8916 {"zlwhgwsfdmx", VX(4, 0x350), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8917 {"zlwhgwsfdu", VX(4, 0x351), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8918 {"zlwhedmx", VX(4, 0x352), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8919 {"zlwhedu", VX(4, 0x353), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8920 {"zlwhosdmx", VX(4, 0x354), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8921 {"zlwhosdu", VX(4, 0x355), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8922 {"zlwhoudmx", VX(4, 0x356), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
8923 {"zlwhoudu", VX(4, 0x357), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
8924 {"zlwhmx", VX(4, 0x358), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8925 {"zlwhu", VX(4, 0x359), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
8926 {"zlwwmx", VX(4, 0x35A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8927 {"zlwwu", VX(4, 0x35B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
8928 {"zlhgwsfmx", VX(4, 0x35C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8929 {"zlhgwsfu", VX(4, 0x35D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8930 {"zlhhsplatmx", VX(4, 0x35E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8931 {"zlhhsplatu", VX(4, 0x35F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8932 {"zstddmx", VX(4, 0x360), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8933 {"zstddu", VX(4, 0x361), VX_MASK, PPCLSP, 0, {RS, EVUIMM_8_EX0, RA}},
8934 {"zstdwmx", VX(4, 0x362), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8935 {"zstdwu", VX(4, 0x363), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
8936 {"zstdhmx", VX(4, 0x364), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8937 {"zstdhu", VX(4, 0x365), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
8938 {"zstwhedmx", VX(4, 0x368), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8939 {"zstwhedu", VX(4, 0x369), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
8940 {"zstwhodmx", VX(4, 0x36A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
8941 {"zstwhodu", VX(4, 0x36B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
8942 {"zlhhemx", VX(4, 0x370), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8943 {"zlhheu", VX(4, 0x371), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8944 {"zlhhosmx", VX(4, 0x372), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8945 {"zlhhosu", VX(4, 0x373), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8946 {"zlhhoumx", VX(4, 0x374), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
8947 {"zlhhouu", VX(4, 0x375), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
8948 {"zsthemx", VX(4, 0x378), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8949 {"zstheu", VX(4, 0x379), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
8950 {"zsthomx", VX(4, 0x37A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8951 {"zsthou", VX(4, 0x37B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
8952 {"zstwhmx", VX(4, 0x37C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8953 {"zstwhu", VX(4, 0x37D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
8954 {"zstwwmx", VX(4, 0x37E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
8955 {"zstwwu", VX(4, 0x37F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
8956
8957 {"e_cmpi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
8958 {"e_cmpwi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
8959 {"e_cmpli", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
8960 {"e_cmplwi", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
8961 {"e_addi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8962 {"e_subi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
8963 {"e_addi.", SCI8(6,17), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8964 {"e_addic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8965 {"e_subic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
8966 {"e_addic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8967 {"e_subic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
8968 {"e_mulli", SCI8(6,20), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8969 {"e_subfic", SCI8(6,22), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8970 {"e_subfic.", SCI8(6,23), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
8971 {"e_andi", SCI8(6,24), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8972 {"e_andi.", SCI8(6,25), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8973 {"e_nop", SCI8(6,26), 0xffffffff, PPCVLE, 0, {0}},
8974 {"e_ori", SCI8(6,26), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8975 {"e_ori.", SCI8(6,27), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8976 {"e_xori", SCI8(6,28), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8977 {"e_xori.", SCI8(6,29), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
8978 {"e_lbzu", OPVUP(6,0), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8979 {"e_lhau", OPVUP(6,3), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8980 {"e_lhzu", OPVUP(6,1), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8981 {"e_lmw", OPVUP(6,8), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8982 {"e_lwzu", OPVUP(6,2), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8983 {"e_stbu", OPVUP(6,4), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8984 {"e_sthu", OPVUP(6,5), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8985 {"e_stwu", OPVUP(6,6), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8986 {"e_stmw", OPVUP(6,9), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
8987 {"e_lmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8988 {"e_ldmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8989 {"e_stmvgprw", OPVUPRT(6,17,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8990 {"e_lmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8991 {"e_ldmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8992 {"e_stmvsprw", OPVUPRT(6,17,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8993 {"e_lmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8994 {"e_ldmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8995 {"e_stmvsrrw", OPVUPRT(6,17,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8996 {"e_lmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8997 {"e_ldmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8998 {"e_stmvcsrrw", OPVUPRT(6,17,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
8999 {"e_lmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9000 {"e_ldmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9001 {"e_stmvdsrrw", OPVUPRT(6,17,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9002 {"e_lmvmcsrrw", OPVUPRT(6,16,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9003 {"e_stmvmcsrrw", OPVUPRT(6,17,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9004 {"e_add16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, SI}},
9005 {"e_la", OP(7), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9006 {"e_sub16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, NSI}},
9007
9008 {"se_addi", SE_IM5(8,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9009 {"se_cmpli", SE_IM5(8,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9010 {"se_subi", SE_IM5(9,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9011 {"se_subi.", SE_IM5(9,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9012 {"se_cmpi", SE_IM5(10,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9013 {"se_bmaski", SE_IM5(11,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9014 {"se_andi", SE_IM5(11,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9015
9016 {"e_lbz", OP(12), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9017 {"e_stb", OP(13), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9018 {"e_lha", OP(14), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9019
9020 {"se_srw", SE_RR(16,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9021 {"se_sraw", SE_RR(16,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9022 {"se_slw", SE_RR(16,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9023 {"se_nop", SE_RR(17,0), 0xffff, PPCVLE, 0, {0}},
9024 {"se_or", SE_RR(17,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9025 {"se_andc", SE_RR(17,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9026 {"se_and", SE_RR(17,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9027 {"se_and.", SE_RR(17,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9028 {"se_li", IM7(9), IM7_MASK, PPCVLE, 0, {RX, UI7}},
9029
9030 {"e_lwz", OP(20), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9031 {"e_stw", OP(21), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9032 {"e_lhz", OP(22), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9033 {"e_sth", OP(23), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9034
9035 {"se_bclri", SE_IM5(24,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9036 {"se_bgeni", SE_IM5(24,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9037 {"se_bseti", SE_IM5(25,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9038 {"se_btsti", SE_IM5(25,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9039 {"se_srwi", SE_IM5(26,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9040 {"se_srawi", SE_IM5(26,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9041 {"se_slwi", SE_IM5(27,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9042
9043 {"e_lis", I16L(28,28), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9044 {"e_and2is.", I16L(28,29), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9045 {"e_or2is", I16L(28,26), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9046 {"e_and2i.", I16L(28,25), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9047 {"e_or2i", I16L(28,24), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9048 {"e_cmphl16i", IA16(28,23), IA16_MASK, PPCVLE, 0, {RA, VLEUIMM}},
9049 {"e_cmph16i", IA16(28,22), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
9050 {"e_cmpl16i", I16A(28,21), I16A_MASK, PPCVLE, 0, {RA, VLEUIMM}},
9051 {"e_mull2i", I16A(28,20), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
9052 {"e_cmp16i", IA16(28,19), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
9053 {"e_sub2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
9054 {"e_add2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
9055 {"e_sub2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
9056 {"e_add2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
9057 {"e_li", LI20(28,0), LI20_MASK, PPCVLE, 0, {RT, IMM20}},
9058 {"e_rlwimi", M(29,0), M_MASK, PPCVLE, 0, {RA, RS, SH, MB, ME}},
9059 {"e_rlwinm", M(29,1), M_MASK, PPCVLE, 0, {RA, RT, SH, MBE, ME}},
9060 {"e_b", BD24(30,0,0), BD24_MASK, PPCVLE, 0, {B24}},
9061 {"e_bl", BD24(30,0,1), BD24_MASK, PPCVLE, 0, {B24}},
9062 {"e_bdnz", EBD15(30,8,BO32DNZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
9063 {"e_bdnzl", EBD15(30,8,BO32DNZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
9064 {"e_bdz", EBD15(30,8,BO32DZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
9065 {"e_bdzl", EBD15(30,8,BO32DZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
9066 {"e_bge", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9067 {"e_bgel", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9068 {"e_bnl", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9069 {"e_bnll", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9070 {"e_blt", EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9071 {"e_bltl", EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9072 {"e_bgt", EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9073 {"e_bgtl", EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9074 {"e_ble", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9075 {"e_blel", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9076 {"e_bng", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9077 {"e_bngl", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9078 {"e_bne", EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9079 {"e_bnel", EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9080 {"e_beq", EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9081 {"e_beql", EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9082 {"e_bso", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9083 {"e_bsol", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9084 {"e_bun", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9085 {"e_bunl", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9086 {"e_bns", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9087 {"e_bnsl", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9088 {"e_bnu", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9089 {"e_bnul", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9090 {"e_bc", BD15(30,8,0), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
9091 {"e_bcl", BD15(30,8,1), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
9092
9093 {"e_bf", EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
9094 {"e_bfl", EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
9095 {"e_bt", EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
9096 {"e_btl", EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
9097
9098 {"e_cmph", X(31,14), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
9099 {"e_sc", X(31,36), XRTRA_MASK, PPCVLE, 0, {ELEV}},
9100 {"e_cmphl", X(31,46), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
9101 {"e_crandc", XL(31,129), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9102 {"e_crnand", XL(31,225), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9103 {"e_crnot", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BAB}},
9104 {"e_crnor", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9105 {"e_crclr", XL(31,193), XL_MASK, PPCVLE, 0, {BTAB}},
9106 {"e_crxor", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9107 {"e_mcrf", XL(31,16), XL_MASK, PPCVLE, 0, {CRD, CR}},
9108 {"e_slwi", EX(31,112), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9109 {"e_slwi.", EX(31,113), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9110
9111 {"e_crand", XL(31,257), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9112
9113 {"e_rlw", EX(31,560), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
9114 {"e_rlw.", EX(31,561), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
9115
9116 {"e_crset", XL(31,289), XL_MASK, PPCVLE, 0, {BTAB}},
9117 {"e_creqv", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9118
9119 {"e_rlwi", EX(31,624), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9120 {"e_rlwi.", EX(31,625), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9121
9122 {"e_crorc", XL(31,417), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9123
9124 {"e_crmove", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BAB}},
9125 {"e_cror", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9126
9127 {"mtmas1", XSPR(31,467,625), XSPR_MASK, PPCVLE, 0, {RS}},
9128
9129 {"e_srwi", EX(31,1136), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9130 {"e_srwi.", EX(31,1137), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9131
9132 {"se_lbz", SD4(8), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
9133
9134 {"se_stb", SD4(9), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
9135
9136 {"se_lhz", SD4(10), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
9137
9138 {"se_sth", SD4(11), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
9139
9140 {"se_lwz", SD4(12), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
9141
9142 {"se_stw", SD4(13), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
9143
9144 {"se_bge", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9145 {"se_bnl", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9146 {"se_ble", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9147 {"se_bng", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9148 {"se_bne", EBD8IO(28,0,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9149 {"se_bns", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9150 {"se_bnu", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9151 {"se_bf", EBD8IO(28,0,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
9152 {"se_blt", EBD8IO(28,1,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9153 {"se_bgt", EBD8IO(28,1,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9154 {"se_beq", EBD8IO(28,1,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9155 {"se_bso", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9156 {"se_bun", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9157 {"se_bt", EBD8IO(28,1,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
9158 {"se_bc", BD8IO(28), BD8IO_MASK, PPCVLE, 0, {BO16, BI16, B8}},
9159 {"se_b", BD8(58,0,0), BD8_MASK, PPCVLE, 0, {B8}},
9160 {"se_bl", BD8(58,0,1), BD8_MASK, PPCVLE, 0, {B8}},
9161 };
9162
9163 const unsigned int vle_num_opcodes =
9164 sizeof (vle_opcodes) / sizeof (vle_opcodes[0]);
9165 \f
9166 /* The macro table. This is only used by the assembler. */
9167
9168 /* The expressions of the form (-x ! 31) & (x | 31) have the value 0
9169 when x=0; 32-x when x is between 1 and 31; are negative if x is
9170 negative; and are 32 or more otherwise. This is what you want
9171 when, for instance, you are emulating a right shift by a
9172 rotate-left-and-mask, because the underlying instructions support
9173 shifts of size 0 but not shifts of size 32. By comparison, when
9174 extracting x bits from some word you want to use just 32-x, because
9175 the underlying instructions don't support extracting 0 bits but do
9176 support extracting the whole word (32 bits in this case). */
9177
9178 const struct powerpc_macro powerpc_macros[] = {
9179 {"extldi", 4, PPC64, "rldicr %0,%1,%3,(%2)-1"},
9180 {"extldi.", 4, PPC64, "rldicr. %0,%1,%3,(%2)-1"},
9181 {"extrdi", 4, PPC64, "rldicl %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
9182 {"extrdi.", 4, PPC64, "rldicl. %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
9183 {"insrdi", 4, PPC64, "rldimi %0,%1,64-((%2)+(%3)),%3"},
9184 {"insrdi.", 4, PPC64, "rldimi. %0,%1,64-((%2)+(%3)),%3"},
9185 {"rotrdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),0"},
9186 {"rotrdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),0"},
9187 {"sldi", 3, PPC64, "rldicr %0,%1,%2,63-(%2)"},
9188 {"sldi.", 3, PPC64, "rldicr. %0,%1,%2,63-(%2)"},
9189 {"srdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),%2"},
9190 {"srdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),%2"},
9191 {"clrrdi", 3, PPC64, "rldicr %0,%1,0,63-(%2)"},
9192 {"clrrdi.", 3, PPC64, "rldicr. %0,%1,0,63-(%2)"},
9193 {"clrlsldi", 4, PPC64, "rldic %0,%1,%3,(%2)-(%3)"},
9194 {"clrlsldi.",4, PPC64, "rldic. %0,%1,%3,(%2)-(%3)"},
9195
9196 {"extlwi", 4, PPCCOM, "rlwinm %0,%1,%3,0,(%2)-1"},
9197 {"extlwi.", 4, PPCCOM, "rlwinm. %0,%1,%3,0,(%2)-1"},
9198 {"extrwi", 4, PPCCOM, "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
9199 {"extrwi.", 4, PPCCOM, "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
9200 {"inslwi", 4, PPCCOM, "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
9201 {"inslwi.", 4, PPCCOM, "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
9202 {"insrwi", 4, PPCCOM, "rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
9203 {"insrwi.", 4, PPCCOM, "rlwimi. %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
9204 {"rotrwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
9205 {"rotrwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),0,31"},
9206 {"slwi", 3, PPCCOM, "rlwinm %0,%1,%2,0,31-(%2)"},
9207 {"sli", 3, PWRCOM, "rlinm %0,%1,%2,0,31-(%2)"},
9208 {"slwi.", 3, PPCCOM, "rlwinm. %0,%1,%2,0,31-(%2)"},
9209 {"sli.", 3, PWRCOM, "rlinm. %0,%1,%2,0,31-(%2)"},
9210 {"srwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
9211 {"sri", 3, PWRCOM, "rlinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
9212 {"srwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
9213 {"sri.", 3, PWRCOM, "rlinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
9214 {"clrrwi", 3, PPCCOM, "rlwinm %0,%1,0,0,31-(%2)"},
9215 {"clrrwi.", 3, PPCCOM, "rlwinm. %0,%1,0,0,31-(%2)"},
9216 {"clrlslwi", 4, PPCCOM, "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
9217 {"clrlslwi.",4, PPCCOM, "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)"},
9218
9219 {"e_extlwi", 4, PPCVLE, "e_rlwinm %0,%1,%3,0,(%2)-1"},
9220 {"e_extrwi", 4, PPCVLE, "e_rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
9221 {"e_inslwi", 4, PPCVLE, "e_rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
9222 {"e_insrwi", 4, PPCVLE, "e_rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
9223 {"e_rotlwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31"},
9224 {"e_rotrwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
9225 {"e_slwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31-(%2)"},
9226 {"e_srwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
9227 {"e_clrlwi", 3, PPCVLE, "e_rlwinm %0,%1,0,%2,31"},
9228 {"e_clrrwi", 3, PPCVLE, "e_rlwinm %0,%1,0,0,31-(%2)"},
9229 {"e_clrlslwi",4, PPCVLE, "e_rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
9230
9231 /* old SPE instructions have new names with the same opcodes */
9232 {"evsadd", 3, PPCSPE|PPCVLE, "efsadd %0,%1,%2"},
9233 {"evssub", 3, PPCSPE|PPCVLE, "efssub %0,%1,%2"},
9234 {"evsabs", 2, PPCSPE|PPCVLE, "efsabs %0,%1"},
9235 {"evsnabs", 2, PPCSPE|PPCVLE, "efsnabs %0,%1"},
9236 {"evsneg", 2, PPCSPE|PPCVLE, "efsneg %0,%1"},
9237 {"evsmul", 3, PPCSPE|PPCVLE, "efsmul %0,%1,%2"},
9238 {"evsdiv", 3, PPCSPE|PPCVLE, "efsdiv %0,%1,%2"},
9239 {"evscmpgt", 3, PPCSPE|PPCVLE, "efscmpgt %0,%1,%2"},
9240 {"evsgmplt", 3, PPCSPE|PPCVLE, "efscmplt %0,%1,%2"},
9241 {"evsgmpeq", 3, PPCSPE|PPCVLE, "efscmpeq %0,%1,%2"},
9242 {"evscfui", 2, PPCSPE|PPCVLE, "efscfui %0,%1"},
9243 {"evscfsi", 2, PPCSPE|PPCVLE, "efscfsi %0,%1"},
9244 {"evscfuf", 2, PPCSPE|PPCVLE, "efscfuf %0,%1"},
9245 {"evscfsf", 2, PPCSPE|PPCVLE, "efscfsf %0,%1"},
9246 {"evsctui", 2, PPCSPE|PPCVLE, "efsctui %0,%1"},
9247 {"evsctsi", 2, PPCSPE|PPCVLE, "efsctsi %0,%1"},
9248 {"evsctuf", 2, PPCSPE|PPCVLE, "efsctuf %0,%1"},
9249 {"evsctsf", 2, PPCSPE|PPCVLE, "efsctsf %0,%1"},
9250 {"evsctuiz", 2, PPCSPE|PPCVLE, "efsctuiz %0,%1"},
9251 {"evsctsiz", 2, PPCSPE|PPCVLE, "efsctsiz %0,%1"},
9252 {"evststgt", 3, PPCSPE|PPCVLE, "efststgt %0,%1,%2"},
9253 {"evststlt", 3, PPCSPE|PPCVLE, "efststlt %0,%1,%2"},
9254 {"evststeq", 3, PPCSPE|PPCVLE, "efststeq %0,%1,%2"},
9255
9256 /* SPE2 instructions which just are mapped to SPE2 */
9257 {"evdotphsssi", 3, PPCSPE2, "evdotphssmi %0,%1,%2"},
9258 {"evdotphsssia", 3, PPCSPE2, "evdotphssmia %0,%1,%2"},
9259 {"evdotpwsssi", 3, PPCSPE2, "evdotpwssmi %0,%1,%2"},
9260 {"evdotpwsssia", 3, PPCSPE2, "evdotpwssmia %0,%1,%2"}
9261 };
9262
9263 const int powerpc_num_macros =
9264 sizeof (powerpc_macros) / sizeof (powerpc_macros[0]);
9265
9266 /* SPE v2 instruction set from SPE2PIM Rev. 2 08/2011 */
9267 const struct powerpc_opcode spe2_opcodes[] = {
9268 {"evdotpwcssi", VX (4, 128), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9269 {"evdotpwcsmi", VX (4, 129), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9270 {"evdotpwcssfr", VX (4, 130), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9271 {"evdotpwcssf", VX (4, 131), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9272 {"evdotpwgasmf", VX (4, 136), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9273 {"evdotpwxgasmf", VX (4, 137), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9274 {"evdotpwgasmfr", VX (4, 138), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9275 {"evdotpwxgasmfr", VX (4, 139), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9276 {"evdotpwgssmf", VX (4, 140), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9277 {"evdotpwxgssmf", VX (4, 141), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9278 {"evdotpwgssmfr", VX (4, 142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9279 {"evdotpwxgssmfr", VX (4, 143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9280 {"evdotpwcssiaaw3", VX (4, 144), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9281 {"evdotpwcsmiaaw3", VX (4, 145), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9282 {"evdotpwcssfraaw3", VX (4, 146), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9283 {"evdotpwcssfaaw3", VX (4, 147), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9284 {"evdotpwgasmfaa3", VX (4, 152), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9285 {"evdotpwxgasmfaa3", VX (4, 153), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9286 {"evdotpwgasmfraa3", VX (4, 154), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9287 {"evdotpwxgasmfraa3", VX (4, 155), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9288 {"evdotpwgssmfaa3", VX (4, 156), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9289 {"evdotpwxgssmfaa3", VX (4, 157), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9290 {"evdotpwgssmfraa3", VX (4, 158), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9291 {"evdotpwxgssmfraa3", VX (4, 159), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9292 {"evdotpwcssia", VX (4, 160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9293 {"evdotpwcsmia", VX (4, 161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9294 {"evdotpwcssfra", VX (4, 162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9295 {"evdotpwcssfa", VX (4, 163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9296 {"evdotpwgasmfa", VX (4, 168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9297 {"evdotpwxgasmfa", VX (4, 169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9298 {"evdotpwgasmfra", VX (4, 170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9299 {"evdotpwxgasmfra", VX (4, 171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9300 {"evdotpwgssmfa", VX (4, 172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9301 {"evdotpwxgssmfa", VX (4, 173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9302 {"evdotpwgssmfra", VX (4, 174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9303 {"evdotpwxgssmfra", VX (4, 175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9304 {"evdotpwcssiaaw", VX (4, 176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9305 {"evdotpwcsmiaaw", VX (4, 177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9306 {"evdotpwcssfraaw", VX (4, 178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9307 {"evdotpwcssfaaw", VX (4, 179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9308 {"evdotpwgasmfaa", VX (4, 184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9309 {"evdotpwxgasmfaa", VX (4, 185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9310 {"evdotpwgasmfraa", VX (4, 186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9311 {"evdotpwxgasmfraa", VX (4, 187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9312 {"evdotpwgssmfaa", VX (4, 188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9313 {"evdotpwxgssmfaa", VX (4, 189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9314 {"evdotpwgssmfraa", VX (4, 190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9315 {"evdotpwxgssmfraa", VX (4, 191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9316 {"evdotphihcssi", VX (4, 256), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9317 {"evdotplohcssi", VX (4, 257), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9318 {"evdotphihcssf", VX (4, 258), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9319 {"evdotplohcssf", VX (4, 259), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9320 {"evdotphihcsmi", VX (4, 264), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9321 {"evdotplohcsmi", VX (4, 265), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9322 {"evdotphihcssfr", VX (4, 266), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9323 {"evdotplohcssfr", VX (4, 267), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9324 {"evdotphihcssiaaw3", VX (4, 272), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9325 {"evdotplohcssiaaw3", VX (4, 273), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9326 {"evdotphihcssfaaw3", VX (4, 274), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9327 {"evdotplohcssfaaw3", VX (4, 275), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9328 {"evdotphihcsmiaaw3", VX (4, 280), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9329 {"evdotplohcsmiaaw3", VX (4, 281), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9330 {"evdotphihcssfraaw3", VX (4, 282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9331 {"evdotplohcssfraaw3", VX (4, 283), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9332 {"evdotphihcssia", VX (4, 288), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9333 {"evdotplohcssia", VX (4, 289), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9334 {"evdotphihcssfa", VX (4, 290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9335 {"evdotplohcssfa", VX (4, 291), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9336 {"evdotphihcsmia", VX (4, 296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9337 {"evdotplohcsmia", VX (4, 297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9338 {"evdotphihcssfra", VX (4, 298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9339 {"evdotplohcssfra", VX (4, 299), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9340 {"evdotphihcssiaaw", VX (4, 304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9341 {"evdotplohcssiaaw", VX (4, 305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9342 {"evdotphihcssfaaw", VX (4, 306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9343 {"evdotplohcssfaaw", VX (4, 307), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9344 {"evdotphihcsmiaaw", VX (4, 312), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9345 {"evdotplohcsmiaaw", VX (4, 313), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9346 {"evdotphihcssfraaw", VX (4, 314), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9347 {"evdotplohcssfraaw", VX (4, 315), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9348 {"evdotphausi", VX (4, 320), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9349 {"evdotphassi", VX (4, 321), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9350 {"evdotphasusi", VX (4, 322), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9351 {"evdotphassf", VX (4, 323), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9352 {"evdotphsssf", VX (4, 327), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9353 {"evdotphaumi", VX (4, 328), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9354 {"evdotphasmi", VX (4, 329), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9355 {"evdotphasumi", VX (4, 330), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9356 {"evdotphassfr", VX (4, 331), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9357 {"evdotphssmi", VX (4, 333), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9358 {"evdotphsssfr", VX (4, 335), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9359 {"evdotphausiaaw3", VX (4, 336), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9360 {"evdotphassiaaw3", VX (4, 337), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9361 {"evdotphasusiaaw3", VX (4, 338), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9362 {"evdotphassfaaw3", VX (4, 339), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9363 {"evdotphsssiaaw3", VX (4, 341), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9364 {"evdotphsssfaaw3", VX (4, 343), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9365 {"evdotphaumiaaw3", VX (4, 344), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9366 {"evdotphasmiaaw3", VX (4, 345), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9367 {"evdotphasumiaaw3", VX (4, 346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9368 {"evdotphassfraaw3", VX (4, 347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9369 {"evdotphssmiaaw3", VX (4, 349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9370 {"evdotphsssfraaw3", VX (4, 351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9371 {"evdotphausia", VX (4, 352), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9372 {"evdotphassia", VX (4, 353), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9373 {"evdotphasusia", VX (4, 354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9374 {"evdotphassfa", VX (4, 355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9375 {"evdotphsssfa", VX (4, 359), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9376 {"evdotphaumia", VX (4, 360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9377 {"evdotphasmia", VX (4, 361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9378 {"evdotphasumia", VX (4, 362), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9379 {"evdotphassfra", VX (4, 363), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9380 {"evdotphssmia", VX (4, 365), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9381 {"evdotphsssfra", VX (4, 367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9382 {"evdotphausiaaw", VX (4, 368), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9383 {"evdotphassiaaw", VX (4, 369), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9384 {"evdotphasusiaaw", VX (4, 370), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9385 {"evdotphassfaaw", VX (4, 371), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9386 {"evdotphsssiaaw", VX (4, 373), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9387 {"evdotphsssfaaw", VX (4, 375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9388 {"evdotphaumiaaw", VX (4, 376), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9389 {"evdotphasmiaaw", VX (4, 377), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9390 {"evdotphasumiaaw", VX (4, 378), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9391 {"evdotphassfraaw", VX (4, 379), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9392 {"evdotphssmiaaw", VX (4, 381), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9393 {"evdotphsssfraaw", VX (4, 383), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9394 {"evdotp4hgaumi", VX (4, 384), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9395 {"evdotp4hgasmi", VX (4, 385), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9396 {"evdotp4hgasumi", VX (4, 386), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9397 {"evdotp4hgasmf", VX (4, 387), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9398 {"evdotp4hgssmi", VX (4, 388), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9399 {"evdotp4hgssmf", VX (4, 389), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9400 {"evdotp4hxgasmi", VX (4, 390), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9401 {"evdotp4hxgasmf", VX (4, 391), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9402 {"evdotpbaumi", VX (4, 392), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9403 {"evdotpbasmi", VX (4, 393), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9404 {"evdotpbasumi", VX (4, 394), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9405 {"evdotp4hxgssmi", VX (4, 398), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9406 {"evdotp4hxgssmf", VX (4, 399), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9407 {"evdotp4hgaumiaa3", VX (4, 400), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9408 {"evdotp4hgasmiaa3", VX (4, 401), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9409 {"evdotp4hgasumiaa3", VX (4, 402), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9410 {"evdotp4hgasmfaa3", VX (4, 403), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9411 {"evdotp4hgssmiaa3", VX (4, 404), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9412 {"evdotp4hgssmfaa3", VX (4, 405), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9413 {"evdotp4hxgasmiaa3", VX (4, 406), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9414 {"evdotp4hxgasmfaa3", VX (4, 407), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9415 {"evdotpbaumiaaw3", VX (4, 408), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9416 {"evdotpbasmiaaw3", VX (4, 409), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9417 {"evdotpbasumiaaw3", VX (4, 410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9418 {"evdotp4hxgssmiaa3", VX (4, 414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9419 {"evdotp4hxgssmfaa3", VX (4, 415), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9420 {"evdotp4hgaumia", VX (4, 416), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9421 {"evdotp4hgasmia", VX (4, 417), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9422 {"evdotp4hgasumia", VX (4, 418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9423 {"evdotp4hgasmfa", VX (4, 419), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9424 {"evdotp4hgssmia", VX (4, 420), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9425 {"evdotp4hgssmfa", VX (4, 421), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9426 {"evdotp4hxgasmia", VX (4, 422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9427 {"evdotp4hxgasmfa", VX (4, 423), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9428 {"evdotpbaumia", VX (4, 424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9429 {"evdotpbasmia", VX (4, 425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9430 {"evdotpbasumia", VX (4, 426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9431 {"evdotp4hxgssmia", VX (4, 430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9432 {"evdotp4hxgssmfa", VX (4, 431), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9433 {"evdotp4hgaumiaa", VX (4, 432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9434 {"evdotp4hgasmiaa", VX (4, 433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9435 {"evdotp4hgasumiaa", VX (4, 434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9436 {"evdotp4hgasmfaa", VX (4, 435), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9437 {"evdotp4hgssmiaa", VX (4, 436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9438 {"evdotp4hgssmfaa", VX (4, 437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9439 {"evdotp4hxgasmiaa", VX (4, 438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9440 {"evdotp4hxgasmfaa", VX (4, 439), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9441 {"evdotpbaumiaaw", VX (4, 440), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9442 {"evdotpbasmiaaw", VX (4, 441), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9443 {"evdotpbasumiaaw", VX (4, 442), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9444 {"evdotp4hxgssmiaa", VX (4, 446), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9445 {"evdotp4hxgssmfaa", VX (4, 447), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9446 {"evdotpwausi", VX (4, 448), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9447 {"evdotpwassi", VX (4, 449), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9448 {"evdotpwasusi", VX (4, 450), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9449 {"evdotpwaumi", VX (4, 456), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9450 {"evdotpwasmi", VX (4, 457), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9451 {"evdotpwasumi", VX (4, 458), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9452 {"evdotpwssmi", VX (4, 461), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9453 {"evdotpwausiaa3", VX (4, 464), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9454 {"evdotpwassiaa3", VX (4, 465), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9455 {"evdotpwasusiaa3", VX (4, 466), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9456 {"evdotpwsssiaa3", VX (4, 469), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9457 {"evdotpwaumiaa3", VX (4, 472), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9458 {"evdotpwasmiaa3", VX (4, 473), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9459 {"evdotpwasumiaa3", VX (4, 474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9460 {"evdotpwssmiaa3", VX (4, 477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9461 {"evdotpwausia", VX (4, 480), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9462 {"evdotpwassia", VX (4, 481), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9463 {"evdotpwasusia", VX (4, 482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9464 {"evdotpwaumia", VX (4, 488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9465 {"evdotpwasmia", VX (4, 489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9466 {"evdotpwasumia", VX (4, 490), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9467 {"evdotpwssmia", VX (4, 493), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9468 {"evdotpwausiaa", VX (4, 496), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9469 {"evdotpwassiaa", VX (4, 497), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9470 {"evdotpwasusiaa", VX (4, 498), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9471 {"evdotpwsssiaa", VX (4, 501), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9472 {"evdotpwaumiaa", VX (4, 504), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9473 {"evdotpwasmiaa", VX (4, 505), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9474 {"evdotpwasumiaa", VX (4, 506), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9475 {"evdotpwssmiaa", VX (4, 509), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9476 {"evaddib", VX (4, 515), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
9477 {"evaddih", VX (4, 513), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
9478 {"evsubifh", VX (4, 517), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
9479 {"evsubifb", VX (4, 519), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
9480 {"evabsb", VX_RB_CONST(4, 520, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9481 {"evabsh", VX_RB_CONST(4, 520, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9482 {"evabsd", VX_RB_CONST(4, 520, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9483 {"evabss", VX_RB_CONST(4, 520, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9484 {"evabsbs", VX_RB_CONST(4, 520, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9485 {"evabshs", VX_RB_CONST(4, 520, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9486 {"evabsds", VX_RB_CONST(4, 520, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9487 {"evnegwo", VX_RB_CONST(4, 521, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9488 {"evnegb", VX_RB_CONST(4, 521, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9489 {"evnegbo", VX_RB_CONST(4, 521, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9490 {"evnegh", VX_RB_CONST(4, 521, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9491 {"evnegho", VX_RB_CONST(4, 521, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9492 {"evnegd", VX_RB_CONST(4, 521, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9493 {"evnegs", VX_RB_CONST(4, 521, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9494 {"evnegwos", VX_RB_CONST(4, 521, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9495 {"evnegbs", VX_RB_CONST(4, 521, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9496 {"evnegbos", VX_RB_CONST(4, 521, 11), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9497 {"evneghs", VX_RB_CONST(4, 521, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9498 {"evneghos", VX_RB_CONST(4, 521, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9499 {"evnegds", VX_RB_CONST(4, 521, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9500 {"evextzb", VX_RB_CONST(4, 522, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9501 {"evextsbh", VX_RB_CONST(4, 522, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9502 {"evextsw", VX_RB_CONST(4, 523, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9503 {"evrndwh", VX_RB_CONST(4, 524, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9504 {"evrndhb", VX_RB_CONST(4, 524, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9505 {"evrnddw", VX_RB_CONST(4, 524, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9506 {"evrndwhus", VX_RB_CONST(4, 524, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9507 {"evrndwhss", VX_RB_CONST(4, 524, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9508 {"evrndhbus", VX_RB_CONST(4, 524, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9509 {"evrndhbss", VX_RB_CONST(4, 524, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9510 {"evrnddwus", VX_RB_CONST(4, 524, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9511 {"evrnddwss", VX_RB_CONST(4, 524, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9512 {"evrndwnh", VX_RB_CONST(4, 524, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9513 {"evrndhnb", VX_RB_CONST(4, 524, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9514 {"evrnddnw", VX_RB_CONST(4, 524, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9515 {"evrndwnhus", VX_RB_CONST(4, 524, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9516 {"evrndwnhss", VX_RB_CONST(4, 524, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9517 {"evrndhnbus", VX_RB_CONST(4, 524, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9518 {"evrndhnbss", VX_RB_CONST(4, 524, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9519 {"evrnddnwus", VX_RB_CONST(4, 524, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9520 {"evrnddnwss", VX_RB_CONST(4, 524, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9521 {"evcntlzh", VX_RB_CONST(4, 525, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9522 {"evcntlsh", VX_RB_CONST(4, 526, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9523 {"evpopcntb", VX_RB_CONST(4, 526, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9524 {"circinc", VX (4, 528), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9525 {"evunpkhibui", VX_RB_CONST(4, 540, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9526 {"evunpkhibsi", VX_RB_CONST(4, 540, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9527 {"evunpkhihui", VX_RB_CONST(4, 540, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9528 {"evunpkhihsi", VX_RB_CONST(4, 540, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9529 {"evunpklobui", VX_RB_CONST(4, 540, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9530 {"evunpklobsi", VX_RB_CONST(4, 540, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9531 {"evunpklohui", VX_RB_CONST(4, 540, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9532 {"evunpklohsi", VX_RB_CONST(4, 540, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9533 {"evunpklohf", VX_RB_CONST(4, 540, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9534 {"evunpkhihf", VX_RB_CONST(4, 540, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9535 {"evunpklowgsf", VX_RB_CONST(4, 540, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9536 {"evunpkhiwgsf", VX_RB_CONST(4, 540, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9537 {"evsatsduw", VX_RB_CONST(4, 540, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9538 {"evsatsdsw", VX_RB_CONST(4, 540, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9539 {"evsatshub", VX_RB_CONST(4, 540, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9540 {"evsatshsb", VX_RB_CONST(4, 540, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9541 {"evsatuwuh", VX_RB_CONST(4, 540, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9542 {"evsatswsh", VX_RB_CONST(4, 540, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9543 {"evsatswuh", VX_RB_CONST(4, 540, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9544 {"evsatuhub", VX_RB_CONST(4, 540, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9545 {"evsatuduw", VX_RB_CONST(4, 540, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9546 {"evsatuwsw", VX_RB_CONST(4, 540, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9547 {"evsatshuh", VX_RB_CONST(4, 540, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9548 {"evsatuhsh", VX_RB_CONST(4, 540, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9549 {"evsatswuw", VX_RB_CONST(4, 540, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9550 {"evsatswgsdf", VX_RB_CONST(4, 540, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9551 {"evsatsbub", VX_RB_CONST(4, 540, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9552 {"evsatubsb", VX_RB_CONST(4, 540, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9553 {"evmaxhpuw", VX_RB_CONST(4, 541, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9554 {"evmaxhpsw", VX_RB_CONST(4, 541, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9555 {"evmaxbpuh", VX_RB_CONST(4, 541, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9556 {"evmaxbpsh", VX_RB_CONST(4, 541, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9557 {"evmaxwpud", VX_RB_CONST(4, 541, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9558 {"evmaxwpsd", VX_RB_CONST(4, 541, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9559 {"evminhpuw", VX_RB_CONST(4, 541, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9560 {"evminhpsw", VX_RB_CONST(4, 541, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9561 {"evminbpuh", VX_RB_CONST(4, 541, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9562 {"evminbpsh", VX_RB_CONST(4, 541, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9563 {"evminwpud", VX_RB_CONST(4, 541, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9564 {"evminwpsd", VX_RB_CONST(4, 541, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9565 {"evmaxmagws", VX (4, 543), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9566 {"evsl", VX (4, 549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9567 {"evsli", VX (4, 551), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
9568 {"evsplatie", VX_RB_CONST (4, 553, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9569 {"evsplatib", VX_RB_CONST (4, 553, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9570 {"evsplatibe", VX_RB_CONST (4, 553, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9571 {"evsplatih", VX_RB_CONST (4, 553, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9572 {"evsplatihe", VX_RB_CONST (4, 553, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9573 {"evsplatid", VX_RB_CONST (4, 553, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9574 {"evsplatia", VX_RB_CONST (4, 553, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9575 {"evsplatiea", VX_RB_CONST (4, 553, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9576 {"evsplatiba", VX_RB_CONST (4, 553, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9577 {"evsplatibea", VX_RB_CONST (4, 553, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9578 {"evsplatiha", VX_RB_CONST (4, 553, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9579 {"evsplatihea", VX_RB_CONST (4, 553, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9580 {"evsplatida", VX_RB_CONST (4, 553, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9581 {"evsplatfio", VX_RB_CONST (4, 555, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9582 {"evsplatfib", VX_RB_CONST (4, 555, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9583 {"evsplatfibo", VX_RB_CONST (4, 555, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9584 {"evsplatfih", VX_RB_CONST (4, 555, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9585 {"evsplatfiho", VX_RB_CONST (4, 555, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9586 {"evsplatfid", VX_RB_CONST (4, 555, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9587 {"evsplatfia", VX_RB_CONST (4, 555, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9588 {"evsplatfioa", VX_RB_CONST (4, 555, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9589 {"evsplatfiba", VX_RB_CONST (4, 555, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9590 {"evsplatfiboa", VX_RB_CONST (4, 555, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9591 {"evsplatfiha", VX_RB_CONST (4, 555, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9592 {"evsplatfihoa", VX_RB_CONST (4, 555, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9593 {"evsplatfida", VX_RB_CONST (4, 555, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
9594 {"evcmpgtdu", VX_SPE_CRFD (4, 560, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9595 {"evcmpgtds", VX_SPE_CRFD (4, 561, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9596 {"evcmpltdu", VX_SPE_CRFD (4, 562, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9597 {"evcmpltds", VX_SPE_CRFD (4, 563, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9598 {"evcmpeqd", VX_SPE_CRFD (4, 564, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
9599 {"evswapbhilo", VX (4, 568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9600 {"evswapblohi", VX (4, 569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9601 {"evswaphhilo", VX (4, 570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9602 {"evswaphlohi", VX (4, 571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9603 {"evswaphe", VX (4, 572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9604 {"evswaphhi", VX (4, 573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9605 {"evswaphlo", VX (4, 574), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9606 {"evswapho", VX (4, 575), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9607 {"evinsb", VX (4, 584), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
9608 {"evxtrb", VX (4, 586), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
9609 {"evsplath", VX_SPE2_HH (4, 588, 0, 0), VX_SPE2_HH_MASK, PPCSPE2, 0, {RD, RA, HH}},
9610 {"evsplatb", VX_SPE2_SPLATB (4, 588, 2), VX_SPE2_SPLATB_MASK, PPCSPE2, 0, {RD, RA, BBB}},
9611 {"evinsh", VX_SPE2_DDHH (4, 589, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
9612 {"evclrbe", VX_SPE2_CLR (4, 590, 0), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
9613 {"evclrbo", VX_SPE2_CLR (4, 590, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
9614 {"evclrh", VX_SPE2_CLR (4, 591, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
9615 {"evxtrh", VX_SPE2_DDHH (4, 591, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
9616 {"evselbitm0", VX (4, 592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9617 {"evselbitm1", VX (4, 593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9618 {"evselbit", VX (4, 594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9619 {"evperm", VX (4, 596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9620 {"evperm2", VX (4, 597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9621 {"evperm3", VX (4, 598), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9622 {"evxtrd", VX (4, 600), VX_OFF_SPE2_MASK, PPCSPE2, 0, {RD, RA, RB, VX_OFF_SPE2}},
9623 {"evsrbu", VX (4, 608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9624 {"evsrbs", VX (4, 609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9625 {"evsrbiu", VX (4, 610), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9626 {"evsrbis", VX (4, 611), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9627 {"evslb", VX (4, 612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9628 {"evrlb", VX (4, 613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9629 {"evslbi", VX (4, 614), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9630 {"evrlbi", VX (4, 615), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
9631 {"evsrhu", VX (4, 616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9632 {"evsrhs", VX (4, 617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9633 {"evsrhiu", VX (4, 618), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9634 {"evsrhis", VX (4, 619), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9635 {"evslh", VX (4, 620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9636 {"evrlh", VX (4, 621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9637 {"evslhi", VX (4, 622), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9638 {"evrlhi", VX (4, 623), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
9639 {"evsru", VX (4, 624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9640 {"evsrs", VX (4, 625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9641 {"evsriu", VX (4, 626), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
9642 {"evsris", VX (4, 627), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
9643 {"evlvsl", VX (4, 628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9644 {"evlvsr", VX (4, 629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9645 {"evsroiu", VX_SPE2_OCTET (4, 631, 0), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
9646 {"evsrois", VX_SPE2_OCTET (4, 631, 1), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
9647 {"evsloi", VX_SPE2_OCTET (4, 631, 2), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
9648 {"evldbx", VX (4, 774), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9649 {"evldb", VX (4, 775), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8, RA}},
9650 {"evlhhsplathx", VX (4, 778), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9651 {"evlhhsplath", VX (4, 779), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2, RA}},
9652 {"evlwbsplatwx", VX (4, 786), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9653 {"evlwbsplatw", VX (4, 787), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9654 {"evlwhsplatwx", VX (4, 794), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9655 {"evlwhsplatw", VX (4, 795), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9656 {"evlbbsplatbx", VX (4, 798), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9657 {"evlbbsplatb", VX (4, 799), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1, RA}},
9658 {"evstdbx", VX (4, 806), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9659 {"evstdb", VX (4, 807), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8, RA}},
9660 {"evlwbex", VX (4, 810), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9661 {"evlwbe", VX (4, 811), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9662 {"evlwboux", VX (4, 812), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9663 {"evlwbou", VX (4, 813), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9664 {"evlwbosx", VX (4, 814), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9665 {"evlwbos", VX (4, 815), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
9666 {"evstwbex", VX (4, 818), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9667 {"evstwbe", VX (4, 819), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
9668 {"evstwbox", VX (4, 822), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9669 {"evstwbo", VX (4, 823), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
9670 {"evstwbx", VX (4, 826), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9671 {"evstwb", VX (4, 827), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
9672 {"evsthbx", VX (4, 830), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9673 {"evsthb", VX (4, 831), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2, RA}},
9674 {"evlddmx", VX (4, 832), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9675 {"evlddu", VX (4, 833), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9676 {"evldwmx", VX (4, 834), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9677 {"evldwu", VX (4, 835), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9678 {"evldhmx", VX (4, 836), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9679 {"evldhu", VX (4, 837), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9680 {"evldbmx", VX (4, 838), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9681 {"evldbu", VX (4, 839), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
9682 {"evlhhesplatmx", VX (4, 840), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9683 {"evlhhesplatu", VX (4, 841), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9684 {"evlhhsplathmx", VX (4, 842), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9685 {"evlhhsplathu", VX (4, 843), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9686 {"evlhhousplatmx", VX (4, 844), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9687 {"evlhhousplatu", VX (4, 845), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9688 {"evlhhossplatmx", VX (4, 846), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9689 {"evlhhossplatu", VX (4, 847), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
9690 {"evlwhemx", VX (4, 848), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9691 {"evlwheu", VX (4, 849), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9692 {"evlwbsplatwmx", VX (4, 850), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9693 {"evlwbsplatwu", VX (4, 851), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9694 {"evlwhoumx", VX (4, 852), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9695 {"evlwhouu", VX (4, 853), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9696 {"evlwhosmx", VX (4, 854), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9697 {"evlwhosu", VX (4, 855), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9698 {"evlwwsplatmx", VX (4, 856), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9699 {"evlwwsplatu", VX (4, 857), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9700 {"evlwhsplatwmx", VX (4, 858), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9701 {"evlwhsplatwu", VX (4, 859), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9702 {"evlwhsplatmx", VX (4, 860), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9703 {"evlwhsplatu", VX (4, 861), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9704 {"evlbbsplatbmx", VX (4, 862), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9705 {"evlbbsplatbu", VX (4, 863), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1_EX0, RA}},
9706 {"evstddmx", VX (4, 864), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9707 {"evstddu", VX (4, 865), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9708 {"evstdwmx", VX (4, 866), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9709 {"evstdwu", VX (4, 867), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9710 {"evstdhmx", VX (4, 868), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9711 {"evstdhu", VX (4, 869), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9712 {"evstdbmx", VX (4, 870), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9713 {"evstdbu", VX (4, 871), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
9714 {"evlwbemx", VX (4, 874), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9715 {"evlwbeu", VX (4, 875), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9716 {"evlwboumx", VX (4, 876), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9717 {"evlwbouu", VX (4, 877), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9718 {"evlwbosmx", VX (4, 878), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9719 {"evlwbosu", VX (4, 879), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
9720 {"evstwhemx", VX (4, 880), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9721 {"evstwheu", VX (4, 881), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9722 {"evstwbemx", VX (4, 882), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9723 {"evstwbeu", VX (4, 883), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9724 {"evstwhomx", VX (4, 884), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9725 {"evstwhou", VX (4, 885), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9726 {"evstwbomx", VX (4, 886), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9727 {"evstwbou", VX (4, 887), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9728 {"evstwwemx", VX (4, 888), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9729 {"evstwweu", VX (4, 889), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9730 {"evstwbmx", VX (4, 890), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9731 {"evstwbu", VX (4, 891), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9732 {"evstwwomx", VX (4, 892), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9733 {"evstwwou", VX (4, 893), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
9734 {"evsthbmx", VX (4, 894), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
9735 {"evsthbu", VX (4, 895), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2_EX0, RA}},
9736 {"evmhusi", VX (4, 1024), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9737 {"evmhssi", VX (4, 1025), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9738 {"evmhsusi", VX (4, 1026), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9739 {"evmhssf", VX (4, 1028), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9740 {"evmhumi", VX (4, 1029), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9741 {"evmhssfr", VX (4, 1030), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9742 {"evmhesumi", VX (4, 1034), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9743 {"evmhosumi", VX (4, 1038), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9744 {"evmbeumi", VX (4, 1048), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9745 {"evmbesmi", VX (4, 1049), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9746 {"evmbesumi", VX (4, 1050), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9747 {"evmboumi", VX (4, 1052), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9748 {"evmbosmi", VX (4, 1053), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9749 {"evmbosumi", VX (4, 1054), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9750 {"evmhesumia", VX (4, 1066), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9751 {"evmhosumia", VX (4, 1070), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9752 {"evmbeumia", VX (4, 1080), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9753 {"evmbesmia", VX (4, 1081), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9754 {"evmbesumia", VX (4, 1082), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9755 {"evmboumia", VX (4, 1084), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9756 {"evmbosmia", VX (4, 1085), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9757 {"evmbosumia", VX (4, 1086), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9758 {"evmwusiw", VX (4, 1088), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9759 {"evmwssiw", VX (4, 1089), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9760 {"evmwhssfr", VX (4, 1094), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9761 {"evmwehgsmfr", VX (4, 1110), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9762 {"evmwehgsmf", VX (4, 1111), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9763 {"evmwohgsmfr", VX (4, 1118), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9764 {"evmwohgsmf", VX (4, 1119), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9765 {"evmwhssfra", VX (4, 1126), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9766 {"evmwehgsmfra", VX (4, 1142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9767 {"evmwehgsmfa", VX (4, 1143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9768 {"evmwohgsmfra", VX (4, 1150), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9769 {"evmwohgsmfa", VX (4, 1151), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9770 {"evaddusiaa", VX_RB_CONST(4, 1152, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9771 {"evaddssiaa", VX_RB_CONST(4, 1153, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9772 {"evsubfusiaa", VX_RB_CONST(4, 1154, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9773 {"evsubfssiaa", VX_RB_CONST(4, 1155, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9774 {"evaddsmiaa", VX_RB_CONST(4, 1156, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9775 {"evsubfsmiaa", VX_RB_CONST(4, 1158, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9776 {"evaddh", VX (4, 1160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9777 {"evaddhss", VX (4, 1161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9778 {"evsubfh", VX (4, 1162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9779 {"evsubfhss", VX (4, 1163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9780 {"evaddhx", VX (4, 1164), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9781 {"evaddhxss", VX (4, 1165), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9782 {"evsubfhx", VX (4, 1166), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9783 {"evsubfhxss", VX (4, 1167), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9784 {"evaddd", VX (4, 1168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9785 {"evadddss", VX (4, 1169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9786 {"evsubfd", VX (4, 1170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9787 {"evsubfdss", VX (4, 1171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9788 {"evaddb", VX (4, 1172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9789 {"evaddbss", VX (4, 1173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9790 {"evsubfb", VX (4, 1174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9791 {"evsubfbss", VX (4, 1175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9792 {"evaddsubfh", VX (4, 1176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9793 {"evaddsubfhss", VX (4, 1177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9794 {"evsubfaddh", VX (4, 1178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9795 {"evsubfaddhss", VX (4, 1179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9796 {"evaddsubfhx", VX (4, 1180), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9797 {"evaddsubfhxss", VX (4, 1181), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9798 {"evsubfaddhx", VX (4, 1182), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9799 {"evsubfaddhxss", VX (4, 1183), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9800 {"evadddus", VX (4, 1184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9801 {"evaddbus", VX (4, 1185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9802 {"evsubfdus", VX (4, 1186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9803 {"evsubfbus", VX (4, 1187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9804 {"evaddwus", VX (4, 1188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9805 {"evaddwxus", VX (4, 1189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9806 {"evsubfwus", VX (4, 1190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9807 {"evsubfwxus", VX (4, 1191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9808 {"evadd2subf2h", VX (4, 1192), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9809 {"evadd2subf2hss", VX (4, 1193), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9810 {"evsubf2add2h", VX (4, 1194), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9811 {"evsubf2add2hss", VX (4, 1195), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9812 {"evaddhus", VX (4, 1196), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9813 {"evaddhxus", VX (4, 1197), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9814 {"evsubfhus", VX (4, 1198), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9815 {"evsubfhxus", VX (4, 1199), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9816 {"evaddwss", VX (4, 1201), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9817 {"evsubfwss", VX (4, 1203), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9818 {"evaddwx", VX (4, 1204), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9819 {"evaddwxss", VX (4, 1205), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9820 {"evsubfwx", VX (4, 1206), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9821 {"evsubfwxss", VX (4, 1207), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9822 {"evaddsubfw", VX (4, 1208), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9823 {"evaddsubfwss", VX (4, 1209), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9824 {"evsubfaddw", VX (4, 1210), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9825 {"evsubfaddwss", VX (4, 1211), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9826 {"evaddsubfwx", VX (4, 1212), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9827 {"evaddsubfwxss", VX (4, 1213), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9828 {"evsubfaddwx", VX (4, 1214), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9829 {"evsubfaddwxss", VX (4, 1215), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9830 {"evmar", VX_SPE2_EVMAR (4, 1220), VX_SPE2_EVMAR_MASK, PPCSPE2, 0, {RD}},
9831 {"evsumwu", VX_RB_CONST(4, 1221, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9832 {"evsumws", VX_RB_CONST(4, 1221, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9833 {"evsum4bu", VX_RB_CONST(4, 1221, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9834 {"evsum4bs", VX_RB_CONST(4, 1221, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9835 {"evsum2hu", VX_RB_CONST(4, 1221, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9836 {"evsum2hs", VX_RB_CONST(4, 1221, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9837 {"evdiff2his", VX_RB_CONST(4, 1221, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9838 {"evsum2his", VX_RB_CONST(4, 1221, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9839 {"evsumwua", VX_RB_CONST(4, 1221, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9840 {"evsumwsa", VX_RB_CONST(4, 1221, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9841 {"evsum4bua", VX_RB_CONST(4, 1221, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9842 {"evsum4bsa", VX_RB_CONST(4, 1221, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9843 {"evsum2hua", VX_RB_CONST(4, 1221, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9844 {"evsum2hsa", VX_RB_CONST(4, 1221, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9845 {"evdiff2hisa", VX_RB_CONST(4, 1221, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9846 {"evsum2hisa", VX_RB_CONST(4, 1221, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9847 {"evsumwuaa", VX_RB_CONST(4, 1221, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9848 {"evsumwsaa", VX_RB_CONST(4, 1221, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9849 {"evsum4buaaw", VX_RB_CONST(4, 1221, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9850 {"evsum4bsaaw", VX_RB_CONST(4, 1221, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9851 {"evsum2huaaw", VX_RB_CONST(4, 1221, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9852 {"evsum2hsaaw", VX_RB_CONST(4, 1221, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9853 {"evdiff2hisaaw", VX_RB_CONST(4, 1221, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9854 {"evsum2hisaaw", VX_RB_CONST(4, 1221, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
9855 {"evdivwsf", VX (4, 1228), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9856 {"evdivwuf", VX (4, 1229), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9857 {"evdivs", VX (4, 1230), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9858 {"evdivu", VX (4, 1231), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9859 {"evaddwegsi", VX (4, 1232), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9860 {"evaddwegsf", VX (4, 1233), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9861 {"evsubfwegsi", VX (4, 1234), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9862 {"evsubfwegsf", VX (4, 1235), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9863 {"evaddwogsi", VX (4, 1236), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9864 {"evaddwogsf", VX (4, 1237), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9865 {"evsubfwogsi", VX (4, 1238), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9866 {"evsubfwogsf", VX (4, 1239), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9867 {"evaddhhiuw", VX (4, 1240), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9868 {"evaddhhisw", VX (4, 1241), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9869 {"evsubfhhiuw", VX (4, 1242), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9870 {"evsubfhhisw", VX (4, 1243), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9871 {"evaddhlouw", VX (4, 1244), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9872 {"evaddhlosw", VX (4, 1245), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9873 {"evsubfhlouw", VX (4, 1246), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9874 {"evsubfhlosw", VX (4, 1247), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9875 {"evmhesusiaaw", VX (4, 1282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9876 {"evmhosusiaaw", VX (4, 1286), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9877 {"evmhesumiaaw", VX (4, 1290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9878 {"evmhosumiaaw", VX (4, 1294), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9879 {"evmbeusiaah", VX (4, 1296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9880 {"evmbessiaah", VX (4, 1297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9881 {"evmbesusiaah", VX (4, 1298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9882 {"evmbousiaah", VX (4, 1300), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9883 {"evmbossiaah", VX (4, 1301), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9884 {"evmbosusiaah", VX (4, 1302), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9885 {"evmbeumiaah", VX (4, 1304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9886 {"evmbesmiaah", VX (4, 1305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9887 {"evmbesumiaah", VX (4, 1306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9888 {"evmboumiaah", VX (4, 1308), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9889 {"evmbosmiaah", VX (4, 1309), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9890 {"evmbosumiaah", VX (4, 1310), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9891 {"evmwlusiaaw3", VX (4, 1346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9892 {"evmwlssiaaw3", VX (4, 1347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9893 {"evmwhssfraaw3", VX (4, 1348), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9894 {"evmwhssfaaw3", VX (4, 1349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9895 {"evmwhssfraaw", VX (4, 1350), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9896 {"evmwhssfaaw", VX (4, 1351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9897 {"evmwlumiaaw3", VX (4, 1354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9898 {"evmwlsmiaaw3", VX (4, 1355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9899 {"evmwusiaa", VX (4, 1360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9900 {"evmwssiaa", VX (4, 1361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9901 {"evmwehgsmfraa", VX (4, 1366), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9902 {"evmwehgsmfaa", VX (4, 1367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9903 {"evmwohgsmfraa", VX (4, 1374), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9904 {"evmwohgsmfaa", VX (4, 1375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9905 {"evmhesusianw", VX (4, 1410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9906 {"evmhosusianw", VX (4, 1414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9907 {"evmhesumianw", VX (4, 1418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9908 {"evmhosumianw", VX (4, 1422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9909 {"evmbeusianh", VX (4, 1424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9910 {"evmbessianh", VX (4, 1425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9911 {"evmbesusianh", VX (4, 1426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9912 {"evmbousianh", VX (4, 1428), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9913 {"evmbossianh", VX (4, 1429), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9914 {"evmbosusianh", VX (4, 1430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9915 {"evmbeumianh", VX (4, 1432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9916 {"evmbesmianh", VX (4, 1433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9917 {"evmbesumianh", VX (4, 1434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9918 {"evmboumianh", VX (4, 1436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9919 {"evmbosmianh", VX (4, 1437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9920 {"evmbosumianh", VX (4, 1438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9921 {"evmwlusianw3", VX (4, 1474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9922 {"evmwlssianw3", VX (4, 1475), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9923 {"evmwhssfranw3", VX (4, 1476), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9924 {"evmwhssfanw3", VX (4, 1477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9925 {"evmwhssfranw", VX (4, 1478), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9926 {"evmwhssfanw", VX (4, 1479), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9927 {"evmwlumianw3", VX (4, 1482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9928 {"evmwlsmianw3", VX (4, 1483), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9929 {"evmwusian", VX (4, 1488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9930 {"evmwssian", VX (4, 1489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9931 {"evmwehgsmfran", VX (4, 1494), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9932 {"evmwehgsmfan", VX (4, 1495), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9933 {"evmwohgsmfran", VX (4, 1502), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9934 {"evmwohgsmfan", VX (4, 1503), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9935 {"evseteqb", VX (4, 1536), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9936 {"evseteqb.", VX (4, 1537), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9937 {"evseteqh", VX (4, 1538), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9938 {"evseteqh.", VX (4, 1539), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9939 {"evseteqw", VX (4, 1540), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9940 {"evseteqw.", VX (4, 1541), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9941 {"evsetgthu", VX (4, 1544), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9942 {"evsetgthu.", VX (4, 1545), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9943 {"evsetgths", VX (4, 1546), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9944 {"evsetgths.", VX (4, 1547), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9945 {"evsetgtwu", VX (4, 1548), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9946 {"evsetgtwu.", VX (4, 1549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9947 {"evsetgtws", VX (4, 1550), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9948 {"evsetgtws.", VX (4, 1551), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9949 {"evsetgtbu", VX (4, 1552), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9950 {"evsetgtbu.", VX (4, 1553), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9951 {"evsetgtbs", VX (4, 1554), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9952 {"evsetgtbs.", VX (4, 1555), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9953 {"evsetltbu", VX (4, 1556), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9954 {"evsetltbu.", VX (4, 1557), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9955 {"evsetltbs", VX (4, 1558), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9956 {"evsetltbs.", VX (4, 1559), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9957 {"evsetlthu", VX (4, 1560), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9958 {"evsetlthu.", VX (4, 1561), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9959 {"evsetlths", VX (4, 1562), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9960 {"evsetlths.", VX (4, 1563), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9961 {"evsetltwu", VX (4, 1564), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9962 {"evsetltwu.", VX (4, 1565), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9963 {"evsetltws", VX (4, 1566), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9964 {"evsetltws.", VX (4, 1567), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9965 {"evsaduw", VX (4, 1568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9966 {"evsadsw", VX (4, 1569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9967 {"evsad4ub", VX (4, 1570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9968 {"evsad4sb", VX (4, 1571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9969 {"evsad2uh", VX (4, 1572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9970 {"evsad2sh", VX (4, 1573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9971 {"evsaduwa", VX (4, 1576), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9972 {"evsadswa", VX (4, 1577), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9973 {"evsad4uba", VX (4, 1578), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9974 {"evsad4sba", VX (4, 1579), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9975 {"evsad2uha", VX (4, 1580), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9976 {"evsad2sha", VX (4, 1581), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9977 {"evabsdifuw", VX (4, 1584), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9978 {"evabsdifsw", VX (4, 1585), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9979 {"evabsdifub", VX (4, 1586), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9980 {"evabsdifsb", VX (4, 1587), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9981 {"evabsdifuh", VX (4, 1588), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9982 {"evabsdifsh", VX (4, 1589), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9983 {"evsaduwaa", VX (4, 1592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9984 {"evsadswaa", VX (4, 1593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9985 {"evsad4ubaaw", VX (4, 1594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9986 {"evsad4sbaaw", VX (4, 1595), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9987 {"evsad2uhaaw", VX (4, 1596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9988 {"evsad2shaaw", VX (4, 1597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9989 {"evpkshubs", VX (4, 1600), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9990 {"evpkshsbs", VX (4, 1601), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9991 {"evpkswuhs", VX (4, 1602), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9992 {"evpkswshs", VX (4, 1603), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9993 {"evpkuhubs", VX (4, 1604), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9994 {"evpkuwuhs", VX (4, 1605), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9995 {"evpkswshilvs", VX (4, 1606), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9996 {"evpkswgshefrs", VX (4, 1607), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9997 {"evpkswshfrs", VX (4, 1608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9998 {"evpkswshilvfrs", VX (4, 1609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
9999 {"evpksdswfrs", VX (4, 1610), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10000 {"evpksdshefrs", VX (4, 1611), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10001 {"evpkuduws", VX (4, 1612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10002 {"evpksdsws", VX (4, 1613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10003 {"evpkswgswfrs", VX (4, 1614), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10004 {"evilveh", VX (4, 1616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10005 {"evilveoh", VX (4, 1617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10006 {"evilvhih", VX (4, 1618), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10007 {"evilvhiloh", VX (4, 1619), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10008 {"evilvloh", VX (4, 1620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10009 {"evilvlohih", VX (4, 1621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10010 {"evilvoeh", VX (4, 1622), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10011 {"evilvoh", VX (4, 1623), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10012 {"evdlveb", VX (4, 1624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10013 {"evdlveh", VX (4, 1625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10014 {"evdlveob", VX (4, 1626), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10015 {"evdlveoh", VX (4, 1627), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10016 {"evdlvob", VX (4, 1628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10017 {"evdlvoh", VX (4, 1629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10018 {"evdlvoeb", VX (4, 1630), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10019 {"evdlvoeh", VX (4, 1631), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10020 {"evmaxbu", VX (4, 1632), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10021 {"evmaxbs", VX (4, 1633), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10022 {"evmaxhu", VX (4, 1634), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10023 {"evmaxhs", VX (4, 1635), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10024 {"evmaxwu", VX (4, 1636), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10025 {"evmaxws", VX (4, 1637), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10026 {"evmaxdu", VX (4, 1638), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10027 {"evmaxds", VX (4, 1639), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10028 {"evminbu", VX (4, 1640), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10029 {"evminbs", VX (4, 1641), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10030 {"evminhu", VX (4, 1642), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10031 {"evminhs", VX (4, 1643), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10032 {"evminwu", VX (4, 1644), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10033 {"evminws", VX (4, 1645), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10034 {"evmindu", VX (4, 1646), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10035 {"evminds", VX (4, 1647), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10036 {"evavgwu", VX (4, 1648), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10037 {"evavgws", VX (4, 1649), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10038 {"evavgbu", VX (4, 1650), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10039 {"evavgbs", VX (4, 1651), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10040 {"evavghu", VX (4, 1652), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10041 {"evavghs", VX (4, 1653), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10042 {"evavgdu", VX (4, 1654), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10043 {"evavgds", VX (4, 1655), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10044 {"evavgwur", VX (4, 1656), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10045 {"evavgwsr", VX (4, 1657), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10046 {"evavgbur", VX (4, 1658), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10047 {"evavgbsr", VX (4, 1659), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10048 {"evavghur", VX (4, 1660), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10049 {"evavghsr", VX (4, 1661), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10050 {"evavgdur", VX (4, 1662), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10051 {"evavgdsr", VX (4, 1663), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10052 };
10053
10054 const unsigned int spe2_num_opcodes =
10055 sizeof (spe2_opcodes) / sizeof (spe2_opcodes[0]);
This page took 0.61588 seconds and 3 git commands to generate.