]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - opcodes/ppc-opc.c
kvx: use {u,}int32_t and {u,}int64_t
[thirdparty/binutils-gdb.git] / opcodes / ppc-opc.c
CommitLineData
252b5132 1/* ppc-opc.c -- PowerPC opcode list
d87bef3a 2 Copyright (C) 1994-2023 Free Software Foundation, Inc.
252b5132
RH
3 Written by Ian Lance Taylor, Cygnus Support
4
9b201bb5 5 This file is part of the GNU opcodes library.
252b5132 6
9b201bb5
NC
7 This library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
10 any later version.
252b5132 11
9b201bb5
NC
12 It is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
252b5132 16
112290ab 17 You should have received a copy of the GNU General Public License
9b201bb5
NC
18 along with this file; see the file COPYING. If not, write to the
19 Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
252b5132 21
0d8dfecf 22#include "sysdep.h"
df7b86aa 23#include <stdio.h>
252b5132
RH
24#include "opcode/ppc.h"
25#include "opintl.h"
61a457e5 26#include "libiberty.h"
252b5132
RH
27
28/* This file holds the PowerPC opcode table. The opcode table
29 includes almost all of the extended instruction mnemonics. This
30 permits the disassembler to use them, and simplifies the assembler
31 logic, at the cost of increasing the table size. The table is
32 strictly constant data, so the compiler should be able to put it in
b80c7270 33 the text segment.
252b5132
RH
34
35 This file also holds the operand table. All knowledge about
36 inserting operands into instructions and vice-versa is kept in this
37 file. */
252b5132 38
b80c7270 39/* The functions used to insert and extract complicated operands. */
252b5132 40
b80c7270 41/* The ARX, ARY, RX and RY operands are alternate encodings of GPRs. */
252b5132 42
0f873fd5
PB
43static uint64_t
44insert_arx (uint64_t insn,
45 int64_t value,
b80c7270
AM
46 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
47 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 48{
71553718
AM
49 value -= 8;
50 if (value < 0 || value >= 16)
b80c7270
AM
51 {
52 *errmsg = _("invalid register");
71553718 53 value = 0xf;
b80c7270 54 }
71553718 55 return insn | value;
b80c7270 56}
b9c361e0 57
0f873fd5
PB
58static int64_t
59extract_arx (uint64_t insn,
b80c7270
AM
60 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
61 int *invalid ATTRIBUTE_UNUSED)
62{
63 return (insn & 0xf) + 8;
64}
b9c361e0 65
0f873fd5
PB
66static uint64_t
67insert_ary (uint64_t insn,
68 int64_t value,
b80c7270
AM
69 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
70 const char **errmsg ATTRIBUTE_UNUSED)
71{
71553718
AM
72 value -= 8;
73 if (value < 0 || value >= 16)
b80c7270
AM
74 {
75 *errmsg = _("invalid register");
71553718 76 value = 0xf;
b80c7270 77 }
71553718 78 return insn | (value << 4);
b80c7270 79}
23976049 80
0f873fd5
PB
81static int64_t
82extract_ary (uint64_t insn,
b80c7270
AM
83 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
84 int *invalid ATTRIBUTE_UNUSED)
85{
86 return ((insn >> 4) & 0xf) + 8;
87}
418c1742 88
0f873fd5
PB
89static uint64_t
90insert_rx (uint64_t insn,
91 int64_t value,
b80c7270
AM
92 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
93 const char **errmsg)
94{
95 if (value >= 0 && value < 8)
71553718 96 ;
b80c7270 97 else if (value >= 24 && value <= 31)
71553718 98 value -= 16;
b80c7270
AM
99 else
100 {
101 *errmsg = _("invalid register");
71553718 102 value = 0xf;
b80c7270 103 }
71553718 104 return insn | value;
b80c7270 105}
252b5132 106
0f873fd5
PB
107static int64_t
108extract_rx (uint64_t insn,
b80c7270
AM
109 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
110 int *invalid ATTRIBUTE_UNUSED)
111{
0f873fd5 112 int64_t value = insn & 0xf;
b80c7270
AM
113 if (value >= 0 && value < 8)
114 return value;
115 else
116 return value + 16;
117}
b9c361e0 118
0f873fd5
PB
119static uint64_t
120insert_ry (uint64_t insn,
121 int64_t value,
b80c7270
AM
122 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
123 const char **errmsg)
124{
125 if (value >= 0 && value < 8)
71553718 126 ;
b80c7270 127 else if (value >= 24 && value <= 31)
71553718 128 value -= 16;
b80c7270
AM
129 else
130 {
131 *errmsg = _("invalid register");
71553718 132 value = 0xf;
b80c7270 133 }
71553718 134 return insn | (value << 4);
b80c7270 135}
a680de9a 136
0f873fd5
PB
137static int64_t
138extract_ry (uint64_t insn,
b80c7270
AM
139 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
140 int *invalid ATTRIBUTE_UNUSED)
141{
0f873fd5 142 int64_t value = (insn >> 4) & 0xf;
b80c7270
AM
143 if (value >= 0 && value < 8)
144 return value;
145 else
146 return value + 16;
147}
a680de9a 148
98553ad3
PB
149/* The BA and BB fields in an XL form instruction or the RA and RB fields or
150 VRA and VRB fields in a VX form instruction when they must be the same.
151 This is used for extended mnemonics like crclr. The extraction function
152 enforces that the fields are the same. */
adadcc0c 153
0f873fd5 154static uint64_t
98553ad3
PB
155insert_bab (uint64_t insn,
156 int64_t value,
b80c7270
AM
157 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
158 const char **errmsg ATTRIBUTE_UNUSED)
159{
98553ad3
PB
160 value &= 0x1f;
161 return insn | (value << 16) | (value << 11);
b80c7270 162}
252b5132 163
0f873fd5 164static int64_t
98553ad3 165extract_bab (uint64_t insn,
b80c7270
AM
166 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
167 int *invalid)
168{
98553ad3
PB
169 int64_t ba = (insn >> 16) & 0x1f;
170 int64_t bb = (insn >> 11) & 0x1f;
171
172 if (ba != bb)
b80c7270 173 *invalid = 1;
98553ad3 174 return ba;
b80c7270 175}
19a6653c 176
98553ad3
PB
177/* The BT, BA and BB fields in an XL form instruction when they must all be
178 the same. This is used for extended mnemonics like crclr. The extraction
179 function enforces that the fields are the same. */
a680de9a 180
0f873fd5 181static uint64_t
98553ad3
PB
182insert_btab (uint64_t insn,
183 int64_t value,
184 ppc_cpu_t dialect,
185 const char **errmsg)
b80c7270 186{
98553ad3
PB
187 value &= 0x1f;
188 return (value << 21) | insert_bab (insn, value, dialect, errmsg);
b80c7270 189}
a680de9a 190
0f873fd5 191static int64_t
98553ad3
PB
192extract_btab (uint64_t insn,
193 ppc_cpu_t dialect,
b80c7270
AM
194 int *invalid)
195{
98553ad3
PB
196 int64_t bt = (insn >> 21) & 0x1f;
197 int64_t bab = extract_bab (insn, dialect, invalid);
198
199 if (bt != bab)
b80c7270 200 *invalid = 1;
98553ad3 201 return bt;
b80c7270 202}
252b5132 203
b80c7270
AM
204/* The BD field in a B form instruction when the - modifier is used.
205 This modifier means that the branch is not expected to be taken.
206 For chips built to versions of the architecture prior to version 2
207 (ie. not Power4 compatible), we set the y bit of the BO field to 1
208 if the offset is negative. When extracting, we require that the y
209 bit be 1 and that the offset be positive, since if the y bit is 0
210 we just want to print the normal form of the instruction.
211 Power4 compatible targets use two bits, "a", and "t", instead of
212 the "y" bit. "at" == 00 => no hint, "at" == 01 => unpredictable,
213 "at" == 10 => not taken, "at" == 11 => taken. The "t" bit is 00001
214 in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000
215 for branch on CTR. We only handle the taken/not-taken hint here.
216 Note that we don't relax the conditions tested here when
217 disassembling with -Many because insns using extract_bdm and
218 extract_bdp always occur in pairs. One or the other will always
219 be valid. */
252b5132 220
b80c7270 221#define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
252b5132 222
0f873fd5
PB
223static uint64_t
224insert_bdm (uint64_t insn,
225 int64_t value,
b80c7270
AM
226 ppc_cpu_t dialect,
227 const char **errmsg ATTRIBUTE_UNUSED)
228{
229 if ((dialect & ISA_V2) == 0)
230 {
231 if ((value & 0x8000) != 0)
232 insn |= 1 << 21;
233 }
234 else
235 {
236 if ((insn & (0x14 << 21)) == (0x04 << 21))
237 insn |= 0x02 << 21;
238 else if ((insn & (0x14 << 21)) == (0x10 << 21))
239 insn |= 0x08 << 21;
240 }
241 return insn | (value & 0xfffc);
242}
252b5132 243
0f873fd5
PB
244static int64_t
245extract_bdm (uint64_t insn,
b80c7270
AM
246 ppc_cpu_t dialect,
247 int *invalid)
248{
249 if ((dialect & ISA_V2) == 0)
250 {
251 if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
252 *invalid = 1;
253 }
254 else
255 {
256 if ((insn & (0x17 << 21)) != (0x06 << 21)
257 && (insn & (0x1d << 21)) != (0x18 << 21))
258 *invalid = 1;
259 }
252b5132 260
b80c7270
AM
261 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
262}
989993d8 263
b80c7270
AM
264/* The BD field in a B form instruction when the + modifier is used.
265 This is like BDM, above, except that the branch is expected to be
266 taken. */
252b5132 267
0f873fd5
PB
268static uint64_t
269insert_bdp (uint64_t insn,
270 int64_t value,
b80c7270
AM
271 ppc_cpu_t dialect,
272 const char **errmsg ATTRIBUTE_UNUSED)
273{
274 if ((dialect & ISA_V2) == 0)
275 {
276 if ((value & 0x8000) == 0)
277 insn |= 1 << 21;
278 }
279 else
280 {
281 if ((insn & (0x14 << 21)) == (0x04 << 21))
282 insn |= 0x03 << 21;
283 else if ((insn & (0x14 << 21)) == (0x10 << 21))
284 insn |= 0x09 << 21;
285 }
286 return insn | (value & 0xfffc);
287}
989993d8 288
0f873fd5
PB
289static int64_t
290extract_bdp (uint64_t insn,
b80c7270
AM
291 ppc_cpu_t dialect,
292 int *invalid)
293{
294 if ((dialect & ISA_V2) == 0)
295 {
296 if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
297 *invalid = 1;
298 }
299 else
300 {
301 if ((insn & (0x17 << 21)) != (0x07 << 21)
302 && (insn & (0x1d << 21)) != (0x19 << 21))
303 *invalid = 1;
304 }
252b5132 305
b80c7270
AM
306 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
307}
252b5132 308
b80c7270 309static inline int
0f873fd5 310valid_bo_pre_v2 (int64_t value)
b80c7270
AM
311{
312 /* Certain encodings have bits that are required to be zero.
313 These are (z must be zero, y may be anything):
314 0000y
315 0001y
316 001zy
317 0100y
318 0101y
319 011zy
320 1z00y
321 1z01y
322 1z1zz
323 */
324 if ((value & 0x14) == 0)
aae9718e 325 /* BO: 0000y, 0001y, 0100y, 0101y. */
b80c7270
AM
326 return 1;
327 else if ((value & 0x14) == 0x4)
aae9718e 328 /* BO: 001zy, 011zy. */
b80c7270
AM
329 return (value & 0x2) == 0;
330 else if ((value & 0x14) == 0x10)
aae9718e 331 /* BO: 1z00y, 1z01y. */
b80c7270
AM
332 return (value & 0x8) == 0;
333 else
aae9718e 334 /* BO: 1z1zz. */
b80c7270
AM
335 return value == 0x14;
336}
989993d8 337
b80c7270 338static inline int
0f873fd5 339valid_bo_post_v2 (int64_t value)
b80c7270
AM
340{
341 /* Certain encodings have bits that are required to be zero.
342 These are (z must be zero, a & t may be anything):
343 0000z
344 0001z
345 001at
346 0100z
347 0101z
348 011at
349 1a00t
350 1a01t
351 1z1zz
352 */
353 if ((value & 0x14) == 0)
aae9718e 354 /* BO: 0000z, 0001z, 0100z, 0101z. */
b80c7270
AM
355 return (value & 0x1) == 0;
356 else if ((value & 0x14) == 0x14)
aae9718e 357 /* BO: 1z1zz. */
b80c7270 358 return value == 0x14;
aae9718e
PB
359 else if ((value & 0x14) == 0x4)
360 /* BO: 001at, 011at, with "at" == 0b01 being reserved. */
361 return (value & 0x3) != 1;
362 else if ((value & 0x14) == 0x10)
363 /* BO: 1a00t, 1a01t, with "at" == 0b01 being reserved. */
364 return (value & 0x9) != 1;
b80c7270
AM
365 else
366 return 1;
367}
c168870a 368
b80c7270 369/* Check for legal values of a BO field. */
252b5132 370
b80c7270 371static int
0f873fd5 372valid_bo (int64_t value, ppc_cpu_t dialect, int extract)
b80c7270
AM
373{
374 int valid_y = valid_bo_pre_v2 (value);
375 int valid_at = valid_bo_post_v2 (value);
b9c361e0 376
b80c7270
AM
377 /* When disassembling with -Many, accept either encoding on the
378 second pass through opcodes. */
379 if (extract && dialect == ~(ppc_cpu_t) PPC_OPCODE_ANY)
380 return valid_y || valid_at;
381 if ((dialect & ISA_V2) == 0)
382 return valid_y;
383 else
384 return valid_at;
385}
a5721ba2 386
b80c7270
AM
387/* The BO field in a B form instruction. Warn about attempts to set
388 the field to an illegal value. */
252b5132 389
0f873fd5
PB
390static uint64_t
391insert_bo (uint64_t insn,
392 int64_t value,
b80c7270
AM
393 ppc_cpu_t dialect,
394 const char **errmsg)
395{
396 if (!valid_bo (value, dialect, 0))
397 *errmsg = _("invalid conditional option");
aae9718e
PB
398 else if (PPC_OP (insn) == 19
399 && (((insn >> 1) & 0x3ff) == 528) && ! (value & 4))
b80c7270
AM
400 *errmsg = _("invalid counter access");
401 return insn | ((value & 0x1f) << 21);
402}
a680de9a 403
0f873fd5
PB
404static int64_t
405extract_bo (uint64_t insn,
b80c7270
AM
406 ppc_cpu_t dialect,
407 int *invalid)
408{
0f873fd5 409 int64_t value = (insn >> 21) & 0x1f;
b80c7270
AM
410 if (!valid_bo (value, dialect, 1))
411 *invalid = 1;
412 return value;
413}
252b5132 414
aae9718e
PB
415/* For the given BO value, return a bit mask detailing which bits
416 define the branch hints. */
417
418static int64_t
419get_bo_hint_mask (int64_t bo, ppc_cpu_t dialect)
420{
421 if ((dialect & ISA_V2) == 0)
422 {
423 if ((bo & 0x14) != 0x14)
424 /* BO: 0000y, 0001y, 001zy, 0100y, 0101y, 011zy, 1z00y, 1z01y . */
425 return 1;
426 else
427 /* BO: 1z1zz. */
428 return 0;
429 }
430 else
431 {
432 if ((bo & 0x14) == 0x4)
433 /* BO: 001at, 011at. */
434 return 0x3;
435 else if ((bo & 0x14) == 0x10)
436 /* BO: 1a00t, 1a01t. */
437 return 0x9;
438 else
439 /* BO: 0000z, 0001z, 0100z, 0101z, 1z1zz. */
440 return 0;
441 }
442}
443
444/* The BO field in a B form instruction when the + or - modifier is used. */
1ed8e1e4 445
0f873fd5
PB
446static uint64_t
447insert_boe (uint64_t insn,
448 int64_t value,
b80c7270 449 ppc_cpu_t dialect,
aae9718e
PB
450 const char **errmsg,
451 int branch_taken)
b80c7270 452{
aae9718e
PB
453 int64_t implied_hint;
454 int64_t hint_mask = get_bo_hint_mask (value, dialect);
252b5132 455
aae9718e
PB
456 if (branch_taken)
457 implied_hint = hint_mask;
458 else
459 implied_hint = hint_mask & ~1;
460
461 /* The branch hint bit(s) in the BO field must either be zero or exactly
462 match the branch hint bits implied by the '+' or '-' modifier. */
463 if (implied_hint == 0)
464 *errmsg = _("BO value implies no branch hint, when using + or - modifier");
465 else if ((value & hint_mask) != 0
466 && (value & hint_mask) != implied_hint)
467 {
468 if ((dialect & ISA_V2) == 0)
469 *errmsg = _("attempt to set y bit when using + or - modifier");
470 else
471 *errmsg = _("attempt to set 'at' bits when using + or - modifier");
472 }
473
474 value |= implied_hint;
475
476 return insert_bo (insn, value, dialect, errmsg);
b80c7270 477}
252b5132 478
0f873fd5
PB
479static int64_t
480extract_boe (uint64_t insn,
b80c7270 481 ppc_cpu_t dialect,
aae9718e
PB
482 int *invalid,
483 int branch_taken)
b80c7270 484{
0f873fd5 485 int64_t value = (insn >> 21) & 0x1f;
aae9718e
PB
486 int64_t implied_hint;
487 int64_t hint_mask = get_bo_hint_mask (value, dialect);
488
489 if (branch_taken)
490 implied_hint = hint_mask;
491 else
492 implied_hint = hint_mask & ~1;
493
494 if (!valid_bo (value, dialect, 1)
495 || implied_hint == 0
496 || (value & hint_mask) != implied_hint)
b80c7270 497 *invalid = 1;
aae9718e
PB
498 return value;
499}
500
501/* The BO field in a B form instruction when the - modifier is used. */
502
503static uint64_t
504insert_bom (uint64_t insn,
505 int64_t value,
506 ppc_cpu_t dialect,
507 const char **errmsg)
508{
509 return insert_boe (insn, value, dialect, errmsg, 0);
510}
511
512static int64_t
513extract_bom (uint64_t insn,
514 ppc_cpu_t dialect,
515 int *invalid)
516{
517 return extract_boe (insn, dialect, invalid, 0);
518}
519
520/* The BO field in a B form instruction when the + modifier is used. */
521
522static uint64_t
523insert_bop (uint64_t insn,
524 int64_t value,
525 ppc_cpu_t dialect,
526 const char **errmsg)
527{
528 return insert_boe (insn, value, dialect, errmsg, 1);
529}
530
531static int64_t
532extract_bop (uint64_t insn,
533 ppc_cpu_t dialect,
534 int *invalid)
535{
536 return extract_boe (insn, dialect, invalid, 1);
b80c7270 537}
252b5132 538
b80c7270
AM
539/* The DCMX field in a X form instruction when the field is split
540 into separate DC, DM and DX fields. */
252b5132 541
0f873fd5
PB
542static uint64_t
543insert_dcmxs (uint64_t insn,
544 int64_t value,
b80c7270
AM
545 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
546 const char **errmsg ATTRIBUTE_UNUSED)
547{
548 return (insn
549 | ((value & 0x1f) << 16)
550 | ((value & 0x20) >> 3)
551 | (value & 0x40));
552}
252b5132 553
0f873fd5
PB
554static int64_t
555extract_dcmxs (uint64_t insn,
b80c7270
AM
556 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
557 int *invalid ATTRIBUTE_UNUSED)
558{
559 return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
560}
252b5132 561
aae7fcb8
PB
562/* The DW field in a X form instruction when the field is split
563 into separate D and DX fields. */
564
565static uint64_t
566insert_dw (uint64_t insn,
567 int64_t value,
568 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
569 const char **errmsg ATTRIBUTE_UNUSED)
570{
571 /* DW offsets must be in the range [-512, -8] and be a multiple of 8. */
572 if (value < -512
573 || value > -8
574 || (value & 0x7) != 0)
575 *errmsg = _("invalid offset: must be in the range [-512, -8] "
576 "and be a multiple of 8");
577
578 return insn | ((value & 0xf8) << 18) | ((value >> 8) & 1);
579}
580
581static int64_t
582extract_dw (uint64_t insn,
583 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
584 int *invalid ATTRIBUTE_UNUSED)
585{
586 int64_t dw = ((insn & 1) << 8) | ((insn >> 18) & 0xf8);
587 return dw - 512;
588}
589
b80c7270
AM
590/* The D field in a DX form instruction when the field is split
591 into separate D0, D1 and D2 fields. */
989993d8 592
0f873fd5
PB
593static uint64_t
594insert_dxd (uint64_t insn,
595 int64_t value,
b80c7270
AM
596 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
597 const char **errmsg ATTRIBUTE_UNUSED)
598{
599 return insn | (value & 0xffc1) | ((value & 0x3e) << 15);
600}
e43de63c 601
0f873fd5
PB
602static int64_t
603extract_dxd (uint64_t insn,
b80c7270
AM
604 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
605 int *invalid ATTRIBUTE_UNUSED)
606{
0f873fd5 607 uint64_t dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e);
b80c7270
AM
608 return (dxd ^ 0x8000) - 0x8000;
609}
252b5132 610
0f873fd5
PB
611static uint64_t
612insert_dxdn (uint64_t insn,
613 int64_t value,
b80c7270
AM
614 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
615 const char **errmsg ATTRIBUTE_UNUSED)
616{
617 return insert_dxd (insn, -value, dialect, errmsg);
618}
252b5132 619
0f873fd5
PB
620static int64_t
621extract_dxdn (uint64_t insn,
b80c7270 622 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
9cf7e568 623 int *invalid)
b80c7270
AM
624{
625 return -extract_dxd (insn, dialect, invalid);
626}
fdd12ef3 627
8acf1435
PB
628/* The D field in a 64-bit D form prefix instruction when the field is split
629 into separate D0 and D1 fields. */
630
631static uint64_t
632insert_d34 (uint64_t insn,
633 int64_t value,
634 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
635 const char **errmsg ATTRIBUTE_UNUSED)
636{
637 return insn | ((value & 0x3ffff0000ULL) << 16) | (value & 0xffff);
638}
639
640static int64_t
641extract_d34 (uint64_t insn,
642 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
643 int *invalid ATTRIBUTE_UNUSED)
644{
645 int64_t mask = 1ULL << 33;
646 int64_t value = ((insn >> 16) & 0x3ffff0000ULL) | (insn & 0xffff);
647 value = (value ^ mask) - mask;
648 return value;
649}
650
651/* The NSI34 field in an 8-byte D form prefix instruction. This is the same
652 as the SI34 field, only negated. The extraction function always marks it
653 as invalid, since we never want to recognize an instruction which uses
654 a field of this type. */
655
656static uint64_t
657insert_nsi34 (uint64_t insn,
658 int64_t value,
659 ppc_cpu_t dialect,
660 const char **errmsg)
661{
662 return insert_d34 (insn, -value, dialect, errmsg);
663}
664
665static int64_t
666extract_nsi34 (uint64_t insn,
667 ppc_cpu_t dialect,
668 int *invalid)
669{
670 int64_t value = extract_d34 (insn, dialect, invalid);
671 *invalid = 1;
672 return -value;
673}
674
6edbfd3b
AM
675/* The split IMM32 field in a vector splat insn. */
676
677static uint64_t
678insert_imm32 (uint64_t insn,
679 int64_t value,
680 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
681 const char **errmsg ATTRIBUTE_UNUSED)
682{
683 return insn | ((value & 0xffff0000) << 16) | (value & 0xffff);
684}
685
686static int64_t
687extract_imm32 (uint64_t insn,
688 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
689 int *invalid ATTRIBUTE_UNUSED)
690{
691 return (insn & 0xffff) | ((insn >> 16) & 0xffff0000);
692}
693
8acf1435
PB
694/* The R field in an 8-byte prefix instruction when there are restrictions
695 between R's value and the RA value (ie, they cannot both be non zero). */
696
697static uint64_t
698insert_pcrel (uint64_t insn,
699 int64_t value,
700 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
701 const char **errmsg)
702{
703 value &= 0x1;
704 int64_t ra = (insn >> 16) & 0x1f;
705 if (ra != 0 && value != 0)
706 *errmsg = _("invalid R operand");
707
708 return insn | (value << 52);
709}
710
711static int64_t
712extract_pcrel (uint64_t insn,
713 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
714 int *invalid)
715{
716 /* If called with *invalid < 0 to return the value for missing
717 operands, *invalid will be the negative count of missing operands
718 including this one. Return a default value of 1 if the PRA0/PRAQ
719 operand was also omitted (ie. *invalid is -2). Return a default
720 value of 0 if the PRA0/PRAQ operand was not omitted
721 (ie. *invalid is -1). */
722 if (*invalid < 0)
723 return ~ *invalid & 1;
724
725 int64_t ra = (insn >> 16) & 0x1f;
726 int64_t pcrel = (insn >> 52) & 0x1;
727 if (ra != 0 && pcrel != 0)
728 *invalid = 1;
729
730 return pcrel;
731}
732
7149607f
AM
733/* Variant of extract_pcrel that sets invalid for R bit clear. Used
734 to disassemble "paddi rt,0,offset,1" as "pla rt,offset". */
8acf1435
PB
735
736static int64_t
7149607f 737extract_pcrel1 (uint64_t insn,
8acf1435
PB
738 ppc_cpu_t dialect,
739 int *invalid)
740{
741 int64_t pcrel = extract_pcrel (insn, dialect, invalid);
7149607f 742 if (!pcrel)
8acf1435
PB
743 *invalid = 1;
744 return pcrel;
745}
746
b80c7270 747/* FXM mask in mfcr and mtcrf instructions. */
adadcc0c 748
0f873fd5
PB
749static uint64_t
750insert_fxm (uint64_t insn,
751 int64_t value,
b80c7270
AM
752 ppc_cpu_t dialect,
753 const char **errmsg)
754{
755 /* If we're handling the mfocrf and mtocrf insns ensure that exactly
756 one bit of the mask field is set. */
757 if ((insn & (1 << 20)) != 0)
758 {
759 if (value == 0 || (value & -value) != value)
760 {
761 *errmsg = _("invalid mask field");
762 value = 0;
763 }
764 }
252b5132 765
b80c7270
AM
766 /* If only one bit of the FXM field is set, we can use the new form
767 of the instruction, which is faster. Unlike the Power4 branch hint
768 encoding, this is not backward compatible. Do not generate the
769 new form unless -mpower4 has been given, or -many and the two
770 operand form of mfcr was used. */
771 else if (value > 0
772 && (value & -value) == value
773 && ((dialect & PPC_OPCODE_POWER4) != 0
774 || ((dialect & PPC_OPCODE_ANY) != 0
775 && (insn & (0x3ff << 1)) == 19 << 1)))
776 insn |= 1 << 20;
252b5132 777
b80c7270
AM
778 /* Any other value on mfcr is an error. */
779 else if ((insn & (0x3ff << 1)) == 19 << 1)
780 {
781 /* A value of -1 means we used the one operand form of
782 mfcr which is valid. */
783 if (value != -1)
784 *errmsg = _("invalid mfcr mask");
785 value = 0;
786 }
252b5132 787
b80c7270
AM
788 return insn | ((value & 0xff) << 12);
789}
1f6c9eb0 790
0f873fd5
PB
791static int64_t
792extract_fxm (uint64_t insn,
b80c7270
AM
793 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
794 int *invalid)
795{
9cf7e568
AM
796 /* Return a value of -1 for a missing optional operand, which is
797 used as a flag by insert_fxm. */
798 if (*invalid < 0)
799 return -1;
252b5132 800
9cf7e568 801 int64_t mask = (insn >> 12) & 0xff;
b80c7270
AM
802 /* Is this a Power4 insn? */
803 if ((insn & (1 << 20)) != 0)
804 {
805 /* Exactly one bit of MASK should be set. */
806 if (mask == 0 || (mask & -mask) != mask)
807 *invalid = 1;
808 }
252b5132 809
b80c7270
AM
810 /* Check that non-power4 form of mfcr has a zero MASK. */
811 else if ((insn & (0x3ff << 1)) == 19 << 1)
812 {
813 if (mask != 0)
814 *invalid = 1;
815 else
816 mask = -1;
817 }
989993d8 818
b80c7270
AM
819 return mask;
820}
cee62821 821
afef4fe9
PB
822/* L field in the paste. instruction. */
823
824static uint64_t
825insert_l1opt (uint64_t insn,
826 int64_t value,
827 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
828 const char **errmsg ATTRIBUTE_UNUSED)
829{
830 return insn | ((value & 1) << 21);
831}
832
833static int64_t
834extract_l1opt (uint64_t insn,
835 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
836 int *invalid)
837{
838 /* Return a value of 1 for a missing optional operand. */
839 if (*invalid < 0)
840 return 1;
841
842 return (insn >> 21) & 1;
843}
844
0f873fd5
PB
845static uint64_t
846insert_li20 (uint64_t insn,
847 int64_t value,
b80c7270
AM
848 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
849 const char **errmsg ATTRIBUTE_UNUSED)
850{
851 return (insn
852 | ((value & 0xf0000) >> 5)
853 | ((value & 0x0f800) << 5)
854 | (value & 0x7ff));
855}
a680de9a 856
0f873fd5
PB
857static int64_t
858extract_li20 (uint64_t insn,
b80c7270
AM
859 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
860 int *invalid ATTRIBUTE_UNUSED)
861{
f143cb5f
AM
862 return ((((insn << 5) & 0xf0000)
863 | ((insn >> 5) & 0xf800)
864 | (insn & 0x7ff)) ^ 0x80000) - 0x80000;
b80c7270 865}
e3c2f928 866
3d205eb4 867/* The 2-bit/3-bit L or 2-bit WC field in a SYNC, DCBF or WAIT instruction.
b80c7270 868 For SYNC, some L values are reserved:
3d205eb4
PB
869 * Values 6 and 7 are reserved on newer server cpus.
870 * Value 3 is reserved on all server cpus.
871 * Value 2 is reserved on all other cpus.
872 For DCBF, some L values are reserved:
873 * Values 2, 5 and 7 are reserved on all cpus.
874 For WAIT, some WC values are reserved:
875 * Value 3 is reserved on all server cpus.
876 * Values 1 and 2 are reserved on older server cpus. */
adadcc0c 877
0f873fd5
PB
878static uint64_t
879insert_ls (uint64_t insn,
880 int64_t value,
b80c7270
AM
881 ppc_cpu_t dialect,
882 const char **errmsg)
883{
3d205eb4
PB
884 int64_t mask;
885
b80c7270
AM
886 if (((insn >> 1) & 0x3ff) == 598)
887 {
3d205eb4
PB
888 /* For SYNC, some L values are illegal. */
889 mask = (dialect & PPC_OPCODE_POWER10) ? 0x7 : 0x3;
890
891 /* If the value is within range, check for other illegal values. */
892 if ((value & mask) == value)
893 switch (value)
894 {
895 case 2:
896 if (dialect & PPC_OPCODE_POWER4)
897 break;
898 /* Fall through. */
899 case 3:
900 case 6:
901 case 7:
902 *errmsg = _("illegal L operand value");
903 break;
904 default:
905 break;
906 }
907 }
908 else if (((insn >> 1) & 0x3ff) == 86)
909 {
910 /* For DCBF, some L values are illegal. */
911 mask = (dialect & PPC_OPCODE_POWER10) ? 0x7 : 0x3;
912
913 /* If the value is within range, check for other illegal values. */
914 if ((value & mask) == value)
915 switch (value)
916 {
917 case 2:
918 case 5:
919 case 7:
920 *errmsg = _("illegal L operand value");
921 break;
922 default:
923 break;
924 }
925 }
926 else
927 {
928 /* For WAIT, some WC values are illegal. */
929 mask = 0x3;
930
931 /* If the value is within range, check for other illegal values. */
932 if ((dialect & PPC_OPCODE_A2) == 0
933 && (dialect & PPC_OPCODE_E500MC) == 0
934 && (value & mask) == value)
935 switch (value)
936 {
937 case 1:
938 case 2:
939 if (dialect & PPC_OPCODE_POWER10)
940 break;
941 /* Fall through. */
942 case 3:
943 *errmsg = _("illegal WC operand value");
944 break;
945 default:
946 break;
947 }
b80c7270 948 }
1f6c9eb0 949
3d205eb4 950 return insn | ((value & mask) << 21);
b80c7270 951}
b9c361e0 952
0f873fd5
PB
953static int64_t
954extract_ls (uint64_t insn,
b80c7270
AM
955 ppc_cpu_t dialect,
956 int *invalid)
957{
3d205eb4
PB
958 uint64_t value;
959
9cf7e568
AM
960 /* Missing optional operands have a value of zero. */
961 if (*invalid < 0)
962 return 0;
b9c361e0 963
b80c7270
AM
964 if (((insn >> 1) & 0x3ff) == 598)
965 {
3d205eb4
PB
966 /* For SYNC, some L values are illegal. */
967 int64_t mask = (dialect & PPC_OPCODE_POWER10) ? 0x7 : 0x3;
968
969 value = (insn >> 21) & mask;
970 switch (value)
971 {
972 case 2:
973 if (dialect & PPC_OPCODE_POWER4)
974 break;
975 /* Fall through. */
976 case 3:
977 case 6:
978 case 7:
979 *invalid = 1;
980 break;
981 default:
982 break;
983 }
984 }
985 else if (((insn >> 1) & 0x3ff) == 86)
986 {
987 /* For DCBF, some L values are illegal. */
988 int64_t mask = (dialect & PPC_OPCODE_POWER10) ? 0x7 : 0x3;
989
990 value = (insn >> 21) & mask;
991 switch (value)
992 {
993 case 2:
994 case 5:
995 case 7:
996 *invalid = 1;
997 break;
998 default:
999 break;
1000 }
b80c7270 1001 }
3d205eb4
PB
1002 else
1003 {
1004 /* For WAIT, some WC values are illegal. */
1005 value = (insn >> 21) & 0x3;
1006 if ((dialect & PPC_OPCODE_A2) == 0
1007 && (dialect & PPC_OPCODE_E500MC) == 0)
1008 switch (value)
1009 {
1010 case 1:
1011 case 2:
1012 if (dialect & PPC_OPCODE_POWER10)
1013 break;
1014 /* Fall through. */
1015 case 3:
1016 *invalid = 1;
1017 break;
1018 default:
1019 break;
1020 }
1021 }
1022
1023 return value;
b80c7270 1024}
b9c361e0 1025
b80c7270
AM
1026/* The 4-bit E field in a sync instruction that accepts 2 operands.
1027 If ESYNC is non-zero, then the L field must be either 0 or 1 and
1028 the complement of ESYNC-bit2. */
b9c361e0 1029
0f873fd5
PB
1030static uint64_t
1031insert_esync (uint64_t insn,
1032 int64_t value,
9cf7e568 1033 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270
AM
1034 const char **errmsg)
1035{
0f873fd5 1036 uint64_t ls = (insn >> 21) & 0x03;
b9c361e0 1037
9cf7e568
AM
1038 if (value != 0
1039 && ((~value >> 1) & 0x1) != ls)
b80c7270 1040 *errmsg = _("incompatible L operand value");
b9c361e0 1041
b80c7270
AM
1042 return insn | ((value & 0xf) << 16);
1043}
b9c361e0 1044
0f873fd5
PB
1045static int64_t
1046extract_esync (uint64_t insn,
9cf7e568 1047 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270
AM
1048 int *invalid)
1049{
8acf1435 1050 /* Missing optional operands have a value of zero. */
9cf7e568
AM
1051 if (*invalid < 0)
1052 return 0;
b9c361e0 1053
9cf7e568
AM
1054 uint64_t ls = (insn >> 21) & 0x3;
1055 uint64_t value = (insn >> 16) & 0xf;
1056 if (value != 0
1057 && ((~value >> 1) & 0x1) != ls)
b80c7270 1058 *invalid = 1;
9cf7e568 1059 return value;
b80c7270 1060}
e3c2f928 1061
f304c63d
AM
1062/* The n operand of clrrwi, which sets the ME field to 31 - n. */
1063
1064static uint64_t
1065insert_crwn (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 & 0x1f) << 1);
1071}
1072
1073static int64_t
1074extract_crwn (uint64_t insn,
1075 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1076 int *invalid ATTRIBUTE_UNUSED)
1077{
1078 return ~(insn >> 1) & 0x1f;
1079}
1080
1081/* The n operand of extlwi, which sets the ME field to n - 1. */
1082
1083static uint64_t
1084insert_elwn (uint64_t insn,
1085 int64_t value,
1086 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1087 const char **errmsg ATTRIBUTE_UNUSED)
1088{
1089 return insn | (((value - 1) & 0x1f) << 1);
1090}
1091
1092static int64_t
1093extract_elwn (uint64_t insn,
1094 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1095 int *invalid ATTRIBUTE_UNUSED)
1096{
1097 return ((insn >> 1) & 0x1f) + 1;
1098}
1099
1100/* The n operand of extrwi, sets MB = 32 - n. */
1101
1102static uint64_t
1103insert_erwn (uint64_t insn,
1104 int64_t value,
1105 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1106 const char **errmsg ATTRIBUTE_UNUSED)
1107{
1108 return insn | ((-value & 0x1f) << 6);
1109}
1110
1111static int64_t
1112extract_erwn (uint64_t insn,
1113 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1114 int *invalid ATTRIBUTE_UNUSED)
1115{
1116 return (~(insn >> 6) & 0x1f) + 1;
1117}
1118
1119/* The b operand of extrwi, sets SH = b + n. */
1120
1121static uint64_t
1122insert_erwb (uint64_t insn,
1123 int64_t value,
1124 ppc_cpu_t dialect,
1125 const char **errmsg ATTRIBUTE_UNUSED)
1126{
1127 int64_t n = extract_erwn (insn, dialect, NULL);
1128 return insn | (((n + value) & 0x1f) << 11);
1129}
1130
1131static int64_t
1132extract_erwb (uint64_t insn,
1133 ppc_cpu_t dialect,
1134 int *invalid ATTRIBUTE_UNUSED)
1135{
1136 int64_t n = extract_erwn (insn, dialect, NULL);
1137 return ((insn >> 11) - n) & 0x1f;
1138}
1139
1140/* The n and b operands of clrlslwi. */
1141
1142static uint64_t
1143insert_cslwn (uint64_t insn,
1144 int64_t value,
1145 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1146 const char **errmsg ATTRIBUTE_UNUSED)
1147{
1148 uint64_t mb = 0x1f << 6;
1149 int64_t b = (insn >> 6) & 0x1f;
1150 return ((insn & ~mb) | ((value & 0x1f) << 11) | (((b - value) & 0x1f) << 6)
1151 | ((~value & 0x1f) << 1));
1152}
1153
1154static int64_t
1155extract_cslwb (uint64_t insn,
1156 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1157 int *invalid)
1158{
1159 int64_t sh = (insn >> 11) & 0x1f;
1160 int64_t mb = (insn >> 6) & 0x1f;
1161 int64_t me = (insn >> 1) & 0x1f;
1162 if (sh != 31 - me)
1163 *invalid = 1;
1164 return (mb + sh) & 0x1f;
1165}
1166
1167/* The n and b operands of inslwi. */
1168
1169static uint64_t
1170insert_ilwb (uint64_t insn,
1171 int64_t value,
1172 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1173 const char **errmsg ATTRIBUTE_UNUSED)
1174{
1175 uint64_t me = 0x1f << 1;
1176 int64_t n = (insn >> 1) & 0x1f;
1177 return ((insn & ~me) | ((-value & 0x1f) << 11) | ((value & 0x1f) << 6)
1178 | (((value + n - 1) & 0x1f) << 1));
1179}
1180
1181static int64_t
1182extract_ilwn (uint64_t insn,
1183 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1184 int *invalid)
1185{
1186 int64_t sh = (insn >> 11) & 0x1f;
1187 int64_t mb = (insn >> 6) & 0x1f;
1188 int64_t me = (insn >> 1) & 0x1f;
1189 if (((sh + mb) & 0x1f) != 0)
1190 *invalid = 1;
1191 return ((me - mb) & 0x1f) + 1;
1192}
1193
1194/* The n and b operands of insrwi. */
1195
1196static uint64_t
1197insert_irwb (uint64_t insn,
1198 int64_t value,
1199 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1200 const char **errmsg ATTRIBUTE_UNUSED)
1201{
1202 uint64_t me = 0x1f << 1;
1203 int64_t n = (insn >> 1) & 0x1f;
1204 return ((insn & ~me) | ((-(value + n) & 0x1f) << 11) | ((value & 0x1f) << 6)
1205 | (((value + n - 1) & 0x1f) << 1));
1206}
1207
1208static int64_t
1209extract_irwn (uint64_t insn,
1210 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1211 int *invalid)
1212{
1213 int64_t sh = (insn >> 11) & 0x1f;
1214 int64_t mb = (insn >> 6) & 0x1f;
1215 int64_t me = (insn >> 1) & 0x1f;
1216 if (((sh + me + 1) & 0x1f) != 0)
1217 *invalid = 1;
1218 return ((me - mb) & 0x1f) + 1;
1219}
1220
b80c7270
AM
1221/* The MB and ME fields in an M form instruction expressed as a single
1222 operand which is itself a bitmask. The extraction function always
1223 marks it as invalid, since we never want to recognize an
1224 instruction which uses a field of this type. */
5817ffd1 1225
0f873fd5
PB
1226static uint64_t
1227insert_mbe (uint64_t insn,
1228 int64_t value,
b80c7270
AM
1229 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1230 const char **errmsg)
1231{
0f873fd5
PB
1232 uint64_t uval, mask;
1233 long mb, me, mx, count, last;
252b5132 1234
b80c7270 1235 uval = value;
1f6c9eb0 1236
b80c7270
AM
1237 if (uval == 0)
1238 {
1239 *errmsg = _("illegal bitmask");
1240 return insn;
1241 }
252b5132 1242
b80c7270
AM
1243 mb = 0;
1244 me = 32;
1245 if ((uval & 1) != 0)
1246 last = 1;
1247 else
1248 last = 0;
1249 count = 0;
252b5132 1250
b80c7270
AM
1251 /* mb: location of last 0->1 transition */
1252 /* me: location of last 1->0 transition */
1253 /* count: # transitions */
b9c361e0 1254
0f873fd5 1255 for (mx = 0, mask = (uint64_t) 1 << 31; mx < 32; ++mx, mask >>= 1)
b80c7270
AM
1256 {
1257 if ((uval & mask) && !last)
1258 {
1259 ++count;
1260 mb = mx;
1261 last = 1;
1262 }
1263 else if (!(uval & mask) && last)
1264 {
1265 ++count;
1266 me = mx;
1267 last = 0;
1268 }
1269 }
1270 if (me == 0)
1271 me = 32;
252b5132 1272
b80c7270
AM
1273 if (count != 2 && (count != 0 || ! last))
1274 *errmsg = _("illegal bitmask");
252b5132 1275
b80c7270
AM
1276 return insn | (mb << 6) | ((me - 1) << 1);
1277}
252b5132 1278
0f873fd5
PB
1279static int64_t
1280extract_mbe (uint64_t insn,
b80c7270
AM
1281 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1282 int *invalid)
1283{
0f873fd5
PB
1284 int64_t ret;
1285 long mb, me;
1286 long i;
252b5132 1287
b80c7270 1288 *invalid = 1;
f5c120c5 1289
b80c7270
AM
1290 mb = (insn >> 6) & 0x1f;
1291 me = (insn >> 1) & 0x1f;
1292 if (mb < me + 1)
1293 {
1294 ret = 0;
1295 for (i = mb; i <= me; i++)
0f873fd5 1296 ret |= (uint64_t) 1 << (31 - i);
b80c7270
AM
1297 }
1298 else if (mb == me + 1)
1299 ret = ~0;
1300 else /* (mb > me + 1) */
1301 {
1302 ret = ~0;
1303 for (i = me + 1; i < mb; i++)
0f873fd5 1304 ret &= ~((uint64_t) 1 << (31 - i));
b80c7270
AM
1305 }
1306 return ret;
1307}
aea77599 1308
b80c7270
AM
1309/* The MB or ME field in an MD or MDS form instruction. The high bit
1310 is wrapped to the low end. */
252b5132 1311
0f873fd5
PB
1312static uint64_t
1313insert_mb6 (uint64_t insn,
1314 int64_t value,
b80c7270
AM
1315 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1316 const char **errmsg ATTRIBUTE_UNUSED)
1317{
1318 return insn | ((value & 0x1f) << 6) | (value & 0x20);
1319}
252b5132 1320
0f873fd5
PB
1321static int64_t
1322extract_mb6 (uint64_t insn,
b80c7270
AM
1323 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1324 int *invalid ATTRIBUTE_UNUSED)
1325{
1326 return ((insn >> 6) & 0x1f) | (insn & 0x20);
1327}
252b5132 1328
42952a96
AM
1329/* The n operand of extrdi, which sets MB field. */
1330
1331static uint64_t
1332insert_erdn (uint64_t insn,
1333 int64_t value,
1334 ppc_cpu_t dialect,
1335 const char **errmsg)
1336{
1337 return insert_mb6 (insn, -value, dialect, errmsg);
1338}
1339
1340static int64_t
1341extract_erdn (uint64_t insn,
1342 ppc_cpu_t dialect,
1343 int *invalid)
1344{
1345 return (~extract_mb6 (insn, dialect, invalid) & 63) + 1;
1346}
1347
1348/* The n operand of extldi, which sets ME field. */
1349
1350static uint64_t
1351insert_eldn (uint64_t insn,
1352 int64_t value,
1353 ppc_cpu_t dialect,
1354 const char **errmsg)
1355{
1356 return insert_mb6 (insn, value - 1, dialect, errmsg);
1357}
1358
1359static int64_t
1360extract_eldn (uint64_t insn,
1361 ppc_cpu_t dialect,
1362 int *invalid)
1363{
1364 return extract_mb6 (insn, dialect, invalid) + 1;
1365}
1366
1367/* The n operand of clrrdi, which set ME field. */
1368
1369static uint64_t
1370insert_crdn (uint64_t insn,
1371 int64_t value,
1372 ppc_cpu_t dialect,
1373 const char **errmsg)
1374{
1375 return insert_mb6 (insn, 63 - value, dialect, errmsg);
1376}
1377
1378static int64_t
1379extract_crdn (uint64_t insn,
1380 ppc_cpu_t dialect,
1381 int *invalid)
1382{
1383 return 63 - extract_mb6 (insn, dialect, invalid);
1384}
1385
b80c7270
AM
1386/* The NB field in an X form instruction. The value 32 is stored as
1387 0. */
786e2c0f 1388
0f873fd5
PB
1389static int64_t
1390extract_nb (uint64_t insn,
b80c7270
AM
1391 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1392 int *invalid ATTRIBUTE_UNUSED)
1393{
0f873fd5 1394 int64_t ret;
a47622ac 1395
b80c7270
AM
1396 ret = (insn >> 11) & 0x1f;
1397 if (ret == 0)
1398 ret = 32;
1399 return ret;
1400}
b9c361e0 1401
b80c7270
AM
1402/* The NB field in an lswi instruction, which has special value
1403 restrictions. The value 32 is stored as 0. */
b9c361e0 1404
0f873fd5
PB
1405static uint64_t
1406insert_nbi (uint64_t insn,
1407 int64_t value,
b80c7270
AM
1408 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1409 const char **errmsg ATTRIBUTE_UNUSED)
1410{
0f873fd5
PB
1411 int64_t rtvalue = (insn >> 21) & 0x1f;
1412 int64_t ravalue = (insn >> 16) & 0x1f;
b9c361e0 1413
b80c7270
AM
1414 if (value == 0)
1415 value = 32;
1416 if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32
1417 : ravalue))
1418 *errmsg = _("address register in load range");
1419 return insn | ((value & 0x1f) << 11);
1420}
786e2c0f 1421
b80c7270
AM
1422/* The NSI field in a D form instruction. This is the same as the SI
1423 field, only negated. The extraction function always marks it as
1424 invalid, since we never want to recognize an instruction which uses
1425 a field of this type. */
786e2c0f 1426
0f873fd5
PB
1427static uint64_t
1428insert_nsi (uint64_t insn,
1429 int64_t value,
b80c7270
AM
1430 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1431 const char **errmsg ATTRIBUTE_UNUSED)
1432{
1433 return insn | (-value & 0xffff);
1434}
786e2c0f 1435
0f873fd5
PB
1436static int64_t
1437extract_nsi (uint64_t insn,
b80c7270
AM
1438 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1439 int *invalid)
1440{
1441 *invalid = 1;
1442 return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
1443}
786e2c0f 1444
3d205eb4
PB
1445/* The 2-bit SC field in a SYNC or PL field in a WAIT instruction.
1446 For WAIT, some PL values are reserved:
1447 * Values 1, 2 and 3 are reserved. */
1448
1449static uint64_t
1450insert_pl (uint64_t insn,
1451 int64_t value,
1452 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1453 const char **errmsg)
1454{
1455 /* For WAIT, some PL values are illegal. */
1456 if (((insn >> 1) & 0x3ff) == 30
1457 && value != 0)
1458 *errmsg = _("illegal PL operand value");
1459 return insn | ((value & 0x3) << 16);
1460}
1461
1462static int64_t
1463extract_pl (uint64_t insn,
1464 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1465 int *invalid)
1466{
1467 /* Missing optional operands have a value of zero. */
1468 if (*invalid < 0)
1469 return 0;
1470
1471 uint64_t value = (insn >> 16) & 0x3;
1472
1473 /* For WAIT, some PL values are illegal. */
1474 if (((insn >> 1) & 0x3ff) == 30
1475 && value != 0)
1476 *invalid = 1;
1477 return value;
1478}
1479
79e24d0a
PB
1480/* The 2-bit P field in a MMA XX2-form instruction. This is split. */
1481
1482static uint64_t
1483insert_p2 (uint64_t insn,
1484 int64_t value,
1485 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1486 const char **errmsg ATTRIBUTE_UNUSED)
1487{
1488 return insn | ((value & 0x2) << 15) | ((value & 0x1) << 11);
1489}
1490
1491static int64_t
1492extract_p2 (uint64_t insn,
1493 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1494 int *invalid ATTRIBUTE_UNUSED)
1495{
1496 uint64_t value = ((insn >> 15) & 0x2) | ((insn >> 11) & 0x1);
1497 return value;
1498}
1499
b80c7270
AM
1500/* The RA field in a D or X form instruction which is an updating
1501 load, which means that the RA field may not be zero and may not
1502 equal the RT field. */
786e2c0f 1503
0f873fd5
PB
1504static uint64_t
1505insert_ral (uint64_t insn,
1506 int64_t value,
b80c7270
AM
1507 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1508 const char **errmsg)
1509{
1510 if (value == 0
0f873fd5 1511 || (uint64_t) value == ((insn >> 21) & 0x1f))
b80c7270
AM
1512 *errmsg = "invalid register operand when updating";
1513 return insn | ((value & 0x1f) << 16);
1514}
786e2c0f 1515
0f873fd5
PB
1516static int64_t
1517extract_ral (uint64_t insn,
b80c7270
AM
1518 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1519 int *invalid)
1520{
0f873fd5
PB
1521 int64_t rtvalue = (insn >> 21) & 0x1f;
1522 int64_t ravalue = (insn >> 16) & 0x1f;
fb048c26 1523
b80c7270
AM
1524 if (rtvalue == ravalue || ravalue == 0)
1525 *invalid = 1;
1526 return ravalue;
1527}
a680de9a 1528
b80c7270
AM
1529/* The RA field in an lmw instruction, which has special value
1530 restrictions. */
c0637f3a 1531
0f873fd5
PB
1532static uint64_t
1533insert_ram (uint64_t insn,
1534 int64_t value,
b80c7270
AM
1535 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1536 const char **errmsg)
1537{
0f873fd5 1538 if ((uint64_t) value >= ((insn >> 21) & 0x1f))
b80c7270
AM
1539 *errmsg = _("index register in load range");
1540 return insn | ((value & 0x1f) << 16);
1541}
c0637f3a 1542
0f873fd5
PB
1543static int64_t
1544extract_ram (uint64_t insn,
b80c7270
AM
1545 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1546 int *invalid)
1547{
0f873fd5
PB
1548 uint64_t rtvalue = (insn >> 21) & 0x1f;
1549 uint64_t ravalue = (insn >> 16) & 0x1f;
ff3a6ee3 1550
b80c7270
AM
1551 if (ravalue >= rtvalue)
1552 *invalid = 1;
1553 return ravalue;
1554}
23976049 1555
b80c7270
AM
1556/* The RA field in the DQ form lq or an lswx instruction, which have special
1557 value restrictions. */
e3c2f928 1558
0f873fd5
PB
1559static uint64_t
1560insert_raq (uint64_t insn,
1561 int64_t value,
b80c7270
AM
1562 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1563 const char **errmsg)
1564{
0f873fd5 1565 int64_t rtvalue = (insn >> 21) & 0x1f;
23976049 1566
b80c7270
AM
1567 if (value == rtvalue)
1568 *errmsg = _("source and target register operands must be different");
1569 return insn | ((value & 0x1f) << 16);
1570}
e3c2f928 1571
0f873fd5
PB
1572static int64_t
1573extract_raq (uint64_t insn,
b80c7270
AM
1574 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1575 int *invalid)
1576{
8acf1435 1577 /* Missing optional operands have a value of zero. */
9cf7e568
AM
1578 if (*invalid < 0)
1579 return 0;
1580
0f873fd5
PB
1581 uint64_t rtvalue = (insn >> 21) & 0x1f;
1582 uint64_t ravalue = (insn >> 16) & 0x1f;
b80c7270
AM
1583 if (ravalue == rtvalue)
1584 *invalid = 1;
1585 return ravalue;
1586}
e3c2f928 1587
b80c7270
AM
1588/* The RA field in a D or X form instruction which is an updating
1589 store or an updating floating point load, which means that the RA
1590 field may not be zero. */
ff3a6ee3 1591
0f873fd5
PB
1592static uint64_t
1593insert_ras (uint64_t insn,
1594 int64_t value,
b80c7270
AM
1595 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1596 const char **errmsg)
1597{
1598 if (value == 0)
1599 *errmsg = _("invalid register operand when updating");
1600 return insn | ((value & 0x1f) << 16);
1601}
c3d65c1c 1602
0f873fd5
PB
1603static int64_t
1604extract_ras (uint64_t insn,
b80c7270
AM
1605 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1606 int *invalid)
1607{
0f873fd5 1608 uint64_t ravalue = (insn >> 16) & 0x1f;
c3d65c1c 1609
b80c7270
AM
1610 if (ravalue == 0)
1611 *invalid = 1;
1612 return ravalue;
1613}
c3d65c1c 1614
98553ad3
PB
1615/* The RS and RB fields in an X form instruction when they must be the same.
1616 This is used for extended mnemonics like mr. The extraction function
1617 enforces that the fields are the same. */
c3d65c1c 1618
0f873fd5 1619static uint64_t
98553ad3
PB
1620insert_rsb (uint64_t insn,
1621 int64_t value,
b80c7270
AM
1622 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1623 const char **errmsg ATTRIBUTE_UNUSED)
1624{
98553ad3
PB
1625 value &= 0x1f;
1626 return insn | (value << 21) | (value << 11);
b80c7270 1627}
5ae2e65e 1628
0f873fd5 1629static int64_t
98553ad3 1630extract_rsb (uint64_t insn,
b80c7270
AM
1631 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1632 int *invalid)
1633{
98553ad3
PB
1634 int64_t rs = (insn >> 21) & 0x1f;
1635 int64_t rb = (insn >> 11) & 0x1f;
1636
1637 if (rs != rb)
b80c7270 1638 *invalid = 1;
98553ad3 1639 return rs;
b80c7270 1640}
702f0fb4 1641
b80c7270
AM
1642/* The RB field in an lswx instruction, which has special value
1643 restrictions. */
702f0fb4 1644
0f873fd5
PB
1645static uint64_t
1646insert_rbx (uint64_t insn,
1647 int64_t value,
b80c7270
AM
1648 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1649 const char **errmsg)
1650{
0f873fd5 1651 int64_t rtvalue = (insn >> 21) & 0x1f;
a680de9a 1652
b80c7270
AM
1653 if (value == rtvalue)
1654 *errmsg = _("source and target register operands must be different");
1655 return insn | ((value & 0x1f) << 11);
1656}
a680de9a 1657
0f873fd5
PB
1658static int64_t
1659extract_rbx (uint64_t insn,
b80c7270
AM
1660 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1661 int *invalid)
1662{
0f873fd5
PB
1663 uint64_t rtvalue = (insn >> 21) & 0x1f;
1664 uint64_t rbvalue = (insn >> 11) & 0x1f;
702f0fb4 1665
b80c7270
AM
1666 if (rbvalue == rtvalue)
1667 *invalid = 1;
1668 return rbvalue;
1669}
702f0fb4 1670
b80c7270 1671/* The SCI8 field is made up of SCL and {U,N}I8 fields. */
0f873fd5
PB
1672static uint64_t
1673insert_sci8 (uint64_t insn,
1674 int64_t value,
b80c7270
AM
1675 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1676 const char **errmsg)
1677{
0f873fd5
PB
1678 uint64_t fill_scale = 0;
1679 uint64_t ui8 = value;
c0637f3a 1680
b80c7270
AM
1681 if ((ui8 & 0xffffff00) == 0)
1682 ;
1683 else if ((ui8 & 0xffffff00) == 0xffffff00)
1684 fill_scale = 0x400;
1685 else if ((ui8 & 0xffff00ff) == 0)
1686 {
1687 fill_scale = 1 << 8;
1688 ui8 >>= 8;
1689 }
1690 else if ((ui8 & 0xffff00ff) == 0xffff00ff)
1691 {
1692 fill_scale = 0x400 | (1 << 8);
1693 ui8 >>= 8;
1694 }
1695 else if ((ui8 & 0xff00ffff) == 0)
1696 {
1697 fill_scale = 2 << 8;
1698 ui8 >>= 16;
1699 }
1700 else if ((ui8 & 0xff00ffff) == 0xff00ffff)
1701 {
1702 fill_scale = 0x400 | (2 << 8);
1703 ui8 >>= 16;
1704 }
1705 else if ((ui8 & 0x00ffffff) == 0)
1706 {
1707 fill_scale = 3 << 8;
1708 ui8 >>= 24;
1709 }
1710 else if ((ui8 & 0x00ffffff) == 0x00ffffff)
1711 {
1712 fill_scale = 0x400 | (3 << 8);
1713 ui8 >>= 24;
1714 }
1715 else
1716 {
1717 *errmsg = _("illegal immediate value");
1718 ui8 = 0;
1719 }
702f0fb4 1720
b80c7270
AM
1721 return insn | fill_scale | (ui8 & 0xff);
1722}
ea192fa3 1723
0f873fd5
PB
1724static int64_t
1725extract_sci8 (uint64_t insn,
b80c7270
AM
1726 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1727 int *invalid ATTRIBUTE_UNUSED)
1728{
0f873fd5
PB
1729 int64_t fill = insn & 0x400;
1730 int64_t scale_factor = (insn & 0x300) >> 5;
1731 int64_t value = (insn & 0xff) << scale_factor;
081ba1b3 1732
b80c7270 1733 if (fill != 0)
0f873fd5 1734 value |= ~((int64_t) 0xff << scale_factor);
b80c7270
AM
1735 return value;
1736}
081ba1b3 1737
0f873fd5
PB
1738static uint64_t
1739insert_sci8n (uint64_t insn,
1740 int64_t value,
b80c7270
AM
1741 ppc_cpu_t dialect,
1742 const char **errmsg)
1743{
1744 return insert_sci8 (insn, -value, dialect, errmsg);
1745}
081ba1b3 1746
0f873fd5
PB
1747static int64_t
1748extract_sci8n (uint64_t insn,
b80c7270
AM
1749 ppc_cpu_t dialect,
1750 int *invalid)
1751{
1752 return -extract_sci8 (insn, dialect, invalid);
1753}
081ba1b3 1754
0f873fd5
PB
1755static uint64_t
1756insert_oimm (uint64_t insn,
1757 int64_t value,
b80c7270
AM
1758 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1759 const char **errmsg ATTRIBUTE_UNUSED)
1760{
1761 return insn | (((value - 1) & 0x1f) << 4);
1762}
b9c361e0 1763
0f873fd5
PB
1764static int64_t
1765extract_oimm (uint64_t insn,
b80c7270
AM
1766 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1767 int *invalid ATTRIBUTE_UNUSED)
1768{
1769 return ((insn >> 4) & 0x1f) + 1;
1770}
b9c361e0 1771
f304c63d
AM
1772/* The n operand of rotrwi, sets SH = 32 - n. */
1773
1774static uint64_t
1775insert_rrwn (uint64_t insn,
1776 int64_t value,
1777 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1778 const char **errmsg ATTRIBUTE_UNUSED)
1779{
1780 return insn | ((-value & 0x1f) << 11);
1781}
1782
1783static int64_t
1784extract_rrwn (uint64_t insn,
1785 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1786 int *invalid ATTRIBUTE_UNUSED)
1787{
1788 return 31 & -(insn >> 11);
1789}
1790
1791/* The n operand of slwi, sets SH = n and ME = 31 - n. */
1792
1793static uint64_t
1794insert_slwn (uint64_t insn,
1795 int64_t value,
1796 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1797 const char **errmsg ATTRIBUTE_UNUSED)
1798{
1799 return insn | ((value & 0x1f) << 11) | ((~value & 0x1f) << 1);
1800}
1801
1802static int64_t
1803extract_slwn (uint64_t insn,
1804 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1805 int *invalid)
1806{
1807 int64_t sh = (insn >> 11) & 0x1f;
1808 int64_t nme = ~(insn >> 1) & 0x1f;
1809 if (sh != nme)
1810 *invalid = 1;
1811 return sh;
1812}
1813
1814/* The n operand of srwi, sets SH = 32 - n and MB = n. */
1815
1816static uint64_t
1817insert_srwn (uint64_t insn,
1818 int64_t value,
1819 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1820 const char **errmsg ATTRIBUTE_UNUSED)
1821{
1822 return insn | ((-value & 0x1f) << 11) | ((value & 0x1f) << 6);
1823}
1824
1825static int64_t
1826extract_srwn (uint64_t insn,
1827 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1828 int *invalid)
1829{
1830 int64_t nsh = -(insn >> 11) & 0x1f;
1831 int64_t mb = (insn >> 6) & 0x1f;
1832 if (nsh != mb)
1833 *invalid = 1;
1834 return nsh;
1835}
1836
b80c7270 1837/* The SH field in an MD form instruction. This is split. */
b9c361e0 1838
0f873fd5
PB
1839static uint64_t
1840insert_sh6 (uint64_t insn,
1841 int64_t value,
b80c7270
AM
1842 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1843 const char **errmsg ATTRIBUTE_UNUSED)
1844{
71553718 1845 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
b80c7270 1846}
9b4e5766 1847
0f873fd5
PB
1848static int64_t
1849extract_sh6 (uint64_t insn,
b80c7270
AM
1850 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1851 int *invalid ATTRIBUTE_UNUSED)
1852{
71553718 1853 return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
b80c7270 1854}
a680de9a 1855
42952a96
AM
1856/* The n operand of rotrdi, which writes to SH field. */
1857
1858static uint64_t
1859insert_rrdn (uint64_t insn,
1860 int64_t value,
1861 ppc_cpu_t dialect,
1862 const char **errmsg)
1863{
1864 return insert_sh6 (insn, -value, dialect, errmsg);
1865}
1866
1867static int64_t
1868extract_rrdn (uint64_t insn,
1869 ppc_cpu_t dialect,
1870 int *invalid)
1871{
1872 return -extract_sh6 (insn, dialect, invalid) & 63;
1873}
1874
1875/* The n operand of sldi, which writes to SH and ME fields. */
1876
1877static uint64_t
1878insert_sldn (uint64_t insn,
1879 int64_t value,
1880 ppc_cpu_t dialect,
1881 const char **errmsg)
1882{
1883 insn = insert_sh6 (insn, value, dialect, errmsg);
1884 return insert_crdn (insn, value, dialect, errmsg);
1885}
1886
1887static int64_t
1888extract_sldn (uint64_t insn,
1889 ppc_cpu_t dialect,
1890 int *invalid)
1891{
1892 int64_t sh = extract_sh6 (insn, dialect, invalid);
1893 int64_t me = extract_crdn (insn, dialect, invalid);
1894 if (me != sh)
1895 *invalid = 1;
1896 return sh;
1897}
1898
1899/* The n operand of srdi, which writes to SH and MB fields. */
1900
1901static uint64_t
1902insert_srdn (uint64_t insn,
1903 int64_t value,
1904 ppc_cpu_t dialect,
1905 const char **errmsg)
1906{
1907 insn = insert_rrdn (insn, value, dialect, errmsg);
1908 return insert_mb6 (insn, value, dialect, errmsg);
1909}
1910
1911static int64_t
1912extract_srdn (uint64_t insn,
1913 ppc_cpu_t dialect,
1914 int *invalid)
1915{
1916 int64_t sh = extract_rrdn (insn, dialect, invalid);
1917 int64_t mb = extract_mb6 (insn, dialect, invalid);
1918 if (mb != sh)
1919 *invalid = 1;
1920 return sh;
1921}
1922
1923/* The b operand of extrdi, which sets SH field. */
1924
1925static uint64_t
1926insert_erdb (uint64_t insn,
1927 int64_t value,
1928 ppc_cpu_t dialect,
1929 const char **errmsg)
1930{
1931 int64_t n = extract_erdn (insn, dialect, NULL);
1932 return insert_sh6 (insn, value + n, dialect, errmsg);
1933}
1934
1935static int64_t
1936extract_erdb (uint64_t insn,
1937 ppc_cpu_t dialect,
1938 int *invalid)
1939{
1940 int64_t sh = extract_sh6 (insn, dialect, invalid);
1941 int64_t n = extract_erdn (insn, dialect, invalid);
1942 return (sh - n) & 63;
1943}
1944
1945/* The b and n operands of clrlsldi. */
1946
1947static uint64_t
1948insert_csldn (uint64_t insn,
1949 int64_t value,
1950 ppc_cpu_t dialect,
1951 const char **errmsg)
1952{
1953 uint64_t mb6 = 0x3f << 5;
1954 int64_t b = extract_mb6 (insn, dialect, NULL);
1955 insn = insert_mb6 (insn & ~mb6, b - value, dialect, errmsg);
1956 return insert_sh6 (insn, value, dialect, errmsg);
1957}
1958
1959static int64_t
1960extract_csldb (uint64_t insn,
1961 ppc_cpu_t dialect,
1962 int *invalid)
1963{
1964 int64_t sh = extract_sh6 (insn, dialect, invalid);
1965 int64_t mb = extract_mb6 (insn, dialect, invalid);
1966 return (mb + sh) & 63;
1967}
1968
1969/* The b and n operands of insrdi. */
1970
1971static uint64_t
1972insert_irdb (uint64_t insn,
1973 int64_t value,
1974 ppc_cpu_t dialect,
1975 const char **errmsg)
1976{
1977 uint64_t sh6 = (0x1f << 11) | 2;
1978 int64_t n = extract_sh6 (insn, dialect, NULL);
1979 insn = insert_sh6 (insn & ~sh6, -(value + n), dialect, errmsg);
1980 return insert_mb6 (insn, value, dialect, errmsg);
1981}
1982
1983static int64_t
1984extract_irdn (uint64_t insn,
1985 ppc_cpu_t dialect,
1986 int *invalid)
1987{
1988 int64_t sh = extract_sh6 (insn, dialect, invalid);
1989 int64_t mb = extract_mb6 (insn, dialect, invalid);
1990 return (~(mb + sh) & 63) + 1;
1991}
1992
b80c7270
AM
1993/* The SPR field in an XFX form instruction. This is flipped--the
1994 lower 5 bits are stored in the upper 5 and vice- versa. */
9b4e5766 1995
0f873fd5
PB
1996static uint64_t
1997insert_spr (uint64_t insn,
1998 int64_t value,
b80c7270
AM
1999 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2000 const char **errmsg ATTRIBUTE_UNUSED)
2001{
2002 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
2003}
9b4e5766 2004
0f873fd5
PB
2005static int64_t
2006extract_spr (uint64_t insn,
b80c7270
AM
2007 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2008 int *invalid ATTRIBUTE_UNUSED)
2009{
2010 return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
2011}
9b4e5766 2012
fa758a70
AC
2013/* Some dialects have 8 [DI]BAT registers instead of the standard 4. */
2014#define ALLOW8_BAT (PPC_OPCODE_750)
2015
16065af1
AM
2016static uint64_t
2017insert_sprbat (uint64_t insn,
2018 int64_t value,
fa758a70
AC
2019 ppc_cpu_t dialect,
2020 const char **errmsg)
2021{
71553718
AM
2022 if ((uint64_t) value > 7
2023 || ((uint64_t) value > 3 && (dialect & ALLOW8_BAT) == 0))
fa758a70
AC
2024 *errmsg = _("invalid bat number");
2025
2026 /* If this is [di]bat4..7 then use spr 560..575, otherwise 528..543. */
71553718 2027 if ((uint64_t) value > 3)
fa758a70
AC
2028 value = ((value & 3) << 6) | 1;
2029 else
2030 value = value << 6;
2031
2032 return insn | (value << 11);
2033}
2034
16065af1
AM
2035static int64_t
2036extract_sprbat (uint64_t insn,
fa758a70
AC
2037 ppc_cpu_t dialect,
2038 int *invalid)
2039{
16065af1 2040 uint64_t val = (insn >> 17) & 0x3;
fa758a70
AC
2041
2042 val = val + ((insn >> 9) & 0x4);
2043 if (val > 3 && (dialect & ALLOW8_BAT) == 0)
2044 *invalid = 1;
2045 return val;
2046}
2047
b80c7270
AM
2048/* Some dialects have 8 SPRG registers instead of the standard 4. */
2049#define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405)
066be9f7 2050
0f873fd5
PB
2051static uint64_t
2052insert_sprg (uint64_t insn,
2053 int64_t value,
b80c7270
AM
2054 ppc_cpu_t dialect,
2055 const char **errmsg)
2056{
71553718
AM
2057 if ((uint64_t) value > 7
2058 || ((uint64_t) value > 3 && (dialect & ALLOW8_SPRG) == 0))
b80c7270 2059 *errmsg = _("invalid sprg number");
066be9f7 2060
b80c7270
AM
2061 /* If this is mfsprg4..7 then use spr 260..263 which can be read in
2062 user mode. Anything else must use spr 272..279. */
71553718 2063 if ((uint64_t) value <= 3 || (insn & 0x100) != 0)
b80c7270 2064 value |= 0x10;
066be9f7 2065
b80c7270
AM
2066 return insn | ((value & 0x17) << 16);
2067}
e0d602ec 2068
0f873fd5
PB
2069static int64_t
2070extract_sprg (uint64_t insn,
b80c7270
AM
2071 ppc_cpu_t dialect,
2072 int *invalid)
2073{
0f873fd5 2074 uint64_t val = (insn >> 16) & 0x1f;
4bc0608a 2075
b80c7270
AM
2076 /* mfsprg can use 260..263 and 272..279. mtsprg only uses spr 272..279
2077 If not BOOKE, 405 or VLE, then both use only 272..275. */
2078 if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0)
2079 || (val - 0x10 > 7 && (insn & 0x100) != 0)
2080 || val <= 3
2081 || (val & 8) != 0)
2082 *invalid = 1;
2083 return val & 7;
2084}
a680de9a 2085
b80c7270
AM
2086/* The TBR field in an XFX instruction. This is just like SPR, but it
2087 is optional. */
e3c2f928 2088
0f873fd5
PB
2089static uint64_t
2090insert_tbr (uint64_t insn,
2091 int64_t value,
b80c7270
AM
2092 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2093 const char **errmsg)
2094{
2095 if (value != 268 && value != 269)
2096 *errmsg = _("invalid tbr number");
2097 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
2098}
252b5132 2099
0f873fd5
PB
2100static int64_t
2101extract_tbr (uint64_t insn,
b80c7270
AM
2102 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2103 int *invalid)
2104{
8acf1435 2105 /* Missing optional operands have a value of 268. */
9cf7e568
AM
2106 if (*invalid < 0)
2107 return 268;
2108
0f873fd5 2109 int64_t ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
b80c7270
AM
2110 if (ret != 268 && ret != 269)
2111 *invalid = 1;
2112 return ret;
2113}
252b5132 2114
b80c7270 2115/* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */
b9c361e0 2116
0f873fd5
PB
2117static uint64_t
2118insert_xt6 (uint64_t insn,
2119 int64_t value,
b9c361e0
JL
2120 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2121 const char **errmsg ATTRIBUTE_UNUSED)
2122{
b80c7270 2123 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5);
b9c361e0
JL
2124}
2125
0f873fd5
PB
2126static int64_t
2127extract_xt6 (uint64_t insn,
b9c361e0
JL
2128 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2129 int *invalid ATTRIBUTE_UNUSED)
43e65147 2130{
b80c7270 2131 return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f);
b9c361e0
JL
2132}
2133
b80c7270 2134/* The XT and XS fields in an DQ form VSX instruction. This is split. */
0f873fd5
PB
2135static uint64_t
2136insert_xtq6 (uint64_t insn,
2137 int64_t value,
b80c7270
AM
2138 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2139 const char **errmsg ATTRIBUTE_UNUSED)
2140{
2141 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2);
2142}
2143
0f873fd5
PB
2144static int64_t
2145extract_xtq6 (uint64_t insn,
b80c7270
AM
2146 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2147 int *invalid ATTRIBUTE_UNUSED)
2148{
2149 return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f);
2150}
2151
79e24d0a
PB
2152/* The 5-bit XAp field in an XX3 form instruction. This is split. */
2153
2154static uint64_t
2155insert_xa5 (uint64_t insn,
2156 int64_t value,
2157 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2158 const char **errmsg ATTRIBUTE_UNUSED)
2159{
2160 return insn | ((value & 0x1e) << 16) | ((value & 0x20) >> 3);
2161}
2162
2163static int64_t
2164extract_xa5 (uint64_t insn,
2165 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2166 int *invalid ATTRIBUTE_UNUSED)
2167{
2168 return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1e);
2169}
2170
b80c7270
AM
2171/* The XA field in an XX3 form instruction. This is split. */
2172
0f873fd5
PB
2173static uint64_t
2174insert_xa6 (uint64_t insn,
2175 int64_t value,
b9c361e0
JL
2176 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2177 const char **errmsg ATTRIBUTE_UNUSED)
2178{
b80c7270 2179 return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3);
b9c361e0
JL
2180}
2181
0f873fd5
PB
2182static int64_t
2183extract_xa6 (uint64_t insn,
b9c361e0
JL
2184 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2185 int *invalid ATTRIBUTE_UNUSED)
2186{
b80c7270 2187 return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
b9c361e0
JL
2188}
2189
aa3c112f
AM
2190/* The XA field in an MMA XX3 form instruction. This is split
2191 and must not overlap with the ACC operand. */
2192
2193static uint64_t
2194insert_xa6a (uint64_t insn,
2195 int64_t value,
2196 ppc_cpu_t dialect,
2197 const char **errmsg)
2198{
2199 int64_t acc = (insn >> 23) & 0x7;
79e24d0a
PB
2200 /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions. */
2201 if ((dialect & PPC_OPCODE_FUTURE) == 0
2202 && (value >> 2) == acc)
aa3c112f
AM
2203 *errmsg = _("VSR overlaps ACC operand");
2204 return insert_xa6 (insn, value, dialect, errmsg);
2205}
2206
2207static int64_t
2208extract_xa6a (uint64_t insn,
2209 ppc_cpu_t dialect,
2210 int *invalid)
2211{
2212 int64_t acc = (insn >> 23) & 0x7;
2213 int64_t value = extract_xa6 (insn, dialect, invalid);
79e24d0a
PB
2214 /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions. */
2215 if ((dialect & PPC_OPCODE_FUTURE) == 0
2216 && (value >> 2) == acc)
aa3c112f
AM
2217 *invalid = 1;
2218 return value;
2219}
2220
79e24d0a
PB
2221/* The 5-bit XB field in an XX3 form instruction. This is split. */
2222
2223static uint64_t
2224insert_xb5 (uint64_t insn,
2225 int64_t value,
2226 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2227 const char **errmsg ATTRIBUTE_UNUSED)
2228{
2229 return insn | ((value & 0x1e) << 11) | ((value & 0x20) >> 4);
2230}
2231
2232static int64_t
2233extract_xb5 (uint64_t insn,
2234 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2235 int *invalid ATTRIBUTE_UNUSED)
2236{
2237 return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1e);
2238}
b80c7270
AM
2239/* The XB field in an XX3 form instruction. This is split. */
2240
0f873fd5
PB
2241static uint64_t
2242insert_xb6 (uint64_t insn,
2243 int64_t value,
b80c7270
AM
2244 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2245 const char **errmsg ATTRIBUTE_UNUSED)
b9c361e0 2246{
b80c7270 2247 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
b9c361e0
JL
2248}
2249
0f873fd5
PB
2250static int64_t
2251extract_xb6 (uint64_t insn,
b80c7270
AM
2252 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2253 int *invalid ATTRIBUTE_UNUSED)
b9c361e0 2254{
b80c7270 2255 return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f);
b9c361e0
JL
2256}
2257
aa3c112f
AM
2258/* The XB field in an MMA XX3 form instruction. This is split
2259 and must not overlap with the ACC operand. */
2260
2261static uint64_t
2262insert_xb6a (uint64_t insn,
2263 int64_t value,
2264 ppc_cpu_t dialect,
2265 const char **errmsg)
2266{
2267 int64_t acc = (insn >> 23) & 0x7;
79e24d0a
PB
2268 /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions. */
2269 if ((dialect & PPC_OPCODE_FUTURE) == 0
2270 && (value >> 2) == acc)
aa3c112f
AM
2271 *errmsg = _("VSR overlaps ACC operand");
2272 return insert_xb6 (insn, value, dialect, errmsg);
2273}
2274
2275static int64_t
2276extract_xb6a (uint64_t insn,
2277 ppc_cpu_t dialect,
2278 int *invalid)
2279{
2280 int64_t acc = (insn >> 23) & 0x7;
2281 int64_t value = extract_xb6 (insn, dialect, invalid);
79e24d0a
PB
2282 /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions. */
2283 if ((dialect & PPC_OPCODE_FUTURE) == 0
2284 && (value >> 2) == acc)
aa3c112f
AM
2285 *invalid = 1;
2286 return value;
2287}
2288
98553ad3
PB
2289/* The XA and XB fields in an XX3 form instruction when they must be the same.
2290 This is used for extended mnemonics like xvmovdp. The extraction function
2291 enforces that the fields are the same. */
b80c7270 2292
0f873fd5 2293static uint64_t
98553ad3
PB
2294insert_xab6 (uint64_t insn,
2295 int64_t value,
2296 ppc_cpu_t dialect,
2297 const char **errmsg)
b9c361e0 2298{
98553ad3
PB
2299 return insert_xa6 (insn, value, dialect, errmsg)
2300 | insert_xb6 (insn, value, dialect, errmsg);
b9c361e0
JL
2301}
2302
0f873fd5 2303static int64_t
98553ad3
PB
2304extract_xab6 (uint64_t insn,
2305 ppc_cpu_t dialect,
b80c7270 2306 int *invalid)
b9c361e0 2307{
98553ad3
PB
2308 int64_t xa6 = extract_xa6 (insn, dialect, invalid);
2309 int64_t xb6 = extract_xb6 (insn, dialect, invalid);
2310
2311 if (xa6 != xb6)
b80c7270 2312 *invalid = 1;
98553ad3 2313 return xa6;
b9c361e0
JL
2314}
2315
b80c7270 2316/* The XC field in an XX4 form instruction. This is split. */
252b5132 2317
0f873fd5
PB
2318static uint64_t
2319insert_xc6 (uint64_t insn,
2320 int64_t value,
fa452fa6 2321 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2fbfdc41 2322 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 2323{
b80c7270 2324 return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
252b5132
RH
2325}
2326
0f873fd5
PB
2327static int64_t
2328extract_xc6 (uint64_t insn,
fa452fa6 2329 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270 2330 int *invalid ATTRIBUTE_UNUSED)
252b5132 2331{
b80c7270
AM
2332 return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
2333}
2334
7dacb40b 2335/* The split XTp and XSp field in a vector paired insn. */
94ba9882
AM
2336
2337static uint64_t
2338insert_xtp (uint64_t insn,
2339 int64_t value,
2340 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2341 const char **errmsg ATTRIBUTE_UNUSED)
2342{
2343 return insn | ((value & 0x1e) << 21) | ((value & 0x20) << (21 - 5));
2344}
2345
2346static int64_t
2347extract_xtp (uint64_t insn,
2348 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2349 int *invalid ATTRIBUTE_UNUSED)
2350{
2351 return ((insn >> (21 - 5)) & 0x20) | ((insn >> 21) & 0x1e);
2352}
2353
6edbfd3b
AM
2354/* The split XT field in a vector splat insn. */
2355
2356static uint64_t
2357insert_xts (uint64_t insn,
2358 int64_t value,
2359 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2360 const char **errmsg ATTRIBUTE_UNUSED)
2361{
2362 return insn | ((value & 0x1f) << 21) | ((value & 0x20) << (16 - 5));
2363}
2364
2365static int64_t
2366extract_xts (uint64_t insn,
2367 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2368 int *invalid ATTRIBUTE_UNUSED)
2369{
2370 return ((insn >> (16 - 5)) & 0x20) | ((insn >> 21) & 0x1f);
2371}
2372
0f873fd5
PB
2373static uint64_t
2374insert_dm (uint64_t insn,
2375 int64_t value,
b80c7270
AM
2376 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2377 const char **errmsg)
2378{
2379 if (value != 0 && value != 1)
2380 *errmsg = _("invalid constant");
2381 return insn | (((value) ? 3 : 0) << 8);
2382}
2383
0f873fd5
PB
2384static int64_t
2385extract_dm (uint64_t insn,
b80c7270
AM
2386 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2387 int *invalid)
2388{
0f873fd5 2389 int64_t value = (insn >> 8) & 3;
b80c7270 2390 if (value != 0 && value != 3)
252b5132 2391 *invalid = 1;
b80c7270 2392 return (value) ? 1 : 0;
252b5132
RH
2393}
2394
b80c7270 2395/* The VLESIMM field in an I16A form instruction. This is split. */
252b5132 2396
0f873fd5
PB
2397static uint64_t
2398insert_vlesi (uint64_t insn,
2399 int64_t value,
b80c7270
AM
2400 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2401 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 2402{
b80c7270 2403 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132
RH
2404}
2405
0f873fd5
PB
2406static int64_t
2407extract_vlesi (uint64_t insn,
b80c7270
AM
2408 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2409 int *invalid ATTRIBUTE_UNUSED)
252b5132 2410{
0f873fd5 2411 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
b80c7270
AM
2412 value = (value ^ 0x8000) - 0x8000;
2413 return value;
252b5132
RH
2414}
2415
0f873fd5
PB
2416static uint64_t
2417insert_vlensi (uint64_t insn,
2418 int64_t value,
b80c7270
AM
2419 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2420 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 2421{
b80c7270
AM
2422 value = -value;
2423 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132 2424}
0f873fd5
PB
2425static int64_t
2426extract_vlensi (uint64_t insn,
b80c7270 2427 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
9cf7e568 2428 int *invalid)
252b5132 2429{
0f873fd5 2430 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
b80c7270
AM
2431 value = (value ^ 0x8000) - 0x8000;
2432 /* Don't use for disassembly. */
2433 *invalid = 1;
2434 return -value;
252b5132
RH
2435}
2436
b80c7270 2437/* The VLEUIMM field in an I16A form instruction. This is split. */
252b5132 2438
0f873fd5
PB
2439static uint64_t
2440insert_vleui (uint64_t insn,
2441 int64_t value,
b80c7270
AM
2442 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2443 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 2444{
b80c7270 2445 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132
RH
2446}
2447
0f873fd5
PB
2448static int64_t
2449extract_vleui (uint64_t insn,
b80c7270
AM
2450 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2451 int *invalid ATTRIBUTE_UNUSED)
252b5132 2452{
b80c7270
AM
2453 return ((insn >> 10) & 0xf800) | (insn & 0x7ff);
2454}
8427c424 2455
b80c7270
AM
2456/* The VLEUIMML field in an I16L form instruction. This is split. */
2457
0f873fd5
PB
2458static uint64_t
2459insert_vleil (uint64_t insn,
2460 int64_t value,
b80c7270
AM
2461 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2462 const char **errmsg ATTRIBUTE_UNUSED)
2463{
2464 return insn | ((value & 0xf800) << 5) | (value & 0x7ff);
252b5132
RH
2465}
2466
0f873fd5
PB
2467static int64_t
2468extract_vleil (uint64_t insn,
b80c7270
AM
2469 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2470 int *invalid ATTRIBUTE_UNUSED)
252b5132 2471{
b80c7270 2472 return ((insn >> 5) & 0xf800) | (insn & 0x7ff);
8ebac3aa 2473}
ba4e851b 2474
0f873fd5
PB
2475static uint64_t
2476insert_evuimm1_ex0 (uint64_t insn,
2477 int64_t value,
74081948
AF
2478 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2479 const char **errmsg)
2480{
71553718
AM
2481 if (value <= 0 || value > 0x1f)
2482 *errmsg = _("UIMM = 00000 is illegal");
2483 return insn | ((value & 0x1f) << 11);
74081948
AF
2484}
2485
0f873fd5
PB
2486static int64_t
2487extract_evuimm1_ex0 (uint64_t insn,
74081948
AF
2488 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2489 int *invalid)
2490{
0f873fd5 2491 int64_t value = ((insn >> 11) & 0x1f);
74081948
AF
2492 if (value == 0)
2493 *invalid = 1;
2494
2495 return value;
2496}
2497
0f873fd5
PB
2498static uint64_t
2499insert_evuimm2_ex0 (uint64_t insn,
2500 int64_t value,
b80c7270
AM
2501 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2502 const char **errmsg)
8ebac3aa 2503{
71553718
AM
2504 if (value <= 0 || value > 0x3e)
2505 *errmsg = _("UIMM = 00000 is illegal");
2506 return insn | ((value & 0x3e) << 10);
252b5132
RH
2507}
2508
0f873fd5
PB
2509static int64_t
2510extract_evuimm2_ex0 (uint64_t insn,
b80c7270
AM
2511 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2512 int *invalid)
8ebac3aa 2513{
0f873fd5 2514 int64_t value = ((insn >> 10) & 0x3e);
b80c7270
AM
2515 if (value == 0)
2516 *invalid = 1;
8ebac3aa 2517
b80c7270 2518 return value;
8ebac3aa
AM
2519}
2520
0f873fd5
PB
2521static uint64_t
2522insert_evuimm4_ex0 (uint64_t insn,
2523 int64_t value,
b80c7270
AM
2524 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2525 const char **errmsg)
252b5132 2526{
71553718
AM
2527 if (value <= 0 || value > 0x7c)
2528 *errmsg = _("UIMM = 00000 is illegal");
2529 return insn | ((value & 0x7c) << 9);
252b5132
RH
2530}
2531
0f873fd5
PB
2532static int64_t
2533extract_evuimm4_ex0 (uint64_t insn,
b80c7270
AM
2534 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2535 int *invalid)
252b5132 2536{
0f873fd5 2537 int64_t value = ((insn >> 9) & 0x7c);
b80c7270 2538 if (value == 0)
252b5132 2539 *invalid = 1;
b80c7270 2540
252b5132
RH
2541 return value;
2542}
2543
0f873fd5
PB
2544static uint64_t
2545insert_evuimm8_ex0 (uint64_t insn,
2546 int64_t value,
b80c7270
AM
2547 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2548 const char **errmsg)
2549{
71553718
AM
2550 if (value <= 0 || value > 0xf8)
2551 *errmsg = _("UIMM = 00000 is illegal");
2552 return insn | ((value & 0xf8) << 8);
252b5132
RH
2553}
2554
0f873fd5
PB
2555static int64_t
2556extract_evuimm8_ex0 (uint64_t insn,
b80c7270
AM
2557 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2558 int *invalid)
252b5132 2559{
0f873fd5 2560 int64_t value = ((insn >> 8) & 0xf8);
b80c7270 2561 if (value == 0)
252b5132 2562 *invalid = 1;
252b5132 2563
b80c7270
AM
2564 return value;
2565}
a680de9a 2566
0f873fd5
PB
2567static uint64_t
2568insert_evuimm_lt8 (uint64_t insn,
2569 int64_t value,
74081948
AF
2570 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2571 const char **errmsg)
2572{
71553718
AM
2573 if (value < 0 || value > 7)
2574 *errmsg = _("UIMM values >7 are illegal");
2575 return insn | ((value & 0x7) << 11);
74081948
AF
2576}
2577
0f873fd5
PB
2578static int64_t
2579extract_evuimm_lt8 (uint64_t insn,
74081948
AF
2580 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2581 int *invalid)
2582{
0f873fd5 2583 int64_t value = ((insn >> 11) & 0x1f);
74081948
AF
2584 if (value > 7)
2585 *invalid = 1;
2586
2587 return value;
2588}
2589
0f873fd5
PB
2590static uint64_t
2591insert_evuimm_lt16 (uint64_t insn,
2592 int64_t value,
b80c7270
AM
2593 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2594 const char **errmsg)
a680de9a 2595{
71553718
AM
2596 if (value < 0 || value > 15)
2597 *errmsg = _("UIMM values >15 are illegal");
2598 return insn | ((value & 0xf) << 11);
a680de9a
PB
2599}
2600
0f873fd5
PB
2601static int64_t
2602extract_evuimm_lt16 (uint64_t insn,
b80c7270
AM
2603 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2604 int *invalid)
a680de9a 2605{
0f873fd5 2606 int64_t value = ((insn >> 11) & 0x1f);
b80c7270
AM
2607 if (value > 15)
2608 *invalid = 1;
a680de9a 2609
b80c7270
AM
2610 return value;
2611}
a680de9a 2612
0f873fd5
PB
2613static uint64_t
2614insert_rD_rS_even (uint64_t insn,
2615 int64_t value,
b80c7270
AM
2616 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2617 const char **errmsg)
a680de9a 2618{
71553718
AM
2619 if ((value & 0x1) != 0)
2620 *errmsg = _("GPR odd is illegal");
2621 return insn | ((value & 0x1e) << 21);
a680de9a
PB
2622}
2623
0f873fd5
PB
2624static int64_t
2625extract_rD_rS_even (uint64_t insn,
b80c7270
AM
2626 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2627 int *invalid)
a680de9a 2628{
0f873fd5 2629 int64_t value = ((insn >> 21) & 0x1f);
b80c7270
AM
2630 if ((value & 0x1) != 0)
2631 *invalid = 1;
2632
2633 return value;
a680de9a
PB
2634}
2635
0f873fd5
PB
2636static uint64_t
2637insert_off_lsp (uint64_t insn,
2638 int64_t value,
b80c7270
AM
2639 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2640 const char **errmsg)
a680de9a 2641{
71553718
AM
2642 if (value <= 0 || value > 0x3)
2643 *errmsg = _("invalid offset");
2644 return insn | (value & 0x3);
a680de9a
PB
2645}
2646
0f873fd5
PB
2647static int64_t
2648extract_off_lsp (uint64_t insn,
b80c7270
AM
2649 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2650 int *invalid)
a680de9a 2651{
0f873fd5 2652 int64_t value = (insn & 0x3);
b80c7270
AM
2653 if (value == 0)
2654 *invalid = 1;
2655
2656 return value;
a680de9a 2657}
74081948 2658
0f873fd5
PB
2659static uint64_t
2660insert_off_spe2 (uint64_t insn,
2661 int64_t value,
74081948
AF
2662 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2663 const char **errmsg)
2664{
71553718
AM
2665 if (value <= 0 || value > 0x7)
2666 *errmsg = _("invalid offset");
2667 return insn | (value & 0x7);
74081948
AF
2668}
2669
0f873fd5
PB
2670static int64_t
2671extract_off_spe2 (uint64_t insn,
74081948
AF
2672 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2673 int *invalid)
2674{
0f873fd5 2675 int64_t value = (insn & 0x7);
74081948
AF
2676 if (value == 0)
2677 *invalid = 1;
2678
2679 return value;
2680}
2681
0f873fd5
PB
2682static uint64_t
2683insert_Ddd (uint64_t insn,
2684 int64_t value,
74081948
AF
2685 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2686 const char **errmsg)
2687{
71553718
AM
2688 if (value < 0 || value > 0x7)
2689 *errmsg = _("invalid Ddd value");
2690 return insn | ((value & 0x3) << 11) | ((value & 0x4) >> 2);
74081948
AF
2691}
2692
0f873fd5
PB
2693static int64_t
2694extract_Ddd (uint64_t insn,
74081948
AF
2695 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2696 int *invalid ATTRIBUTE_UNUSED)
2697{
2698 return ((insn >> 11) & 0x3) | ((insn << 2) & 0x4);
2699}
9cf7e568
AM
2700
2701static uint64_t
2702insert_sxl (uint64_t insn,
2703 int64_t value,
2704 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2705 const char **errmsg ATTRIBUTE_UNUSED)
2706{
2707 return insn | ((value & 0x1) << 11);
2708}
2709
2710static int64_t
2711extract_sxl (uint64_t insn,
2712 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2713 int *invalid)
2714{
8acf1435 2715 /* Missing optional operands have a value of one. */
9cf7e568
AM
2716 if (*invalid < 0)
2717 return 1;
2718 return (insn >> 11) & 0x1;
2719}
97bf40d8
AM
2720
2721/* The list of embedded processors that use the embedded operand ordering
2722 for the 3 operand dcbt and dcbtst instructions. */
2723#define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
2724 | PPC_OPCODE_A2)
2725
2726/* ISA 2.03 and later specify extended mnemonics dcbtct, dcbtds, and
2727 dcbtstct, dcbtstds with a note saying these should be used in new
2728 programs rather than the base mnemonics "so that it can be coded
2729 with TH as the last operand for all categories". For that reason
2730 the extended mnemonics are enabled in the assembler for the
2731 embedded processors, but not for the disassembler so as to display
2732 the embedded dcbt or dcbtst expected form with TH first for
2733 embedded programmers. */
2734
2735static uint64_t
2736insert_thct (uint64_t insn,
2737 int64_t value,
2738 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2739 const char **errmsg)
2740{
2741 if ((uint64_t) value > 7)
2742 *errmsg = _("invalid TH value");
2743 return insn | ((value & 7) << 21);
2744}
2745
2746static int64_t
2747extract_thct (uint64_t insn,
2748 ppc_cpu_t dialect,
2749 int *invalid)
2750{
2751 /* Missing optional operands have a value of 0. */
2752 if (*invalid < 0)
2753 return 0;
2754
2755 int64_t value = (insn >> 21) & 0x1f;
2756 if (value > 7 || (dialect & DCBT_EO) != 0)
2757 *invalid = 1;
2758
2759 return value;
2760}
2761
2762static uint64_t
2763insert_thds (uint64_t insn,
2764 int64_t value,
2765 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2766 const char **errmsg)
2767{
2768 if (value < 8 || value > 15)
2769 *errmsg = _("invalid TH value");
2770 return insn | ((value & 0x1f) << 21);
2771}
2772
2773static int64_t
2774extract_thds (uint64_t insn,
2775 ppc_cpu_t dialect,
2776 int *invalid)
2777{
2778 /* Missing optional operands have a value of 8. */
2779 if (*invalid < 0)
2780 return 8;
2781
2782 int64_t value = (insn >> 21) & 0x1f;
2783 if (value < 8 || value > 15 || (dialect & DCBT_EO) != 0)
2784 *invalid = 1;
2785
2786 return value;
2787}
b80c7270
AM
2788\f
2789/* The operands table.
a680de9a 2790
b80c7270 2791 The fields are bitm, shift, insert, extract, flags.
2fbfdc41 2792
b80c7270
AM
2793 We used to put parens around the various additions, like the one
2794 for BA just below. However, that caused trouble with feeble
2795 compilers with a limit on depth of a parenthesized expression, like
2796 (reportedly) the compiler in Microsoft Developer Studio 5. So we
2797 omit the parens, since the macros are never used in a context where
2798 the addition will be ambiguous. */
2799
2800const struct powerpc_operand powerpc_operands[] =
c168870a 2801{
b80c7270
AM
2802 /* The zero index is used to indicate the end of the list of
2803 operands. */
2804#define UNUSED 0
2805 { 0, 0, NULL, NULL, 0 },
2806
2807 /* The BA field in an XL form instruction. */
2808#define BA UNUSED + 1
2809 /* The BI field in a B form or XL form instruction. */
2810#define BI BA
2811#define BI_MASK (0x1f << 16)
2812 { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
2813
98553ad3
PB
2814 /* The BT, BA and BB fields in a XL form instruction when they must all
2815 be the same. */
2816#define BTAB BA + 1
2817 { 0x1f, 21, insert_btab, extract_btab, PPC_OPERAND_CR_BIT },
b80c7270
AM
2818
2819 /* The BB field in an XL form instruction. */
98553ad3 2820#define BB BTAB + 1
b80c7270
AM
2821#define BB_MASK (0x1f << 11)
2822 { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT },
2823
98553ad3
PB
2824 /* The BA and BB fields in a XL form instruction when they must be
2825 the same. */
2826#define BAB BB + 1
2827 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_CR_BIT },
2828
2829 /* The VRA and VRB fields in a VX form instruction when they must be the same.
2830 This is used for extended mnemonics like vmr. */
2831#define VAB BAB + 1
2832 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_VR },
2833
2834 /* The RA and RB fields in a VX form instruction when they must be the same.
2835 This is used for extended mnemonics like evmr. */
2836#define RAB VAB + 1
2837 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_GPR },
b80c7270 2838
dd4832bf
DS
2839#define BC RAB + 1
2840 { 0x1f, 6, NULL, NULL, PPC_OPERAND_CR_BIT },
2841
b80c7270
AM
2842 /* The BD field in a B form instruction. The lower two bits are
2843 forced to zero. */
dd4832bf 2844#define BD BC + 1
b80c7270
AM
2845 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2846
2847 /* The BD field in a B form instruction when absolute addressing is
2848 used. */
2849#define BDA BD + 1
2850 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2851
2852 /* The BD field in a B form instruction when the - modifier is used.
2853 This sets the y bit of the BO field appropriately. */
2854#define BDM BDA + 1
2855 { 0xfffc, 0, insert_bdm, extract_bdm,
2856 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2857
2858 /* The BD field in a B form instruction when the - modifier is used
2859 and absolute address is used. */
2860#define BDMA BDM + 1
2861 { 0xfffc, 0, insert_bdm, extract_bdm,
2862 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2863
2864 /* The BD field in a B form instruction when the + modifier is used.
2865 This sets the y bit of the BO field appropriately. */
2866#define BDP BDMA + 1
2867 { 0xfffc, 0, insert_bdp, extract_bdp,
2868 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2869
2870 /* The BD field in a B form instruction when the + modifier is used
2871 and absolute addressing is used. */
2872#define BDPA BDP + 1
2873 { 0xfffc, 0, insert_bdp, extract_bdp,
2874 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2875
2876 /* The BF field in an X or XL form instruction. */
2877#define BF BDPA + 1
2878 /* The CRFD field in an X form instruction. */
2879#define CRFD BF
2880 /* The CRD field in an XL form instruction. */
2881#define CRD BF
2882 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG },
2883
2884 /* The BF field in an X or XL form instruction. */
2885#define BFF BF + 1
2886 { 0x7, 23, NULL, NULL, 0 },
2887
aa3c112f
AM
2888 /* The ACC field in a VSX ACC 8LS:D-form instruction. */
2889#define ACC BFF + 1
2890 { 0x7, 23, NULL, NULL, PPC_OPERAND_ACC },
2891
79e24d0a
PB
2892 /* The DMR field in a MMA instruction. */
2893#define DMR ACC + 1
2894 { 0x7, 23, NULL, NULL, PPC_OPERAND_DMR },
2895
2896 /* The second DMR field in a two DMR operand MMA instruction. */
2897#define DMRAB DMR + 1
2898 { 0x7, 13, NULL, NULL, PPC_OPERAND_DMR },
2899
b80c7270
AM
2900 /* An optional BF field. This is used for comparison instructions,
2901 in which an omitted BF field is taken as zero. */
79e24d0a 2902#define OBF DMRAB + 1
b80c7270
AM
2903 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
2904
2905 /* The BFA field in an X or XL form instruction. */
2906#define BFA OBF + 1
2907 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG },
2908
2909 /* The BO field in a B form instruction. Certain values are
2910 illegal. */
2911#define BO BFA + 1
2912#define BO_MASK (0x1f << 21)
2913 { 0x1f, 21, insert_bo, extract_bo, 0 },
2914
aae9718e
PB
2915 /* The BO field in a B form instruction when the - modifier is used. */
2916#define BOM BO + 1
2917 { 0x1f, 21, insert_bom, extract_bom, 0 },
2918
2919 /* The BO field in a B form instruction when the + modifier is used. */
2920#define BOP BOM + 1
2921 { 0x1f, 21, insert_bop, extract_bop, 0 },
b80c7270
AM
2922
2923 /* The RM field in an X form instruction. */
aae9718e 2924#define RM BOP + 1
74081948 2925#define DD RM
df0030b5 2926#define mo1 RM
b80c7270
AM
2927 { 0x3, 11, NULL, NULL, 0 },
2928
2929#define BH RM + 1
2930 { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
2931
2932 /* The BT field in an X or XL form instruction. */
2933#define BT BH + 1
2934 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT },
2935
96a86c01
AM
2936 /* The BT field in a mtfsb0 or mtfsb1 instruction. */
2937#define BTF BT + 1
2938 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT | PPC_OPERAND_CR_REG },
2939
b80c7270 2940 /* The BI16 field in a BD8 form instruction. */
96a86c01 2941#define BI16 BTF + 1
b80c7270
AM
2942 { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT },
2943
2944 /* The BI32 field in a BD15 form instruction. */
2945#define BI32 BI16 + 1
2946 { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
98e69875 2947
b80c7270
AM
2948 /* The BO32 field in a BD15 form instruction. */
2949#define BO32 BI32 + 1
2950 { 0x3, 20, NULL, NULL, 0 },
c168870a 2951
b80c7270
AM
2952 /* The B8 field in a BD8 form instruction. */
2953#define B8 BO32 + 1
2954 { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 2955
b80c7270
AM
2956 /* The B15 field in a BD15 form instruction. The lowest bit is
2957 forced to zero. */
2958#define B15 B8 + 1
2959 { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 2960
b80c7270
AM
2961 /* The B24 field in a BD24 form instruction. The lowest bit is
2962 forced to zero. */
2963#define B24 B15 + 1
2964 { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 2965
b80c7270
AM
2966 /* The condition register number portion of the BI field in a B form
2967 or XL form instruction. This is used for the extended
2968 conditional branch mnemonics, which set the lower two bits of the
2969 BI field. This field is optional. */
2970#define CR B24 + 1
2971 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
c168870a 2972
b80c7270
AM
2973 /* The CRB field in an X form instruction. */
2974#define CRB CR + 1
2975 /* The MB field in an M form instruction. */
2976#define MB CRB
2977#define MB_MASK (0x1f << 6)
2978 { 0x1f, 6, NULL, NULL, 0 },
c168870a 2979
b80c7270
AM
2980 /* The CRD32 field in an XL form instruction. */
2981#define CRD32 CRB + 1
2982 { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG },
c168870a 2983
b80c7270
AM
2984 /* The CRFS field in an X form instruction. */
2985#define CRFS CRD32 + 1
2986 { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG },
b9c361e0 2987
b80c7270
AM
2988#define CRS CRFS + 1
2989 { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
b9c361e0 2990
b80c7270
AM
2991 /* The CT field in an X form instruction. */
2992#define CT CRS + 1
2993 /* The MO field in an mbar instruction. */
2994#define MO CT
2995 { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2996
97bf40d8
AM
2997 /* The TH field in dcbtct. */
2998#define THCT CT + 1
2999 { 0x1f, 21, insert_thct, extract_thct, PPC_OPERAND_OPTIONAL },
3000
3001 /* The TH field in dcbtds. */
3002#define THDS THCT + 1
3003 { 0x1f, 21, insert_thds, extract_thds, PPC_OPERAND_OPTIONAL },
3004
b80c7270
AM
3005 /* The D field in a D form instruction. This is a displacement off
3006 a register, and implies that the next operand is a register in
3007 parentheses. */
97bf40d8 3008#define D THDS + 1
b80c7270 3009 { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
aea77599 3010
b80c7270
AM
3011 /* The D8 field in a D form instruction. This is a displacement off
3012 a register, and implies that the next operand is a register in
3013 parentheses. */
3014#define D8 D + 1
3015 { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
7b934113 3016
b80c7270
AM
3017 /* The DCMX field in an X form instruction. */
3018#define DCMX D8 + 1
3019 { 0x7f, 16, NULL, NULL, 0 },
7b934113 3020
b80c7270
AM
3021 /* The split DCMX field in an X form instruction. */
3022#define DCMXS DCMX + 1
3023 { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 },
73f07bff 3024
b80c7270
AM
3025 /* The DQ field in a DQ form instruction. This is like D, but the
3026 lower four bits are forced to zero. */
3027#define DQ DCMXS + 1
3028 { 0xfff0, 0, NULL, NULL,
3029 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },
73f07bff 3030
b80c7270
AM
3031 /* The DS field in a DS form instruction. This is like D, but the
3032 lower two bits are forced to zero. */
3033#define DS DQ + 1
3034 { 0xfffc, 0, NULL, NULL,
3035 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
7b934113 3036
8acf1435
PB
3037 /* The D field in an 8-byte D form prefix instruction. This is a displacement
3038 off a register, and implies that the next operand is a register in
3039 parentheses. */
3040#define D34 DS + 1
0e62b37a 3041 { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34,
8acf1435
PB
3042 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
3043
3044 /* The SI field in an 8-byte D form prefix instruction. */
3045#define SI34 D34 + 1
0e62b37a 3046 { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34, PPC_OPERAND_SIGNED },
8acf1435
PB
3047
3048 /* The NSI field in an 8-byte D form prefix instruction. This is the
3049 same as the SI34 field, only negated. */
3050#define NSI34 SI34 + 1
0e62b37a 3051 { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_nsi34, extract_nsi34,
8acf1435
PB
3052 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
3053
6edbfd3b
AM
3054 /* The IMM32 field in a vector splat immediate prefix instruction. */
3055#define IMM32 NSI34 + 1
3056 { 0xffffffff, PPC_OPSHIFT_INV, insert_imm32, extract_imm32, 0},
3057
3058 /* The UIM field in a vector permute extended prefix instruction. */
3059#define UIM3 IMM32 + 1
3060 { 0x7, 32, NULL, NULL, 0},
3061
ec40e91c
AM
3062 /* The UIM field in a vector eval prefix instruction. */
3063#define UIM8 UIM3 + 1
3064 { 0xff, 32, NULL, NULL, 0},
3065
6edbfd3b 3066 /* The IX field in xxsplti32dx. */
ec40e91c 3067#define IX UIM8 + 1
6edbfd3b
AM
3068 { 0x1, 17, NULL, NULL, 0 },
3069
aa3c112f
AM
3070 /* The PMSK field in GER rank 8 prefix instructions. */
3071#define PMSK8 IX + 1
3072 { 0xff, 40, NULL, NULL, 0 },
3073
3074 /* The PMSK field in GER rank 4 prefix instructions. */
3075#define PMSK4 PMSK8 + 1
3076 { 0xf, 44, NULL, NULL, 0 },
3077
3078 /* The PMSK field in GER rank 2 prefix instructions. */
3079#define PMSK2 PMSK4 + 1
3080 { 0x3, 46, NULL, NULL, 0 },
3081
3082 /* The XMSK field in GER prefix instructions. */
3083#define XMSK PMSK2 + 1
3084 { 0xf, 36, NULL, NULL, 0 },
3085
bb98553c
PB
3086 /* The XMSK field in GERX prefix instructions. */
3087#define XMSK8 XMSK + 1
3088 { 0xff, 36, NULL, NULL, 0 },
3089
aa3c112f 3090 /* The YMSK field in GER prefix instructions. */
bb98553c 3091#define YMSK XMSK8 + 1
aa3c112f
AM
3092 { 0xf, 32, NULL, NULL, 0 },
3093
3094 /* The YMSK field in 64-bit GER prefix instructions. */
3095#define YMSK2 YMSK + 1
3096 { 0x3, 34, NULL, NULL, 0 },
3097
b80c7270
AM
3098 /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits
3099 unsigned imediate */
aa3c112f 3100#define DUIS YMSK2 + 1
b80c7270
AM
3101#define BHRBE DUIS
3102 { 0x3ff, 11, NULL, NULL, 0 },
aea77599 3103
aae7fcb8
PB
3104 /* The split DW field in a X form instruction. */
3105#define DW DUIS + 1
3106 { -1, PPC_OPSHIFT_INV, insert_dw, extract_dw,
3107 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED},
3108
b80c7270 3109 /* The split D field in a DX form instruction. */
aae7fcb8 3110#define DXD DW + 1
b80c7270
AM
3111 { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd,
3112 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
7b934113 3113
b80c7270
AM
3114 /* The split ND field in a DX form instruction.
3115 This is the same as the DX field, only negated. */
3116#define NDXD DXD + 1
3117 { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn,
3118 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
7b934113 3119
b80c7270
AM
3120 /* The E field in a wrteei instruction. */
3121 /* And the W bit in the pair singles instructions. */
3122 /* And the ST field in a VX form instruction. */
3123#define E NDXD + 1
3124#define PSW E
3125#define ST E
3126 { 0x1, 15, NULL, NULL, 0 },
aea77599 3127
b80c7270
AM
3128 /* The FL1 field in a POWER SC form instruction. */
3129#define FL1 E + 1
3130 /* The U field in an X form instruction. */
3131#define U FL1
3132 { 0xf, 12, NULL, NULL, 0 },
73f07bff 3133
b80c7270
AM
3134 /* The FL2 field in a POWER SC form instruction. */
3135#define FL2 FL1 + 1
3136 { 0x7, 2, NULL, NULL, 0 },
73f07bff 3137
b80c7270
AM
3138 /* The FLM field in an XFL form instruction. */
3139#define FLM FL2 + 1
3140 { 0xff, 17, NULL, NULL, 0 },
73f07bff 3141
b80c7270
AM
3142 /* The FRA field in an X or A form instruction. */
3143#define FRA FLM + 1
3144#define FRA_MASK (0x1f << 16)
3145 { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR },
252b5132 3146
b80c7270
AM
3147 /* The FRAp field of DFP instructions. */
3148#define FRAp FRA + 1
3149 { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR },
252b5132 3150
b80c7270
AM
3151 /* The FRB field in an X or A form instruction. */
3152#define FRB FRAp + 1
3153#define FRB_MASK (0x1f << 11)
3154 { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR },
3155
3156 /* The FRBp field of DFP instructions. */
3157#define FRBp FRB + 1
3158 { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR },
252b5132 3159
b80c7270
AM
3160 /* The FRC field in an A form instruction. */
3161#define FRC FRBp + 1
3162#define FRC_MASK (0x1f << 6)
3163 { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR },
252b5132 3164
b80c7270
AM
3165 /* The FRS field in an X form instruction or the FRT field in a D, X
3166 or A form instruction. */
3167#define FRS FRC + 1
3168#define FRT FRS
3169 { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR },
252b5132 3170
b80c7270
AM
3171 /* The FRSp field of stfdp or the FRTp field of lfdp and DFP
3172 instructions. */
3173#define FRSp FRS + 1
3174#define FRTp FRSp
3175 { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR },
252b5132 3176
b80c7270
AM
3177 /* The FXM field in an XFX instruction. */
3178#define FXM FRSp + 1
3179 { 0xff, 12, insert_fxm, extract_fxm, 0 },
252b5132 3180
b80c7270
AM
3181 /* Power4 version for mfcr. */
3182#define FXM4 FXM + 1
9cf7e568 3183 { 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL },
252b5132 3184
b80c7270 3185 /* The IMM20 field in an LI instruction. */
9cf7e568 3186#define IMM20 FXM4 + 1
b80c7270 3187 { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED},
252b5132 3188
b80c7270
AM
3189 /* The L field in a D or X form instruction. */
3190#define L IMM20 + 1
3191 { 0x1, 21, NULL, NULL, 0 },
252b5132 3192
b80c7270
AM
3193 /* The optional L field in tlbie and tlbiel instructions. */
3194#define LOPT L + 1
3195 /* The R field in a HTM X form instruction. */
3196#define HTM_R LOPT
3197 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 3198
afef4fe9
PB
3199 /* The optional L field in the paste. instruction. This is similar to LOPT
3200 above, but with a default value of 1. */
3201#define L1OPT LOPT + 1
3202 { 0x1, 21, insert_l1opt, extract_l1opt, PPC_OPERAND_OPTIONAL },
3203
b80c7270 3204 /* The optional (for 32-bit) L field in cmp[l][i] instructions. */
afef4fe9 3205#define L32OPT L1OPT + 1
b80c7270 3206 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 },
252b5132 3207
3d205eb4 3208 /* The 2-bit L or WC field in an X (sync, dcbf or wait) form instruction. */
b80c7270 3209#define L2OPT L32OPT + 1
3d205eb4
PB
3210#define LS L2OPT
3211#define WC L2OPT
3212 { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
252b5132 3213
b80c7270
AM
3214 /* The LEV field in a POWER SVC / POWER9 SCV form instruction. */
3215#define SVC_LEV L2OPT + 1
3216 { 0x7f, 5, NULL, NULL, 0 },
252b5132 3217
b80c7270
AM
3218 /* The LEV field in an SC form instruction. */
3219#define LEV SVC_LEV + 1
3220 { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 3221
b80c7270
AM
3222 /* The LI field in an I form instruction. The lower two bits are
3223 forced to zero. */
3224#define LI LEV + 1
3225 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
252b5132 3226
b80c7270
AM
3227 /* The LI field in an I form instruction when used as an absolute
3228 address. */
3229#define LIA LI + 1
3230 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
252b5132 3231
3d205eb4
PB
3232 /* The 3-bit L field in a sync or dcbf instruction. */
3233#define LS3 LIA + 1
3234#define L3OPT LS3
3235 { 0x7, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
252b5132 3236
b80c7270 3237 /* The ME field in an M form instruction. */
3d205eb4 3238#define ME LS3 + 1
b80c7270
AM
3239#define ME_MASK (0x1f << 1)
3240 { 0x1f, 1, NULL, NULL, 0 },
989993d8 3241
f304c63d
AM
3242#define CRWn ME + 1
3243 { 0x1f, 1, insert_crwn, extract_crwn, 0 },
3244
3245#define ELWn CRWn + 1
3246 { 0x1f, 1, insert_elwn, extract_elwn, PPC_OPERAND_PLUS1 },
3247
3248#define ERWn ELWn + 1
3249 { 0x1f, 6, insert_erwn, extract_erwn, 0 },
3250
3251#define ERWb ERWn + 1
3252 { 0x1f, 11, insert_erwb, extract_erwb, 0 },
3253
3254#define CSLWb ERWb + 1
3255 { 0x1f, 6, NULL, extract_cslwb, 0 },
3256
3257#define CSLWn CSLWb + 1
3258 { 0x1f, 11, insert_cslwn, NULL, 0 },
3259
3260#define ILWn CSLWn + 1
3261 { 0x1f, 1, NULL, extract_ilwn, PPC_OPERAND_PLUS1 },
3262
3263#define ILWb ILWn + 1
3264 { 0x1f, 6, insert_ilwb, NULL, 0 },
3265
3266#define IRWn ILWb + 1
3267 { 0x1f, 1, NULL, extract_irwn, PPC_OPERAND_PLUS1 },
3268
3269#define IRWb IRWn + 1
3270 { 0x1f, 6, insert_irwb, NULL, 0 },
3271
b80c7270
AM
3272 /* The MB and ME fields in an M form instruction expressed a single
3273 operand which is a bitmask indicating which bits to select. This
3274 is a two operand form using PPC_OPERAND_NEXT. See the
3275 description in opcode/ppc.h for what this means. */
f304c63d 3276#define MBE IRWb + 1
b80c7270
AM
3277 { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },
3278 { -1, 0, insert_mbe, extract_mbe, 0 },
989993d8 3279
b80c7270
AM
3280 /* The MB or ME field in an MD or MDS form instruction. The high
3281 bit is wrapped to the low end. */
3282#define MB6 MBE + 2
3283#define ME6 MB6
3284#define MB6_MASK (0x3f << 5)
3285 { 0x3f, 5, insert_mb6, extract_mb6, 0 },
989993d8 3286
42952a96
AM
3287#define ELDn MB6 + 1
3288 { 0x3f, 5, insert_eldn, extract_eldn, PPC_OPERAND_PLUS1 },
3289
3290#define ERDn ELDn + 1
3291 { 0x3f, 5, insert_erdn, extract_erdn, 0 },
3292
3293#define CRDn ERDn + 1
3294 { 0x3f, 5, insert_crdn, extract_crdn, 0 },
3295
b80c7270
AM
3296 /* The NB field in an X form instruction. The value 32 is stored as
3297 0. */
42952a96 3298#define NB CRDn + 1
b80c7270 3299 { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 },
252b5132 3300
b80c7270
AM
3301 /* The NBI field in an lswi instruction, which has special value
3302 restrictions. The value 32 is stored as 0. */
3303#define NBI NB + 1
3304 { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 },
252b5132 3305
b80c7270
AM
3306 /* The NSI field in a D form instruction. This is the same as the
3307 SI field, only negated. */
3308#define NSI NBI + 1
3309 { 0xffff, 0, insert_nsi, extract_nsi,
3310 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
252b5132 3311
b80c7270
AM
3312 /* The NSI field in a D form instruction when we accept a wide range
3313 of positive values. */
3314#define NSISIGNOPT NSI + 1
3315 { 0xffff, 0, insert_nsi, extract_nsi,
3316 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
252b5132 3317
b80c7270
AM
3318 /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */
3319#define RA NSISIGNOPT + 1
3320#define RA_MASK (0x1f << 16)
3321 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
252b5132 3322
b80c7270
AM
3323 /* As above, but 0 in the RA field means zero, not r0. */
3324#define RA0 RA + 1
3325 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 },
73f07bff 3326
8acf1435
PB
3327 /* Similar to above, but optional. */
3328#define PRA0 RA0 + 1
3329 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
3330
b80c7270
AM
3331 /* The RA field in the DQ form lq or an lswx instruction, which have
3332 special value restrictions. */
8acf1435 3333#define RAQ PRA0 + 1
b80c7270
AM
3334#define RAX RAQ
3335 { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 },
73f07bff 3336
8acf1435
PB
3337 /* Similar to above, but optional. */
3338#define PRAQ RAQ + 1
3339 { 0x1f, 16, insert_raq, extract_raq,
3340 PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
3341
3342 /* The R field in an 8-byte D, DS, DQ or X form prefix instruction. */
3343#define PCREL PRAQ + 1
3344#define PCREL_MASK (1ULL << 52)
3345 { 0x1, 52, insert_pcrel, extract_pcrel, PPC_OPERAND_OPTIONAL },
3346
7149607f
AM
3347#define PCREL1 PCREL + 1
3348 { 0x1, 52, insert_pcrel, extract_pcrel1, PPC_OPERAND_OPTIONAL },
8acf1435 3349
b80c7270
AM
3350 /* The RA field in a D or X form instruction which is an updating
3351 load, which means that the RA field may not be zero and may not
3352 equal the RT field. */
7149607f 3353#define RAL PCREL1 + 1
b80c7270 3354 { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 },
252b5132 3355
b80c7270
AM
3356 /* The RA field in an lmw instruction, which has special value
3357 restrictions. */
3358#define RAM RAL + 1
3359 { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 },
252b5132 3360
b80c7270
AM
3361 /* The RA field in a D or X form instruction which is an updating
3362 store or an updating floating point load, which means that the RA
3363 field may not be zero. */
3364#define RAS RAM + 1
3365 { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 },
73f07bff 3366
b80c7270
AM
3367 /* The RA field of the tlbwe, dccci and iccci instructions,
3368 which are optional. */
3369#define RAOPT RAS + 1
3370 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 3371
b80c7270
AM
3372 /* The RB field in an X, XO, M, or MDS form instruction. */
3373#define RB RAOPT + 1
3374#define RB_MASK (0x1f << 11)
3375 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR },
adadcc0c 3376
98553ad3
PB
3377 /* The RS and RB fields in an X form instruction when they must be the same.
3378 This is used for extended mnemonics like mr. */
3379#define RSB RB + 1
3380 { 0x1f, 11, insert_rsb, extract_rsb, PPC_OPERAND_GPR },
adadcc0c 3381
b80c7270
AM
3382 /* The RB field in an lswx instruction, which has special value
3383 restrictions. */
98553ad3 3384#define RBX RSB + 1
b80c7270 3385 { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR },
adadcc0c 3386
b80c7270
AM
3387 /* The RB field of the dccci and iccci instructions, which are optional. */
3388#define RBOPT RBX + 1
3389 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 3390
b80c7270
AM
3391 /* The RC register field in an maddld, maddhd or maddhdu instruction. */
3392#define RC RBOPT + 1
3393 { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR },
73f07bff 3394
b80c7270
AM
3395 /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form
3396 instruction or the RT field in a D, DS, X, XFX or XO form
3397 instruction. */
3398#define RS RC + 1
3399#define RT RS
3400#define RT_MASK (0x1f << 21)
3401#define RD RS
3402 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR },
252b5132 3403
b80c7270
AM
3404#define RD_EVEN RS + 1
3405#define RS_EVEN RD_EVEN
3406 { 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR },
252b5132 3407
b80c7270
AM
3408 /* The RS and RT fields of the DS form stq and DQ form lq instructions,
3409 which have special value restrictions. */
3410#define RSQ RS_EVEN + 1
3411#define RTQ RSQ
3412#define Q_MASK (1 << 21)
3413 { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
73f07bff 3414
b80c7270
AM
3415 /* The RS field of the tlbwe instruction, which is optional. */
3416#define RSO RSQ + 1
3417#define RTO RSO
3418 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 3419
b80c7270
AM
3420 /* The RX field of the SE_RR form instruction. */
3421#define RX RSO + 1
3422 { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR },
252b5132 3423
b80c7270
AM
3424 /* The ARX field of the SE_RR form instruction. */
3425#define ARX RX + 1
3426 { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR },
252b5132 3427
b80c7270
AM
3428 /* The RY field of the SE_RR form instruction. */
3429#define RY ARX + 1
3430#define RZ RY
3431 { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR },
252b5132 3432
b80c7270
AM
3433 /* The ARY field of the SE_RR form instruction. */
3434#define ARY RY + 1
3435 { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR },
989993d8 3436
b80c7270
AM
3437 /* The SCLSCI8 field in a D form instruction. */
3438#define SCLSCI8 ARY + 1
3439 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 },
989993d8 3440
b80c7270
AM
3441 /* The SCLSCI8N field in a D form instruction. This is the same as the
3442 SCLSCI8 field, only negated. */
3443#define SCLSCI8N SCLSCI8 + 1
3444 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n,
3445 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
989993d8 3446
b80c7270
AM
3447 /* The SD field of the SD4 form instruction. */
3448#define SE_SD SCLSCI8N + 1
3449 { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS },
73f07bff 3450
b80c7270
AM
3451 /* The SD field of the SD4 form instruction, for halfword. */
3452#define SE_SDH SE_SD + 1
71553718 3453 { 0x1e, 7, NULL, NULL, PPC_OPERAND_PARENS },
73f07bff 3454
b80c7270
AM
3455 /* The SD field of the SD4 form instruction, for word. */
3456#define SE_SDW SE_SDH + 1
71553718 3457 { 0x3c, 6, NULL, NULL, PPC_OPERAND_PARENS },
b9c361e0 3458
b80c7270
AM
3459 /* The SH field in an X or M form instruction. */
3460#define SH SE_SDW + 1
3461#define SH_MASK (0x1f << 11)
3462 /* The other UIMM field in a EVX form instruction. */
3463#define EVUIMM SH
3464 /* The FC field in an atomic X form instruction. */
3465#define FC SH
6edbfd3b 3466#define UIM5 SH
b80c7270 3467 { 0x1f, 11, NULL, NULL, 0 },
b9c361e0 3468
f304c63d
AM
3469#define RRWn SH + 1
3470 { 0x1f, 11, insert_rrwn, extract_rrwn, 0 },
3471
3472#define SLWn RRWn + 1
3473 { 0x1f, 11, insert_slwn, extract_slwn, 0 },
3474
3475#define SRWn SLWn + 1
3476 { 0x1f, 11, insert_srwn, extract_srwn, 0 },
3477
3478#define EVUIMM_LT8 SRWn + 1
74081948
AF
3479 { 0x1f, 11, insert_evuimm_lt8, extract_evuimm_lt8, 0 },
3480
3481#define EVUIMM_LT16 EVUIMM_LT8 + 1
b80c7270 3482 { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 },
b9c361e0 3483
b80c7270
AM
3484 /* The SI field in a HTM X form instruction. */
3485#define HTM_SI EVUIMM_LT16 + 1
3486 { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED },
943d398f 3487
b80c7270
AM
3488 /* The SH field in an MD form instruction. This is split. */
3489#define SH6 HTM_SI + 1
3490#define SH6_MASK ((0x1f << 11) | (1 << 1))
3491 { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 },
b9c361e0 3492
42952a96
AM
3493#define RRDn SH6 + 1
3494 { 0x3f, PPC_OPSHIFT_INV, insert_rrdn, extract_rrdn, 0 },
3495
3496#define SLDn RRDn + 1
3497 { 0x3f, PPC_OPSHIFT_INV, insert_sldn, extract_sldn, 0 },
3498
3499#define SRDn SLDn + 1
3500 { 0x3f, PPC_OPSHIFT_INV, insert_srdn, extract_srdn, 0 },
3501
3502#define ERDb SRDn + 1
3503 { 0x3f, PPC_OPSHIFT_INV, insert_erdb, extract_erdb, 0 },
3504
3505#define CSLDn ERDb + 1
3506 { 0x3f, PPC_OPSHIFT_SH6, insert_csldn, extract_sh6, 0 },
3507
3508#define CSLDb CSLDn + 1
3509 { 0x3f, 5, insert_mb6, extract_csldb, 0 },
3510
3511#define IRDn CSLDb + 1
3512 { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_irdn, PPC_OPERAND_PLUS1 },
3513
3514#define IRDb IRDn + 1
3515 { 0x3f, 5, insert_irdb, extract_mb6, 0 },
3516
b80c7270
AM
3517 /* The SH field of some variants of the tlbre and tlbwe
3518 instructions, and the ELEV field of the e_sc instruction. */
42952a96 3519#define SHO IRDb + 1
b80c7270
AM
3520#define ELEV SHO
3521 { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 3522
b80c7270
AM
3523 /* The SI field in a D form instruction. */
3524#define SI SHO + 1
3525 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
b9c361e0 3526
b80c7270
AM
3527 /* The SI field in a D form instruction when we accept a wide range
3528 of positive values. */
3529#define SISIGNOPT SI + 1
3530 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
b9c361e0 3531
b80c7270
AM
3532 /* The SI8 field in a D form instruction. */
3533#define SI8 SISIGNOPT + 1
3534 { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
b9c361e0 3535
b80c7270
AM
3536 /* The SPR field in an XFX form instruction. This is flipped--the
3537 lower 5 bits are stored in the upper 5 and vice- versa. */
3538#define SPR SI8 + 1
3539#define PMR SPR
3540#define TMR SPR
3541#define SPR_MASK (0x3ff << 11)
3542 { 0x3ff, 11, insert_spr, extract_spr, PPC_OPERAND_SPR },
b9c361e0 3543
b80c7270
AM
3544 /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */
3545#define SPRBAT SPR + 1
fa758a70
AC
3546#define SPRBAT_MASK (0xc1 << 11)
3547 { 0x7, PPC_OPSHIFT_INV, insert_sprbat, extract_sprbat, PPC_OPERAND_SPR },
3548
3549 /* The GQR index number in an XFX form m[ft]gqr instruction. */
3550#define SPRGQR SPRBAT + 1
3551#define SPRGQR_MASK (0x7 << 16)
3552 { 0x7, 16, NULL, NULL, PPC_OPERAND_GQR },
b9c361e0 3553
b80c7270 3554 /* The SPRG register number in an XFX form m[ft]sprg instruction. */
fa758a70 3555#define SPRG SPRGQR + 1
b80c7270 3556 { 0x1f, 16, insert_sprg, extract_sprg, PPC_OPERAND_SPR },
b9c361e0 3557
b80c7270
AM
3558 /* The SR field in an X form instruction. */
3559#define SR SPRG + 1
3560 /* The 4-bit UIMM field in a VX form instruction. */
3561#define UIMM4 SR
3562 { 0xf, 16, NULL, NULL, 0 },
b9c361e0 3563
b80c7270
AM
3564 /* The STRM field in an X AltiVec form instruction. */
3565#define STRM SR + 1
3566 /* The T field in a tlbilx form instruction. */
3567#define T STRM
3568 /* The L field in wclr instructions. */
3569#define L2 STRM
3570 { 0x3, 21, NULL, NULL, 0 },
252b5132 3571
b80c7270
AM
3572 /* The ESYNC field in an X (sync) form instruction. */
3573#define ESYNC STRM + 1
3574 { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL },
252b5132 3575
b80c7270
AM
3576 /* The SV field in a POWER SC form instruction. */
3577#define SV ESYNC + 1
3578 { 0x3fff, 2, NULL, NULL, 0 },
252b5132 3579
b80c7270
AM
3580 /* The TBR field in an XFX form instruction. This is like the SPR
3581 field, but it is optional. */
3582#define TBR SV + 1
3583 { 0x3ff, 11, insert_tbr, extract_tbr,
9cf7e568 3584 PPC_OPERAND_SPR | PPC_OPERAND_OPTIONAL },
252b5132 3585
b80c7270 3586 /* The TO field in a D or X form instruction. */
9cf7e568 3587#define TO TBR + 1
b80c7270 3588#define DUI TO
df0030b5 3589#define SVme TO
537710a6 3590#define SVG TO
b80c7270
AM
3591#define TO_MASK (0x1f << 21)
3592 { 0x1f, 21, NULL, NULL, 0 },
252b5132 3593
b80c7270
AM
3594 /* The UI field in a D form instruction. */
3595#define UI TO + 1
3596 { 0xffff, 0, NULL, NULL, 0 },
252b5132 3597
b80c7270
AM
3598#define UISIGNOPT UI + 1
3599 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT },
da99ee72 3600
b80c7270
AM
3601 /* The IMM field in an SE_IM5 instruction. */
3602#define UI5 UISIGNOPT + 1
3603 { 0x1f, 4, NULL, NULL, 0 },
da99ee72 3604
b80c7270
AM
3605 /* The OIMM field in an SE_OIM5 instruction. */
3606#define OIMM5 UI5 + 1
71553718 3607 { 0x1f, 4, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 },
da99ee72 3608
b80c7270
AM
3609 /* The UI7 field in an SE_LI instruction. */
3610#define UI7 OIMM5 + 1
3611 { 0x7f, 4, NULL, NULL, 0 },
da99ee72 3612
b80c7270
AM
3613 /* The VA field in a VA, VX or VXR form instruction. */
3614#define VA UI7 + 1
3615 { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR },
da99ee72 3616
b80c7270
AM
3617 /* The VB field in a VA, VX or VXR form instruction. */
3618#define VB VA + 1
3619 { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR },
da99ee72 3620
b80c7270
AM
3621 /* The VC field in a VA form instruction. */
3622#define VC VB + 1
3623 { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR },
252b5132 3624
b80c7270
AM
3625 /* The VD or VS field in a VA, VX, VXR or X form instruction. */
3626#define VD VC + 1
3627#define VS VD
3628 { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR },
252b5132 3629
b80c7270
AM
3630 /* The SIMM field in a VX form instruction, and TE in Z form. */
3631#define SIMM VD + 1
3632#define TE SIMM
3633 { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED},
252b5132 3634
b80c7270
AM
3635 /* The UIMM field in a VX form instruction. */
3636#define UIMM SIMM + 1
3637#define DCTL UIMM
537710a6 3638#define rmm UIMM
b80c7270 3639 { 0x1f, 16, NULL, NULL, 0 },
9b4e5766 3640
b80c7270
AM
3641 /* The 3-bit UIMM field in a VX form instruction. */
3642#define UIMM3 UIMM + 1
3643 { 0x7, 16, NULL, NULL, 0 },
9b4e5766 3644
b80c7270
AM
3645 /* The 6-bit UIM field in a X form instruction. */
3646#define UIM6 UIMM3 + 1
3647 { 0x3f, 16, NULL, NULL, 0 },
9b4e5766 3648
b80c7270
AM
3649 /* The SIX field in a VX form instruction. */
3650#define SIX UIM6 + 1
74081948 3651#define MMMM SIX
b80c7270 3652 { 0xf, 11, NULL, NULL, 0 },
9b4e5766 3653
b80c7270
AM
3654 /* The PS field in a VX form instruction. */
3655#define PS SIX + 1
3656 { 0x1, 9, NULL, NULL, 0 },
a680de9a 3657
6edbfd3b
AM
3658 /* The SH field in a vector shift double by bit immediate instruction. */
3659#define SH3 PS + 1
3660 { 0x7, 6, NULL, NULL, 0 },
3661
b80c7270 3662 /* The SHB field in a VA form instruction. */
6edbfd3b 3663#define SHB SH3 + 1
b80c7270 3664 { 0xf, 6, NULL, NULL, 0 },
a680de9a 3665
b80c7270 3666 /* The other UIMM field in a half word EVX form instruction. */
74081948
AF
3667#define EVUIMM_1 SHB + 1
3668 { 0x1f, 11, NULL, NULL, PPC_OPERAND_PARENS },
3669
3670#define EVUIMM_1_EX0 EVUIMM_1 + 1
3671 { 0x1f, 11, insert_evuimm1_ex0, extract_evuimm1_ex0, PPC_OPERAND_PARENS },
3672
3673#define EVUIMM_2 EVUIMM_1_EX0 + 1
b80c7270 3674 { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 3675
b80c7270
AM
3676#define EVUIMM_2_EX0 EVUIMM_2 + 1
3677 { 0x3e, 10, insert_evuimm2_ex0, extract_evuimm2_ex0, PPC_OPERAND_PARENS },
9b4e5766 3678
b80c7270
AM
3679 /* The other UIMM field in a word EVX form instruction. */
3680#define EVUIMM_4 EVUIMM_2_EX0 + 1
3681 { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 3682
b80c7270
AM
3683#define EVUIMM_4_EX0 EVUIMM_4 + 1
3684 { 0x7c, 9, insert_evuimm4_ex0, extract_evuimm4_ex0, PPC_OPERAND_PARENS },
9b4e5766 3685
b80c7270
AM
3686 /* The other UIMM field in a double EVX form instruction. */
3687#define EVUIMM_8 EVUIMM_4_EX0 + 1
3688 { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 3689
b80c7270
AM
3690#define EVUIMM_8_EX0 EVUIMM_8 + 1
3691 { 0xf8, 8, insert_evuimm8_ex0, extract_evuimm8_ex0, PPC_OPERAND_PARENS },
9b4e5766 3692
b80c7270
AM
3693 /* The WS or DRM field in an X form instruction. */
3694#define WS EVUIMM_8_EX0 + 1
3695#define DRM WS
74081948
AF
3696 /* The NNN field in a VX form instruction for SPE2 */
3697#define NNN WS
b80c7270 3698 { 0x7, 11, NULL, NULL, 0 },
9b4e5766 3699
b80c7270
AM
3700 /* PowerPC paired singles extensions. */
3701 /* W bit in the pair singles instructions for x type instructions. */
3702#define PSWM WS + 1
3703 /* The BO16 field in a BD8 form instruction. */
3704#define BO16 PSWM
df0030b5
DS
3705 /* The pst field in a SVRM form instruction. */
3706#define pst PSWM
51b52f4a
PB
3707 /* The L field in a XO form instruction. */
3708#define XOL PSWM
b80c7270 3709 { 0x1, 10, 0, 0, 0 },
9b4e5766 3710
b80c7270
AM
3711 /* IDX bits for quantization in the pair singles instructions. */
3712#define PSQ PSWM + 1
3713 { 0x7, 12, 0, 0, PPC_OPERAND_GQR },
066be9f7 3714
b80c7270
AM
3715 /* IDX bits for quantization in the pair singles x-type instructions. */
3716#define PSQM PSQ + 1
3717 { 0x7, 7, 0, 0, PPC_OPERAND_GQR },
066be9f7 3718
b80c7270
AM
3719 /* Smaller D field for quantization in the pair singles instructions. */
3720#define PSD PSQM + 1
3721 { 0xfff, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
066be9f7 3722
b80c7270
AM
3723 /* The L field in an mtmsrd or A form instruction or R or W in an
3724 X form. */
3725#define A_L PSD + 1
3726#define W A_L
3727#define X_R A_L
3728 { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL },
066be9f7 3729
b80c7270
AM
3730 /* The RMC or CY field in a Z23 form instruction. */
3731#define RMC A_L + 1
3732#define CY RMC
537710a6 3733#define ew RMC
b80c7270 3734 { 0x3, 9, NULL, NULL, 0 },
066be9f7 3735
b80c7270 3736#define R RMC + 1
fdefed7c 3737#define MP R
79e24d0a 3738#define P1 R
b80c7270 3739 { 0x1, 16, NULL, NULL, 0 },
066be9f7 3740
b80c7270
AM
3741#define RIC R + 1
3742 { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL },
7b934113 3743
b80c7270
AM
3744#define PRS RIC + 1
3745 { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 3746
b80c7270 3747#define SP PRS + 1
df0030b5 3748#define mi0 SP
b80c7270 3749 { 0x3, 19, NULL, NULL, 0 },
b9c361e0 3750
b80c7270
AM
3751#define S SP + 1
3752 { 0x1, 20, NULL, NULL, 0 },
b9c361e0 3753
b80c7270
AM
3754 /* The S field in a XL form instruction. */
3755#define SXL S + 1
9cf7e568 3756 { 0x1, 11, insert_sxl, extract_sxl, PPC_OPERAND_OPTIONAL },
b80c7270
AM
3757
3758 /* SH field starting at bit position 16. */
9cf7e568 3759#define SH16 SXL + 1
b80c7270
AM
3760 /* The DCM and DGM fields in a Z form instruction. */
3761#define DCM SH16
3762#define DGM DCM
3763 { 0x3f, 10, NULL, NULL, 0 },
3764
3765 /* The EH field in larx instruction. */
3766#define EH SH16 + 1
3767 { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 3768
b80c7270
AM
3769 /* The L field in an mtfsf or XFL form instruction. */
3770 /* The A field in a HTM X form instruction. */
3771#define XFL_L EH + 1
3772#define HTM_A XFL_L
3773 { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL},
b9c361e0 3774
b80c7270
AM
3775 /* Xilinx APU related masks and macros */
3776#define FCRT XFL_L + 1
3777#define FCRT_MASK (0x1f << 21)
3778 { 0x1f, 21, 0, 0, PPC_OPERAND_FCR },
b9c361e0 3779
b80c7270
AM
3780 /* Xilinx FSL related masks and macros */
3781#define FSL FCRT + 1
3782#define FSL_MASK (0x1f << 11)
3783 { 0x1f, 11, 0, 0, PPC_OPERAND_FSL },
b9c361e0 3784
b80c7270
AM
3785 /* Xilinx UDI related masks and macros */
3786#define URT FSL + 1
3787 { 0x1f, 21, 0, 0, PPC_OPERAND_UDI },
b9c361e0 3788
b80c7270
AM
3789#define URA URT + 1
3790 { 0x1f, 16, 0, 0, PPC_OPERAND_UDI },
b9c361e0 3791
b80c7270
AM
3792#define URB URA + 1
3793 { 0x1f, 11, 0, 0, PPC_OPERAND_UDI },
b9c361e0 3794
b80c7270
AM
3795#define URC URB + 1
3796 { 0x1f, 6, 0, 0, PPC_OPERAND_UDI },
e3c2f928 3797
b80c7270
AM
3798 /* The VLESIMM field in a D form instruction. */
3799#define VLESIMM URC + 1
3800 { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi,
3801 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
e3c2f928 3802
b80c7270
AM
3803 /* The VLENSIMM field in a D form instruction. */
3804#define VLENSIMM VLESIMM + 1
3805 { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi,
3806 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
e3c2f928 3807
b80c7270
AM
3808 /* The VLEUIMM field in a D form instruction. */
3809#define VLEUIMM VLENSIMM + 1
3810 { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 },
e3c2f928 3811
b80c7270
AM
3812 /* The VLEUIMML field in a D form instruction. */
3813#define VLEUIMML VLEUIMM + 1
3814 { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 },
e3c2f928 3815
b80c7270
AM
3816 /* The XT and XS fields in an XX1 or XX3 form instruction. This is
3817 split. */
3818#define XS6 VLEUIMML + 1
3819#define XT6 XS6
3820 { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR },
e3c2f928 3821
b80c7270
AM
3822 /* The XT and XS fields in an DQ form VSX instruction. This is split. */
3823#define XSQ6 XT6 + 1
3824#define XTQ6 XSQ6
3825 { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR },
e3c2f928 3826
7dacb40b 3827 /* The split XTp and XSp field in a vector paired instruction. */
94ba9882 3828#define XTP XSQ6 + 1
7dacb40b 3829#define XSP XTP
94ba9882
AM
3830 { 0x3e, PPC_OPSHIFT_INV, insert_xtp, extract_xtp, PPC_OPERAND_VSR },
3831
6edbfd3b
AM
3832#define XTS XTP + 1
3833 { 0x3f, PPC_OPSHIFT_INV, insert_xts, extract_xts, PPC_OPERAND_VSR },
3834
8acf1435 3835 /* The XT field in a plxv instruction. Runs into the OP field. */
6edbfd3b 3836#define XTOP XTS + 1
8acf1435
PB
3837 { 0x3f, 21, NULL, NULL, PPC_OPERAND_VSR },
3838
b80c7270 3839 /* The XA field in an XX3 form instruction. This is split. */
8acf1435 3840#define XA6 XTOP + 1
b80c7270 3841 { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR },
e3c2f928 3842
aa3c112f
AM
3843 /* The XA field in an MMA XX3 form instruction. This is split and
3844 must not overlap with the ACC operand. */
3845#define XA6a XA6 + 1
3846 { 0x3f, PPC_OPSHIFT_INV, insert_xa6a, extract_xa6a, PPC_OPERAND_VSR },
3847
3848 /* The XAp field in an MMA XX3 form instruction. This is split.
3849 This is like XA6a, but must be even. */
3850#define XA6ap XA6a + 1
3851 { 0x3e, PPC_OPSHIFT_INV, insert_xa6a, extract_xa6a, PPC_OPERAND_VSR },
3852
79e24d0a
PB
3853 /* The 5-bit XAp field in an MMA XX3 form instruction. This is split.
3854 This is like XA6, but must be even. */
3855#define XA5p XA6ap + 1
3856 { 0x3e, PPC_OPSHIFT_INV, insert_xa5, extract_xa5, PPC_OPERAND_VSR },
3857
b80c7270 3858 /* The XB field in an XX2 or XX3 form instruction. This is split. */
79e24d0a 3859#define XB6 XA5p + 1
b80c7270 3860 { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR },
e3c2f928 3861
aa3c112f
AM
3862 /* The XB field in an XX3 form instruction. This is split and
3863 must not overlap with the ACC operand. */
3864#define XB6a XB6 + 1
3865 { 0x3f, PPC_OPSHIFT_INV, insert_xb6a, extract_xb6a, PPC_OPERAND_VSR },
3866
79e24d0a
PB
3867 /* The 5-bit XBp field in an MMA XX3 form instruction. This is split.
3868 This is like XB6, but must be even. */
3869#define XB5p XB6a + 1
3870 { 0x3e, PPC_OPSHIFT_INV, insert_xb5, extract_xb5, PPC_OPERAND_VSR },
3871
98553ad3
PB
3872 /* The XA and XB fields in an XX3 form instruction when they must be the same.
3873 This is used in extended mnemonics like xvmovdp. This is split. */
79e24d0a 3874#define XAB6 XB5p + 1
98553ad3 3875 { 0x3f, PPC_OPSHIFT_INV, insert_xab6, extract_xab6, PPC_OPERAND_VSR },
e3c2f928 3876
b80c7270 3877 /* The XC field in an XX4 form instruction. This is split. */
98553ad3 3878#define XC6 XAB6 + 1
b80c7270 3879 { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR },
e3c2f928 3880
b80c7270
AM
3881 /* The DM or SHW field in an XX3 form instruction. */
3882#define DM XC6 + 1
3883#define SHW DM
3884 { 0x3, 8, NULL, NULL, 0 },
e3c2f928 3885
b80c7270
AM
3886 /* The DM field in an extended mnemonic XX3 form instruction. */
3887#define DMEX DM + 1
3888 { 0x3, 8, insert_dm, extract_dm, 0 },
e3c2f928 3889
b80c7270
AM
3890 /* The UIM field in an XX2 form instruction. */
3891#define UIM DMEX + 1
3892 /* The 2-bit UIMM field in a VX form instruction. */
3893#define UIMM2 UIM
3894 /* The 2-bit L field in a darn instruction. */
3895#define LRAND UIM
3896 { 0x3, 16, NULL, NULL, 0 },
e3c2f928 3897
b80c7270
AM
3898#define ERAT_T UIM + 1
3899 { 0x7, 21, NULL, NULL, 0 },
e3c2f928 3900
b80c7270
AM
3901#define IH ERAT_T + 1
3902 { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
e3c2f928 3903
3d205eb4
PB
3904 /* The 2-bit SC or PL field in an X form instruction. */
3905#define SC2 IH + 1
3906#define PL SC2
3907 { 0x3, 16, insert_pl, extract_pl, PPC_OPERAND_OPTIONAL },
3908
79e24d0a
PB
3909#define P2 PL + 1
3910 { 0x3, PPC_OPSHIFT_INV, insert_p2, extract_p2, 0 },
3911
b80c7270 3912 /* The 8-bit IMM8 field in a XX1 form instruction. */
79e24d0a 3913#define IMM8 P2 + 1
b80c7270 3914 { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT },
e3c2f928 3915
b80c7270
AM
3916#define VX_OFF IMM8 + 1
3917 { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 },
74081948
AF
3918
3919#define VX_OFF_SPE2 VX_OFF + 1
3920 { 0x7, 0, insert_off_spe2, extract_off_spe2, 0 },
3921
3922#define BBB VX_OFF_SPE2 + 1
3923 { 0x7, 13, NULL, NULL, 0 },
3924
3925#define DDD BBB + 1
3926#define VX_MASK_DDD (VX_MASK & ~0x1)
3927 { 0x7, PPC_OPSHIFT_INV, insert_Ddd, extract_Ddd, 0 },
3928
3929#define HH DDD + 1
df0030b5 3930#define mo0 HH
74081948 3931 { 0x3, 13, NULL, NULL, 0 },
5eafd6de
DS
3932
3933#define SVi HH + 1
3934 { 0x3f, 9, NULL, NULL, PPC_OPERAND_NONZERO },
3935
3936#define vf SVi + 1
537710a6 3937#define sk vf
5eafd6de
DS
3938 { 0x1, 6, NULL, NULL, 0 },
3939
3940#define vs vf + 1
537710a6 3941#define mm vs
5eafd6de
DS
3942 { 0x1, 7, NULL, NULL, 0 },
3943
3944#define ms vs + 1
537710a6 3945#define yx ms
5eafd6de 3946 { 0x1, 8, NULL, NULL, 0 },
baf97ef2
DS
3947
3948#define SVLcr ms + 1
3949 { 0x1, 5, NULL, NULL, 0 },
3950
3951#define SVxd SVLcr + 1
3952 { 0x1f, 21, NULL, NULL, PPC_OPERAND_NONZERO },
3953
3954#define SVyd SVxd + 1
3955 { 0x1f, 16, NULL, NULL, PPC_OPERAND_NONZERO },
3956
3957#define SVzd SVyd + 1
537710a6 3958#define SVd SVzd
baf97ef2
DS
3959 { 0x1f, 11, NULL, NULL, PPC_OPERAND_NONZERO },
3960
3961#define SVrm SVzd + 1
3962 { 0xf, 7, NULL, NULL, 0 },
df0030b5
DS
3963
3964#define mi1 SVrm + 1
3965 { 0x3, 17, NULL, NULL, 0 },
3966
3967#define mi2 mi1 + 1
3968 { 0x3, 15, NULL, NULL, 0 },
b80c7270
AM
3969};
3970
61a457e5 3971const unsigned int num_powerpc_operands = ARRAY_SIZE (powerpc_operands);
252b5132
RH
3972\f
3973/* Macros used to form opcodes. */
3974
3975/* The main opcode. */
0f873fd5 3976#define OP(x) ((((uint64_t)(x)) & 0x3f) << 26)
252b5132
RH
3977#define OP_MASK OP (0x3f)
3978
dd7efa79
PB
3979/* The prefix opcode. */
3980#define PREFIX_OP (1ULL << 58)
3981
3982/* The 2-bit prefix form. */
3983#define PREFIX_FORM(x) ((x & 3ULL) << 56)
3984
3985#define SUFFIX_MASK ((1ULL << 32) - 1)
3986#define PREFIX_MASK (SUFFIX_MASK << 32)
3987
8acf1435
PB
3988/* Prefix insn, eight byte load/store form 8LS. */
3989#define P8LS (PREFIX_OP | PREFIX_FORM (0))
3990
6edbfd3b
AM
3991/* Prefix insn, eight byte register to register form 8RR. */
3992#define P8RR (PREFIX_OP | PREFIX_FORM (1))
3993
8acf1435
PB
3994/* Prefix insn, modified load/store form MLS. */
3995#define PMLS (PREFIX_OP | PREFIX_FORM (2))
3996
dd7efa79
PB
3997/* Prefix insn, modified register to register form MRR. */
3998#define PMRR (PREFIX_OP | PREFIX_FORM (3))
3999
aa3c112f
AM
4000/* Prefix insn, modified masked immediate register to register form MMIRR. */
4001#define PMMIRR (PREFIX_OP | PREFIX_FORM (3) | (9ULL << 52))
4002
8acf1435
PB
4003/* An 8-byte D form prefix instruction. */
4004#define P_D_MASK (((-1ULL << 50) & ~PCREL_MASK) | OP_MASK)
4005
4006/* The same as P_D_MASK, but with the RA and PCREL fields specified. */
4007#define P_DRAPCREL_MASK (P_D_MASK | PCREL_MASK | RA_MASK)
4008
aa3c112f
AM
4009/* Mask for prefix X form instructions. */
4010#define P_X_MASK (PREFIX_MASK | X_MASK)
4011#define P_XX1_MASK (PREFIX_MASK | XX1_MASK)
4012
6edbfd3b
AM
4013/* Mask for prefix vector permute insns. */
4014#define P_XX4_MASK (PREFIX_MASK | XX4_MASK)
4015#define P_UXX4_MASK (P_XX4_MASK & ~(7ULL << 32))
ec40e91c 4016#define P_U8XX4_MASK (P_XX4_MASK & ~(0xffULL << 32))
6edbfd3b 4017
aa3c112f 4018/* MMIRR:XX3-form 8-byte outer product instructions. */
0a246853 4019#define P_GER_MASK ((-1ULL << 40) | XX3ACC_MASK)
aa3c112f
AM
4020#define P_GER2_MASK (P_GER_MASK & ~(3ULL << 46))
4021#define P_GER4_MASK (P_GER_MASK & ~(15ULL << 44))
4022#define P_GER8_MASK (P_GER_MASK & ~(255ULL << 40))
4023#define P_GER64_MASK (P_GER_MASK | (3ULL << 32))
bb98553c
PB
4024#define P_GERX4_MASK ((-1ULL << 48) | XX3GERX_MASK)
4025#define P_GERX2_MASK (P_GERX4_MASK & ~(3ULL << 46))
aa3c112f 4026
6edbfd3b
AM
4027/* Vector splat immediate op. */
4028#define VSOP(op, xop) (OP (op) | (xop << 17))
4029#define P_VS_MASK ((-1ULL << 48) | VSOP (0x3f, 0xf))
4030#define P_VSI_MASK ((-1ULL << 48) | VSOP (0x3f, 0xe))
4031
252b5132
RH
4032/* The main opcode combined with a trap code in the TO field of a D
4033 form instruction. Used for extended mnemonics for the trap
4034 instructions. */
0f873fd5 4035#define OPTO(x,to) (OP (x) | ((((uint64_t)(to)) & 0x1f) << 21))
252b5132
RH
4036#define OPTO_MASK (OP_MASK | TO_MASK)
4037
4038/* The main opcode combined with a comparison size bit in the L field
4039 of a D form or X form instruction. Used for extended mnemonics for
4040 the comparison instructions. */
0f873fd5 4041#define OPL(x,l) (OP (x) | ((((uint64_t)(l)) & 1) << 21))
252b5132
RH
4042#define OPL_MASK OPL (0x3f,1)
4043
b9c361e0
JL
4044/* The main opcode combined with an update code in D form instruction.
4045 Used for extended mnemonics for VLE memory instructions. */
0f873fd5 4046#define OPVUP(x,vup) (OP (x) | ((((uint64_t)(vup)) & 0xff) << 8))
b9c361e0
JL
4047#define OPVUP_MASK OPVUP (0x3f, 0xff)
4048
b80c7270
AM
4049/* The main opcode combined with an update code and the RT fields
4050 specified in D form instruction. Used for VLE volatile context
4051 save/restore instructions. */
4052#define OPVUPRT(x,vup,rt) \
4053 (OPVUP (x, vup) \
0f873fd5 4054 | ((((uint64_t)(rt)) & 0x1f) << 21))
dfdaec14
AJ
4055#define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f)
4056
252b5132 4057/* An A form instruction. */
b80c7270
AM
4058#define A(op, xop, rc) \
4059 (OP (op) \
0f873fd5
PB
4060 | ((((uint64_t)(xop)) & 0x1f) << 1) \
4061 | (((uint64_t)(rc)) & 1))
252b5132
RH
4062#define A_MASK A (0x3f, 0x1f, 1)
4063
4064/* An A_MASK with the FRB field fixed. */
4065#define AFRB_MASK (A_MASK | FRB_MASK)
4066
4067/* An A_MASK with the FRC field fixed. */
4068#define AFRC_MASK (A_MASK | FRC_MASK)
4069
4070/* An A_MASK with the FRA and FRC fields fixed. */
4071#define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)
4072
702f0fb4 4073/* An AFRAFRC_MASK, but with L bit clear. */
0f873fd5 4074#define AFRALFRC_MASK (AFRAFRC_MASK & ~((uint64_t) 1 << 16))
702f0fb4 4075
252b5132 4076/* A B form instruction. */
b80c7270
AM
4077#define B(op, aa, lk) \
4078 (OP (op) \
0f873fd5 4079 | ((((uint64_t)(aa)) & 1) << 1) \
b80c7270 4080 | ((lk) & 1))
252b5132
RH
4081#define B_MASK B (0x3f, 1, 1)
4082
b9c361e0 4083/* A BD8 form instruction. This is a 16-bit instruction. */
b80c7270 4084#define BD8(op, aa, lk) \
0f873fd5 4085 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270
AM
4086 | (((aa) & 1) << 9) \
4087 | (((lk) & 1) << 8))
b9c361e0
JL
4088#define BD8_MASK BD8 (0x3f, 1, 1)
4089
4090/* Another BD8 form instruction. This is a 16-bit instruction. */
0f873fd5 4091#define BD8IO(op) ((((uint64_t)(op)) & 0x1f) << 11)
b9c361e0
JL
4092#define BD8IO_MASK BD8IO (0x1f)
4093
4094/* A BD8 form instruction for simplified mnemonics. */
4095#define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8))
4096/* A mask that excludes BO32 and BI32. */
4097#define EBD8IO1_MASK 0xf800
4098/* A mask that includes BO32 and excludes BI32. */
4099#define EBD8IO2_MASK 0xfc00
4100/* A mask that include BO32 AND BI32. */
4101#define EBD8IO3_MASK 0xff00
4102
4103/* A BD15 form instruction. */
b80c7270
AM
4104#define BD15(op, aa, lk) \
4105 (OP (op) \
0f873fd5 4106 | ((((uint64_t)(aa)) & 0xf) << 22) \
b80c7270 4107 | ((lk) & 1))
b9c361e0
JL
4108#define BD15_MASK BD15 (0x3f, 0xf, 1)
4109
4110/* A BD15 form instruction for extended conditional branch mnemonics. */
b80c7270 4111#define EBD15(op, aa, bo, lk) \
2480b6fa 4112 (((op) & 0x3fu) << 26) \
b80c7270
AM
4113 | (((aa) & 0xf) << 22) \
4114 | (((bo) & 0x3) << 20) \
4115 | ((lk) & 1)
b9c361e0
JL
4116#define EBD15_MASK 0xfff00001
4117
b80c7270
AM
4118/* A BD15 form instruction for extended conditional branch mnemonics
4119 with BI. */
4120#define EBD15BI(op, aa, bo, bi, lk) \
2480b6fa 4121 ((((op) & 0x3fu) << 26) \
b80c7270
AM
4122 | (((aa) & 0xf) << 22) \
4123 | (((bo) & 0x3) << 20) \
4124 | (((bi) & 0x3) << 16) \
4125 | ((lk) & 1))
4126
b9c361e0
JL
4127#define EBD15BI_MASK 0xfff30001
4128
4129/* A BD24 form instruction. */
b80c7270
AM
4130#define BD24(op, aa, lk) \
4131 (OP (op) \
0f873fd5 4132 | ((((uint64_t)(aa)) & 1) << 25) \
b80c7270 4133 | ((lk) & 1))
b9c361e0
JL
4134#define BD24_MASK BD24 (0x3f, 1, 1)
4135
252b5132 4136/* A B form instruction setting the BO field. */
b80c7270
AM
4137#define BBO(op, bo, aa, lk) \
4138 (B ((op), (aa), (lk)) \
0f873fd5 4139 | ((((uint64_t)(bo)) & 0x1f) << 21))
252b5132
RH
4140#define BBO_MASK BBO (0x3f, 0x1f, 1, 1)
4141
4142/* A BBO_MASK with the y bit of the BO field removed. This permits
4143 matching a conditional branch regardless of the setting of the y
94efba12 4144 bit. Similarly for the 'at' bits used for power4 branch hints. */
0f873fd5
PB
4145#define Y_MASK (((uint64_t) 1) << 21)
4146#define AT1_MASK (((uint64_t) 3) << 21)
4147#define AT2_MASK (((uint64_t) 9) << 21)
802a735e
AM
4148#define BBOY_MASK (BBO_MASK &~ Y_MASK)
4149#define BBOAT_MASK (BBO_MASK &~ AT1_MASK)
252b5132
RH
4150
4151/* A B form instruction setting the BO field and the condition bits of
4152 the BI field. */
4153#define BBOCB(op, bo, cb, aa, lk) \
0f873fd5 4154 (BBO ((op), (bo), (aa), (lk)) | ((((uint64_t)(cb)) & 0x3) << 16))
252b5132
RH
4155#define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)
4156
4157/* A BBOCB_MASK with the y bit of the BO field removed. */
4158#define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)
802a735e
AM
4159#define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)
4160#define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)
252b5132
RH
4161
4162/* A BBOYCB_MASK in which the BI field is fixed. */
4163#define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)
802a735e 4164#define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)
252b5132 4165
b9c361e0 4166/* A VLE C form instruction. */
0f873fd5 4167#define C_LK(x, lk) (((((uint64_t)(x)) & 0x7fff) << 1) | ((lk) & 1))
b9c361e0 4168#define C_LK_MASK C_LK(0x7fff, 1)
0f873fd5 4169#define C(x) ((((uint64_t)(x)) & 0xffff))
b9c361e0
JL
4170#define C_MASK C(0xffff)
4171
23976049 4172/* An Context form instruction. */
0f873fd5 4173#define CTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7))
fdd12ef3 4174#define CTX_MASK CTX(0x3f, 0x7)
23976049
EZ
4175
4176/* An User Context form instruction. */
0f873fd5 4177#define UCTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
fdd12ef3 4178#define UCTX_MASK UCTX(0x3f, 0x1f)
23976049 4179
252b5132
RH
4180/* The main opcode mask with the RA field clear. */
4181#define DRA_MASK (OP_MASK | RA_MASK)
4182
a680de9a
PB
4183/* A DQ form VSX instruction. */
4184#define DQX(op, xop) (OP (op) | ((xop) & 0x7))
4185#define DQX_MASK DQX (0x3f, 7)
4186
94ba9882
AM
4187/* A DQ form VSX vector paired instruction. */
4188#define DQXP(op, xop) (OP (op) | ((xop) & 0xf))
4189#define DQXP_MASK DQXP (0x3f, 0xf)
4190
252b5132
RH
4191/* A DS form instruction. */
4192#define DSO(op, xop) (OP (op) | ((xop) & 0x3))
4193#define DS_MASK DSO (0x3f, 3)
4194
a680de9a 4195/* An DX form instruction. */
0f873fd5 4196#define DX(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
a680de9a 4197#define DX_MASK DX (0x3f, 0x1f)
1437d063
PB
4198/* An DX form instruction with the D bits specified. */
4199#define NODX_MASK (DX_MASK | 0x1fffc1)
a680de9a 4200
23976049 4201/* An EVSEL form instruction. */
0f873fd5 4202#define EVSEL(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xff) << 3)
23976049
EZ
4203#define EVSEL_MASK EVSEL(0x3f, 0xff)
4204
b9c361e0 4205/* An IA16 form instruction. */
0f873fd5 4206#define IA16(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
4207#define IA16_MASK IA16(0x3f, 0x1f)
4208
4209/* An I16A form instruction. */
0f873fd5 4210#define I16A(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
4211#define I16A_MASK I16A(0x3f, 0x1f)
4212
4213/* An I16L form instruction. */
0f873fd5 4214#define I16L(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
4215#define I16L_MASK I16L(0x3f, 0x1f)
4216
4217/* An IM7 form instruction. */
0f873fd5 4218#define IM7(op) ((((uint64_t)(op)) & 0x1f) << 11)
b9c361e0
JL
4219#define IM7_MASK IM7(0x1f)
4220
252b5132
RH
4221/* An M form instruction. */
4222#define M(op, rc) (OP (op) | ((rc) & 1))
4223#define M_MASK M (0x3f, 1)
4224
b9c361e0 4225/* An LI20 form instruction. */
0f873fd5 4226#define LI20(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1) << 15)
b9c361e0
JL
4227#define LI20_MASK LI20(0x3f, 0x1)
4228
252b5132 4229/* An M form instruction with the ME field specified. */
b80c7270
AM
4230#define MME(op, me, rc) \
4231 (M ((op), (rc)) \
0f873fd5 4232 | ((((uint64_t)(me)) & 0x1f) << 1))
252b5132 4233
f304c63d
AM
4234/* An M_MASK with the MB field fixed. */
4235#define MMB_MASK (M_MASK | MB_MASK)
4236
4237/* An M_MASK with the ME field fixed. */
4238#define MME_MASK (M_MASK | ME_MASK)
4239
252b5132
RH
4240/* An M_MASK with the MB and ME fields fixed. */
4241#define MMBME_MASK (M_MASK | MB_MASK | ME_MASK)
4242
4243/* An M_MASK with the SH and ME fields fixed. */
4244#define MSHME_MASK (M_MASK | SH_MASK | ME_MASK)
4245
f304c63d
AM
4246/* An M_MASK with the SH and MB fields fixed. */
4247#define MSHMB_MASK (M_MASK | SH_MASK | MB_MASK)
4248
252b5132 4249/* An MD form instruction. */
b80c7270
AM
4250#define MD(op, xop, rc) \
4251 (OP (op) \
0f873fd5 4252 | ((((uint64_t)(xop)) & 0x7) << 2) \
b80c7270 4253 | ((rc) & 1))
252b5132
RH
4254#define MD_MASK MD (0x3f, 0x7, 1)
4255
4256/* An MD_MASK with the MB field fixed. */
4257#define MDMB_MASK (MD_MASK | MB6_MASK)
4258
4259/* An MD_MASK with the SH field fixed. */
4260#define MDSH_MASK (MD_MASK | SH6_MASK)
4261
4262/* An MDS form instruction. */
b80c7270
AM
4263#define MDS(op, xop, rc) \
4264 (OP (op) \
0f873fd5 4265 | ((((uint64_t)(xop)) & 0xf) << 1) \
b80c7270 4266 | ((rc) & 1))
252b5132
RH
4267#define MDS_MASK MDS (0x3f, 0xf, 1)
4268
4269/* An MDS_MASK with the MB field fixed. */
4270#define MDSMB_MASK (MDS_MASK | MB6_MASK)
4271
4272/* An SC form instruction. */
b80c7270
AM
4273#define SC(op, sa, lk) \
4274 (OP (op) \
0f873fd5 4275 | ((((uint64_t)(sa)) & 1) << 1) \
b80c7270
AM
4276 | ((lk) & 1))
4277#define SC_MASK \
4278 (OP_MASK \
0f873fd5
PB
4279 | (((uint64_t) 0x3ff) << 16) \
4280 | (((uint64_t) 1) << 1) \
b80c7270 4281 | 1)
252b5132 4282
b9c361e0 4283/* An SCI8 form instruction. */
0f873fd5 4284#define SCI8(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 11))
b9c361e0
JL
4285#define SCI8_MASK SCI8(0x3f, 0x1f)
4286
4287/* An SCI8 form instruction. */
b80c7270
AM
4288#define SCI8BF(op, fop, xop) \
4289 (OP (op) \
0f873fd5 4290 | ((((uint64_t)(xop)) & 0x1f) << 11) \
b80c7270 4291 | (((fop) & 7) << 23))
b9c361e0
JL
4292#define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f)
4293
4294/* An SD4 form instruction. This is a 16-bit instruction. */
0f873fd5 4295#define SD4(op) ((((uint64_t)(op)) & 0xf) << 12)
b9c361e0
JL
4296#define SD4_MASK SD4(0xf)
4297
4298/* An SE_IM5 form instruction. This is a 16-bit instruction. */
b80c7270 4299#define SE_IM5(op, xop) \
0f873fd5 4300 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 4301 | (((xop) & 0x1) << 9))
b9c361e0
JL
4302#define SE_IM5_MASK SE_IM5(0x3f, 1)
4303
4304/* An SE_R form instruction. This is a 16-bit instruction. */
b80c7270 4305#define SE_R(op, xop) \
0f873fd5 4306 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 4307 | (((xop) & 0x3f) << 4))
b9c361e0
JL
4308#define SE_R_MASK SE_R(0x3f, 0x3f)
4309
4310/* An SE_RR form instruction. This is a 16-bit instruction. */
b80c7270 4311#define SE_RR(op, xop) \
0f873fd5 4312 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 4313 | (((xop) & 0x3) << 8))
b9c361e0
JL
4314#define SE_RR_MASK SE_RR(0x3f, 3)
4315
4316/* A VX form instruction. */
0f873fd5 4317#define VX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
786e2c0f 4318
112290ab 4319/* The mask for an VX form instruction. */
786e2c0f
C
4320#define VX_MASK VX(0x3f, 0x7ff)
4321
e3c2f928 4322/* A VX LSP form instruction. */
0f873fd5 4323#define VX_LSP(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xffff))
e3c2f928
AF
4324
4325/* The mask for an VX LSP form instruction. */
4326#define VX_LSP_MASK VX_LSP(0x3f, 0xffff)
4327#define VX_LSP_OFF_MASK VX_LSP(0x3f, 0x7fc)
4328
74081948
AF
4329/* Additional format of VX SPE2 form instruction. */
4330#define VX_RA_CONST(op, xop, bits11_15) \
4331 (OP (op) \
0f873fd5
PB
4332 | (((uint64_t)(bits11_15) & 0x1f) << 16) \
4333 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
4334#define VX_RA_CONST_MASK VX_RA_CONST(0x3f, 0x7ff, 0x1f)
4335
4336#define VX_RB_CONST(op, xop, bits16_20) \
4337 (OP (op) \
0f873fd5
PB
4338 | (((uint64_t)(bits16_20) & 0x1f) << 11) \
4339 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
4340#define VX_RB_CONST_MASK VX_RB_CONST(0x3f, 0x7ff, 0x1f)
4341
4342#define VX_OFF_SPE2_MASK VX(0x3f, 0x7f8)
4343
4344#define VX_SPE_CRFD(op, xop, bits9_10) \
4345 (OP (op) \
0f873fd5
PB
4346 | (((uint64_t)(bits9_10) & 0x3) << 21) \
4347 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
4348#define VX_SPE_CRFD_MASK VX_SPE_CRFD(0x3f, 0x7ff, 0x3)
4349
4350#define VX_SPE2_CLR(op, xop, bit16) \
4351 (OP (op) \
0f873fd5
PB
4352 | (((uint64_t)(bit16) & 0x1) << 15) \
4353 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
4354#define VX_SPE2_CLR_MASK VX_SPE2_CLR(0x3f, 0x7ff, 0x1)
4355
4356#define VX_SPE2_SPLATB(op, xop, bits19_20) \
4357 (OP (op) \
0f873fd5
PB
4358 | (((uint64_t)(bits19_20) & 0x3) << 11) \
4359 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
4360#define VX_SPE2_SPLATB_MASK VX_SPE2_SPLATB(0x3f, 0x7ff, 0x3)
4361
4362#define VX_SPE2_OCTET(op, xop, bits16_17) \
4363 (OP (op) \
0f873fd5
PB
4364 | (((uint64_t)(bits16_17) & 0x3) << 14) \
4365 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
4366#define VX_SPE2_OCTET_MASK VX_SPE2_OCTET(0x3f, 0x7ff, 0x7)
4367
4368#define VX_SPE2_DDHH(op, xop, bit16) \
4369 (OP (op) \
0f873fd5
PB
4370 | (((uint64_t)(bit16) & 0x1) << 15) \
4371 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
4372#define VX_SPE2_DDHH_MASK VX_SPE2_DDHH(0x3f, 0x7ff, 0x1)
4373
4374#define VX_SPE2_HH(op, xop, bit16, bits19_20) \
4375 (OP (op) \
0f873fd5
PB
4376 | (((uint64_t)(bit16) & 0x1) << 15) \
4377 | (((uint64_t)(bits19_20) & 0x3) << 11) \
4378 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
4379#define VX_SPE2_HH_MASK VX_SPE2_HH(0x3f, 0x7ff, 0x1, 0x3)
4380
4381#define VX_SPE2_EVMAR(op, xop) \
4382 (OP (op) \
0f873fd5
PB
4383 | ((uint64_t)(0x1) << 11) \
4384 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
4385#define VX_SPE2_EVMAR_MASK \
4386 (VX_SPE2_EVMAR(0x3f, 0x7ff) \
0f873fd5 4387 | ((uint64_t)(0x1) << 11))
74081948 4388
fb048c26
PB
4389/* A VX_MASK with the VA field fixed. */
4390#define VXVA_MASK (VX_MASK | (0x1f << 16))
4391
4392/* A VX_MASK with the VB field fixed. */
4393#define VXVB_MASK (VX_MASK | (0x1f << 11))
4394
4395/* A VX_MASK with the VA and VB fields fixed. */
4396#define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11))
4397
4398/* A VX_MASK with the VD and VA fields fixed. */
4399#define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16))
4400
4401/* A VX_MASK with a UIMM4 field. */
4402#define VXUIMM4_MASK (VX_MASK | (0x1 << 20))
4403
4404/* A VX_MASK with a UIMM3 field. */
4405#define VXUIMM3_MASK (VX_MASK | (0x3 << 19))
4406
4407/* A VX_MASK with a UIMM2 field. */
4408#define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
4409
c0637f3a
PB
4410/* A VX_MASK with a PS field. */
4411#define VXPS_MASK (VX_MASK & ~(0x1 << 9))
4412
a680de9a 4413/* A VX_MASK with the VA field fixed with a PS field. */
fdefed7c
AM
4414#define VXVAPS_MASK (VXVA_MASK & ~(0x1 << 9))
4415
4416/* A VX_MASK with the VA field fixed with a MP field. */
4417#define VXVAM_MASK (VXVA_MASK & ~(0x1 << 16))
a680de9a 4418
c7d7aea2
AM
4419/* A VX_MASK for instructions using a BF field. */
4420#define VXBF_MASK (VX_MASK | (3 << 21))
4421
6edbfd3b
AM
4422/* A VX_MASK for instructions with an RC field. */
4423#define VXRC_MASK (VX_MASK & ~(0x1f << 6))
4424
4425/* A VX_MASK for instructions with a SH field. */
4426#define VXSH_MASK (VX_MASK & ~(0x7 << 6))
4427
b9c361e0 4428/* A VA form instruction. */
0f873fd5 4429#define VXA(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x03f))
786e2c0f 4430
112290ab 4431/* The mask for an VA form instruction. */
2613489e 4432#define VXA_MASK VXA(0x3f, 0x3f)
786e2c0f 4433
382c72e9
PB
4434/* A VXA_MASK with a SHB field. */
4435#define VXASHB_MASK (VXA_MASK | (1 << 10))
4436
b9c361e0 4437/* A VXR form instruction. */
b80c7270
AM
4438#define VXR(op, xop, rc) \
4439 (OP (op) \
0f873fd5
PB
4440 | (((uint64_t)(rc) & 1) << 10) \
4441 | (((uint64_t)(xop)) & 0x3ff))
786e2c0f 4442
112290ab 4443/* The mask for a VXR form instruction. */
786e2c0f
C
4444#define VXR_MASK VXR(0x3f, 0x3ff, 1)
4445
a680de9a
PB
4446/* A VX form instruction with a VA tertiary opcode. */
4447#define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16))
4448
0f873fd5 4449#define VXASH(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
6fd3a02d
PB
4450#define VXASH_MASK VXASH (0x3f, 0x1f)
4451
252b5132 4452/* An X form instruction. */
0f873fd5 4453#define X(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
252b5132 4454
a680de9a
PB
4455/* A X form instruction for Quad-Precision FP Instructions. */
4456#define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16))
4457
b9c361e0 4458/* An EX form instruction. */
0f873fd5 4459#define EX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
b9c361e0
JL
4460
4461/* The mask for an EX form instruction. */
4462#define EX_MASK EX (0x3f, 0x7ff)
4463
066be9f7 4464/* An XX2 form instruction. */
0f873fd5 4465#define XX2(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 2))
066be9f7 4466
a680de9a
PB
4467/* A XX2 form instruction with the VA bits specified. */
4468#define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16))
4469
9b4e5766 4470/* An XX3 form instruction. */
0f873fd5 4471#define XX3(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0xff) << 3))
9b4e5766 4472
066be9f7 4473/* An XX3 form instruction with the RC bit specified. */
b80c7270
AM
4474#define XX3RC(op, xop, rc) \
4475 (OP (op) \
0f873fd5
PB
4476 | (((uint64_t)(rc) & 1) << 10) \
4477 | ((((uint64_t)(xop)) & 0x7f) << 3))
066be9f7
PB
4478
4479/* An XX4 form instruction. */
0f873fd5 4480#define XX4(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3) << 4))
9b4e5766 4481
702f0fb4 4482/* A Z form instruction. */
0f873fd5 4483#define Z(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 1))
702f0fb4 4484
252b5132
RH
4485/* An X form instruction with the RC bit specified. */
4486#define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1))
4487
a680de9a
PB
4488/* A X form instruction for Quad-Precision FP Instructions with RC bit. */
4489#define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1))
4490
6fd3a02d 4491/* An X form instruction with the RA bits specified as two ops. */
b80c7270
AM
4492#define XMMF(op, xop, mop0, mop1) \
4493 (X ((op), (xop)) \
4494 | ((mop0) & 3) << 19 \
4495 | ((mop1) & 7) << 16)
6fd3a02d 4496
702f0fb4
PB
4497/* A Z form instruction with the RC bit specified. */
4498#define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1))
4499
252b5132
RH
4500/* The mask for an X form instruction. */
4501#define X_MASK XRC (0x3f, 0x3ff, 1)
4502
a680de9a
PB
4503/* The mask for an X form instruction with the BF bits specified. */
4504#define XBF_MASK (X_MASK | (3 << 21))
4505
aae7fcb8
PB
4506/* An X form instruction without the RC field specified. */
4507#define XRC_MASK XRC (0x3f, 0x3ff, 0)
4508
b80c7270
AM
4509/* An X form wait instruction with everything filled in except the WC
4510 field. */
e0d602ec
BE
4511#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
4512
3d205eb4
PB
4513/* An X form wait instruction with everything filled in except the WC
4514 and PL fields. */
4515#define XWCPL_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | (3 << 18) | RB_MASK)
4516
9b4e5766
PB
4517/* The mask for an XX1 form instruction. */
4518#define XX1_MASK X (0x3f, 0x3ff)
4519
c0637f3a
PB
4520/* An XX1_MASK with the RB field fixed. */
4521#define XX1RB_MASK (XX1_MASK | RB_MASK)
4522
066be9f7
PB
4523/* The mask for an XX2 form instruction. */
4524#define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
4525
4526/* The mask for an XX2 form instruction with the UIM bits specified. */
4527#define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18))
4528
a680de9a
PB
4529/* The mask for an XX2 form instruction with the 4 UIM bits specified. */
4530#define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20))
4531
066be9f7
PB
4532/* The mask for an XX2 form instruction with the BF bits specified. */
4533#define XX2BF_MASK (XX2_MASK | (3 << 21) | (1))
4534
b80c7270
AM
4535/* The mask for an XX2 form instruction with the BF and DCMX bits
4536 specified. */
a680de9a
PB
4537#define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1)
4538
b80c7270
AM
4539/* The mask for an XX2 form instruction with a split DCMX bits
4540 specified. */
a680de9a
PB
4541#define XX2DCMXS_MASK XX2 (0x3f, 0x1ee)
4542
9b4e5766
PB
4543/* The mask for an XX3 form instruction. */
4544#define XX3_MASK XX3 (0x3f, 0xff)
4545
066be9f7
PB
4546/* The mask for an XX3 form instruction with the BF bits specified. */
4547#define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1))
4548
0a246853
PB
4549/* An X_MASK with an accumulator register and the RA and RB fields fixed. */
4550#define XACC_MASK (X_MASK | RA_MASK | RB_MASK | (3 << 21))
79e24d0a 4551#define XDMR_MASK XACC_MASK
0a246853 4552
79e24d0a
PB
4553/* An X_MASK with two dense math register. */
4554#define XDMRDMR_MASK (X_MASK | RA_MASK | (3 << 21) | (3 << 11))
0a246853 4555
b80c7270
AM
4556/* The mask for an XX3 form instruction with the DM or SHW bits
4557 specified. */
9b4e5766 4558#define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10))
066be9f7
PB
4559#define XX3SHW_MASK XX3DM_MASK
4560
79e24d0a
PB
4561/* The masks for X* form instructions with an ACC/DMR register. */
4562#define XX2ACC_MASK (XX2 (0x3f, 0x1ff) | (3 << 21) | 1)
4563#define XX3ACC_MASK (XX3_MASK | (3 << 21) | 1)
4564#define XX3DMR_MASK (XX3ACC_MASK | (1 << 11))
4565#define XX2DMR_MASK (XX2ACC_MASK | (0xf << 17))
bb98553c 4566#define XX3GERX_MASK (XX3ACC_MASK | (1 << 16))
79e24d0a 4567
066be9f7
PB
4568/* The mask for an XX4 form instruction. */
4569#define XX4_MASK XX4 (0x3f, 0x3)
4570
b80c7270
AM
4571/* An X form wait instruction with everything filled in except the WC
4572 field. */
066be9f7 4573#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
9b4e5766 4574
6fd3a02d
PB
4575/* The mask for an XMMF form instruction. */
4576#define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1))
4577
702f0fb4
PB
4578/* The mask for a Z form instruction. */
4579#define Z_MASK ZRC (0x3f, 0x1ff, 1)
0bbdef92 4580#define Z2_MASK ZRC (0x3f, 0xff, 1)
702f0fb4 4581
a680de9a 4582/* An X_MASK with the RA/VA field fixed. */
252b5132 4583#define XRA_MASK (X_MASK | RA_MASK)
a680de9a 4584#define XVA_MASK XRA_MASK
252b5132 4585
a680de9a 4586/* An XRA_MASK with the A_L/W field clear. */
0f873fd5 4587#define XWRA_MASK (XRA_MASK & ~((uint64_t) 1 << 16))
a680de9a 4588#define XRLA_MASK XWRA_MASK
ea192fa3 4589
252b5132
RH
4590/* An X_MASK with the RB field fixed. */
4591#define XRB_MASK (X_MASK | RB_MASK)
4592
4593/* An X_MASK with the RT field fixed. */
4594#define XRT_MASK (X_MASK | RT_MASK)
4595
3d205eb4 4596/* An XRT_MASK mask with the 2 L bits clear. */
0f873fd5 4597#define XLRT_MASK (XRT_MASK & ~((uint64_t) 0x3 << 21))
702f0fb4 4598
3d205eb4
PB
4599/* An XRT_MASK mask with the 3 L bits clear. */
4600#define XL3RT_MASK (XRT_MASK & ~((uint64_t) 0x7 << 21))
4601
252b5132
RH
4602/* An X_MASK with the RA and RB fields fixed. */
4603#define XRARB_MASK (X_MASK | RA_MASK | RB_MASK)
4604
a680de9a
PB
4605/* An XBF_MASK with the RA and RB fields fixed. */
4606#define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK)
4607
112290ab 4608/* An XRARB_MASK, but with the L bit clear. */
0f873fd5 4609#define XRLARB_MASK (XRARB_MASK & ~((uint64_t) 1 << 16))
5ae2e65e 4610
a680de9a 4611/* An XRARB_MASK, but with the L bits in a darn instruction clear. */
0f873fd5 4612#define XLRAND_MASK (XRARB_MASK & ~((uint64_t) 3 << 16))
a680de9a 4613
252b5132
RH
4614/* An X_MASK with the RT and RA fields fixed. */
4615#define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK)
4616
5817ffd1
PB
4617/* An X_MASK with the RT and RB fields fixed. */
4618#define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK)
4619
98acc1c5 4620/* An XRTRA_MASK, but with L bit clear. */
0f873fd5 4621#define XRTLRA_MASK (XRTRA_MASK & ~((uint64_t) 1 << 21))
98acc1c5 4622
5817ffd1
PB
4623/* An X_MASK with the RT, RA and RB fields fixed. */
4624#define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK)
4625
4626/* An XRTRARB_MASK, but with L bit clear. */
0f873fd5 4627#define XRTLRARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 21))
5817ffd1
PB
4628
4629/* An XRTRARB_MASK, but with A bit clear. */
0f873fd5 4630#define XRTARARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 25))
5817ffd1
PB
4631
4632/* An XRTRARB_MASK, but with BF bits clear. */
0f873fd5 4633#define XRTBFRARB_MASK (XRTRARB_MASK & ~((uint64_t) 7 << 23))
5817ffd1 4634
f3806e43 4635/* An X form instruction with the L bit specified. */
b80c7270
AM
4636#define XOPL(op, xop, l) \
4637 (X ((op), (xop)) \
0f873fd5 4638 | ((((uint64_t)(l)) & 1) << 21))
252b5132 4639
3d205eb4 4640/* An X form instruction with the 2 L bits specified. */
b80c7270
AM
4641#define XOPL2(op, xop, l) \
4642 (X ((op), (xop)) \
0f873fd5 4643 | ((((uint64_t)(l)) & 3) << 21))
e0d602ec 4644
3d205eb4
PB
4645/* An X form instruction with the 3 L bits specified. */
4646#define XOPL3(op, xop, l) \
4647 (X ((op), (xop)) \
4648 | ((((uint64_t)(l)) & 7) << 21))
4649
4650/* An X form instruction with the WC and PL bits specified. */
4651#define XWCPL(op, xop, wc, pl) \
4652 (XOPL3 ((op), (xop), (wc)) \
4653 | ((((uint64_t)(pl)) & 3) << 16))
4654
5817ffd1 4655/* An X form instruction with the L bit and RC bit specified. */
b80c7270
AM
4656#define XRCL(op, xop, l, rc) \
4657 (XRC ((op), (xop), (rc)) \
0f873fd5 4658 | ((((uint64_t)(l)) & 1) << 21))
5817ffd1 4659
19a6653c 4660/* An X form instruction with RT fields specified */
b80c7270
AM
4661#define XRT(op, xop, rt) \
4662 (X ((op), (xop)) \
0f873fd5 4663 | ((((uint64_t)(rt)) & 0x1f) << 21))
19a6653c
AM
4664
4665/* An X form instruction with RT and RA fields specified */
b80c7270
AM
4666#define XRTRA(op, xop, rt, ra) \
4667 (X ((op), (xop)) \
0f873fd5
PB
4668 | ((((uint64_t)(rt)) & 0x1f) << 21) \
4669 | ((((uint64_t)(ra)) & 0x1f) << 16))
19a6653c 4670
252b5132 4671/* The mask for an X form comparison instruction. */
0f873fd5 4672#define XCMP_MASK (X_MASK | (((uint64_t)1) << 22))
252b5132 4673
520ceea4
BE
4674/* The mask for an X form comparison instruction with the L field
4675 fixed. */
0f873fd5 4676#define XCMPL_MASK (XCMP_MASK | (((uint64_t)1) << 21))
252b5132
RH
4677
4678/* An X form trap instruction with the TO field specified. */
b80c7270
AM
4679#define XTO(op, xop, to) \
4680 (X ((op), (xop)) \
0f873fd5 4681 | ((((uint64_t)(to)) & 0x1f) << 21))
252b5132
RH
4682#define XTO_MASK (X_MASK | TO_MASK)
4683
e0c21649 4684/* An X form tlb instruction with the SH field specified. */
b80c7270
AM
4685#define XTLB(op, xop, sh) \
4686 (X ((op), (xop)) \
0f873fd5 4687 | ((((uint64_t)(sh)) & 0x1f) << 11))
e0c21649
GK
4688#define XTLB_MASK (X_MASK | SH_MASK)
4689
6ba045b1 4690/* An X form sync instruction. */
b80c7270
AM
4691#define XSYNC(op, xop, l) \
4692 (X ((op), (xop)) \
0f873fd5 4693 | ((((uint64_t)(l)) & 3) << 21))
6ba045b1 4694
b80c7270
AM
4695/* An X form sync instruction with everything filled in except the LS
4696 field. */
6ba045b1
AM
4697#define XSYNC_MASK (0xff9fffff)
4698
b80c7270
AM
4699/* An X form sync instruction with everything filled in except the L
4700 and E fields. */
aea77599
AM
4701#define XSYNCLE_MASK (0xff90ffff)
4702
3d205eb4
PB
4703/* An X form sync instruction. */
4704#define XSYNCLS(op, xop, l, s) \
4705 (X ((op), (xop)) \
4706 | ((((uint64_t)(l)) & 7) << 21) \
4707 | ((((uint64_t)(s)) & 3) << 16))
4708
4709/* An X form sync instruction with everything filled in except the
4710 L and SC fields. */
4711#define XSYNCLS_MASK (0xff1cffff)
4712
702f0fb4 4713/* An X_MASK, but with the EH bit clear. */
0f873fd5 4714#define XEH_MASK (X_MASK & ~((uint64_t )1))
702f0fb4 4715
f5c120c5 4716/* An X form AltiVec dss instruction. */
0f873fd5 4717#define XDSS(op, xop, a) (X ((op), (xop)) | ((((uint64_t)(a)) & 1) << 25))
f5c120c5
MG
4718#define XDSS_MASK XDSS(0x3f, 0x3ff, 1)
4719
252b5132 4720/* An XFL form instruction. */
b80c7270
AM
4721#define XFL(op, xop, rc) \
4722 (OP (op) \
0f873fd5
PB
4723 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
4724 | (((uint64_t)(rc)) & 1))
ea192fa3 4725#define XFL_MASK XFL (0x3f, 0x3ff, 1)
252b5132 4726
23976049 4727/* An X form isel instruction. */
1ff6a3b8
AM
4728#define XISEL(op, xop, cr) (OP (op) | ((xop) << 1) | ((cr) << 6))
4729#define XISEL_MASK XISEL(0x3f, 0x1f, 0)
23976049 4730
252b5132 4731/* An XL form instruction with the LK field set to 0. */
0f873fd5 4732#define XL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
252b5132
RH
4733
4734/* An XL form instruction which uses the LK field. */
4735#define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1))
4736
4737/* The mask for an XL form instruction. */
4738#define XL_MASK XLLK (0x3f, 0x3ff, 1)
4739
c0637f3a
PB
4740/* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear. */
4741#define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11))
4742
252b5132
RH
4743/* An XL form instruction which explicitly sets the BO field. */
4744#define XLO(op, bo, xop, lk) \
0f873fd5 4745 (XLLK ((op), (xop), (lk)) | ((((uint64_t)(bo)) & 0x1f) << 21))
252b5132
RH
4746#define XLO_MASK (XL_MASK | BO_MASK)
4747
252b5132
RH
4748/* An XL form instruction which sets the BO field and the condition
4749 bits of the BI field. */
4750#define XLOCB(op, bo, cb, xop, lk) \
0f873fd5 4751 (XLO ((op), (bo), (xop), (lk)) | ((((uint64_t)(cb)) & 3) << 16))
252b5132 4752
5a403766 4753/* An XL_MASK with the BB field fixed. */
252b5132 4754#define XLBB_MASK (XL_MASK | BB_MASK)
252b5132 4755
d0618d1c 4756/* A mask for branch instructions using the BH field. */
66e85460 4757#define XLBH_MASK (XL_MASK | (BB_MASK & ~(3 << 11)))
d0618d1c 4758
5a403766
AM
4759/* An XLBH_MASK with the BO field fixed. */
4760#define XLBOBB_MASK (XLBH_MASK | BO_MASK)
252b5132 4761
5a403766
AM
4762/* An XLBH_MASK with the BO and BI fields fixed. */
4763#define XLBOBIBB_MASK (XLBOBB_MASK | BI_MASK)
4764
4765/* An XLBH_MASK with the BO and condition bits of the BI fields fixed. */
4766#define XLBOCBBB_MASK (XLBOBB_MASK | (3 << 16))
252b5132 4767
e01d869a 4768/* An X form mbar instruction with MO field. */
b80c7270
AM
4769#define XMBAR(op, xop, mo) \
4770 (X ((op), (xop)) \
0f873fd5 4771 | ((((uint64_t)(mo)) & 1) << 21))
e01d869a 4772
252b5132 4773/* An XO form instruction. */
b80c7270
AM
4774#define XO(op, xop, oe, rc) \
4775 (OP (op) \
0f873fd5
PB
4776 | ((((uint64_t)(xop)) & 0x1ff) << 1) \
4777 | ((((uint64_t)(oe)) & 1) << 10) \
b80c7270 4778 | (((unsigned long)(rc)) & 1))
252b5132 4779#define XO_MASK XO (0x3f, 0x1ff, 1, 1)
51b52f4a 4780#define XOL_MASK XO (0x3f, 0x1ff, 0, 1)
252b5132
RH
4781
4782/* An XO_MASK with the RB field fixed. */
4783#define XORB_MASK (XO_MASK | RB_MASK)
4784
c3d65c1c 4785/* An XOPS form instruction for paired singles. */
b80c7270
AM
4786#define XOPS(op, xop, rc) \
4787 (OP (op) \
0f873fd5
PB
4788 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
4789 | (((uint64_t)(rc)) & 1))
c3d65c1c
BE
4790#define XOPS_MASK XOPS (0x3f, 0x3ff, 1)
4791
4792
252b5132 4793/* An XS form instruction. */
b80c7270
AM
4794#define XS(op, xop, rc) \
4795 (OP (op) \
0f873fd5
PB
4796 | ((((uint64_t)(xop)) & 0x1ff) << 2) \
4797 | (((uint64_t)(rc)) & 1))
252b5132
RH
4798#define XS_MASK XS (0x3f, 0x1ff, 1)
4799
4800/* A mask for the FXM version of an XFX form instruction. */
98e69875 4801#define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20))
252b5132
RH
4802
4803/* An XFX form instruction with the FXM field filled in. */
b80c7270
AM
4804#define XFXM(op, xop, fxm, p4) \
4805 (X ((op), (xop)) \
0f873fd5
PB
4806 | ((((uint64_t)(fxm)) & 0xff) << 12) \
4807 | ((uint64_t)(p4) << 20))
252b5132
RH
4808
4809/* An XFX form instruction with the SPR field filled in. */
b80c7270
AM
4810#define XSPR(op, xop, spr) \
4811 (X ((op), (xop)) \
0f873fd5
PB
4812 | ((((uint64_t)(spr)) & 0x1f) << 16) \
4813 | ((((uint64_t)(spr)) & 0x3e0) << 6))
252b5132
RH
4814#define XSPR_MASK (X_MASK | SPR_MASK)
4815
4816/* An XFX form instruction with the SPR field filled in except for the
4817 SPRBAT field. */
4818#define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK)
4819
fa758a70
AC
4820/* An XFX form instruction with the SPR field filled in except for the
4821 SPRGQR field. */
4822#define XSPRGQR_MASK (XSPR_MASK &~ SPRGQR_MASK)
4823
252b5132
RH
4824/* An XFX form instruction with the SPR field filled in except for the
4825 SPRG field. */
b84bf58a 4826#define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16))
252b5132
RH
4827
4828/* An X form instruction with everything filled in except the E field. */
4829#define XE_MASK (0xffff7fff)
4830
23976049 4831/* An X form user context instruction. */
0f873fd5 4832#define XUC(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
23976049
EZ
4833#define XUC_MASK XUC(0x3f, 0x1f)
4834
c3d65c1c 4835/* An XW form instruction. */
b80c7270
AM
4836#define XW(op, xop, rc) \
4837 (OP (op) \
0f873fd5 4838 | ((((uint64_t)(xop)) & 0x3f) << 1) \
b80c7270 4839 | ((rc) & 1))
c3d65c1c
BE
4840/* The mask for a G form instruction. rc not supported at present. */
4841#define XW_MASK XW (0x3f, 0x3f, 0)
4842
081ba1b3 4843/* An APU form instruction. */
b80c7270
AM
4844#define APU(op, xop, rc) \
4845 (OP (op) \
0f873fd5 4846 | (((uint64_t)(xop)) & 0x3ff) << 1 \
b80c7270 4847 | ((rc) & 1))
081ba1b3
AM
4848
4849/* The mask for an APU form instruction. */
4850#define APU_MASK APU (0x3f, 0x3ff, 1)
4851#define APU_RT_MASK (APU_MASK | RT_MASK)
4852#define APU_RA_MASK (APU_MASK | RA_MASK)
4853
5eafd6de
DS
4854/* An SVL form instruction. */
4855#define SVL(op, xop, rc) \
4856 (OP (op) \
4857 | ((((uint64_t)(xop)) & 0x1f) << 1) \
4858 | (((uint64_t)(rc)) & 1))
4859#define SVL_MASK SVL (0x3f, 0x1f, 1)
4860
baf97ef2
DS
4861/* An SVM form instruction. */
4862#define SVM(op, xop) \
4863 (OP (op) \
4864 | (((uint64_t)(xop)) & 0x3f))
4865#define SVM_MASK SVM (0x3f, 0x3f)
4866
df0030b5
DS
4867/* An SVRM form instruction. */
4868#define SVRM(op, xop) \
4869 (OP (op) \
4870 | (((uint64_t)(xop)) & 0x3f))
4871#define SVRM_MASK SVRM (0x3f, 0x3f)
4872
537710a6
DS
4873/* An SVI form instruction. */
4874#define SVI(op, xop) \
4875 (OP (op) \
4876 | (((uint64_t)(xop)) & 0x3f))
4877#define SVI_MASK SVI (0x3f, 0x3f)
4878
252b5132
RH
4879/* The BO encodings used in extended conditional branch mnemonics. */
4880#define BODNZF (0x0)
4881#define BODNZFP (0x1)
4882#define BODZF (0x2)
4883#define BODZFP (0x3)
252b5132
RH
4884#define BODNZT (0x8)
4885#define BODNZTP (0x9)
4886#define BODZT (0xa)
4887#define BODZTP (0xb)
802a735e
AM
4888
4889#define BOF (0x4)
4890#define BOFP (0x5)
94efba12
AM
4891#define BOFM4 (0x6)
4892#define BOFP4 (0x7)
252b5132
RH
4893#define BOT (0xc)
4894#define BOTP (0xd)
94efba12
AM
4895#define BOTM4 (0xe)
4896#define BOTP4 (0xf)
802a735e 4897
252b5132
RH
4898#define BODNZ (0x10)
4899#define BODNZP (0x11)
4900#define BODZ (0x12)
4901#define BODZP (0x13)
94efba12
AM
4902#define BODNZM4 (0x18)
4903#define BODNZP4 (0x19)
4904#define BODZM4 (0x1a)
4905#define BODZP4 (0x1b)
802a735e 4906
252b5132
RH
4907#define BOU (0x14)
4908
b9c361e0
JL
4909/* The BO16 encodings used in extended VLE conditional branch mnemonics. */
4910#define BO16F (0x0)
4911#define BO16T (0x1)
4912
4913/* The BO32 encodings used in extended VLE conditional branch mnemonics. */
4914#define BO32F (0x0)
4915#define BO32T (0x1)
4916#define BO32DNZ (0x2)
4917#define BO32DZ (0x3)
4918
252b5132
RH
4919/* The BI condition bit encodings used in extended conditional branch
4920 mnemonics. */
4921#define CBLT (0)
4922#define CBGT (1)
4923#define CBEQ (2)
4924#define CBSO (3)
4925
4926/* The TO encodings used in extended trap mnemonics. */
4927#define TOLGT (0x1)
4928#define TOLLT (0x2)
4929#define TOEQ (0x4)
4930#define TOLGE (0x5)
4931#define TOLNL (0x5)
4932#define TOLLE (0x6)
4933#define TOLNG (0x6)
4934#define TOGT (0x8)
4935#define TOGE (0xc)
4936#define TONL (0xc)
4937#define TOLT (0x10)
4938#define TOLE (0x14)
4939#define TONG (0x14)
4940#define TONE (0x18)
4941#define TOU (0x1f)
4942\f
4943/* Smaller names for the flags so each entry in the opcodes table will
4944 fit on a single line. */
4945#undef PPC
de866fcc 4946#define PPC PPC_OPCODE_PPC
661bd698 4947#define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON
661bd698 4948#define POWER4 PPC_OPCODE_POWER4
1ed8e1e4 4949#define POWER5 PPC_OPCODE_POWER5
702f0fb4 4950#define POWER6 PPC_OPCODE_POWER6
066be9f7 4951#define POWER7 PPC_OPCODE_POWER7
5817ffd1 4952#define POWER8 PPC_OPCODE_POWER8
a680de9a 4953#define POWER9 PPC_OPCODE_POWER9
7c1f4227 4954#define POWER10 PPC_OPCODE_POWER10
29a6701e 4955#define FUTURE PPC_OPCODE_FUTURE
ede602d7 4956#define CELL PPC_OPCODE_CELL
bdc70b4a 4957#define PPC64 PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE
6b069ee7 4958#define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 \
bdc70b4a 4959 | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
418c1742 4960#define PPC403 PPC_OPCODE_403
081ba1b3 4961#define PPC405 PPC_OPCODE_405
7d5b217e 4962#define PPC440 PPC_OPCODE_440
c8187e15 4963#define PPC464 PPC440
9fe54b1c 4964#define PPC476 PPC_OPCODE_476
ef5a96d5 4965#define PPC750 PPC_OPCODE_750
fa758a70
AC
4966#define GEKKO PPC_OPCODE_750
4967#define BROADWAY PPC_OPCODE_750
ef5a96d5
AM
4968#define PPC7450 PPC_OPCODE_7450
4969#define PPC860 PPC_OPCODE_860
c3d65c1c 4970#define PPCPS PPC_OPCODE_PPCPS
a404d431 4971#define PPCVEC PPC_OPCODE_ALTIVEC
9a85b496
AM
4972#define PPCVEC2 (PPC_OPCODE_POWER8 | PPC_OPCODE_E6500)
4973#define PPCVEC3 PPC_OPCODE_POWER9
9b4e5766 4974#define PPCVSX PPC_OPCODE_VSX
9570835e
AM
4975#define PPCVSX2 PPC_OPCODE_POWER8
4976#define PPCVSX3 PPC_OPCODE_POWER9
aa3c112f 4977#define PPCVSX4 PPC_OPCODE_POWER10
a60038c6 4978#define PPCVSXF PPC_OPCODE_FUTURE
de866fcc
AM
4979#define POWER PPC_OPCODE_POWER
4980#define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2
81a0b7e2 4981#define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
b80c7270
AM
4982#define PPCPWR2 (PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 \
4983 | PPC_OPCODE_COMMON)
de866fcc 4984#define COM PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON
de866fcc 4985#define M601 PPC_OPCODE_POWER | PPC_OPCODE_601
661bd698 4986#define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON
de866fcc 4987#define MFDEC1 PPC_OPCODE_POWER
b80c7270
AM
4988#define MFDEC2 (PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
4989 | PPC_OPCODE_TITAN)
418c1742 4990#define BOOKE PPC_OPCODE_BOOKE
14b57c7c 4991#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
36ae0db3 4992#define PPCE300 PPC_OPCODE_E300
14b57c7c 4993#define PPCSPE PPC_OPCODE_SPE
74081948 4994#define PPCSPE2 PPC_OPCODE_SPE2
14b57c7c
AM
4995#define PPCISEL PPC_OPCODE_ISEL
4996#define PPCEFS PPC_OPCODE_EFS
74081948 4997#define PPCEFS2 PPC_OPCODE_EFS2
de866fcc 4998#define PPCBRLK PPC_OPCODE_BRLOCK
23976049 4999#define PPCPMR PPC_OPCODE_PMR
33ae8a3a 5000#define PPCTMR PPC_OPCODE_TMR
de866fcc 5001#define PPCCHLK PPC_OPCODE_CACHELCK
fa758a70 5002#define PPCRFMCI PPC_OPCODE_RFMCI
33ae8a3a 5003#define E500MC PPC_OPCODE_E500MC
634b50f2 5004#define PPCA2 PPC_OPCODE_A2
33ae8a3a
DS
5005#define TITAN PPC_OPCODE_TITAN
5006#define MULHW PPC_OPCODE_405 | PPC_OPCODE_440 | PPC_OPCODE_476 | TITAN
e01d869a 5007#define E500 PPC_OPCODE_E500
aea77599 5008#define E6500 PPC_OPCODE_E6500
33ae8a3a
DS
5009#define PPCVLE PPC_OPCODE_VLE
5010#define PPCHTM PPC_OPCODE_POWER8
5011#define E200Z4 PPC_OPCODE_E200Z4
5012#define PPCLSP PPC_OPCODE_LSP
5013#define SVP64 PPC_OPCODE_SVP64
1ff6a3b8
AM
5014/* Used to mark extended mnemonic in deprecated field so that -Mraw
5015 won't use this variant in disassembly. */
5016#define EXT PPC_OPCODE_RAW
252b5132
RH
5017\f
5018/* The opcode table.
5019
5020 The format of the opcode table is:
5021
8ebac3aa 5022 NAME OPCODE MASK FLAGS ANTI {OPERANDS}
252b5132
RH
5023
5024 NAME is the name of the instruction.
5025 OPCODE is the instruction opcode.
5026 MASK is the opcode mask; this is used to tell the disassembler
5027 which bits in the actual opcode must match OPCODE.
8ebac3aa
AM
5028 FLAGS are flags indicating which processors support the instruction.
5029 ANTI indicates which processors don't support the instruction.
252b5132
RH
5030 OPERANDS is the list of operands.
5031
5032 The disassembler reads the table in order and prints the first
5033 instruction which matches, so this table is sorted to put more
de866fcc
AM
5034 specific instructions before more general instructions.
5035
5036 This table must be sorted by major opcode. Please try to keep it
5037 vaguely sorted within major opcode too, except of course where
5038 constrained otherwise by disassembler operation. */
252b5132
RH
5039
5040const struct powerpc_opcode powerpc_opcodes[] = {
14b57c7c 5041{"attn", X(0,256), X_MASK, POWER4|PPCA2, PPC476|PPCVLE, {0}},
1ff6a3b8
AM
5042{"tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5043{"tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5044{"tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5045{"tdlgei", OPTO(2,TOLGE), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5046{"tdlnli", OPTO(2,TOLNL), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5047{"tdllei", OPTO(2,TOLLE), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5048{"tdlngi", OPTO(2,TOLNG), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5049{"tdgti", OPTO(2,TOGT), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5050{"tdgei", OPTO(2,TOGE), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5051{"tdnli", OPTO(2,TONL), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5052{"tdlti", OPTO(2,TOLT), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5053{"tdlei", OPTO(2,TOLE), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5054{"tdngi", OPTO(2,TONG), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5055{"tdnei", OPTO(2,TONE), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
5056{"tdui", OPTO(2,TOU), OPTO_MASK, PPC64, PPCVLE|EXT, {RA, SI}},
14b57c7c
AM
5057{"tdi", OP(2), OP_MASK, PPC64, PPCVLE, {TO, RA, SI}},
5058
1ff6a3b8
AM
5059{"twlgti", OPTO(3,TOLGT), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5060{"tlgti", OPTO(3,TOLGT), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5061{"twllti", OPTO(3,TOLLT), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5062{"tllti", OPTO(3,TOLLT), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5063{"tweqi", OPTO(3,TOEQ), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5064{"teqi", OPTO(3,TOEQ), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5065{"twlgei", OPTO(3,TOLGE), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5066{"tlgei", OPTO(3,TOLGE), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5067{"twlnli", OPTO(3,TOLNL), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5068{"tlnli", OPTO(3,TOLNL), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5069{"twllei", OPTO(3,TOLLE), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5070{"tllei", OPTO(3,TOLLE), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5071{"twlngi", OPTO(3,TOLNG), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5072{"tlngi", OPTO(3,TOLNG), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5073{"twgti", OPTO(3,TOGT), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5074{"tgti", OPTO(3,TOGT), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5075{"twgei", OPTO(3,TOGE), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5076{"tgei", OPTO(3,TOGE), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5077{"twnli", OPTO(3,TONL), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5078{"tnli", OPTO(3,TONL), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5079{"twlti", OPTO(3,TOLT), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5080{"tlti", OPTO(3,TOLT), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5081{"twlei", OPTO(3,TOLE), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5082{"tlei", OPTO(3,TOLE), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5083{"twngi", OPTO(3,TONG), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5084{"tngi", OPTO(3,TONG), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5085{"twnei", OPTO(3,TONE), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5086{"tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
5087{"twui", OPTO(3,TOU), OPTO_MASK, PPCCOM, PPCVLE|EXT, {RA, SI}},
5088{"tui", OPTO(3,TOU), OPTO_MASK, PWRCOM, PPCVLE|EXT, {RA, SI}},
14b57c7c
AM
5089{"twi", OP(3), OP_MASK, PPCCOM, PPCVLE, {TO, RA, SI}},
5090{"ti", OP(3), OP_MASK, PWRCOM, PPCVLE, {TO, RA, SI}},
5091
5092{"ps_cmpu0", X (4, 0), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
5093{"vaddubm", VX (4, 0), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5094{"vmul10cuq", VX (4, 1), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
5095{"vmaxub", VX (4, 2), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5096{"vrlb", VX (4, 4), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5097{"vrlq", VX (4, 5), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5098{"vcmpequb", VXR(4, 6,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5099{"vcmpneb", VXR(4, 7,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5100{"vmuloub", VX (4, 8), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5101{"vaddfp", VX (4, 10), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5102{"vdivuq", VX (4, 11), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5103{"psq_lx", XW (4, 6,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
5104{"vmrghb", VX (4, 12), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
66ef5847
AM
5105{"vstribl", VXVA(4,13,0), VXVA_MASK, POWER10, 0, {VD, VB}},
5106{"vstribr", VXVA(4,13,1), VXVA_MASK, POWER10, 0, {VD, VB}},
5107{"vstrihl", VXVA(4,13,2), VXVA_MASK, POWER10, 0, {VD, VB}},
5108{"vstrihr", VXVA(4,13,3), VXVA_MASK, POWER10, 0, {VD, VB}},
14b57c7c
AM
5109{"psq_stx", XW (4, 7,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
5110{"vpkuhum", VX (4, 14), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 5111{"vinsbvlx", VX (4, 15), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
5112{"mulhhwu", XRC(4, 8,0), X_MASK, MULHW, 0, {RT, RA, RB}},
5113{"mulhhwu.", XRC(4, 8,1), X_MASK, MULHW, 0, {RT, RA, RB}},
fdefed7c 5114{"mtvsrbmi", DX (4,10), DX_MASK, POWER10, 0, {VD, DXD}},
14b57c7c
AM
5115{"ps_sum0", A (4, 10,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5116{"ps_sum0.", A (4, 10,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 5117{"vsldbi", VX (4, 22), VXSH_MASK, POWER10, 0, {VD, VA, VB, SH3}},
14b57c7c
AM
5118{"ps_sum1", A (4, 11,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5119{"ps_sum1.", A (4, 11,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 5120{"vextdubvlx", VX (4, 24), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c
AM
5121{"ps_muls0", A (4, 12,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
5122{"machhwu", XO (4, 12,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
6edbfd3b 5123{"vextdubvrx", VX (4, 25), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c
AM
5124{"ps_muls0.", A (4, 12,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
5125{"machhwu.", XO (4, 12,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
6edbfd3b 5126{"vextduhvlx", VX (4, 26), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 5127{"ps_muls1", A (4, 13,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
6edbfd3b 5128{"vextduhvrx", VX (4, 27), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 5129{"ps_muls1.", A (4, 13,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
6edbfd3b 5130{"vextduwvlx", VX (4, 28), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 5131{"ps_madds0", A (4, 14,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 5132{"vextduwvrx", VX (4, 29), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 5133{"ps_madds0.", A (4, 14,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 5134{"vextddvlx", VX (4, 30), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 5135{"ps_madds1", A (4, 15,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 5136{"vextddvrx", VX (4, 31), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c
AM
5137{"ps_madds1.", A (4, 15,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5138{"vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5139{"vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5140{"vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5141{"vmsumudm", VXA(4, 35), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
5142{"ps_div", A (4, 18,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
c7d7aea2 5143{"vmsumcud", VXA(4, 23), VXA_MASK, POWER10, 0, {VD, VA, VB, VC}},
14b57c7c
AM
5144{"vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5145{"ps_div.", A (4, 18,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5146{"vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5147{"vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5148{"vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5149{"ps_sub", A (4, 20,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5150{"vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5151{"ps_sub.", A (4, 20,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5152{"vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5153{"ps_add", A (4, 21,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5154{"vsel", VXA(4, 42), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5155{"ps_add.", A (4, 21,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5156{"vperm", VXA(4, 43), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
5157{"vsldoi", VXA(4, 44), VXASHB_MASK, PPCVEC, 0, {VD, VA, VB, SHB}},
5158{"vpermxor", VXA(4, 45), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
5159{"ps_sel", A (4, 23,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5160{"vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
5161{"ps_sel.", A (4, 23,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5162{"vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
5163{"ps_res", A (4, 24,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
5164{"maddhd", VXA(4, 48), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
5165{"ps_res.", A (4, 24,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
5166{"maddhdu", VXA(4, 49), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
5167{"ps_mul", A (4, 25,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
5168{"ps_mul.", A (4, 25,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
5169{"maddld", VXA(4, 51), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
5170{"ps_rsqrte", A (4, 26,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
5171{"ps_rsqrte.", A (4, 26,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
5172{"ps_msub", A (4, 28,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5173{"ps_msub.", A (4, 28,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5174{"ps_madd", A (4, 29,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5175{"ps_madd.", A (4, 29,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5176{"vpermr", VXA(4, 59), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
5177{"ps_nmsub", A (4, 30,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5178{"vaddeuqm", VXA(4, 60), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
5179{"ps_nmsub.", A (4, 30,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5180{"vaddecuq", VXA(4, 61), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
5181{"ps_nmadd", A (4, 31,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5182{"vsubeuqm", VXA(4, 62), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
5183{"ps_nmadd.", A (4, 31,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
5184{"vsubecuq", VXA(4, 63), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
5185{"ps_cmpo0", X (4, 32), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
5186{"vadduhm", VX (4, 64), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5187{"vmul10ecuq", VX (4, 65), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5188{"vmaxuh", VX (4, 66), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5189{"vrlh", VX (4, 68), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5190{"vrlqmi", VX (4, 69), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5191{"vcmpequh", VXR(4, 70,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5192{"vcmpneh", VXR(4, 71,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5193{"vmulouh", VX (4, 72), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5194{"vsubfp", VX (4, 74), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5195{"psq_lux", XW (4, 38,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
5196{"vmrghh", VX (4, 76), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5197{"psq_stux", XW (4, 39,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
5198{"vpkuwum", VX (4, 78), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 5199{"vinshvlx", VX (4, 79), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
5200{"ps_neg", XRC(4, 40,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
5201{"mulhhw", XRC(4, 40,0), X_MASK, MULHW, 0, {RT, RA, RB}},
5202{"ps_neg.", XRC(4, 40,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
5203{"mulhhw.", XRC(4, 40,1), X_MASK, MULHW, 0, {RT, RA, RB}},
5204{"machhw", XO (4, 44,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5205{"machhw.", XO (4, 44,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5206{"nmachhw", XO (4, 46,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5207{"nmachhw.", XO (4, 46,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5208{"ps_cmpu1", X (4, 64), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
5209{"vadduwm", VX (4, 128), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5210{"vmaxuw", VX (4, 130), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5211{"vrlw", VX (4, 132), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5212{"vrlwmi", VX (4, 133), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5213{"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5214{"vcmpnew", VXR(4, 135,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5215{"vmulouw", VX (4, 136), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5216{"vmuluwm", VX (4, 137), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
f4791f1a 5217{"vdivuw", VX (4, 139), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5218{"vmrghw", VX (4, 140), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5219{"vpkuhus", VX (4, 142), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 5220{"vinswvlx", VX (4, 143), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
5221{"ps_mr", XRC(4, 72,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
5222{"ps_mr.", XRC(4, 72,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
5223{"machhwsu", XO (4, 76,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5224{"machhwsu.", XO (4, 76,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5225{"ps_cmpo1", X (4, 96), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
5226{"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5227{"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5228{"vrld", VX (4, 196), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5229{"vrldmi", VX (4, 197), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5230{"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5231{"vcmpequd", VXR(4, 199,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
c7d7aea2 5232{"vmuloud", VX (4, 200), VX_MASK, POWER10, 0, {VD, VA, VB}},
f4791f1a 5233{"vdivud", VX (4, 203), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5234{"vpkuwus", VX (4, 206), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 5235{"vinsw", VX (4, 207), VXUIMM4_MASK, POWER10, 0, {VD, RB, UIMM4}},
14b57c7c
AM
5236{"machhws", XO (4, 108,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5237{"machhws.", XO (4, 108,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5238{"nmachhws", XO (4, 110,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5239{"nmachhws.", XO (4, 110,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5240{"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
18a8a00e 5241{"vcmpuq", VX (4, 257), VXBF_MASK, POWER10, 0, {BF, VA, VB}},
14b57c7c
AM
5242{"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5243{"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5244{"vslq", VX (4, 261), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5245{"vcmpnezb", VXR(4, 263,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5246{"vmulosb", VX (4, 264), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5247{"vrefp", VX (4, 266), VXVA_MASK, PPCVEC, 0, {VD, VB}},
c7d7aea2 5248{"vdivsq", VX (4, 267), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5249{"vmrglb", VX (4, 268), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5250{"vpkshus", VX (4, 270), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 5251{"vinsbvrx", VX (4, 271), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
5252{"ps_nabs", XRC(4, 136,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
5253{"mulchwu", XRC(4, 136,0), X_MASK, MULHW, 0, {RT, RA, RB}},
5254{"ps_nabs.", XRC(4, 136,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
5255{"mulchwu.", XRC(4, 136,1), X_MASK, MULHW, 0, {RT, RA, RB}},
5256{"macchwu", XO (4, 140,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5257{"macchwu.", XO (4, 140,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5258{"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
18a8a00e 5259{"vcmpsq", VX (4, 321), VXBF_MASK, POWER10, 0, {BF, VA, VB}},
14b57c7c
AM
5260{"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5261{"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5262{"vrlqnm", VX (4, 325), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5263{"vcmpnezh", VXR(4, 327,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5264{"vmulosh", VX (4, 328), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5265{"vrsqrtefp", VX (4, 330), VXVA_MASK, PPCVEC, 0, {VD, VB}},
5266{"vmrglh", VX (4, 332), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5267{"vpkswus", VX (4, 334), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 5268{"vinshvrx", VX (4, 335), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
5269{"mulchw", XRC(4, 168,0), X_MASK, MULHW, 0, {RT, RA, RB}},
5270{"mulchw.", XRC(4, 168,1), X_MASK, MULHW, 0, {RT, RA, RB}},
5271{"macchw", XO (4, 172,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5272{"macchw.", XO (4, 172,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5273{"nmacchw", XO (4, 174,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5274{"nmacchw.", XO (4, 174,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5275{"vaddcuw", VX (4, 384), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5276{"vmaxsw", VX (4, 386), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5277{"vslw", VX (4, 388), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5278{"vrlwnm", VX (4, 389), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5279{"vcmpnezw", VXR(4, 391,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5280{"vmulosw", VX (4, 392), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5281{"vexptefp", VX (4, 394), VXVA_MASK, PPCVEC, 0, {VD, VB}},
f4791f1a 5282{"vdivsw", VX (4, 395), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5283{"vmrglw", VX (4, 396), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
66ef5847 5284{"vclrlb", VX (4, 397), VX_MASK, POWER10, 0, {VD, VA, RB}},
14b57c7c 5285{"vpkshss", VX (4, 398), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 5286{"vinswvrx", VX (4, 399), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
5287{"macchwsu", XO (4, 204,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5288{"macchwsu.", XO (4, 204,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5289{"vmaxsd", VX (4, 450), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5290{"vsl", VX (4, 452), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5291{"vrldnm", VX (4, 453), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5292{"vcmpgefp", VXR(4, 454,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2
AM
5293{"vcmpequq", VXR(4, 455,0), VXR_MASK, POWER10, 0, {VD, VA, VB}},
5294{"vmulosd", VX (4, 456), VX_MASK, POWER10, 0, {VD, VA, VB}},
f4791f1a 5295{"vmulld", VX (4, 457), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5296{"vlogefp", VX (4, 458), VXVA_MASK, PPCVEC, 0, {VD, VB}},
f4791f1a 5297{"vdivsd", VX (4, 459), VX_MASK, POWER10, 0, {VD, VA, VB}},
66ef5847 5298{"vclrrb", VX (4, 461), VX_MASK, POWER10, 0, {VD, VA, RB}},
14b57c7c 5299{"vpkswss", VX (4, 462), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 5300{"vinsd", VX (4, 463), VXUIMM4_MASK, POWER10, 0, {VD, RB, UIMM4}},
14b57c7c
AM
5301{"macchws", XO (4, 236,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5302{"macchws.", XO (4, 236,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5303{"nmacchws", XO (4, 238,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5304{"nmacchws.", XO (4, 238,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5305{"evaddw", VX (4, 512), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5306{"vaddubs", VX (4, 512), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5307{"vmul10uq", VX (4, 513), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
5308{"evaddiw", VX (4, 514), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
5309{"vminub", VX (4, 514), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5abb5d3f 5310{"evsubw", VX (4, 516), VX_MASK, PPCSPE, EXT, {RS, RB, RA}},
14b57c7c 5311{"evsubfw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c 5312{"vsrb", VX (4, 516), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5313{"vsrq", VX (4, 517), VX_MASK, POWER10, 0, {VD, VA, VB}},
5abb5d3f 5314{"evsubiw", VX (4, 518), VX_MASK, PPCSPE, EXT, {RS, RB, UIMM}},
14b57c7c 5315{"evsubifw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, UIMM, RB}},
14b57c7c
AM
5316{"vcmpgtub", VXR(4, 518,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5317{"evabs", VX (4, 520), VX_MASK, PPCSPE, 0, {RS, RA}},
5318{"vmuleub", VX (4, 520), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5319{"evneg", VX (4, 521), VX_MASK, PPCSPE, 0, {RS, RA}},
5320{"evextsb", VX (4, 522), VX_MASK, PPCSPE, 0, {RS, RA}},
5321{"vrfin", VX (4, 522), VXVA_MASK, PPCVEC, 0, {VD, VB}},
c7d7aea2 5322{"vdiveuq", VX (4, 523), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5323{"evextsh", VX (4, 523), VX_MASK, PPCSPE, 0, {RS, RA}},
5324{"evrndw", VX (4, 524), VX_MASK, PPCSPE, 0, {RS, RA}},
5325{"vspltb", VX (4, 524), VXUIMM4_MASK, PPCVEC, 0, {VD, VB, UIMM4}},
5326{"vextractub", VX (4, 525), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
5327{"evcntlzw", VX (4, 525), VX_MASK, PPCSPE, 0, {RS, RA}},
5328{"evcntlsw", VX (4, 526), VX_MASK, PPCSPE, 0, {RS, RA}},
5329{"vupkhsb", VX (4, 526), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 5330{"vinsblx", VX (4, 527), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
5331{"brinc", VX (4, 527), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5332{"ps_abs", XRC(4, 264,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
5333{"ps_abs.", XRC(4, 264,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
5334{"evand", VX (4, 529), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5335{"evandc", VX (4, 530), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
6edbfd3b 5336{"vsrdbi", VX (4, 534), VXSH_MASK, POWER10, 0, {VD, VA, VB, SH3}},
14b57c7c 5337{"evxor", VX (4, 534), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
1ff6a3b8 5338{"evmr", VX (4, 535), VX_MASK, PPCSPE, EXT, {RS, RAB}},
14b57c7c 5339{"evor", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
1ff6a3b8 5340{"evnot", VX (4, 536), VX_MASK, PPCSPE, EXT, {RS, RAB}},
14b57c7c 5341{"evnor", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
5342{"get", APU(4, 268,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
5343{"eveqv", VX (4, 537), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5344{"evorc", VX (4, 539), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5345{"evnand", VX (4, 542), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5346{"evsrwu", VX (4, 544), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5347{"evsrws", VX (4, 545), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5348{"evsrwiu", VX (4, 546), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
5349{"evsrwis", VX (4, 547), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
5350{"evslw", VX (4, 548), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5351{"evslwi", VX (4, 550), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
5352{"evrlw", VX (4, 552), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5353{"evsplati", VX (4, 553), VX_MASK, PPCSPE, 0, {RS, SIMM}},
5354{"evrlwi", VX (4, 554), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
5355{"evsplatfi", VX (4, 555), VX_MASK, PPCSPE, 0, {RS, SIMM}},
5356{"evmergehi", VX (4, 556), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5357{"evmergelo", VX (4, 557), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5358{"evmergehilo", VX (4, 558), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5359{"evmergelohi", VX (4, 559), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5360{"evcmpgtu", VX (4, 560), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5361{"evcmpgts", VX (4, 561), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5362{"evcmpltu", VX (4, 562), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5363{"evcmplts", VX (4, 563), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5364{"evcmpeq", VX (4, 564), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5365{"cget", APU(4, 284,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
5366{"vadduhs", VX (4, 576), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5367{"vmul10euq", VX (4, 577), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5368{"vminuh", VX (4, 578), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5369{"vsrh", VX (4, 580), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5370{"vcmpgtuh", VXR(4, 582,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5371{"vmuleuh", VX (4, 584), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5372{"vrfiz", VX (4, 586), VXVA_MASK, PPCVEC, 0, {VD, VB}},
5373{"vsplth", VX (4, 588), VXUIMM3_MASK, PPCVEC, 0, {VD, VB, UIMM3}},
5374{"vextractuh", VX (4, 589), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
5375{"vupkhsh", VX (4, 590), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 5376{"vinshlx", VX (4, 591), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
5377{"nget", APU(4, 300,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
5378{"evsel", EVSEL(4,79), EVSEL_MASK, PPCSPE, 0, {RS, RA, RB, CRFS}},
5379{"ncget", APU(4, 316,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
5380{"evfsadd", VX (4, 640), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5381{"vadduws", VX (4, 640), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5382{"evfssub", VX (4, 641), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 5383{"evfsmadd", VX (4, 642), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c 5384{"vminuw", VX (4, 642), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 5385{"evfsmsub", VX (4, 643), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
5386{"evfsabs", VX (4, 644), VX_MASK, PPCSPE, 0, {RS, RA}},
5387{"vsrw", VX (4, 644), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5388{"evfsnabs", VX (4, 645), VX_MASK, PPCSPE, 0, {RS, RA}},
5389{"evfsneg", VX (4, 646), VX_MASK, PPCSPE, 0, {RS, RA}},
5390{"vcmpgtuw", VXR(4, 646,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5391{"vcmpgtuq", VXR(4, 647,0), VXR_MASK, POWER10, 0, {VD, VA, VB}},
74081948 5392{"evfssqrt", VX_RB_CONST(4, 647, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
5393{"vmuleuw", VX (4, 648), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5394{"evfsmul", VX (4, 648), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
f4791f1a 5395{"vmulhuw", VX (4, 649), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5396{"evfsdiv", VX (4, 649), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 5397{"evfsnmadd", VX (4, 650), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c 5398{"vrfip", VX (4, 650), VXVA_MASK, PPCVEC, 0, {VD, VB}},
f4791f1a 5399{"vdiveuw", VX (4, 651), VX_MASK, POWER10, 0, {VD, VA, VB}},
74081948 5400{"evfsnmsub", VX (4, 651), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
5401{"evfscmpgt", VX (4, 652), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5402{"vspltw", VX (4, 652), VXUIMM2_MASK, PPCVEC, 0, {VD, VB, UIMM2}},
5403{"vextractuw", VX (4, 653), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
5404{"evfscmplt", VX (4, 653), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5405{"evfscmpeq", VX (4, 654), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5406{"vupklsb", VX (4, 654), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 5407{"vinswlx", VX (4, 655), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c 5408{"evfscfui", VX (4, 656), VX_MASK, PPCSPE, 0, {RS, RB}},
74081948 5409{"evfscfh", VX_RA_CONST(4, 657, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
5410{"evfscfsi", VX (4, 657), VX_MASK, PPCSPE, 0, {RS, RB}},
5411{"evfscfuf", VX (4, 658), VX_MASK, PPCSPE, 0, {RS, RB}},
5412{"evfscfsf", VX (4, 659), VX_MASK, PPCSPE, 0, {RS, RB}},
5413{"evfsctui", VX (4, 660), VX_MASK, PPCSPE, 0, {RS, RB}},
74081948 5414{"evfscth", VX_RA_CONST(4, 661, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
5415{"evfsctsi", VX (4, 661), VX_MASK, PPCSPE, 0, {RS, RB}},
5416{"evfsctuf", VX (4, 662), VX_MASK, PPCSPE, 0, {RS, RB}},
5417{"evfsctsf", VX (4, 663), VX_MASK, PPCSPE, 0, {RS, RB}},
5418{"evfsctuiz", VX (4, 664), VX_MASK, PPCSPE, 0, {RS, RB}},
5419{"put", APU(4, 332,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
5420{"evfsctsiz", VX (4, 666), VX_MASK, PPCSPE, 0, {RS, RB}},
5421{"evfststgt", VX (4, 668), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5422{"evfststlt", VX (4, 669), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
5423{"evfststeq", VX (4, 670), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
74081948
AF
5424{"evfsmax", VX (4, 672), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5425{"evfsmin", VX (4, 673), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5426{"evfsaddsub", VX (4, 674), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5427{"evfssubadd", VX (4, 675), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5428{"evfssum", VX (4, 676), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5429{"evfsdiff", VX (4, 677), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5430{"evfssumdiff", VX (4, 678), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5431{"evfsdiffsum", VX (4, 679), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5432{"evfsaddx", VX (4, 680), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5433{"evfssubx", VX (4, 681), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5434{"evfsaddsubx", VX (4, 682), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5435{"evfssubaddx", VX (4, 683), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5436{"evfsmulx", VX (4, 684), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5437{"evfsmule", VX (4, 686), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5438{"evfsmulo", VX (4, 687), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5439{"efsmax", VX (4, 688), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5440{"efsmin", VX (4, 689), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
5441{"efdmax", VX (4, 696), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
14b57c7c 5442{"cput", APU(4, 348,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
74081948 5443{"efdmin", VX (4, 697), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
14b57c7c 5444{"efsadd", VX (4, 704), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
8736318e 5445{"evsadd", VX (4, 704), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
14b57c7c 5446{"efssub", VX (4, 705), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
8736318e 5447{"evssub", VX (4, 705), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948 5448{"efsmadd", VX (4, 706), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 5449{"vminud", VX (4, 706), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 5450{"efsmsub", VX (4, 707), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 5451{"efsabs", VX (4, 708), VX_MASK, PPCEFS, 0, {RS, RA}},
8736318e 5452{"evsabs", VX (4, 708), VX_MASK, PPCEFS, 0, {RS, RA}},
14b57c7c
AM
5453{"vsr", VX (4, 708), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5454{"efsnabs", VX (4, 709), VX_MASK, PPCEFS, 0, {RS, RA}},
8736318e 5455{"evsnabs", VX (4, 709), VX_MASK, PPCEFS, 0, {RS, RA}},
14b57c7c 5456{"efsneg", VX (4, 710), VX_MASK, PPCEFS, 0, {RS, RA}},
8736318e 5457{"evsneg", VX (4, 710), VX_MASK, PPCEFS, 0, {RS, RA}},
14b57c7c 5458{"vcmpgtfp", VXR(4, 710,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 5459{"efssqrt", VX_RB_CONST(4, 711, 0), VX_RB_CONST_MASK,PPCEFS2, 0, {RD, RA}},
14b57c7c 5460{"vcmpgtud", VXR(4, 711,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
c7d7aea2 5461{"vmuleud", VX (4, 712), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5462{"efsmul", VX (4, 712), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
8736318e 5463{"evsmul", VX (4, 712), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
f4791f1a 5464{"vmulhud", VX (4, 713), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5465{"efsdiv", VX (4, 713), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
8736318e 5466{"evsdiv", VX (4, 713), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948 5467{"efsnmadd", VX (4, 714), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 5468{"vrfim", VX (4, 714), VXVA_MASK, PPCVEC, 0, {VD, VB}},
f4791f1a 5469{"vdiveud", VX (4, 715), VX_MASK, POWER10, 0, {VD, VA, VB}},
74081948 5470{"efsnmsub", VX (4, 715), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 5471{"efscmpgt", VX (4, 716), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
8736318e 5472{"evscmpgt", VX (4, 716), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
14b57c7c
AM
5473{"vextractd", VX (4, 717), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
5474{"efscmplt", VX (4, 717), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
8736318e 5475{"evsgmplt", VX (4, 717), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
14b57c7c 5476{"efscmpeq", VX (4, 718), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
8736318e 5477{"evsgmpeq", VX (4, 718), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
14b57c7c 5478{"vupklsh", VX (4, 718), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 5479{"vinsdlx", VX (4, 719), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
5480{"efscfd", VX (4, 719), VX_MASK, PPCEFS, 0, {RS, RB}},
5481{"efscfui", VX (4, 720), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5482{"evscfui", VX (4, 720), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 5483{"efscfh", VX_RA_CONST(4, 721, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c 5484{"efscfsi", VX (4, 721), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5485{"evscfsi", VX (4, 721), VX_MASK, PPCEFS, 0, {RS, RB}},
14b57c7c 5486{"efscfuf", VX (4, 722), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5487{"evscfuf", VX (4, 722), VX_MASK, PPCEFS, 0, {RS, RB}},
14b57c7c 5488{"efscfsf", VX (4, 723), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5489{"evscfsf", VX (4, 723), VX_MASK, PPCEFS, 0, {RS, RB}},
14b57c7c 5490{"efsctui", VX (4, 724), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5491{"evsctui", VX (4, 724), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 5492{"efscth", VX_RA_CONST(4, 725, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c 5493{"efsctsi", VX (4, 725), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5494{"evsctsi", VX (4, 725), VX_MASK, PPCEFS, 0, {RS, RB}},
14b57c7c 5495{"efsctuf", VX (4, 726), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5496{"evsctuf", VX (4, 726), VX_MASK, PPCEFS, 0, {RS, RB}},
14b57c7c 5497{"efsctsf", VX (4, 727), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5498{"evsctsf", VX (4, 727), VX_MASK, PPCEFS, 0, {RS, RB}},
14b57c7c 5499{"efsctuiz", VX (4, 728), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5500{"evsctuiz", VX (4, 728), VX_MASK, PPCEFS, 0, {RS, RB}},
14b57c7c
AM
5501{"nput", APU(4, 364,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
5502{"efsctsiz", VX (4, 730), VX_MASK, PPCEFS, 0, {RS, RB}},
8736318e 5503{"evsctsiz", VX (4, 730), VX_MASK, PPCEFS, 0, {RS, RB}},
14b57c7c 5504{"efststgt", VX (4, 732), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
8736318e 5505{"evststgt", VX (4, 732), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
14b57c7c 5506{"efststlt", VX (4, 733), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
8736318e 5507{"evststlt", VX (4, 733), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
14b57c7c 5508{"efststeq", VX (4, 734), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
8736318e 5509{"evststeq", VX (4, 734), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
14b57c7c
AM
5510{"efdadd", VX (4, 736), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
5511{"efdsub", VX (4, 737), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948
AF
5512{"efdmadd", VX (4, 738), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
5513{"efdcfuid", VX (4, 738), VX_MASK, E500|E500MC,0, {RS, RB}},
5514{"efdmsub", VX (4, 739), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
5515{"efdcfsid", VX (4, 739), VX_MASK, E500|E500MC,0, {RS, RB}},
14b57c7c
AM
5516{"efdabs", VX (4, 740), VX_MASK, PPCEFS, 0, {RS, RA}},
5517{"efdnabs", VX (4, 741), VX_MASK, PPCEFS, 0, {RS, RA}},
5518{"efdneg", VX (4, 742), VX_MASK, PPCEFS, 0, {RS, RA}},
74081948 5519{"efdsqrt", VX_RB_CONST(4, 743, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
5520{"efdmul", VX (4, 744), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
5521{"efddiv", VX (4, 745), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948
AF
5522{"efdnmadd", VX (4, 746), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
5523{"efdctuidz", VX (4, 746), VX_MASK, E500|E500MC,0, {RS, RB}},
5524{"efdnmsub", VX (4, 747), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
5525{"efdctsidz", VX (4, 747), VX_MASK, E500|E500MC,0, {RS, RB}},
14b57c7c
AM
5526{"efdcmpgt", VX (4, 748), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
5527{"efdcmplt", VX (4, 749), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
5528{"efdcmpeq", VX (4, 750), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
5529{"efdcfs", VX (4, 751), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948
AF
5530{"efdcfui", VX_RA_CONST(4, 752, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
5531{"efdcfuid", VX_RA_CONST(4, 752, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
5532{"efdcfsi", VX_RA_CONST(4, 753, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
5533{"efdcfsid", VX_RA_CONST(4, 753, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
5534{"efdcfh", VX_RA_CONST(4, 753, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
5535{"efdcfuf", VX (4, 754), VX_MASK, PPCEFS, 0, {RS, RB}},
5536{"efdcfsf", VX (4, 755), VX_MASK, PPCEFS, 0, {RS, RB}},
5537{"efdctui", VX (4, 756), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 5538{"efdcth", VX_RA_CONST(4, 757, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
5539{"efdctsi", VX (4, 757), VX_MASK, PPCEFS, 0, {RS, RB}},
5540{"efdctuf", VX (4, 758), VX_MASK, PPCEFS, 0, {RS, RB}},
5541{"efdctsf", VX (4, 759), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948
AF
5542{"efdctuiz", VX_RA_CONST(4, 760, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
5543{"efdctuidz", VX_RA_CONST(4, 760, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
14b57c7c 5544{"ncput", APU(4, 380,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
74081948
AF
5545{"efdctsiz", VX_RA_CONST(4, 762, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
5546{"efdctsidz", VX_RA_CONST(4, 762, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
14b57c7c
AM
5547{"efdtstgt", VX (4, 764), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
5548{"efdtstlt", VX (4, 765), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
5549{"efdtsteq", VX (4, 766), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
5550{"evlddx", VX (4, 768), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5551{"vaddsbs", VX (4, 768), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5552{"evldd", VX (4, 769), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
5553{"evldwx", VX (4, 770), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5554{"vminsb", VX (4, 770), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5555{"evldw", VX (4, 771), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
5556{"evldhx", VX (4, 772), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5557{"vsrab", VX (4, 772), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5558{"vsraq", VX (4, 773), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5559{"evldh", VX (4, 773), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
5560{"vcmpgtsb", VXR(4, 774,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5561{"evlhhesplatx",VX (4, 776), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5562{"vmulesb", VX (4, 776), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5563{"evlhhesplat", VX (4, 777), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
5564{"vcfux", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
1ff6a3b8 5565{"vcuxwfp", VX (4, 778), VX_MASK, PPCVEC, EXT, {VD, VB, UIMM}},
c7d7aea2 5566{"vdivesq", VX (4, 779), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5567{"evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5568{"vspltisb", VX (4, 780), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
5569{"vinsertb", VX (4, 781), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
5570{"evlhhousplat",VX (4, 781), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
5571{"evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5572{"vpkpx", VX (4, 782), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 5573{"vinsbrx", VX (4, 783), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
5574{"evlhhossplat",VX (4, 783), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
5575{"mullhwu", XRC(4, 392,0), X_MASK, MULHW, 0, {RT, RA, RB}},
5576{"evlwhex", VX (4, 784), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5577{"mullhwu.", XRC(4, 392,1), X_MASK, MULHW, 0, {RT, RA, RB}},
5578{"evlwhe", VX (4, 785), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
5579{"evlwhoux", VX (4, 788), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5580{"evlwhou", VX (4, 789), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
5581{"evlwhosx", VX (4, 790), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5582{"evlwhos", VX (4, 791), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
5583{"maclhwu", XO (4, 396,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
5584{"evlwwsplatx", VX (4, 792), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5585{"maclhwu.", XO (4, 396,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
5586{"evlwwsplat", VX (4, 793), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
5587{"evlwhsplatx", VX (4, 796), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5588{"evlwhsplat", VX (4, 797), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
5589{"evstddx", VX (4, 800), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5590{"evstdd", VX (4, 801), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
5591{"evstdwx", VX (4, 802), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5592{"evstdw", VX (4, 803), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
5593{"evstdhx", VX (4, 804), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5594{"evstdh", VX (4, 805), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
5595{"evstwhex", VX (4, 816), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5596{"evstwhe", VX (4, 817), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
5597{"evstwhox", VX (4, 820), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5598{"evstwho", VX (4, 821), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
5599{"evstwwex", VX (4, 824), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5600{"evstwwe", VX (4, 825), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
5601{"evstwwox", VX (4, 828), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5602{"evstwwo", VX (4, 829), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
5603{"vaddshs", VX (4, 832), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5604{"bcdcpsgn.", VX (4, 833), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5605{"vminsh", VX (4, 834), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5606{"vsrah", VX (4, 836), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5607{"vcmpgtsh", VXR(4, 838,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5608{"vmulesh", VX (4, 840), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5609{"vcfsx", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
1ff6a3b8 5610{"vcsxwfp", VX (4, 842), VX_MASK, PPCVEC, EXT, {VD, VB, UIMM}},
14b57c7c
AM
5611{"vspltish", VX (4, 844), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
5612{"vinserth", VX (4, 845), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
5613{"vupkhpx", VX (4, 846), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 5614{"vinshrx", VX (4, 847), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
5615{"mullhw", XRC(4, 424,0), X_MASK, MULHW, 0, {RT, RA, RB}},
5616{"mullhw.", XRC(4, 424,1), X_MASK, MULHW, 0, {RT, RA, RB}},
5617{"maclhw", XO (4, 428,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
5618{"maclhw.", XO (4, 428,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
5619{"nmaclhw", XO (4, 430,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
5620{"nmaclhw.", XO (4, 430,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
5621{"vaddsws", VX (4, 896), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5622{"vminsw", VX (4, 898), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5623{"vsraw", VX (4, 900), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5624{"vcmpgtsw", VXR(4, 902,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5625{"vcmpgtsq", VXR(4, 903,0), VXR_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5626{"vmulesw", VX (4, 904), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
f4791f1a 5627{"vmulhsw", VX (4, 905), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5628{"vctuxs", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
1ff6a3b8 5629{"vcfpuxws", VX (4, 906), VX_MASK, PPCVEC, EXT, {VD, VB, UIMM}},
f4791f1a 5630{"vdivesw", VX (4, 907), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5631{"vspltisw", VX (4, 908), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
5632{"vinsertw", VX (4, 909), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
6edbfd3b 5633{"vinswrx", VX (4, 911), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
5634{"maclhwsu", XO (4, 460,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5635{"maclhwsu.", XO (4, 460,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5636{"vminsd", VX (4, 962), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5637{"vsrad", VX (4, 964), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5638{"vcmpbfp", VXR(4, 966,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5639{"vcmpgtsd", VXR(4, 967,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
c7d7aea2 5640{"vmulesd", VX (4, 968), VX_MASK, POWER10, 0, {VD, VA, VB}},
f4791f1a 5641{"vmulhsd", VX (4, 969), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5642{"vctsxs", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
1ff6a3b8 5643{"vcfpsxws", VX (4, 970), VX_MASK, PPCVEC, EXT, {VD, VB, UIMM}},
f4791f1a 5644{"vdivesd", VX (4, 971), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5645{"vinsertd", VX (4, 973), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
5646{"vupklpx", VX (4, 974), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 5647{"vinsdrx", VX (4, 975), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
5648{"maclhws", XO (4, 492,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5649{"maclhws.", XO (4, 492,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5650{"nmaclhws", XO (4, 494,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5651{"nmaclhws.", XO (4, 494,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5652{"vsububm", VX (4,1024), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5653{"bcdadd.", VX (4,1025), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
5654{"vavgub", VX (4,1026), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5655{"vabsdub", VX (4,1027), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5656{"evmhessf", VX (4,1027), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5657{"vand", VX (4,1028), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5658{"vcmpequb.", VXR(4, 6,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5659{"vcmpneb.", VXR(4, 7,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
62adc510
AM
5660{"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5661{"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5662{"evmhossf", VX (4,1031), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5663{"vpmsumb", VX (4,1032), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5664{"evmheumi", VX (4,1032), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5665{"evmhesmi", VX (4,1033), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5666{"vmaxfp", VX (4,1034), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5667{"evmhesmf", VX (4,1035), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5668{"evmhoumi", VX (4,1036), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5669{"vslo", VX (4,1036), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
66ef5847
AM
5670{"vstribl.", VXVA(4,1037,0), VXVA_MASK, POWER10, 0, {VD, VB}},
5671{"vstribr.", VXVA(4,1037,1), VXVA_MASK, POWER10, 0, {VD, VB}},
5672{"vstrihl.", VXVA(4,1037,2), VXVA_MASK, POWER10, 0, {VD, VB}},
5673{"vstrihr.", VXVA(4,1037,3), VXVA_MASK, POWER10, 0, {VD, VB}},
14b57c7c
AM
5674{"evmhosmi", VX (4,1037), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5675{"evmhosmf", VX (4,1039), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5676{"machhwuo", XO (4, 12,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5677{"machhwuo.", XO (4, 12,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5678{"ps_merge00", XOPS(4,528,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5679{"ps_merge00.", XOPS(4,528,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5680{"evmhessfa", VX (4,1059), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5681{"evmhossfa", VX (4,1063), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5682{"evmheumia", VX (4,1064), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5683{"evmhesmia", VX (4,1065), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5684{"evmhesmfa", VX (4,1067), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5685{"evmhoumia", VX (4,1068), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5686{"evmhosmia", VX (4,1069), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5687{"evmhosmfa", VX (4,1071), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5688{"vsubuhm", VX (4,1088), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5689{"bcdsub.", VX (4,1089), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
5690{"vavguh", VX (4,1090), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 5691{"evmwlssf", VX (4,1091), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5692{"vabsduh", VX (4,1091), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5693{"vandc", VX (4,1092), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5694{"vcmpequh.", VXR(4, 70,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5695{"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5696{"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5697{"vcmpneh.", VXR(4, 71,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5698{"evmwhssf", VX (4,1095), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5699{"vpmsumh", VX (4,1096), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5700{"evmwlumi", VX (4,1096), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5701{"vminfp", VX (4,1098), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 5702{"evmwlsmf", VX (4,1099), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5703{"evmwhumi", VX (4,1100), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5704{"vsro", VX (4,1100), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5705{"evmwhsmi", VX (4,1101), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5706{"vpkudum", VX (4,1102), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5707{"evmwhsmf", VX (4,1103), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5708{"evmwssf", VX (4,1107), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5709{"machhwo", XO (4, 44,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5710{"evmwumi", VX (4,1112), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5711{"machhwo.", XO (4, 44,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5712{"evmwsmi", VX (4,1113), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5713{"evmwsmf", VX (4,1115), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5714{"nmachhwo", XO (4, 46,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5715{"nmachhwo.", XO (4, 46,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5716{"ps_merge01", XOPS(4,560,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5717{"ps_merge01.", XOPS(4,560,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
74081948 5718{"evmwlssfa", VX (4,1123), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5719{"evmwhssfa", VX (4,1127), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5720{"evmwlumia", VX (4,1128), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 5721{"evmwlsmfa", VX (4,1131), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5722{"evmwhumia", VX (4,1132), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5723{"evmwhsmia", VX (4,1133), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5724{"evmwhsmfa", VX (4,1135), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5725{"evmwssfa", VX (4,1139), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5726{"evmwumia", VX (4,1144), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5727{"evmwsmia", VX (4,1145), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5728{"evmwsmfa", VX (4,1147), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5729{"vsubuwm", VX (4,1152), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5730{"bcdus.", VX (4,1153), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5731{"vavguw", VX (4,1154), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5732{"vabsduw", VX (4,1155), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
1ff6a3b8 5733{"vmr", VX (4,1156), VX_MASK, PPCVEC, EXT, {VD, VAB}},
14b57c7c
AM
5734{"vor", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5735{"vcmpnew.", VXR(4, 135,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5736{"vpmsumw", VX (4,1160), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5737{"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5738{"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5739{"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5740{"machhwsuo", XO (4, 76,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5741{"machhwsuo.", XO (4, 76,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5742{"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5743{"ps_merge10.", XOPS(4,592,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5744{"vsubudm", VX (4,1216), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5745{"evaddusiaaw", VX (4,1216), VX_MASK, PPCSPE, 0, {RS, RA}},
5746{"bcds.", VX (4,1217), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
5747{"evaddssiaaw", VX (4,1217), VX_MASK, PPCSPE, 0, {RS, RA}},
5748{"evsubfusiaaw",VX (4,1218), VX_MASK, PPCSPE, 0, {RS, RA}},
5749{"evsubfssiaaw",VX (4,1219), VX_MASK, PPCSPE, 0, {RS, RA}},
5750{"evmra", VX (4,1220), VX_MASK, PPCSPE, 0, {RS, RA}},
5751{"vxor", VX (4,1220), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5752{"evdivws", VX (4,1222), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5753{"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 5754{"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c 5755{"vcmpequd.", VXR(4, 199,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 5756{"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5757{"evdivwu", VX (4,1223), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5758{"vpmsumd", VX (4,1224), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5759{"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE, 0, {RS, RA}},
5760{"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE, 0, {RS, RA}},
5761{"evsubfumiaaw",VX (4,1226), VX_MASK, PPCSPE, 0, {RS, RA}},
5762{"evsubfsmiaaw",VX (4,1227), VX_MASK, PPCSPE, 0, {RS, RA}},
ec40e91c 5763{"vgnb", VX (4,1228), VX_MASK, POWER10, 0, {RT, VB, UIMM3}},
14b57c7c
AM
5764{"vpkudus", VX (4,1230), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5765{"machhwso", XO (4, 108,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5766{"machhwso.", XO (4, 108,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5767{"nmachhwso", XO (4, 110,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5768{"nmachhwso.", XO (4, 110,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5769{"ps_merge11", XOPS(4,624,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5770{"ps_merge11.", XOPS(4,624,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5771{"vsubuqm", VX (4,1280), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5772{"evmheusiaaw", VX (4,1280), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5773{"bcdtrunc.", VX (4,1281), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
5774{"evmhessiaaw", VX (4,1281), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5775{"vavgsb", VX (4,1282), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5776{"evmhessfaaw", VX (4,1283), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5777{"evmhousiaaw", VX (4,1284), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
1ff6a3b8 5778{"vnot", VX (4,1284), VX_MASK, PPCVEC, EXT, {VD, VAB}},
14b57c7c
AM
5779{"vnor", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5780{"evmhossiaaw", VX (4,1285), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
62adc510
AM
5781{"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5782{"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5783{"vcmpnezb.", VXR(4, 263,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5784{"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5785{"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5786{"vcipher", VX (4,1288), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5787{"vcipherlast", VX (4,1289), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5788{"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5789{"evmhesmfaaw", VX (4,1291), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5790{"vgbbd", VX (4,1292), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5791{"evmhoumiaaw", VX (4,1292), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5792{"evmhosmiaaw", VX (4,1293), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5793{"evmhosmfaaw", VX (4,1295), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5794{"macchwuo", XO (4, 140,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5795{"macchwuo.", XO (4, 140,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5796{"evmhegumiaa", VX (4,1320), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5797{"evmhegsmiaa", VX (4,1321), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5798{"evmhegsmfaa", VX (4,1323), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5799{"evmhogumiaa", VX (4,1324), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5800{"evmhogsmiaa", VX (4,1325), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5801{"evmhogsmfaa", VX (4,1327), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5802{"vsubcuq", VX (4,1344), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5803{"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5804{"bcdutrunc.", VX (4,1345), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5805{"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5806{"vavgsh", VX (4,1346), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948
AF
5807{"evmwlssfaaw", VX (4,1347), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5808{"evmwhusiaa", VX (4,1348), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5809{"vorc", VX (4,1348), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 5810{"evmwhssmaa", VX (4,1349), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
62adc510
AM
5811{"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5812{"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c 5813{"vcmpnezh.", VXR(4, 327,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
74081948 5814{"evmwhssfaa", VX (4,1351), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5815{"vncipher", VX (4,1352), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5816{"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5817{"vncipherlast",VX (4,1353), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5818{"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
5819{"evmwlsmfaaw", VX (4,1355), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5820{"evmwhumiaa", VX (4,1356), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5821{"vbpermq", VX (4,1356), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
ec40e91c 5822{"vcfuged", VX (4,1357), VX_MASK, POWER10, 0, {VD, VA, VB}},
74081948 5823{"evmwhsmiaa", VX (4,1357), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5824{"vpksdus", VX (4,1358), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 5825{"evmwhsmfaa", VX (4,1359), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5826{"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5827{"macchwo", XO (4, 172,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5828{"evmwumiaa", VX (4,1368), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5829{"macchwo.", XO (4, 172,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5830{"evmwsmiaa", VX (4,1369), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5831{"evmwsmfaa", VX (4,1371), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5832{"nmacchwo", XO (4, 174,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5833{"nmacchwo.", XO (4, 174,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
74081948
AF
5834{"evmwhgumiaa", VX (4,1380), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5835{"evmwhgsmiaa", VX (4,1381), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5836{"evmwhgssfaa", VX (4,1383), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5837{"evmwhgsmfaa", VX (4,1391), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5838{"evmheusianw", VX (4,1408), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5839{"vsubcuw", VX (4,1408), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5840{"evmhessianw", VX (4,1409), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5841{"bcdctsq.", VXVA(4,1409,0), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5842{"bcdcfsq.", VXVA(4,1409,2), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5843{"bcdctz.", VXVA(4,1409,4), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5844{"bcdctn.", VXVA(4,1409,5), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5845{"bcdcfz.", VXVA(4,1409,6), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5846{"bcdcfn.", VXVA(4,1409,7), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5847{"bcdsetsgn.", VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5848{"vavgsw", VX (4,1410), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5849{"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5850{"vnand", VX (4,1412), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5851{"evmhousianw", VX (4,1412), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5852{"evmhossianw", VX (4,1413), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
62adc510
AM
5853{"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5854{"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5855{"vcmpnezw.", VXR(4, 391,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5856{"evmhossfanw", VX (4,1415), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5857{"evmheumianw", VX (4,1416), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5858{"evmhesmianw", VX (4,1417), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5859{"evmhesmfanw", VX (4,1419), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5860{"evmhoumianw", VX (4,1420), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
ec40e91c 5861{"vpextd", VX (4,1421), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5862{"evmhosmianw", VX (4,1421), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5863{"evmhosmfanw", VX (4,1423), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5864{"macchwsuo", XO (4, 204,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5865{"macchwsuo.", XO (4, 204,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5866{"evmhegumian", VX (4,1448), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5867{"evmhegsmian", VX (4,1449), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5868{"evmhegsmfan", VX (4,1451), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5869{"evmhogumian", VX (4,1452), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5870{"evmhogsmian", VX (4,1453), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5871{"evmhogsmfan", VX (4,1455), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5872{"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5873{"bcdsr.", VX (4,1473), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
5874{"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
5875{"evmwlssfanw", VX (4,1475), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5876{"evmwhusian", VX (4,1476), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5877{"vsld", VX (4,1476), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 5878{"evmwhssian", VX (4,1477), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5879{"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5880{"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5881{"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
c7d7aea2 5882{"vcmpequq.", VXR(4, 455,1), VXR_MASK, POWER10, 0, {VD, VA, VB}},
74081948 5883{"evmwhssfan", VX (4,1479), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5884{"vsbox", VX (4,1480), VXVB_MASK, PPCVEC2, 0, {VD, VA}},
5885{"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5886{"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
5887{"evmwlsmfanw", VX (4,1483), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5888{"evmwhumian", VX (4,1484), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5889{"vbpermd", VX (4,1484), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
ec40e91c 5890{"vpdepd", VX (4,1485), VX_MASK, POWER10, 0, {VD, VA, VB}},
74081948 5891{"evmwhsmian", VX (4,1485), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5892{"vpksdss", VX (4,1486), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 5893{"evmwhsmfan", VX (4,1487), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5894{"evmwssfan", VX (4,1491), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5895{"macchwso", XO (4, 236,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5896{"evmwumian", VX (4,1496), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5897{"macchwso.", XO (4, 236,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5898{"evmwsmian", VX (4,1497), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5899{"evmwsmfan", VX (4,1499), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
5900{"evmwhgumian", VX (4,1508), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5901{"evmwhgsmian", VX (4,1509), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5902{"evmwhgssfan", VX (4,1511), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5903{"evmwhgsmfan", VX (4,1519), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5904{"nmacchwso", XO (4, 238,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5905{"nmacchwso.", XO (4, 238,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5906{"vsububs", VX (4,1536), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5907{"vclzlsbb", VXVA(4,1538,0), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
5908{"vctzlsbb", VXVA(4,1538,1), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
5909{"vnegw", VXVA(4,1538,6), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5910{"vnegd", VXVA(4,1538,7), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5911{"vprtybw", VXVA(4,1538,8), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5912{"vprtybd", VXVA(4,1538,9), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5913{"vprtybq", VXVA(4,1538,10), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5914{"vextsb2w", VXVA(4,1538,16), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5915{"vextsh2w", VXVA(4,1538,17), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5916{"vextsb2d", VXVA(4,1538,24), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5917{"vextsh2d", VXVA(4,1538,25), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5918{"vextsw2d", VXVA(4,1538,26), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
c7d7aea2 5919{"vextsd2q", VXVA(4,1538,27), VXVA_MASK, POWER10, 0, {VD, VB}},
14b57c7c
AM
5920{"vctzb", VXVA(4,1538,28), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5921{"vctzh", VXVA(4,1538,29), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5922{"vctzw", VXVA(4,1538,30), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5923{"vctzd", VXVA(4,1538,31), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5924{"mfvscr", VX (4,1540), VXVAVB_MASK, PPCVEC, 0, {VD}},
5925{"vcmpgtub.", VXR(4, 518,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5926{"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
5927{"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5928{"vsum4ubs", VX (4,1544), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5929{"vmoduq", VX (4,1547), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5930{"vextublx", VX (4,1549), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
5931{"vsubuhs", VX (4,1600), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
fdefed7c
AM
5932
5933{"vexpandbm", VXVA(4,1602,0), VXVA_MASK, POWER10, 0, {VD, VB}},
5934{"vexpandhm", VXVA(4,1602,1), VXVA_MASK, POWER10, 0, {VD, VB}},
5935{"vexpandwm", VXVA(4,1602,2), VXVA_MASK, POWER10, 0, {VD, VB}},
5936{"vexpanddm", VXVA(4,1602,3), VXVA_MASK, POWER10, 0, {VD, VB}},
5937{"vexpandqm", VXVA(4,1602,4), VXVA_MASK, POWER10, 0, {VD, VB}},
5938{"vextractbm", VXVA(4,1602,8), VXVA_MASK, POWER10, 0, {RT, VB}},
5939{"vextracthm", VXVA(4,1602,9), VXVA_MASK, POWER10, 0, {RT, VB}},
5940{"vextractwm", VXVA(4,1602,10), VXVA_MASK, POWER10, 0, {RT, VB}},
5941{"vextractdm", VXVA(4,1602,11), VXVA_MASK, POWER10, 0, {RT, VB}},
5942{"vextractqm", VXVA(4,1602,12), VXVA_MASK, POWER10, 0, {RT, VB}},
5943{"mtvsrbm", VXVA(4,1602,16), VXVA_MASK, POWER10, 0, {VD, RB}},
5944{"mtvsrhm", VXVA(4,1602,17), VXVA_MASK, POWER10, 0, {VD, RB}},
5945{"mtvsrwm", VXVA(4,1602,18), VXVA_MASK, POWER10, 0, {VD, RB}},
5946{"mtvsrdm", VXVA(4,1602,19), VXVA_MASK, POWER10, 0, {VD, RB}},
5947{"mtvsrqm", VXVA(4,1602,20), VXVA_MASK, POWER10, 0, {VD, RB}},
5948{"vcntmbb", VXVA(4,1602,24), VXVAM_MASK, POWER10, 0, {RT, VB, MP}},
5949{"vcntmbh", VXVA(4,1602,26), VXVAM_MASK, POWER10, 0, {RT, VB, MP}},
5950{"vcntmbw", VXVA(4,1602,28), VXVAM_MASK, POWER10, 0, {RT, VB, MP}},
5951{"vcntmbd", VXVA(4,1602,30), VXVAM_MASK, POWER10, 0, {RT, VB, MP}},
5952
14b57c7c
AM
5953{"mtvscr", VX (4,1604), VXVDVA_MASK, PPCVEC, 0, {VB}},
5954{"vcmpgtuh.", VXR(4, 582,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5955{"vsum4shs", VX (4,1608), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5956{"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
5957{"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5958{"vextuhlx", VX (4,1613), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
5959{"vupkhsw", VX (4,1614), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5960{"vsubuws", VX (4,1664), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5961{"vshasigmaw", VX (4,1666), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
5962{"veqv", VX (4,1668), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5963{"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 5964{"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
c7d7aea2 5965{"vcmpgtuq.", VXR(4, 647,1), VXR_MASK, POWER10, 0, {VD, VA, VB}},
62adc510 5966{"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5967{"vsum2sws", VX (4,1672), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
f4791f1a 5968{"vmoduw", VX (4,1675), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5969{"vmrgow", VX (4,1676), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5970{"vextuwlx", VX (4,1677), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
5971{"vshasigmad", VX (4,1730), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
5972{"vsrd", VX (4,1732), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5973{"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 5974{"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5975{"vcmpgtud.", VXR(4, 711,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 5976{"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
f4791f1a 5977{"vmodud", VX (4,1739), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5978{"vupklsw", VX (4,1742), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5979{"vsubsbs", VX (4,1792), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5980{"vclzb", VX (4,1794), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5981{"vpopcntb", VX (4,1795), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5982{"vsrv", VX (4,1796), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5983{"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5984{"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
5985{"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5986{"vsum4sbs", VX (4,1800), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5987{"vmodsq", VX (4,1803), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5988{"vextubrx", VX (4,1805), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
5989{"maclhwuo", XO (4, 396,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5990{"maclhwuo.", XO (4, 396,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5991{"vsubshs", VX (4,1856), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5992{"vclzh", VX (4,1858), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5993{"vpopcnth", VX (4,1859), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5994{"vslv", VX (4,1860), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5995{"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5996{"vextuhrx", VX (4,1869), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
62adc510
AM
5997{"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
5998{"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5999{"maclhwo", XO (4, 428,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
6000{"maclhwo.", XO (4, 428,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
6001{"nmaclhwo", XO (4, 430,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
6002{"nmaclhwo.", XO (4, 430,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
6003{"vsubsws", VX (4,1920), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6004{"vclzw", VX (4,1922), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
6005{"vpopcntw", VX (4,1923), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
ec40e91c 6006{"vclzdm", VX (4,1924), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 6007{"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 6008{"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
c7d7aea2 6009{"vcmpgtsq.", VXR(4, 903,1), VXR_MASK, POWER10, 0, {VD, VA, VB}},
62adc510 6010{"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 6011{"vsumsws", VX (4,1928), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
f4791f1a 6012{"vmodsw", VX (4,1931), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
6013{"vmrgew", VX (4,1932), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
6014{"vextuwrx", VX (4,1933), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
6015{"maclhwsuo", XO (4, 460,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
6016{"maclhwsuo.", XO (4, 460,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
6017{"vclzd", VX (4,1986), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
6018{"vpopcntd", VX (4,1987), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
ec40e91c 6019{"vctzdm", VX (4,1988), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 6020{"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 6021{"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 6022{"vcmpgtsd.", VXR(4, 967,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 6023{"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
f4791f1a 6024{"vmodsd", VX (4,1995), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
6025{"maclhwso", XO (4, 492,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
6026{"maclhwso.", XO (4, 492,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
6027{"nmaclhwso", XO (4, 494,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
6028{"nmaclhwso.", XO (4, 494,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
6029{"dcbz_l", X (4,1014), XRT_MASK, PPCPS, 0, {RA, RB}},
6030
94ba9882 6031{"lxvp", DQXP(6,0), DQXP_MASK, POWER10, PPCVLE, {XTP, DQ, RA0}},
7dacb40b 6032{"stxvp", DQXP(6,1), DQXP_MASK, POWER10, PPCVLE, {XSP, DQ, RA0}},
94ba9882 6033
14b57c7c
AM
6034{"mulli", OP(7), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
6035{"muli", OP(7), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
6036
6037{"subfic", OP(8), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
6038{"sfi", OP(8), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
6039
6040{"dozi", OP(9), OP_MASK, M601, PPCVLE, {RT, RA, SI}},
6041
1ff6a3b8
AM
6042{"cmplwi", OPL(10,0), OPL_MASK, PPCCOM, PPCVLE|EXT, {OBF, RA, UISIGNOPT}},
6043{"cmpldi", OPL(10,1), OPL_MASK, PPC64, PPCVLE|EXT, {OBF, RA, UISIGNOPT}},
a5721ba2 6044{"cmpli", OP(10), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, UISIGNOPT}},
14b57c7c
AM
6045{"cmpli", OP(10), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, UISIGNOPT}},
6046
1ff6a3b8
AM
6047{"cmpwi", OPL(11,0), OPL_MASK, PPCCOM, PPCVLE|EXT, {OBF, RA, SI}},
6048{"cmpdi", OPL(11,1), OPL_MASK, PPC64, PPCVLE|EXT, {OBF, RA, SI}},
a5721ba2 6049{"cmpi", OP(11), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, SI}},
14b57c7c
AM
6050{"cmpi", OP(11), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, SI}},
6051
6052{"addic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
6053{"ai", OP(12), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
1ff6a3b8 6054{"subic", OP(12), OP_MASK, PPCCOM, PPCVLE|EXT, {RT, RA, NSI}},
14b57c7c
AM
6055
6056{"addic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
6057{"ai.", OP(13), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
1ff6a3b8 6058{"subic.", OP(13), OP_MASK, PPCCOM, PPCVLE|EXT, {RT, RA, NSI}},
14b57c7c 6059
1ff6a3b8
AM
6060{"li", OP(14), DRA_MASK, PPCCOM, PPCVLE|EXT, {RT, SI}},
6061{"lil", OP(14), DRA_MASK, PWRCOM, PPCVLE|EXT, {RT, SI}},
14b57c7c
AM
6062{"addi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SI}},
6063{"cal", OP(14), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
1ff6a3b8
AM
6064{"subi", OP(14), OP_MASK, PPCCOM, PPCVLE|EXT, {RT, RA0, NSI}},
6065{"la", OP(14), OP_MASK, PPCCOM, PPCVLE|EXT, {RT, D, RA0}},
14b57c7c 6066
1ff6a3b8
AM
6067{"lis", OP(15), DRA_MASK, PPCCOM, PPCVLE|EXT, {RT, SISIGNOPT}},
6068{"liu", OP(15), DRA_MASK, PWRCOM, PPCVLE|EXT, {RT, SISIGNOPT}},
14b57c7c
AM
6069{"addis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
6070{"cau", OP(15), OP_MASK, PWRCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
1ff6a3b8
AM
6071{"subis", OP(15), OP_MASK, PPCCOM, PPCVLE|EXT, {RT, RA0, NSISIGNOPT}},
6072
6073{"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDM}},
6074{"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDP}},
6075{"bdnz", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BD}},
6076{"bdn", BBO(16,BODNZ,0,0), BBOATBI_MASK, PWRCOM, PPCVLE|EXT, {BD}},
6077{"bdnzl-", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDM}},
6078{"bdnzl+", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDP}},
6079{"bdnzl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BD}},
6080{"bdnl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PWRCOM, PPCVLE|EXT, {BD}},
6081{"bdnza-", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDMA}},
6082{"bdnza+", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDPA}},
6083{"bdnza", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDA}},
6084{"bdna", BBO(16,BODNZ,1,0), BBOATBI_MASK, PWRCOM, PPCVLE|EXT, {BDA}},
6085{"bdnzla-", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDMA}},
6086{"bdnzla+", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDPA}},
6087{"bdnzla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDA}},
6088{"bdnla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PWRCOM, PPCVLE|EXT, {BDA}},
6089{"bdz-", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDM}},
6090{"bdz+", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDP}},
6091{"bdz", BBO(16,BODZ,0,0), BBOATBI_MASK, COM, PPCVLE|EXT, {BD}},
6092{"bdzl-", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDM}},
6093{"bdzl+", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDP}},
6094{"bdzl", BBO(16,BODZ,0,1), BBOATBI_MASK, COM, PPCVLE|EXT, {BD}},
6095{"bdza-", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDMA}},
6096{"bdza+", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDPA}},
6097{"bdza", BBO(16,BODZ,1,0), BBOATBI_MASK, COM, PPCVLE|EXT, {BDA}},
6098{"bdzla-", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDMA}},
6099{"bdzla+", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE|EXT, {BDPA}},
6100{"bdzla", BBO(16,BODZ,1,1), BBOATBI_MASK, COM, PPCVLE|EXT, {BDA}},
6101
6102{"bge-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6103{"bge+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6104{"bge", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6105{"bnl-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6106{"bnl+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6107{"bnl", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6108{"bgel-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6109{"bgel+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6110{"bgel", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6111{"bnll-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6112{"bnll+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6113{"bnll", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6114{"bgea-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6115{"bgea+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6116{"bgea", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6117{"bnla-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6118{"bnla+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6119{"bnla", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6120{"bgela-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6121{"bgela+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6122{"bgela", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6123{"bnlla-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6124{"bnlla+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6125{"bnlla", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6126{"ble-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6127{"ble+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6128{"ble", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6129{"bng-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6130{"bng+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6131{"bng", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6132{"blel-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6133{"blel+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6134{"blel", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6135{"bngl-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6136{"bngl+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6137{"bngl", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6138{"blea-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6139{"blea+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6140{"blea", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6141{"bnga-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6142{"bnga+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6143{"bnga", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6144{"blela-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6145{"blela+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6146{"blela", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6147{"bngla-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6148{"bngla+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6149{"bngla", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6150{"bne-", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6151{"bne+", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6152{"bne", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6153{"bnel-", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6154{"bnel+", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6155{"bnel", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6156{"bnea-", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6157{"bnea+", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6158{"bnea", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6159{"bnela-", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6160{"bnela+", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6161{"bnela", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6162{"bns-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6163{"bns+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6164{"bns", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6165{"bnu-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6166{"bnu+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6167{"bnu", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BD}},
6168{"bnsl-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6169{"bnsl+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6170{"bnsl", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6171{"bnul-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6172{"bnul+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6173{"bnul", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BD}},
6174{"bnsa-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6175{"bnsa+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6176{"bnsa", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6177{"bnua-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6178{"bnua+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6179{"bnua", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDA}},
6180{"bnsla-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6181{"bnsla+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6182{"bnsla", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6183{"bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6184{"bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6185{"bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDA}},
6186
6187{"blt-", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6188{"blt+", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6189{"blt", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6190{"bltl-", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6191{"bltl+", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6192{"bltl", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6193{"blta-", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6194{"blta+", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6195{"blta", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6196{"bltla-", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6197{"bltla+", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6198{"bltla", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6199{"bgt-", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6200{"bgt+", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6201{"bgt", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6202{"bgtl-", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6203{"bgtl+", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6204{"bgtl", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6205{"bgta-", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6206{"bgta+", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6207{"bgta", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6208{"bgtla-", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6209{"bgtla+", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6210{"bgtla", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6211{"beq-", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6212{"beq+", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6213{"beq", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6214{"beql-", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6215{"beql+", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6216{"beql", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6217{"beqa-", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6218{"beqa+", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6219{"beqa", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6220{"beqla-", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6221{"beqla+", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6222{"beqla", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6223{"bso-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6224{"bso+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6225{"bso", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6226{"bun-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6227{"bun+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6228{"bun", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BD}},
6229{"bsol-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6230{"bsol+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6231{"bsol", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BD}},
6232{"bunl-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDM}},
6233{"bunl+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDP}},
6234{"bunl", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BD}},
6235{"bsoa-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6236{"bsoa+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6237{"bsoa", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6238{"buna-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6239{"buna+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6240{"buna", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDA}},
6241{"bsola-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6242{"bsola+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6243{"bsola", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE|EXT, {CR, BDA}},
6244{"bunla-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDMA}},
6245{"bunla+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDPA}},
6246{"bunla", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE|EXT, {CR, BDA}},
6247
6248{"bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDM}},
6249{"bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDP}},
6250{"bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6251{"bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDM}},
6252{"bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDP}},
6253{"bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6254{"bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDMA}},
6255{"bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDPA}},
6256{"bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6257{"bdnzfla-", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDMA}},
6258{"bdnzfla+", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDPA}},
6259{"bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6260{"bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDM}},
6261{"bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDP}},
6262{"bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6263{"bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDM}},
6264{"bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDP}},
6265{"bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6266{"bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDMA}},
6267{"bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDPA}},
6268{"bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6269{"bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDMA}},
6270{"bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDPA}},
6271{"bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6272
6273{"bf-", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDM}},
6274{"bf+", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDP}},
6275{"bf", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6276{"bbf", BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM, PPCVLE|EXT, {BI, BD}},
6277{"bfl-", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDM}},
6278{"bfl+", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDP}},
6279{"bfl", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6280{"bbfl", BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM, PPCVLE|EXT, {BI, BD}},
6281{"bfa-", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDMA}},
6282{"bfa+", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDPA}},
6283{"bfa", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6284{"bbfa", BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM, PPCVLE|EXT, {BI, BDA}},
6285{"bfla-", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDMA}},
6286{"bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDPA}},
6287{"bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6288{"bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, PPCVLE|EXT, {BI, BDA}},
6289
6290{"bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDM}},
6291{"bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDP}},
6292{"bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6293{"bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDM}},
6294{"bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDP}},
6295{"bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6296{"bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDMA}},
6297{"bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDPA}},
6298{"bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6299{"bdnztla-", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDMA}},
6300{"bdnztla+", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDPA}},
6301{"bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6302{"bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDM}},
6303{"bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDP}},
6304{"bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6305{"bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDM}},
6306{"bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDP}},
6307{"bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6308{"bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDMA}},
6309{"bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDPA}},
6310{"bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6311{"bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDMA}},
6312{"bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BDPA}},
6313{"bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6314
6315{"bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDM}},
6316{"bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDP}},
6317{"bt", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6318{"bbt", BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM, PPCVLE|EXT, {BI, BD}},
6319{"btl-", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDM}},
6320{"btl+", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDP}},
6321{"btl", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BD}},
6322{"bbtl", BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM, PPCVLE|EXT, {BI, BD}},
6323{"bta-", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDMA}},
6324{"bta+", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDPA}},
6325{"bta", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6326{"bbta", BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM, PPCVLE|EXT, {BI, BDA}},
6327{"btla-", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDMA}},
6328{"btla+", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDPA}},
6329{"btla", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE|EXT, {BI, BDA}},
6330{"bbtla", BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM, PPCVLE|EXT, {BI, BDA}},
6331
6332{"bc-", B(16,0,0), B_MASK, PPCCOM, PPCVLE|EXT, {BOM, BI, BDM}},
6333{"bc+", B(16,0,0), B_MASK, PPCCOM, PPCVLE|EXT, {BOP, BI, BDP}},
14b57c7c 6334{"bc", B(16,0,0), B_MASK, COM, PPCVLE, {BO, BI, BD}},
1ff6a3b8
AM
6335{"bcl-", B(16,0,1), B_MASK, PPCCOM, PPCVLE|EXT, {BOM, BI, BDM}},
6336{"bcl+", B(16,0,1), B_MASK, PPCCOM, PPCVLE|EXT, {BOP, BI, BDP}},
14b57c7c 6337{"bcl", B(16,0,1), B_MASK, COM, PPCVLE, {BO, BI, BD}},
1ff6a3b8
AM
6338{"bca-", B(16,1,0), B_MASK, PPCCOM, PPCVLE|EXT, {BOM, BI, BDMA}},
6339{"bca+", B(16,1,0), B_MASK, PPCCOM, PPCVLE|EXT, {BOP, BI, BDPA}},
14b57c7c 6340{"bca", B(16,1,0), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
1ff6a3b8
AM
6341{"bcla-", B(16,1,1), B_MASK, PPCCOM, PPCVLE|EXT, {BOM, BI, BDMA}},
6342{"bcla+", B(16,1,1), B_MASK, PPCCOM, PPCVLE|EXT, {BOP, BI, BDPA}},
14b57c7c
AM
6343{"bcla", B(16,1,1), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
6344
6345{"svc", SC(17,0,0), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
dce75bf9 6346{"scv", SC(17,0,1), SC_MASK, POWER9, PPCVLE, {SVC_LEV}},
14b57c7c
AM
6347{"svcl", SC(17,0,1), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
6348{"sc", SC(17,1,0), SC_MASK, PPC, PPCVLE, {LEV}},
6349{"svca", SC(17,1,0), SC_MASK, PWRCOM, PPCVLE, {SV}},
6350{"svcla", SC(17,1,1), SC_MASK, POWER, PPCVLE, {SV}},
6351
6352{"b", B(18,0,0), B_MASK, COM, PPCVLE, {LI}},
6353{"bl", B(18,0,1), B_MASK, COM, PPCVLE, {LI}},
6354{"ba", B(18,1,0), B_MASK, COM, PPCVLE, {LIA}},
6355{"bla", B(18,1,1), B_MASK, COM, PPCVLE, {LIA}},
6356
6357{"mcrf", XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
6358
1ff6a3b8 6359{"lnia", DX(19,2), NODX_MASK, POWER9, PPCVLE|EXT, {RT}},
14b57c7c 6360{"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}},
1ff6a3b8
AM
6361{"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE|EXT, {RT, NDXD}},
6362
6363{"bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
6364{"bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
6365{"bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE|EXT, {BH}},
6366{"bdnzlrl-", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
6367{"bdnzlrl+", XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
6368{"bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE|EXT, {BH}},
6369{"bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
6370{"bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
6371{"bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE|EXT, {BH}},
6372{"bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
6373{"bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
6374{"bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE|EXT, {BH}},
6375{"blr", XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE|EXT, {BH}},
6376{"br", XLO(19,BOU,16,0), XLBOBIBB_MASK, PWRCOM, PPCVLE|EXT, {BH}},
6377{"blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE|EXT, {BH}},
6378{"brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, PPCVLE|EXT, {BH}},
6379{"bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE|EXT, {BH}},
6380{"bdnzlrl-", XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE|EXT, {BH}},
6381{"bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE|EXT, {BH}},
6382{"bdnzlrl+", XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE|EXT, {BH}},
6383{"bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE|EXT, {BH}},
6384{"bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE|EXT, {BH}},
6385{"bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE|EXT, {BH}},
6386{"bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE|EXT, {BH}},
6387
6388{"bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6389{"bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6390{"bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6391{"bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6392{"bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6393{"bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6394{"bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6395{"bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6396{"bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6397{"bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6398{"bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6399{"bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6400{"bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6401{"bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6402{"bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6403{"bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6404{"blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6405{"blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6406{"blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6407{"bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6408{"bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6409{"bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6410{"bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6411{"bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6412{"blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6413{"blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6414{"blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6415{"blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6416{"bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6417{"bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6418{"bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6419{"bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6420{"bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6421{"bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6422{"bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6423{"bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6424{"bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6425{"bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6426{"bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6427{"bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6428{"bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6429{"bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6430{"bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6431{"bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6432{"bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6433{"bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6434{"bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6435{"bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6436{"bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6437{"bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6438{"bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6439{"bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6440{"bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6441{"bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6442{"bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6443{"bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6444{"bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6445{"bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6446{"blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6447{"bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6448{"blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6449{"bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6450{"bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6451{"bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6452{"bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6453{"bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6454{"bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6455{"bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6456{"bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6457{"bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6458{"bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6459{"bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6460{"blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6461{"bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6462{"blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6463{"bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6464{"bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6465{"bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6466{"bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6467{"bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6468{"bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6469{"bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6470{"bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6471{"bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6472{"bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6473{"bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6474{"bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6475{"bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6476{"bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6477{"bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6478{"bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6479{"bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6480{"bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6481{"bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6482{"bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6483{"bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6484{"bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6485{"bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6486{"beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6487{"beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6488{"beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6489{"beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6490{"beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6491{"beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6492{"beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6493{"beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6494{"bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6495{"bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6496{"bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6497{"bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6498{"bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6499{"bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6500{"bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6501{"bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6502{"bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6503{"bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6504{"bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE|EXT, {CR, BH}},
6505{"bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6506{"bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6507{"bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6508{"bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6509{"bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6510{"bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6511{"bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6512{"beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6513{"beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6514{"bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6515{"bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6516{"bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6517{"bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6518{"bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6519{"bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6520{"bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6521{"bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6522{"beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6523{"beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6524{"bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6525{"bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6526{"bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6527{"bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6528
6529{"bdnzflr-", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6530{"bdnzflr+", XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6531{"bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6532{"bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6533{"bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6534{"bdnzflrl", XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6535{"bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6536{"bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6537{"bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6538{"bdzflrl-", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6539{"bdzflrl+", XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6540{"bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6541{"bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6542{"bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6543{"bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6544{"bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, PPCVLE|EXT, {BI, BH}},
6545{"bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6546{"bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6547{"bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6548{"bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, PPCVLE|EXT, {BI, BH}},
6549{"bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6550{"bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6551{"bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6552{"bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6553{"bdnztlr-", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6554{"bdnztlr+", XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6555{"bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6556{"bdnztlrl-", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6557{"bdnztlrl+", XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6558{"bdnztlrl", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6559{"bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6560{"bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6561{"bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6562{"bdztlrl-", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6563{"bdztlrl+", XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6564{"bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6565{"btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6566{"btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6567{"btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6568{"bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, PPCVLE|EXT, {BI, BH}},
6569{"btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6570{"btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6571{"btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6572{"bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, PPCVLE|EXT, {BI, BH}},
6573{"btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6574{"btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6575{"btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6576{"btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6577
6578{"bclr-", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE|EXT, {BOM, BI, BH}},
6579{"bclr+", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE|EXT, {BOP, BI, BH}},
14b57c7c 6580{"bclr", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 6581{"bcr", XLLK(19,16,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
1ff6a3b8
AM
6582{"bclrl-", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE|EXT, {BOM, BI, BH}},
6583{"bclrl+", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE|EXT, {BOP, BI, BH}},
14b57c7c 6584{"bclrl", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 6585{"bcrl", XLLK(19,16,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
14b57c7c
AM
6586
6587{"rfid", XL(19,18), 0xffffffff, PPC64, PPCVLE, {0}},
6588
1ff6a3b8 6589{"crnot", XL(19,33), XL_MASK, PPCCOM, PPCVLE|EXT, {BT, BAB}},
14b57c7c 6590{"crnor", XL(19,33), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
14b57c7c 6591
1ff6a3b8 6592{"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE, {0}},
14b57c7c
AM
6593{"rfdi", XL(19,39), 0xffffffff, E500MC, PPCVLE, {0}},
6594{"rfi", XL(19,50), 0xffffffff, COM, PPCVLE, {0}},
6595{"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}},
6596
dce75bf9 6597{"rfscv", XL(19,82), 0xffffffff, POWER9, PPCVLE, {0}},
14b57c7c
AM
6598{"rfsvc", XL(19,82), 0xffffffff, POWER, PPCVLE, {0}},
6599
6600{"rfgi", XL(19,102), 0xffffffff, E500MC|PPCA2, PPCVLE, {0}},
6601
6602{"crandc", XL(19,129), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
6603
6604{"rfebb", XL(19,146), XLS_MASK, POWER8, PPCVLE, {SXL}},
6605
6606{"isync", XL(19,150), 0xffffffff, PPCCOM, PPCVLE, {0}},
6607{"ics", XL(19,150), 0xffffffff, PWRCOM, PPCVLE, {0}},
6608
1ff6a3b8 6609{"crclr", XL(19,193), XL_MASK, PPCCOM, PPCVLE|EXT, {BTAB}},
14b57c7c
AM
6610{"crxor", XL(19,193), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
6611
6612{"dnh", X(19,198), X_MASK, E500MC, PPCVLE, {DUI, DUIS}},
6613
6614{"crnand", XL(19,225), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
6615
6616{"crand", XL(19,257), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
6617
6618{"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPC476|PPCVLE, {0}},
6619
1ff6a3b8 6620{"crset", XL(19,289), XL_MASK, PPCCOM, PPCVLE|EXT, {BTAB}},
14b57c7c
AM
6621{"creqv", XL(19,289), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
6622
6623{"urfid", XL(19,306), 0xffffffff, POWER9, PPCVLE, {0}},
6624{"stop", XL(19,370), 0xffffffff, POWER9, PPCVLE, {0}},
6625
6626{"doze", XL(19,402), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
6627
6628{"crorc", XL(19,417), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
6629
6630{"nap", XL(19,434), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
6631
1ff6a3b8 6632{"crmove", XL(19,449), XL_MASK, PPCCOM, PPCVLE|EXT, {BT, BAB}},
14b57c7c
AM
6633{"cror", XL(19,449), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
6634
6635{"sleep", XL(19,466), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
6636{"rvwinkle", XL(19,498), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
6637
1ff6a3b8
AM
6638{"bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, PPCVLE|EXT, {BH}},
6639{"bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, PPCVLE|EXT, {BH}},
6640{"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6641{"bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6642{"bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6643{"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6644{"bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6645{"bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6646{"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6647{"bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6648{"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6649{"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6650{"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6651{"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6652{"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6653{"blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6654{"blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6655{"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6656{"bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6657{"bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6658{"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6659{"blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6660{"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6661{"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6662{"bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6663{"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6664{"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6665{"bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6666{"bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6667{"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6668{"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6669{"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6670{"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6671{"bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6672{"bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6673{"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6674{"bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6675{"bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6676{"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6677{"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6678{"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6679{"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6680{"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6681{"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6682{"bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6683{"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6684{"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6685{"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6686{"blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6687{"bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6688{"blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6689{"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6690{"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6691{"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6692{"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6693{"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6694{"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6695{"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6696{"bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6697{"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6698{"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6699{"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6700{"blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6701{"bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6702{"blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6703{"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6704{"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6705{"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6706{"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6707{"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6708{"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6709{"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6710{"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6711{"bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6712{"bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6713{"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6714{"bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6715{"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6716{"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6717{"bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6718{"bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6719{"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6720{"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6721{"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6722{"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6723{"beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6724{"beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6725{"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6726{"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6727{"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6728{"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6729{"bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6730{"bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6731{"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6732{"bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6733{"bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6734{"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6735{"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6736{"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6737{"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6738{"bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {CR, BH}},
6739{"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE|EXT, {CR, BH}},
6740{"bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6741{"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6742{"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6743{"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6744{"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6745{"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6746{"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6747{"bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6748{"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6749{"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6750{"bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6751{"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6752{"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6753{"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6754{"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6755{"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6756{"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6757{"bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6758{"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6759{"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE|EXT, {CR, BH}},
6760
6761{"bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6762{"bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6763{"bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6764{"bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6765{"bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6766{"bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6767{"bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6768{"bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6769{"bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6770{"bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6771{"btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6772{"btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6773{"btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6774{"btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6775{"btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BI, BH}},
6776{"btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, PPCVLE|EXT, {BI, BH}},
6777{"btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6778{"btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6779{"btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6780{"btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE|EXT, {BI, BH}},
6781
6782{"bcctr-", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE|EXT, {BOM, BI, BH}},
6783{"bcctr+", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE|EXT, {BOP, BI, BH}},
14b57c7c 6784{"bcctr", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 6785{"bcc", XLLK(19,528,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
1ff6a3b8
AM
6786{"bcctrl-", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE|EXT, {BOM, BI, BH}},
6787{"bcctrl+", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE|EXT, {BOP, BI, BH}},
14b57c7c 6788{"bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 6789{"bccl", XLLK(19,528,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
14b57c7c 6790
1ff6a3b8
AM
6791{"bdnztar", XLO(19,BODNZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6792{"bdnztarl", XLO(19,BODNZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6793{"bdztar", XLO(19,BODZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6794{"bdztarl", XLO(19,BODZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6795{"btar", XLO(19,BOU,560,0), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6796{"btarl", XLO(19,BOU,560,1), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6797{"bdnztar-", XLO(19,BODNZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6798{"bdnztarl-", XLO(19,BODNZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6799{"bdnztar+", XLO(19,BODNZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6800{"bdnztarl+", XLO(19,BODNZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6801{"bdztar-", XLO(19,BODZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6802{"bdztarl-", XLO(19,BODZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6803{"bdztar+", XLO(19,BODZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6804{"bdztarl+", XLO(19,BODZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE|EXT, {BH}},
6805
6806{"bgetar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6807{"bnltar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6808{"bgetarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6809{"bnltarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6810{"bletar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6811{"bngtar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6812{"bletarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6813{"bngtarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6814{"bnetar", XLOCB(19,BOF,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6815{"bnetarl", XLOCB(19,BOF,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6816{"bnstar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6817{"bnutar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6818{"bnstarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6819{"bnutarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6820{"bgetar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6821{"bnltar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6822{"bgetarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6823{"bnltarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6824{"bletar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6825{"bngtar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6826{"bletarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6827{"bngtarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6828{"bnetar-", XLOCB(19,BOFM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6829{"bnetarl-",XLOCB(19,BOFM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6830{"bnstar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6831{"bnutar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6832{"bnstarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6833{"bnutarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6834{"bgetar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6835{"bnltar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6836{"bgetarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6837{"bnltarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6838{"bletar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6839{"bngtar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6840{"bletarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6841{"bngtarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6842{"bnetar+", XLOCB(19,BOFP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6843{"bnetarl+",XLOCB(19,BOFP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6844{"bnstar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6845{"bnutar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6846{"bnstarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6847{"bnutarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6848{"blttar", XLOCB(19,BOT,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6849{"blttarl", XLOCB(19,BOT,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6850{"bgttar", XLOCB(19,BOT,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6851{"bgttarl", XLOCB(19,BOT,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6852{"beqtar", XLOCB(19,BOT,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6853{"beqtarl", XLOCB(19,BOT,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6854{"bsotar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6855{"buntar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6856{"bsotarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6857{"buntarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6858{"blttar-", XLOCB(19,BOTM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6859{"blttarl-",XLOCB(19,BOTM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6860{"bgttar-", XLOCB(19,BOTM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6861{"bgttarl-",XLOCB(19,BOTM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6862{"beqtar-", XLOCB(19,BOTM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6863{"beqtarl-",XLOCB(19,BOTM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6864{"bsotar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6865{"buntar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6866{"bsotarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6867{"buntarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6868{"blttar+", XLOCB(19,BOTP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6869{"blttarl+",XLOCB(19,BOTP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6870{"bgttar+", XLOCB(19,BOTP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6871{"bgttarl+",XLOCB(19,BOTP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6872{"beqtar+", XLOCB(19,BOTP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6873{"beqtarl+",XLOCB(19,BOTP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6874{"bsotar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6875{"buntar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6876{"bsotarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6877{"buntarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE|EXT, {CR, BH}},
6878
6879{"bdnzftar", XLO(19,BODNZF,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6880{"bdnzftarl", XLO(19,BODNZF,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6881{"bdzftar", XLO(19,BODZF,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6882{"bdzftarl", XLO(19,BODZF,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6883
6884{"bftar", XLO(19,BOF,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6885{"bftarl", XLO(19,BOF,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6886{"bftar-", XLO(19,BOFM4,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6887{"bftarl-", XLO(19,BOFM4,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6888{"bftar+", XLO(19,BOFP4,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6889{"bftarl+", XLO(19,BOFP4,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6890
6891{"bdnzttar", XLO(19,BODNZT,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6892{"bdnzttarl", XLO(19,BODNZT,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6893{"bdzttar", XLO(19,BODZT,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6894{"bdzttarl", XLO(19,BODZT,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6895
6896{"bttar", XLO(19,BOT,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6897{"bttarl", XLO(19,BOT,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6898{"bttar-", XLO(19,BOTM4,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6899{"bttarl-", XLO(19,BOTM4,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6900{"bttar+", XLO(19,BOTP4,560,0), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6901{"bttarl+", XLO(19,BOTP4,560,1), XLBOBB_MASK, POWER8, PPCVLE|EXT, {BI, BH}},
6902
6903{"bctar-", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE|EXT, {BOM, BI, BH}},
6904{"bctar+", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE|EXT, {BOP, BI, BH}},
14b57c7c 6905{"bctar", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
1ff6a3b8
AM
6906{"bctarl-", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE|EXT, {BOM, BI, BH}},
6907{"bctarl+", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE|EXT, {BOP, BI, BH}},
14b57c7c
AM
6908{"bctarl", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
6909
6910{"rlwimi", M(20,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
f304c63d
AM
6911{"inslwi", M(20,0), M_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, ILWn, ILWb}},
6912{"insrwi", M(20,0), M_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, IRWn, IRWb}},
14b57c7c
AM
6913{"rlimi", M(20,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6914
6915{"rlwimi.", M(20,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
f304c63d
AM
6916{"inslwi.", M(20,1), M_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, ILWn, ILWb}},
6917{"insrwi.", M(20,1), M_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, IRWn, IRWb}},
14b57c7c
AM
6918{"rlimi.", M(20,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6919
1ff6a3b8 6920{"rotlwi", MME(21,31,0), MMBME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, SH}},
f304c63d 6921{"rotrwi", MME(21,31,0), MMBME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, RRWn}},
1ff6a3b8 6922{"clrlwi", MME(21,31,0), MSHME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, MB}},
f304c63d
AM
6923{"clrrwi", M(21,0), MSHMB_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, CRWn}},
6924{"slwi", M(21,0), MMB_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, SLWn}},
6925{"srwi", MME(21,31,0), MME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, SRWn}},
14b57c7c 6926{"rlwinm", M(21,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
f304c63d
AM
6927{"extlwi", M(21,0), MMB_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, ELWn, SH}},
6928{"extrwi", MME(21,31,0), MME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, ERWn, ERWb}},
6929{"clrlslwi", M(21,0), M_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, CSLWb, CSLWn}},
6930{"sli", M(21,0), MMB_MASK, PWRCOM, PPCVLE|EXT, {RA, RS, SLWn}},
6931{"sri", MME(21,31,0), MME_MASK, PWRCOM, PPCVLE|EXT, {RA, RS, SRWn}},
14b57c7c 6932{"rlinm", M(21,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
1ff6a3b8 6933{"rotlwi.", MME(21,31,1), MMBME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, SH}},
f304c63d 6934{"rotrwi.", MME(21,31,1), MMBME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, RRWn}},
1ff6a3b8 6935{"clrlwi.", MME(21,31,1), MSHME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, MB}},
f304c63d
AM
6936{"clrrwi.", M(21,1), MSHMB_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, CRWn}},
6937{"slwi.", M(21,1), MMB_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, SLWn}},
6938{"srwi.", MME(21,31,1), MME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, SRWn}},
14b57c7c 6939{"rlwinm.", M(21,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
f304c63d
AM
6940{"extlwi.", M(21,1), MMB_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, ELWn, SH}},
6941{"extrwi.", MME(21,31,1), MME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, ERWn, ERWb}},
6942{"clrlslwi.", M(21,1), M_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, CSLWb, CSLWn}},
6943{"sli.", M(21,1), MMB_MASK, PWRCOM, PPCVLE|EXT, {RA, RS, SLWn}},
6944{"sri.", MME(21,31,1), MME_MASK, PWRCOM, PPCVLE|EXT, {RA, RS, SRWn}},
14b57c7c
AM
6945{"rlinm.", M(21,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6946
6947{"rlmi", M(22,0), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
6948{"rlmi.", M(22,1), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
6949
4c388a8e
DS
6950{"svstep", SVL(22,19,0), SVL_MASK, SVP64, PPCVLE, {RT, SVi, vf}},
6951{"svstep.", SVL(22,19,1), SVL_MASK, SVP64, PPCVLE, {RT, SVi, vf}},
6952
baf97ef2
DS
6953{"svshape", SVM(22,25), SVM_MASK, SVP64, PPCVLE, {SVxd, SVyd, SVzd, SVrm, vf}},
6954
5eafd6de
DS
6955{"setvl", SVL(22,27,0), SVL_MASK, SVP64, PPCVLE, {RT, RA, SVi, vf, vs, ms}},
6956{"setvl.", SVL(22,27,1), SVL_MASK, SVP64, PPCVLE, {RT, RA, SVi, vf, vs, ms}},
6957
537710a6
DS
6958{"svindex", SVI(22,41), SVI_MASK, SVP64, PPCVLE, {SVG, rmm, SVd, ew, yx, mm, sk}},
6959
df0030b5
DS
6960{"svremap", SVRM(22,57), SVRM_MASK, SVP64, PPCVLE, {SVme, mi0, mi1, mi2, mo0, mo1, pst}},
6961
1ff6a3b8 6962{"rotlw", MME(23,31,0), MMBME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, RB}},
14b57c7c
AM
6963{"rlwnm", M(23,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
6964{"rlnm", M(23,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
1ff6a3b8 6965{"rotlw.", MME(23,31,1), MMBME_MASK, PPCCOM, PPCVLE|EXT, {RA, RS, RB}},
14b57c7c
AM
6966{"rlwnm.", M(23,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
6967{"rlnm.", M(23,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
6968
1ff6a3b8
AM
6969{"nop", OP(24), 0xffffffff, PPCCOM, PPCVLE|EXT, {0}},
6970{"exser", 0x63ff0000, 0xffffffff, POWER9, PPCVLE|EXT, {0}},
14b57c7c
AM
6971{"ori", OP(24), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6972{"oril", OP(24), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6973
6974{"oris", OP(25), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6975{"oriu", OP(25), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6976
1ff6a3b8 6977{"xnop", OP(26), 0xffffffff, PPCCOM, PPCVLE|EXT, {0}},
14b57c7c
AM
6978{"xori", OP(26), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6979{"xoril", OP(26), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6980
6981{"xoris", OP(27), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6982{"xoriu", OP(27), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6983
6984{"andi.", OP(28), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6985{"andil.", OP(28), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6986
6987{"andis.", OP(29), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6988{"andiu.", OP(29), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6989
1ff6a3b8 6990{"rotldi", MD(30,0,0), MDMB_MASK, PPC64, PPCVLE|EXT, {RA, RS, SH6}},
42952a96 6991{"rotrdi", MD(30,0,0), MDMB_MASK, PPC64, PPCVLE|EXT, {RA, RS, RRDn}},
1ff6a3b8 6992{"clrldi", MD(30,0,0), MDSH_MASK, PPC64, PPCVLE|EXT, {RA, RS, MB6}},
42952a96 6993{"srdi", MD(30,0,0), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, SRDn}},
14b57c7c 6994{"rldicl", MD(30,0,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
42952a96 6995{"extrdi", MD(30,0,0), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, ERDn, ERDb}},
1ff6a3b8 6996{"rotldi.", MD(30,0,1), MDMB_MASK, PPC64, PPCVLE|EXT, {RA, RS, SH6}},
42952a96 6997{"rotrdi.", MD(30,0,1), MDMB_MASK, PPC64, PPCVLE|EXT, {RA, RS, RRDn}},
1ff6a3b8 6998{"clrldi.", MD(30,0,1), MDSH_MASK, PPC64, PPCVLE|EXT, {RA, RS, MB6}},
42952a96 6999{"srdi.", MD(30,0,1), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, SRDn}},
14b57c7c 7000{"rldicl.", MD(30,0,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
42952a96 7001{"extrdi.", MD(30,0,1), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, ERDn, ERDb}},
14b57c7c 7002
42952a96
AM
7003{"clrrdi", MD(30,1,0), MDSH_MASK, PPC64, PPCVLE|EXT, {RA, RS, CRDn}},
7004{"sldi", MD(30,1,0), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, SLDn}},
14b57c7c 7005{"rldicr", MD(30,1,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
42952a96
AM
7006{"extldi", MD(30,1,0), MD_MASK, PPC64, PPCVLE, {RA, RS, ELDn, SH6}},
7007{"clrrdi.", MD(30,1,1), MDSH_MASK, PPC64, PPCVLE|EXT, {RA, RS, CRDn}},
7008{"sldi.", MD(30,1,1), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, SLDn}},
14b57c7c 7009{"rldicr.", MD(30,1,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
42952a96 7010{"extldi.", MD(30,1,1), MD_MASK, PPC64, PPCVLE, {RA, RS, ELDn, SH6}},
14b57c7c
AM
7011
7012{"rldic", MD(30,2,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
42952a96 7013{"clrlsldi", MD(30,2,0), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, CSLDb, CSLDn}},
14b57c7c 7014{"rldic.", MD(30,2,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
42952a96 7015{"clrlsldi.", MD(30,2,1), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, CSLDb, CSLDn}},
14b57c7c
AM
7016
7017{"rldimi", MD(30,3,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
42952a96 7018{"insrdi", MD(30,3,0), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, IRDn, IRDb}},
14b57c7c 7019{"rldimi.", MD(30,3,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
42952a96 7020{"insrdi.", MD(30,3,1), MD_MASK, PPC64, PPCVLE|EXT, {RA, RS, IRDn, IRDb}},
14b57c7c 7021
1ff6a3b8 7022{"rotld", MDS(30,8,0), MDSMB_MASK, PPC64, PPCVLE|EXT, {RA, RS, RB}},
14b57c7c 7023{"rldcl", MDS(30,8,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
1ff6a3b8 7024{"rotld.", MDS(30,8,1), MDSMB_MASK, PPC64, PPCVLE|EXT, {RA, RS, RB}},
14b57c7c
AM
7025{"rldcl.", MDS(30,8,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
7026
7027{"rldcr", MDS(30,9,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
7028{"rldcr.", MDS(30,9,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
7029
1ff6a3b8
AM
7030{"cmpw", XOPL(31,0,0), XCMPL_MASK, PPCCOM, EXT, {OBF, RA, RB}},
7031{"cmpd", XOPL(31,0,1), XCMPL_MASK, PPC64, EXT, {OBF, RA, RB}},
a5721ba2 7032{"cmp", X(31,0), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
bdc70b4a 7033{"cmp", X(31,0), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
1cb0a767 7034
1ff6a3b8
AM
7035{"twlgt", XTO(31,4,TOLGT), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7036{"tlgt", XTO(31,4,TOLGT), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7037{"twllt", XTO(31,4,TOLLT), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7038{"tllt", XTO(31,4,TOLLT), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7039{"tweq", XTO(31,4,TOEQ), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7040{"teq", XTO(31,4,TOEQ), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7041{"twlge", XTO(31,4,TOLGE), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7042{"tlge", XTO(31,4,TOLGE), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7043{"twlnl", XTO(31,4,TOLNL), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7044{"tlnl", XTO(31,4,TOLNL), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7045{"twlle", XTO(31,4,TOLLE), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7046{"tlle", XTO(31,4,TOLLE), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7047{"twlng", XTO(31,4,TOLNG), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7048{"tlng", XTO(31,4,TOLNG), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7049{"twgt", XTO(31,4,TOGT), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7050{"tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7051{"twge", XTO(31,4,TOGE), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7052{"tge", XTO(31,4,TOGE), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7053{"twnl", XTO(31,4,TONL), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7054{"tnl", XTO(31,4,TONL), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7055{"twlt", XTO(31,4,TOLT), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7056{"tlt", XTO(31,4,TOLT), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7057{"twle", XTO(31,4,TOLE), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7058{"tle", XTO(31,4,TOLE), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7059{"twng", XTO(31,4,TONG), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7060{"tng", XTO(31,4,TONG), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7061{"twne", XTO(31,4,TONE), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7062{"tne", XTO(31,4,TONE), XTO_MASK, PWRCOM, EXT, {RA, RB}},
7063{"trap", XTO(31,4,TOU), 0xffffffff, PPCCOM, EXT, {0}},
7064{"twu", XTO(31,4,TOU), XTO_MASK, PPCCOM, EXT, {RA, RB}},
7065{"tu", XTO(31,4,TOU), XTO_MASK, PWRCOM, EXT, {RA, RB}},
14b57c7c
AM
7066{"tw", X(31,4), X_MASK, PPCCOM, 0, {TO, RA, RB}},
7067{"t", X(31,4), X_MASK, PWRCOM, 0, {TO, RA, RB}},
7068
7069{"lvsl", X(31,6), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
7070{"lvebx", X(31,7), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
7071{"lbfcmx", APU(31,7,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
7072
7073{"subfc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7074{"sf", XO(31,8,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
1ff6a3b8 7075{"subc", XO(31,8,0,0), XO_MASK, PPCCOM, EXT, {RT, RB, RA}},
14b57c7c
AM
7076{"subfc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7077{"sf.", XO(31,8,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
1ff6a3b8 7078{"subc.", XO(31,8,0,1), XO_MASK, PPCCOM, EXT, {RT, RB, RA}},
14b57c7c
AM
7079
7080{"mulhdu", XO(31,9,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7081{"mulhdu.", XO(31,9,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
7082
7083{"addc", XO(31,10,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7084{"a", XO(31,10,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7085{"addc.", XO(31,10,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7086{"a.", XO(31,10,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7087
7088{"mulhwu", XO(31,11,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7089{"mulhwu.", XO(31,11,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
7090
7091{"lxsiwzx", X(31,12), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
7092
9cc4ce88
AM
7093{"lxvrbx", X(31,13), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
7094
1ff6a3b8
AM
7095{"isellt", XISEL(31,15,0), X_MASK, PPCISEL, EXT, {RT, RA0, RB}},
7096{"iselgt", XISEL(31,15,1), X_MASK, PPCISEL, EXT, {RT, RA0, RB}},
7097{"iseleq", XISEL(31,15,2), X_MASK, PPCISEL, EXT, {RT, RA0, RB}},
dd4832bf 7098{"isel", XISEL(31,15,0), XISEL_MASK, PPCISEL|TITAN, 0, {RT, RA0, RB, BC}},
14b57c7c
AM
7099
7100{"tlbilxlpid", XTO(31,18,0), XTO_MASK, E500MC|PPCA2, 0, {0}},
7101{"tlbilxpid", XTO(31,18,1), XTO_MASK, E500MC|PPCA2, 0, {0}},
7102{"tlbilxva", XTO(31,18,3), XTO_MASK, E500MC|PPCA2, 0, {RA0, RB}},
7103{"tlbilx", X(31,18), X_MASK, E500MC|PPCA2, 0, {T, RA0, RB}},
7104
7105{"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, COM, 0, {RT, FXM4}},
7106{"mfocrf", XFXM(31,19,0,1), XFXFXM_MASK, COM, 0, {RT, FXM}},
7107
7108{"lwarx", X(31,20), XEH_MASK, PPC, 0, {RT, RA0, RB, EH}},
7109
7110{"ldx", X(31,21), X_MASK, PPC64, 0, {RT, RA0, RB}},
7111
8b2742a1 7112{"icbt", X(31,22), X_MASK, POWER5|BOOKE|PPCE300, 0, {CT, RA0, RB}},
14b57c7c
AM
7113
7114{"lwzx", X(31,23), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
7115{"lx", X(31,23), X_MASK, PWRCOM, 0, {RT, RA, RB}},
7116
7117{"slw", XRC(31,24,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7118{"sl", XRC(31,24,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
7119{"slw.", XRC(31,24,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7120{"sl.", XRC(31,24,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
7121
7122{"cntlzw", XRC(31,26,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
7123{"cntlz", XRC(31,26,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
7124{"cntlzw.", XRC(31,26,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
7125{"cntlz.", XRC(31,26,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
7126
7127{"sld", XRC(31,27,0), X_MASK, PPC64, 0, {RA, RS, RB}},
7128{"sld.", XRC(31,27,1), X_MASK, PPC64, 0, {RA, RS, RB}},
7129
7130{"and", XRC(31,28,0), X_MASK, COM, 0, {RA, RS, RB}},
7131{"and.", XRC(31,28,1), X_MASK, COM, 0, {RA, RS, RB}},
7132
7133{"maskg", XRC(31,29,0), X_MASK, M601, PPCA2, {RA, RS, RB}},
7134{"maskg.", XRC(31,29,1), X_MASK, M601, PPCA2, {RA, RS, RB}},
7135
7136{"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
7137
7138{"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
1ff6a3b8
AM
7139{"waitrsv", XWCPL(31,30,1,0),0xffffffff, POWER10, EXT, {0}},
7140{"pause_short", XWCPL(31,30,2,0),0xffffffff, POWER10, EXT, {0}},
3d205eb4
PB
7141{"wait", X(31,30), XWCPL_MASK, POWER10, 0, {WC, PL}},
7142{"wait", X(31,30), XWC_MASK, POWER9, POWER10, {WC}},
14b57c7c
AM
7143
7144{"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
7145
1ff6a3b8
AM
7146{"cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM, EXT, {OBF, RA, RB}},
7147{"cmpld", XOPL(31,32,1), XCMPL_MASK, PPC64, EXT, {OBF, RA, RB}},
a5721ba2 7148{"cmpl", X(31,32), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
bdc70b4a 7149{"cmpl", X(31,32), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
de866fcc 7150
14b57c7c
AM
7151{"lvsr", X(31,38), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
7152{"lvehx", X(31,39), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
7153{"lhfcmx", APU(31,39,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 7154
9cc4ce88
AM
7155{"lxvrhx", X(31,45), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
7156
ac8f0f72 7157{"mviwsplt", X(31,46), X_MASK, E6500, 0, {VD, RA, RB}},
e67ed0e8 7158
14b57c7c 7159{"lvewx", X(31,71), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
de866fcc 7160
14b57c7c 7161{"addg6s", XO(31,74,0,0), XO_MASK, POWER6, 0, {RT, RA, RB}},
066be9f7 7162
14b57c7c 7163{"lxsiwax", X(31,76), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
c0637f3a 7164
9cc4ce88
AM
7165{"lxvrwx", X(31,77), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
7166
14b57c7c 7167{"subf", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
1ff6a3b8 7168{"sub", XO(31,40,0,0), XO_MASK, PPC, EXT, {RT, RB, RA}},
14b57c7c 7169{"subf.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
1ff6a3b8 7170{"sub.", XO(31,40,0,1), XO_MASK, PPC, EXT, {RT, RB, RA}},
de866fcc 7171
1ff6a3b8
AM
7172{"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, EXT, {RA, FRS}},
7173{"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, EXT, {RA, VS}},
5fbec329 7174{"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
14b57c7c 7175{"eratilx", X(31,51), X_MASK, PPCA2, 0, {ERAT_T, RA, RB}},
e0d602ec 7176
14b57c7c 7177{"lbarx", X(31,52), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
066be9f7 7178
14b57c7c 7179{"ldux", X(31,53), X_MASK, PPC64, 0, {RT, RAL, RB}},
43e65147 7180
14b57c7c 7181{"dcbst", X(31,54), XRT_MASK, PPC, 0, {RA0, RB}},
43e65147 7182
14b57c7c
AM
7183{"lwzux", X(31,55), X_MASK, PPCCOM, 0, {RT, RAL, RB}},
7184{"lux", X(31,55), X_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 7185
14b57c7c
AM
7186{"cntlzd", XRC(31,58,0), XRB_MASK, PPC64, 0, {RA, RS}},
7187{"cntlzd.", XRC(31,58,1), XRB_MASK, PPC64, 0, {RA, RS}},
de866fcc 7188
ec40e91c
AM
7189{"cntlzdm", X(31,59), X_MASK, POWER10, 0, {RA, RS, RB}},
7190
14b57c7c
AM
7191{"andc", XRC(31,60,0), X_MASK, COM, 0, {RA, RS, RB}},
7192{"andc.", XRC(31,60,1), X_MASK, COM, 0, {RA, RS, RB}},
de866fcc 7193
1ff6a3b8
AM
7194{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, EXT, {0}},
7195{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, EXT, {0}},
14b57c7c 7196{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
43e65147 7197
14b57c7c 7198{"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
19a6653c 7199
1ff6a3b8
AM
7200{"tdlgt", XTO(31,68,TOLGT), XTO_MASK, PPC64, EXT, {RA, RB}},
7201{"tdllt", XTO(31,68,TOLLT), XTO_MASK, PPC64, EXT, {RA, RB}},
7202{"tdeq", XTO(31,68,TOEQ), XTO_MASK, PPC64, EXT, {RA, RB}},
7203{"tdlge", XTO(31,68,TOLGE), XTO_MASK, PPC64, EXT, {RA, RB}},
7204{"tdlnl", XTO(31,68,TOLNL), XTO_MASK, PPC64, EXT, {RA, RB}},
7205{"tdlle", XTO(31,68,TOLLE), XTO_MASK, PPC64, EXT, {RA, RB}},
7206{"tdlng", XTO(31,68,TOLNG), XTO_MASK, PPC64, EXT, {RA, RB}},
7207{"tdgt", XTO(31,68,TOGT), XTO_MASK, PPC64, EXT, {RA, RB}},
7208{"tdge", XTO(31,68,TOGE), XTO_MASK, PPC64, EXT, {RA, RB}},
7209{"tdnl", XTO(31,68,TONL), XTO_MASK, PPC64, EXT, {RA, RB}},
7210{"tdlt", XTO(31,68,TOLT), XTO_MASK, PPC64, EXT, {RA, RB}},
7211{"tdle", XTO(31,68,TOLE), XTO_MASK, PPC64, EXT, {RA, RB}},
7212{"tdng", XTO(31,68,TONG), XTO_MASK, PPC64, EXT, {RA, RB}},
7213{"tdne", XTO(31,68,TONE), XTO_MASK, PPC64, EXT, {RA, RB}},
7214{"tdu", XTO(31,68,TOU), XTO_MASK, PPC64, EXT, {RA, RB}},
14b57c7c 7215{"td", X(31,68), X_MASK, PPC64, 0, {TO, RA, RB}},
de866fcc 7216
14b57c7c 7217{"lwfcmx", APU(31,71,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
51b52f4a
PB
7218{"subwus", XO(31,72,0,0), XO_MASK, FUTURE, EXT, {RT, RB, RA}},
7219{"subwus.", XO(31,72,0,1), XO_MASK, FUTURE, EXT, {RT, RB, RA}},
7220{"subdus", XO(31,72,1,0), XO_MASK, FUTURE, EXT, {RT, RB, RA}},
7221{"subdus.", XO(31,72,1,1), XO_MASK, FUTURE, EXT, {RT, RB, RA}},
7222{"subfus", XO(31,72,0,0), XOL_MASK, FUTURE, 0, {RT, XOL, RA, RB}},
7223{"subfus.", XO(31,72,0,1), XOL_MASK, FUTURE, 0, {RT, XOL, RA, RB}},
14b57c7c
AM
7224{"mulhd", XO(31,73,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7225{"mulhd.", XO(31,73,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 7226
14b57c7c
AM
7227{"mulhw", XO(31,75,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7228{"mulhw.", XO(31,75,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
de866fcc 7229
8b2742a1 7230{"msgsndu", XRTRA(31,78,0,0), XRTRA_MASK, POWER9, 0, {RB}},
62adc510
AM
7231{"dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
7232{"dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
de866fcc 7233
14b57c7c 7234{"mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, 0, {SR, RS}},
de866fcc 7235
14b57c7c 7236{"mfmsr", X(31,83), XRARB_MASK, COM, 0, {RT}},
43e65147 7237
14b57c7c 7238{"ldarx", X(31,84), XEH_MASK, PPC64, 0, {RT, RA0, RB, EH}},
de866fcc 7239
1ff6a3b8
AM
7240{"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPC476|EXT, {RA0, RB}},
7241{"dcbflp", XOPL2(31,86,3), XRT_MASK, POWER9, PPC476|EXT, {RA0, RB}},
7242{"dcbfps", XOPL3(31,86,4), XRT_MASK, POWER10, PPC476|EXT, {RA0, RB}},
7243{"dcbstps", XOPL3(31,86,6), XRT_MASK, POWER10, PPC476|EXT, {RA0, RB}},
3d205eb4
PB
7244{"dcbf", X(31,86), XL3RT_MASK, POWER10, PPC476, {RA0, RB, L3OPT}},
7245{"dcbf", X(31,86), XLRT_MASK, PPC, POWER10, {RA0, RB, L2OPT}},
de866fcc 7246
14b57c7c 7247{"lbzx", X(31,87), X_MASK, COM, 0, {RT, RA0, RB}},
43e65147 7248
14b57c7c 7249{"lbepx", X(31,95), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
de866fcc 7250
14b57c7c 7251{"dni", XRC(31,97,1), XRB_MASK, E6500, 0, {DUI, DCTL}},
aea77599 7252
14b57c7c
AM
7253{"lvx", X(31,103), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
7254{"lqfcmx", APU(31,103,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 7255
14b57c7c
AM
7256{"neg", XO(31,104,0,0), XORB_MASK, COM, 0, {RT, RA}},
7257{"neg.", XO(31,104,0,1), XORB_MASK, COM, 0, {RT, RA}},
de866fcc 7258
14b57c7c
AM
7259{"mul", XO(31,107,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
7260{"mul.", XO(31,107,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
de866fcc 7261
9cc4ce88
AM
7262{"lxvrdx", X(31,109), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
7263
8b2742a1 7264{"msgclru", XRTRA(31,110,0,0), XRTRA_MASK, POWER9, 0, {RB}},
ac8f0f72 7265{"mvidsplt", X(31,110), X_MASK, E6500, 0, {VD, RA, RB}},
aea77599 7266
14b57c7c 7267{"mtsrdin", X(31,114), XRA_MASK, PPC64, 0, {RS, RB}},
de866fcc 7268
1ff6a3b8
AM
7269{"mffprwz", X(31,115), XX1RB_MASK|1, PPCVSX2, EXT, {RA, FRS}},
7270{"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, EXT, {RA, VS}},
14b57c7c 7271{"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
c0637f3a 7272
14b57c7c 7273{"lharx", X(31,116), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
066be9f7 7274
14b57c7c 7275{"clf", X(31,118), XTO_MASK, POWER, 0, {RA, RB}},
de866fcc 7276
14b57c7c 7277{"lbzux", X(31,119), X_MASK, COM, 0, {RT, RAL, RB}},
43e65147 7278
14b57c7c 7279{"popcntb", X(31,122), XRB_MASK, POWER5, 0, {RA, RS}},
de866fcc 7280
1ff6a3b8 7281{"not", XRC(31,124,0), X_MASK, COM, EXT, {RA, RSB}},
14b57c7c 7282{"nor", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RB}},
1ff6a3b8 7283{"not.", XRC(31,124,1), X_MASK, COM, EXT, {RA, RSB}},
14b57c7c 7284{"nor.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RB}},
19a6653c 7285
14b57c7c 7286{"dcbfep", XRT(31,127,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
43e65147 7287
fd486b63 7288{"setb", X(31,128), XRB_MASK|(3<<16), POWER9, 0, {RT, BFA}},
a680de9a 7289
14b57c7c 7290{"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RS}},
43e65147 7291
14b57c7c 7292{"dcbtstls", X(31,134), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
de866fcc 7293
14b57c7c
AM
7294{"stvebx", X(31,135), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
7295{"stbfcmx", APU(31,135,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 7296
14b57c7c
AM
7297{"subfe", XO(31,136,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7298{"sfe", XO(31,136,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7299{"subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7300{"sfe.", XO(31,136,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 7301
14b57c7c
AM
7302{"adde", XO(31,138,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7303{"ae", XO(31,138,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7304{"adde.", XO(31,138,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7305{"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 7306
14b57c7c 7307{"stxsiwx", X(31,140), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
c0637f3a 7308
9cc4ce88
AM
7309{"stxvrbx", X(31,141), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
7310
14b57c7c
AM
7311{"msgsndp", XRTRA(31,142,0,0), XRTRA_MASK, POWER8, 0, {RB}},
7312{"dcbtstlse", X(31,142), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
de866fcc 7313
1ff6a3b8 7314{"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, EXT, {RS}},
14b57c7c
AM
7315{"mtcrf", XFXM(31,144,0,0), XFXFXM_MASK, COM, 0, {FXM, RS}},
7316{"mtocrf", XFXM(31,144,0,1), XFXFXM_MASK, COM, 0, {FXM, RS}},
de866fcc 7317
14b57c7c 7318{"mtmsr", X(31,146), XRLARB_MASK, COM, 0, {RS, A_L}},
de866fcc 7319
14b57c7c 7320{"mtsle", X(31,147), XRTLRARB_MASK, POWER8, 0, {L}},
14b57c7c
AM
7321{"eratsx", XRC(31,147,0), X_MASK, PPCA2, 0, {RT, RA0, RB}},
7322{"eratsx.", XRC(31,147,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
e0d602ec 7323
14b57c7c 7324{"stdx", X(31,149), X_MASK, PPC64, 0, {RS, RA0, RB}},
43e65147 7325
14b57c7c 7326{"stwcx.", XRC(31,150,1), X_MASK, PPC, 0, {RS, RA0, RB}},
43e65147 7327
14b57c7c
AM
7328{"stwx", X(31,151), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
7329{"stx", X(31,151), X_MASK, PWRCOM, 0, {RS, RA, RB}},
de866fcc 7330
14b57c7c
AM
7331{"slq", XRC(31,152,0), X_MASK, M601, 0, {RA, RS, RB}},
7332{"slq.", XRC(31,152,1), X_MASK, M601, 0, {RA, RS, RB}},
de866fcc 7333
14b57c7c
AM
7334{"sle", XRC(31,153,0), X_MASK, M601, 0, {RA, RS, RB}},
7335{"sle.", XRC(31,153,1), X_MASK, M601, 0, {RA, RS, RB}},
de866fcc 7336
14b57c7c 7337{"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS}},
de866fcc 7338
3ff0a5ba 7339{"brw", X(31,155), XRB_MASK, POWER10, 0, {RA, RS}},
ec40e91c 7340{"pdepd", X(31,156), X_MASK, POWER10, 0, {RA, RS, RB}},
3ff0a5ba 7341
14b57c7c 7342{"stdepx", X(31,157), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 7343
14b57c7c 7344{"stwepx", X(31,159), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 7345
14b57c7c 7346{"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {E}},
43e65147 7347
14b57c7c 7348{"dcbtls", X(31,166), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
de866fcc 7349
14b57c7c
AM
7350{"stvehx", X(31,167), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
7351{"sthfcmx", APU(31,167,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 7352
14b57c7c 7353{"addex", ZRC(31,170,0), Z2_MASK, POWER9, 0, {RT, RA, RB, CY}},
19dfcc89 7354
9cc4ce88
AM
7355{"stxvrhx", X(31,173), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
7356
14b57c7c
AM
7357{"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, 0, {RB}},
7358{"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
de866fcc 7359
79e24d0a 7360{"dmxxmfacc", XVA(31,177,0), XACC_MASK, POWER10, 0, {ACC}},
0a246853 7361{"xxmfacc", XVA(31,177,0), XACC_MASK, POWER10, 0, {ACC}},
79e24d0a 7362{"dmxxmtacc", XVA(31,177,1), XACC_MASK, POWER10, 0, {ACC}},
0a246853 7363{"xxmtacc", XVA(31,177,1), XACC_MASK, POWER10, 0, {ACC}},
79e24d0a
PB
7364{"dmsetdmrz", XVA(31,177,2), XDMR_MASK, FUTURE, 0, {DMR}},
7365{"dmsetaccz", XVA(31,177,3), XACC_MASK, POWER10, 0, {ACC}},
0a246853 7366{"xxsetaccz", XVA(31,177,3), XACC_MASK, POWER10, 0, {ACC}},
79e24d0a
PB
7367{"dmmr", XVA(31,177,6), XDMRDMR_MASK,FUTURE, 0, {DMR, DMRAB}},
7368{"dmxor", XVA(31,177,7), XDMRDMR_MASK,FUTURE, 0, {DMR, DMRAB}},
aa3c112f 7369
14b57c7c 7370{"mtmsrd", X(31,178), XRLARB_MASK, PPC64, 0, {RS, A_L}},
de866fcc 7371
1ff6a3b8
AM
7372{"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, EXT, {FRT, RA}},
7373{"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, EXT, {VD, RA}},
5fbec329 7374{"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
14b57c7c 7375{"eratre", X(31,179), X_MASK, PPCA2, 0, {RT, RA, WS}},
e0d602ec 7376
14b57c7c 7377{"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}},
de866fcc 7378
73f07bff 7379{"stqcx.", XRC(31,182,1), X_MASK|Q_MASK, POWER8, 0, {RSQ, RA0, RB}},
14b57c7c 7380{"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}},
e0d602ec 7381
14b57c7c
AM
7382{"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}},
7383{"stux", X(31,183), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
de866fcc 7384
14b57c7c
AM
7385{"sliq", XRC(31,184,0), X_MASK, M601, 0, {RA, RS, SH}},
7386{"sliq.", XRC(31,184,1), X_MASK, M601, 0, {RA, RS, SH}},
de866fcc 7387
14b57c7c 7388{"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, 0, {RA, RS}},
252b5132 7389
3ff0a5ba 7390{"brd", X(31,187), XRB_MASK, POWER10, 0, {RA, RS}},
ec40e91c 7391{"pextd", X(31,188), X_MASK, POWER10, 0, {RA, RS, RB}},
3ff0a5ba 7392
14b57c7c 7393{"cmprb", X(31,192), XCMP_MASK, POWER9, 0, {BF, L, RA, RB}},
a680de9a 7394
14b57c7c 7395{"icblq.", XRC(31,198,1), X_MASK, E6500, 0, {CT, RA0, RB}},
aea77599 7396
14b57c7c
AM
7397{"stvewx", X(31,199), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
7398{"stwfcmx", APU(31,199,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 7399
14b57c7c
AM
7400{"subfze", XO(31,200,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7401{"sfze", XO(31,200,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7402{"subfze.", XO(31,200,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7403{"sfze.", XO(31,200,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 7404
14b57c7c
AM
7405{"addze", XO(31,202,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7406{"aze", XO(31,202,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7407{"addze.", XO(31,202,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7408{"aze.", XO(31,202,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 7409
9cc4ce88
AM
7410{"stxvrwx", X(31,205), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
7411
14b57c7c 7412{"msgsnd", XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
19a6653c 7413
14b57c7c 7414{"mtsr", X(31,210), XRB_MASK|(1<<20), COM, NON32, {SR, RS}},
418c1742 7415
1ff6a3b8
AM
7416{"mtfprwa", X(31,211), XX1RB_MASK|1, PPCVSX2, EXT, {FRT, RA}},
7417{"mtvrwa", X(31,211)|1, XX1RB_MASK|1, PPCVSX2, EXT, {VD, RA}},
14b57c7c
AM
7418{"mtvsrwa", X(31,211), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
7419{"eratwe", X(31,211), X_MASK, PPCA2, 0, {RS, RA, WS}},
e0d602ec 7420
14b57c7c 7421{"ldawx.", XRC(31,212,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
e0d602ec 7422
14b57c7c 7423{"stdcx.", XRC(31,214,1), X_MASK, PPC64, 0, {RS, RA0, RB}},
43e65147 7424
14b57c7c 7425{"stbx", X(31,215), X_MASK, COM, 0, {RS, RA0, RB}},
252b5132 7426
14b57c7c
AM
7427{"sllq", XRC(31,216,0), X_MASK, M601, 0, {RA, RS, RB}},
7428{"sllq.", XRC(31,216,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 7429
14b57c7c
AM
7430{"sleq", XRC(31,217,0), X_MASK, M601, 0, {RA, RS, RB}},
7431{"sleq.", XRC(31,217,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 7432
3ff0a5ba 7433{"brh", X(31,219), XRB_MASK, POWER10, 0, {RA, RS}},
ec40e91c 7434{"cfuged", X(31,220), X_MASK, POWER10, 0, {RA, RS, RB}},
3ff0a5ba 7435
14b57c7c 7436{"stbepx", X(31,223), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 7437
14b57c7c 7438{"cmpeqb", X(31,224), XCMPL_MASK, POWER9, 0, {BF, RA, RB}},
a680de9a 7439
14b57c7c 7440{"icblc", X(31,230), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
7d5b217e 7441
14b57c7c
AM
7442{"stvx", X(31,231), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
7443{"stqfcmx", APU(31,231,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
f509565f 7444
14b57c7c
AM
7445{"subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7446{"sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7447{"subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7448{"sfme.", XO(31,232,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 7449
14b57c7c
AM
7450{"mulld", XO(31,233,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7451{"mulld.", XO(31,233,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 7452
14b57c7c
AM
7453{"addme", XO(31,234,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7454{"ame", XO(31,234,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7455{"addme.", XO(31,234,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7456{"ame.", XO(31,234,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 7457
14b57c7c
AM
7458{"mullw", XO(31,235,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7459{"muls", XO(31,235,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7460{"mullw.", XO(31,235,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7461{"muls.", XO(31,235,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 7462
9cc4ce88
AM
7463{"stxvrdx", X(31,237), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
7464
14b57c7c
AM
7465{"icblce", X(31,238), X_MASK, PPCCHLK, E500MC|PPCA2, {CT, RA, RB}},
7466{"msgclr", XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
7467{"mtsrin", X(31,242), XRA_MASK, PPC, NON32, {RS, RB}},
bdc70b4a 7468{"mtsri", X(31,242), XRA_MASK, POWER, NON32, {RS, RB}},
418c1742 7469
1ff6a3b8
AM
7470{"mtfprwz", X(31,243), XX1RB_MASK|1, PPCVSX2, EXT, {FRT, RA}},
7471{"mtvrwz", X(31,243)|1, XX1RB_MASK|1, PPCVSX2, EXT, {VD, RA}},
14b57c7c 7472{"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
c0637f3a 7473
1ff6a3b8
AM
7474{"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, EXT, {RA0, RB}},
7475{"dcbtstct", X(31,246), X_MASK, POWER4, EXT, {RA0, RB, THCT}},
7476{"dcbtstds", X(31,246), X_MASK, POWER4, EXT, {RA0, RB, THDS}},
14b57c7c
AM
7477{"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
7478{"dcbtst", X(31,246), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
7479{"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
4fff86c5 7480
14b57c7c 7481{"stbux", X(31,247), X_MASK, COM, 0, {RS, RAS, RB}},
252b5132 7482
14b57c7c
AM
7483{"slliq", XRC(31,248,0), X_MASK, M601, 0, {RA, RS, SH}},
7484{"slliq.", XRC(31,248,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 7485
14b57c7c 7486{"bpermd", X(31,252), X_MASK, POWER7|PPCA2, 0, {RA, RS, RB}},
066be9f7 7487
14b57c7c 7488{"dcbtstep", XRT(31,255,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
19a6653c 7489
14b57c7c
AM
7490{"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RS, RA}},
7491{"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, 0, {RS, RA}},
252b5132 7492
ac8f0f72 7493{"lvexbx", X(31,261), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7494
14b57c7c 7495{"icbt", X(31,262), XRT_MASK, PPC403, 0, {RA, RB}},
1ed8e1e4 7496
ac8f0f72 7497{"lvepxl", X(31,263), X_MASK, E6500, 0, {VD, RA0, RB}},
14b57c7c 7498{"ldfcmx", APU(31,263,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
1ff6a3b8 7499
14b57c7c
AM
7500{"doz", XO(31,264,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
7501{"doz.", XO(31,264,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 7502
14b57c7c 7503{"modud", X(31,265), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 7504
14b57c7c
AM
7505{"add", XO(31,266,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7506{"cax", XO(31,266,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7507{"add.", XO(31,266,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7508{"cax.", XO(31,266,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
418c1742 7509
14b57c7c 7510{"moduw", X(31,267), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 7511
14b57c7c
AM
7512{"lxvx", X(31,268), XX1_MASK|1<<6, PPCVSX3, 0, {XT6, RA0, RB}},
7513{"lxvl", X(31,269), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 7514
14b57c7c 7515{"ehpriv", X(31,270), 0xffffffff, E500MC|PPCA2, 0, {0}},
19a6653c 7516
62adc510 7517{"tlbiel", X(31,274), X_MASK|1<<20,POWER9, 0, {RB, RSO, RIC, PRS, X_R}},
a5721ba2 7518{"tlbiel", X(31,274), XRTLRA_MASK, POWER4, POWER9|PPC476, {RB, LOPT}},
418c1742 7519
14b57c7c 7520{"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}},
1cb0a767 7521
73f07bff 7522{"lqarx", X(31,276), XEH_MASK|Q_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
c0637f3a 7523
14b57c7c
AM
7524{"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}},
7525{"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}},
1cb0a767 7526
1ff6a3b8
AM
7527{"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, EXT, {RA0, RB}},
7528{"dcbna", XRT(31,278,0x11), XRT_MASK, POWER10, EXT, {RA0, RB}},
7529{"dcbtct", X(31,278), X_MASK, POWER4, EXT, {RA0, RB, THCT}},
7530{"dcbtds", X(31,278), X_MASK, POWER4, EXT, {RA0, RB, THDS}},
14b57c7c
AM
7531{"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
7532{"dcbt", X(31,278), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
7533{"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
4fff86c5 7534
14b57c7c 7535{"lhzx", X(31,279), X_MASK, COM, 0, {RT, RA0, RB}},
1cb0a767 7536
14b57c7c 7537{"cdtbcd", X(31,282), XRB_MASK, POWER6, 0, {RA, RS}},
066be9f7 7538
14b57c7c
AM
7539{"eqv", XRC(31,284,0), X_MASK, COM, 0, {RA, RS, RB}},
7540{"eqv.", XRC(31,284,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 7541
14b57c7c 7542{"lhepx", X(31,287), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
1cb0a767 7543
62adc510 7544{"mfdcrux", X(31,291), X_MASK, PPC464|PPC476, 0, {RS, RA}},
1cb0a767 7545
ac8f0f72
AM
7546{"lvexhx", X(31,293), X_MASK, E6500, 0, {VD, RA0, RB}},
7547{"lvepx", X(31,295), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7548
14b57c7c 7549{"lxvll", X(31,301), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 7550
14b57c7c 7551{"mfbhrbe", X(31,302), X_MASK, POWER8, 0, {RT, BHRBE}},
c0637f3a 7552
14b57c7c
AM
7553{"tlbie", X(31,306), X_MASK|1<<20,POWER9, TITAN, {RB, RS, RIC, PRS, X_R}},
7554{"tlbie", X(31,306), XRA_MASK, POWER7, POWER9|TITAN, {RB, RS}},
a5721ba2 7555{"tlbie", X(31,306), XRTLRA_MASK, PPC, E500|POWER7|TITAN, {RB, LOPT}},
14b57c7c 7556{"tlbi", X(31,306), XRT_MASK, POWER, 0, {RA0, RB}},
1cb0a767 7557
14b57c7c 7558{"mfvsrld", X(31,307), XX1RB_MASK, PPCVSX3, 0, {RA, XS6}},
a680de9a 7559
14b57c7c 7560{"eciwx", X(31,310), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
1cb0a767 7561
14b57c7c 7562{"lhzux", X(31,311), X_MASK, COM, 0, {RT, RAL, RB}},
1cb0a767 7563
14b57c7c 7564{"cbcdtd", X(31,314), XRB_MASK, POWER6, 0, {RA, RS}},
066be9f7 7565
14b57c7c
AM
7566{"xor", XRC(31,316,0), X_MASK, COM, 0, {RA, RS, RB}},
7567{"xor.", XRC(31,316,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 7568
14b57c7c 7569{"dcbtep", XRT(31,319,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
1cb0a767 7570
14b57c7c
AM
7571{"mfexisr", XSPR(31,323, 64), XSPR_MASK, PPC403, 0, {RT}},
7572{"mfexier", XSPR(31,323, 66), XSPR_MASK, PPC403, 0, {RT}},
7573{"mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, 0, {RT}},
7574{"mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, 0, {RT}},
7575{"mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, 0, {RT}},
7576{"mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, 0, {RT}},
7577{"mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, 0, {RT}},
7578{"mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, 0, {RT}},
7579{"mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, 0, {RT}},
7580{"mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, 0, {RT}},
7581{"mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, 0, {RT}},
7582{"mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, 0, {RT}},
7583{"mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, 0, {RT}},
7584{"mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, 0, {RT}},
7585{"mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, 0, {RT}},
7586{"mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, 0, {RT}},
7587{"mfdmasa0", XSPR(31,323,195), XSPR_MASK, PPC403, 0, {RT}},
7588{"mfdmacc0", XSPR(31,323,196), XSPR_MASK, PPC403, 0, {RT}},
7589{"mfdmacr1", XSPR(31,323,200), XSPR_MASK, PPC403, 0, {RT}},
7590{"mfdmact1", XSPR(31,323,201), XSPR_MASK, PPC403, 0, {RT}},
7591{"mfdmada1", XSPR(31,323,202), XSPR_MASK, PPC403, 0, {RT}},
7592{"mfdmasa1", XSPR(31,323,203), XSPR_MASK, PPC403, 0, {RT}},
7593{"mfdmacc1", XSPR(31,323,204), XSPR_MASK, PPC403, 0, {RT}},
7594{"mfdmacr2", XSPR(31,323,208), XSPR_MASK, PPC403, 0, {RT}},
7595{"mfdmact2", XSPR(31,323,209), XSPR_MASK, PPC403, 0, {RT}},
7596{"mfdmada2", XSPR(31,323,210), XSPR_MASK, PPC403, 0, {RT}},
7597{"mfdmasa2", XSPR(31,323,211), XSPR_MASK, PPC403, 0, {RT}},
7598{"mfdmacc2", XSPR(31,323,212), XSPR_MASK, PPC403, 0, {RT}},
7599{"mfdmacr3", XSPR(31,323,216), XSPR_MASK, PPC403, 0, {RT}},
7600{"mfdmact3", XSPR(31,323,217), XSPR_MASK, PPC403, 0, {RT}},
7601{"mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, 0, {RT}},
7602{"mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, 0, {RT}},
7603{"mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, 0, {RT}},
7604{"mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, 0, {RT}},
7605{"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}},
7606{"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, 0, {RT, SPR}},
1cb0a767 7607
ac8f0f72 7608{"lvexwx", X(31,325), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7609
14b57c7c 7610{"dcread", X(31,326), X_MASK, PPC476|TITAN, 0, {RT, RA0, RB}},
9fe54b1c 7611
14b57c7c
AM
7612{"div", XO(31,331,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
7613{"div.", XO(31,331,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
1cb0a767 7614
14b57c7c 7615{"lxvdsx", X(31,332), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
066be9f7 7616
94ba9882
AM
7617{"lxvpx", X(31,333), XX1_MASK, POWER10, 0, {XTP, RA0, RB}},
7618
14b57c7c 7619{"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, 0, {RT, PMR}},
c03dc33b 7620{"mftmr", X(31,366), X_MASK, PPCTMR, 0, {RT, TMR}},
1cb0a767 7621
14b57c7c
AM
7622{"slbsync", X(31,338), 0xffffffff, POWER9, 0, {0}},
7623
1ff6a3b8
AM
7624{"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, EXT, {RT}},
7625{"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, EXT, {RT}},
7626{"mfudscr", XSPR(31,339, 3), XSPR_MASK, POWER9, EXT, {RS}},
7627{"mfrtcu", XSPR(31,339, 4), XSPR_MASK, COM, TITAN|EXT, {RT}},
7628{"mfrtcl", XSPR(31,339, 5), XSPR_MASK, COM, TITAN|EXT, {RT}},
7629{"mfdec", XSPR(31,339, 6), XSPR_MASK, MFDEC1, EXT, {RT}},
7630{"mflr", XSPR(31,339, 8), XSPR_MASK, COM, EXT, {RT}},
7631{"mfctr", XSPR(31,339, 9), XSPR_MASK, COM, EXT, {RT}},
7632{"mfuamr", XSPR(31,339, 13), XSPR_MASK, POWER9, EXT, {RS}},
7633{"mfdscr", XSPR(31,339, 17), XSPR_MASK, POWER6, EXT, {RT}},
7634{"mftid", XSPR(31,339, 17), XSPR_MASK, POWER, EXT, {RT}},
7635{"mfdsisr", XSPR(31,339, 18), XSPR_MASK, COM, TITAN|EXT, {RT}},
7636{"mfdar", XSPR(31,339, 19), XSPR_MASK, COM, TITAN|EXT, {RT}},
7637{"mfdec", XSPR(31,339, 22), XSPR_MASK, MFDEC2, MFDEC1|EXT, {RT}},
7638{"mfsdr0", XSPR(31,339, 24), XSPR_MASK, POWER, EXT, {RT}},
7639{"mfsdr1", XSPR(31,339, 25), XSPR_MASK, COM, TITAN|EXT, {RT}},
7640{"mfsrr0", XSPR(31,339, 26), XSPR_MASK, COM, EXT, {RT}},
7641{"mfsrr1", XSPR(31,339, 27), XSPR_MASK, COM, EXT, {RT}},
7642{"mfcfar", XSPR(31,339, 28), XSPR_MASK, POWER6, EXT, {RT}},
7643{"mfamr", XSPR(31,339, 29), XSPR_MASK, POWER7, EXT, {RS}},
7644{"mfpidr", XSPR(31,339, 48), XSPR_MASK, POWER10, EXT, {RS}},
7645{"mfpid", XSPR(31,339, 48), XSPR_MASK, BOOKE, EXT, {RT}},
7646{"mfcsrr0", XSPR(31,339, 58), XSPR_MASK, BOOKE, EXT, {RT}},
7647{"mfcsrr1", XSPR(31,339, 59), XSPR_MASK, BOOKE, EXT, {RT}},
7648{"mfiamr", XSPR(31,339, 61), XSPR_MASK, POWER10, EXT, {RS}},
7649{"mfdear", XSPR(31,339, 61), XSPR_MASK, BOOKE, EXT, {RT}},
7650{"mfesr", XSPR(31,339, 62), XSPR_MASK, BOOKE, EXT, {RT}},
7651{"mfivpr", XSPR(31,339, 63), XSPR_MASK, BOOKE, EXT, {RT}},
7652{"mfctrl", XSPR(31,339,136), XSPR_MASK, POWER4, EXT, {RT}},
7653{"mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, EXT, {RT}},
7654{"mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, EXT, {RT}},
7655{"mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, EXT, {RT}},
7656{"mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, EXT, {RT}},
7657{"mficr", XSPR(31,339,148), XSPR_MASK, PPC860, EXT, {RT}},
7658{"mfder", XSPR(31,339,149), XSPR_MASK, PPC860, EXT, {RT}},
7659{"mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, EXT, {RT}},
7660{"mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, EXT, {RT}},
7661{"mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, EXT, {RT}},
7662{"mffscr", XSPR(31,339,153), XSPR_MASK, POWER10, EXT, {RS}},
7663{"mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, EXT, {RT}},
7664{"mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, EXT, {RT}},
7665{"mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, EXT, {RT}},
7666{"mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, EXT, {RT}},
7667{"mfuamor", XSPR(31,339,157), XSPR_MASK, POWER7, EXT, {RS}},
7668{"mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, EXT, {RT}},
7669{"mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, EXT, {RT}},
7670{"mfpspb", XSPR(31,339,159), XSPR_MASK, POWER10, EXT, {RS}},
7671{"mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, EXT, {RT}},
7672{"mfdpdes", XSPR(31,339,176), XSPR_MASK, POWER10, EXT, {RS}},
7673{"mfdawr0", XSPR(31,339,180), XSPR_MASK, POWER10, EXT, {RS}},
7674{"mfdawr1", XSPR(31,339,181), XSPR_MASK, POWER10, EXT, {RS}},
7675{"mfrpr", XSPR(31,339,186), XSPR_MASK, POWER10, EXT, {RS}},
7676{"mfciabr", XSPR(31,339,187), XSPR_MASK, POWER10, EXT, {RS}},
7677{"mfdawrx0", XSPR(31,339,188), XSPR_MASK, POWER10, EXT, {RS}},
7678{"mfdawrx1", XSPR(31,339,189), XSPR_MASK, POWER10, EXT, {RS}},
7679{"mfhfscr", XSPR(31,339,190), XSPR_MASK, POWER10, EXT, {RS}},
7680{"mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, EXT, {RT}},
7681{"mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, EXT, {RT}},
7682{"mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, EXT, {RT, SPRG}},
7683{"mfusprg3", XSPR(31,339,259), XSPR_MASK, POWER10, EXT, {RT}},
7684{"mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, EXT, {RT}},
7685{"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, EXT, {RT}},
7686{"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, EXT, {RT}},
7687{"mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, EXT, {RT}},
7688{"mftbu", XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, EXT, {RT}},
7689{"mftb", X(31,339), X_MASK, POWER4|BOOKE, EXT, {RT, TBR}},
7690{"mftbl", XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, EXT, {RT}},
7691{"mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, EXT, {RT}},
7692{"mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, EXT, {RT}},
7693{"mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, EXT, {RT}},
7694{"mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, EXT, {RT}},
7695{"mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, EXT, {RT}},
7696{"mfear", XSPR(31,339,282), XSPR_MASK, PPC, TITAN|EXT, {RT}},
7697{"mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, EXT, {RT}},
7698{"mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, EXT, {RT}},
7699{"mfhsprg0", XSPR(31,339,304), XSPR_MASK, POWER10, EXT, {RS}},
7700{"mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, EXT, {RT}},
7701{"mfhsprg1", XSPR(31,339,305), XSPR_MASK, POWER10, EXT, {RS}},
7702{"mfhdisr", XSPR(31,339,306), XSPR_MASK, POWER10, EXT, {RS}},
7703{"mfhdar", XSPR(31,339,307), XSPR_MASK, POWER10, EXT, {RS}},
7704{"mfspurr", XSPR(31,339,308), XSPR_MASK, POWER10, EXT, {RS}},
7705{"mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, EXT, {RT}},
7706{"mfpurr", XSPR(31,339,309), XSPR_MASK, POWER10, EXT, {RS}},
7707{"mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, EXT, {RT}},
7708{"mfhdec", XSPR(31,339,310), XSPR_MASK, POWER10, EXT, {RS}},
7709{"mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, EXT, {RT}},
7710{"mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, EXT, {RT}},
7711{"mfhrmor", XSPR(31,339,313), XSPR_MASK, POWER10, EXT, {RS}},
7712{"mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, EXT, {RT}},
7713{"mfhsrr0", XSPR(31,339,314), XSPR_MASK, POWER10, EXT, {RS}},
7714{"mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, EXT, {RT}},
7715{"mfhsrr1", XSPR(31,339,315), XSPR_MASK, POWER10, EXT, {RS}},
7716{"mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, EXT, {RT}},
7717{"mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, EXT, {RT}},
7718{"mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, EXT, {RT}},
7719{"mflpcr", XSPR(31,339,318), XSPR_MASK, POWER10, EXT, {RS}},
7720{"mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, EXT, {RT}},
7721{"mflpidr", XSPR(31,339,319), XSPR_MASK, POWER10, EXT, {RS}},
7722{"mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, EXT, {RT}},
7723{"mfhmer", XSPR(31,339,336), XSPR_MASK, POWER7, EXT, {RS}},
7724{"mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, EXT, {RT}},
7725{"mfhmeer", XSPR(31,339,337), XSPR_MASK, POWER7, EXT, {RS}},
7726{"mfpcr", XSPR(31,339,338), XSPR_MASK, POWER10, EXT, {RS}},
7727{"mfheir", XSPR(31,339,339), XSPR_MASK, POWER10, EXT, {RS}},
7728{"mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, EXT, {RT}},
7729{"mfamor", XSPR(31,339,349), XSPR_MASK, POWER7, EXT, {RS}},
7730{"mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, EXT, {RT}},
7731{"mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, EXT, {RT}},
7732{"mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, EXT, {RT}},
7733{"mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, EXT, {RT}},
7734{"mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, EXT, {RT}},
7735{"mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, EXT, {RT}},
7736{"mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, EXT, {RT}},
7737{"mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, EXT, {RT}},
7738{"mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, EXT, {RT}},
7739{"mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, EXT, {RT}},
7740{"mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, EXT, {RT}},
7741{"mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, EXT, {RT}},
7742{"mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, EXT, {RT}},
7743{"mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, EXT, {RT}},
7744{"mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, EXT, {RT}},
7745{"mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, EXT, {RT}},
7746{"mftir", XSPR(31,339,446), XSPR_MASK, POWER10, EXT, {RS}},
7747{"mfptcr", XSPR(31,339,464), XSPR_MASK, POWER10, EXT, {RS}},
7748{"mfusprg0", XSPR(31,339,496), XSPR_MASK, POWER10, EXT, {RS}},
7749{"mfusprg1", XSPR(31,339,497), XSPR_MASK, POWER10, EXT, {RS}},
7750{"mfurmor", XSPR(31,339,505), XSPR_MASK, POWER10, EXT, {RS}},
7751{"mfusrr0", XSPR(31,339,506), XSPR_MASK, POWER10, EXT, {RS}},
7752{"mfusrr1", XSPR(31,339,507), XSPR_MASK, POWER10, EXT, {RS}},
7753{"mfsmfctrl", XSPR(31,339,511), XSPR_MASK, POWER10, EXT, {RS}},
7754{"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, EXT, {RT}},
7755{"mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, EXT, {RT}},
7756{"mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, EXT, {RT}},
7757{"mfivor32", XSPR(31,339,528), XSPR_MASK, PPCSPE|E6500, EXT, {RT}},
7758{"mfivor33", XSPR(31,339,529), XSPR_MASK, PPCSPE|E6500, EXT, {RT}},
7759{"mfivor34", XSPR(31,339,530), XSPR_MASK, PPCSPE, EXT, {RT}},
7760{"mfivor35", XSPR(31,339,531), XSPR_MASK, PPCPMR, EXT, {RT}},
7761{"mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, TITAN|EXT, {RT, SPRBAT}},
7762{"mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, TITAN|EXT, {RT, SPRBAT}},
7763{"mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, TITAN|EXT, {RT, SPRBAT}},
7764{"mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, TITAN|EXT, {RT, SPRBAT}},
7765{"mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, EXT, {RT}},
7766{"mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, EXT, {RT}},
7767{"mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, EXT, {RT}},
7768{"mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, EXT, {RT}},
7769{"mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, EXT, {RT}},
7770{"mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, EXT, {RT}},
7771{"mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, EXT, {RT}},
7772{"mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, EXT, {RT}},
7773{"mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, EXT, {RT}},
7774{"mfmcar", XSPR(31,339,573), XSPR_MASK, PPCRFMCI, TITAN|EXT, {RT}},
7775{"mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, EXT, {RT}},
7776{"mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, EXT, {RT}},
7777{"mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, EXT, {RT}},
7778{"mfusier2", XSPR(31,339,736), XSPR_MASK, POWER10, EXT, {RT}},
7779{"mfsier2", XSPR(31,339,736), XSPR_MASK, POWER10, EXT, {RT}},
7780{"mfusier3", XSPR(31,339,737), XSPR_MASK, POWER10, EXT, {RT}},
7781{"mfsier3", XSPR(31,339,737), XSPR_MASK, POWER10, EXT, {RT}},
7782{"mfummcr3", XSPR(31,339,738), XSPR_MASK, POWER10, EXT, {RT}},
7783{"mfmmcr3", XSPR(31,339,738), XSPR_MASK, POWER10, EXT, {RT}},
7784{"mfusier", XSPR(31,339,768), XSPR_MASK, POWER10, EXT, {RT}},
7785{"mfsier", XSPR(31,339,768), XSPR_MASK, POWER10, EXT, {RT}},
7786{"mfummcr2", XSPR(31,339,769), XSPR_MASK, POWER9, EXT, {RT}},
7787{"mfmmcr2", XSPR(31,339,769), XSPR_MASK, POWER9, EXT, {RT}},
7788{"mfummcra", XSPR(31,339,770), XSPR_MASK, POWER9, EXT, {RS}},
7789{"mfmmcra", XSPR(31,339,770), XSPR_MASK, POWER7, EXT, {RS}},
7790{"mfupmc1", XSPR(31,339,771), XSPR_MASK, POWER9, EXT, {RT}},
7791{"mfpmc1", XSPR(31,339,771), XSPR_MASK, POWER7, EXT, {RT}},
7792{"mfupmc2", XSPR(31,339,772), XSPR_MASK, POWER9, EXT, {RT}},
7793{"mfpmc2", XSPR(31,339,772), XSPR_MASK, POWER7, EXT, {RT}},
7794{"mfupmc3", XSPR(31,339,773), XSPR_MASK, POWER9, EXT, {RT}},
7795{"mfpmc3", XSPR(31,339,773), XSPR_MASK, POWER7, EXT, {RT}},
7796{"mfupmc4", XSPR(31,339,774), XSPR_MASK, POWER9, EXT, {RT}},
7797{"mfpmc4", XSPR(31,339,774), XSPR_MASK, POWER7, EXT, {RT}},
7798{"mfupmc5", XSPR(31,339,775), XSPR_MASK, POWER9, EXT, {RT}},
7799{"mfpmc5", XSPR(31,339,775), XSPR_MASK, POWER7, EXT, {RT}},
7800{"mfupmc6", XSPR(31,339,776), XSPR_MASK, POWER9, EXT, {RT}},
7801{"mfpmc6", XSPR(31,339,776), XSPR_MASK, POWER7, EXT, {RT}},
7802{"mfummcr0", XSPR(31,339,779), XSPR_MASK, POWER9, EXT, {RS}},
7803{"mfmmcr0", XSPR(31,339,779), XSPR_MASK, POWER7, EXT, {RS}},
7804{"mfusiar", XSPR(31,339,780), XSPR_MASK, POWER9, EXT, {RS}},
7805{"mfsiar", XSPR(31,339,780), XSPR_MASK, POWER9, EXT, {RS}},
7806{"mfusdar", XSPR(31,339,781), XSPR_MASK, POWER9, EXT, {RS}},
7807{"mfsdar", XSPR(31,339,781), XSPR_MASK, POWER9, EXT, {RS}},
7808{"mfummcr1", XSPR(31,339,782), XSPR_MASK, POWER9, EXT, {RS}},
7809{"mfmmcr1", XSPR(31,339,782), XSPR_MASK, POWER7, EXT, {RS}},
7810{"mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, EXT, {RT}},
7811{"mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, EXT, {RT}},
7812{"mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, EXT, {RT}},
7813{"mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, EXT, {RT}},
7814{"mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, EXT, {RT}},
7815{"mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, EXT, {RT}},
7816{"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, EXT, {RT}},
7817{"mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, EXT, {RT}},
7818{"mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, EXT, {RT}},
7819{"mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, EXT, {RT}},
7820{"mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, EXT, {RT}},
7821{"mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, EXT, {RT}},
7822{"mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, EXT, {RT}},
7823{"mfbescrs", XSPR(31,339,800), XSPR_MASK, POWER9, EXT, {RS}},
7824{"mfbescrsu", XSPR(31,339,801), XSPR_MASK, POWER9, EXT, {RS}},
7825{"mfbescrr", XSPR(31,339,802), XSPR_MASK, POWER9, EXT, {RS}},
7826{"mfbescrru", XSPR(31,339,803), XSPR_MASK, POWER9, EXT, {RS}},
7827{"mfebbhr", XSPR(31,339,804), XSPR_MASK, POWER9, EXT, {RS}},
7828{"mfebbrr", XSPR(31,339,805), XSPR_MASK, POWER9, EXT, {RS}},
7829{"mfbescr", XSPR(31,339,806), XSPR_MASK, POWER9, EXT, {RS}},
7830{"mftar", XSPR(31,339,815), XSPR_MASK, POWER9, EXT, {RS}},
7831{"mfasdr", XSPR(31,339,816), XSPR_MASK, POWER10, EXT, {RS}},
7832{"mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, EXT, {RT}},
7833{"mfmi_dbram0", XSPR(31,339,817), XSPR_MASK, PPC860, EXT, {RT}},
7834{"mfmi_dbram1", XSPR(31,339,818), XSPR_MASK, PPC860, EXT, {RT}},
7835{"mfpsscr", XSPR(31,339,823), XSPR_MASK, POWER10, EXT, {RS}},
7836{"mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, EXT, {RT}},
7837{"mfmd_dbram0", XSPR(31,339,825), XSPR_MASK, PPC860, EXT, {RT}},
7838{"mfmd_dbram1", XSPR(31,339,826), XSPR_MASK, PPC860, EXT, {RT}},
7839{"mfic", XSPR(31,339,848), XSPR_MASK, POWER8, EXT, {RS}},
7840{"mfvtb", XSPR(31,339,849), XSPR_MASK, POWER8, EXT, {RS}},
7841{"mfhpsscr", XSPR(31,339,855), XSPR_MASK, POWER10, EXT, {RS}},
7842{"mfivndx", XSPR(31,339,880), XSPR_MASK, TITAN, EXT, {RT}},
7843{"mfdvndx", XSPR(31,339,881), XSPR_MASK, TITAN, EXT, {RT}},
7844{"mfivlim", XSPR(31,339,882), XSPR_MASK, TITAN, EXT, {RT}},
7845{"mfdvlim", XSPR(31,339,883), XSPR_MASK, TITAN, EXT, {RT}},
7846{"mfclcsr", XSPR(31,339,884), XSPR_MASK, TITAN, EXT, {RT}},
7847{"mfccr1", XSPR(31,339,888), XSPR_MASK, TITAN, EXT, {RT}},
4d5d5d46
PB
7848{"mfppr", XSPR(31,339,896), XSPR_MASK, POWER5, EXT, {RT}},
7849{"mfppr32", XSPR(31,339,898), XSPR_MASK, POWER5, EXT, {RT}},
1ff6a3b8
AM
7850{"mfgqr", XSPR(31,339,912), XSPRGQR_MASK, PPCPS, EXT, {RT, SPRGQR}},
7851{"mfhid2", XSPR(31,339,920), XSPR_MASK, GEKKO, EXT, {RT}},
7852{"mfwpar", XSPR(31,339,921), XSPR_MASK, GEKKO, EXT, {RT}},
7853{"mfdmau", XSPR(31,339,922), XSPR_MASK, GEKKO, EXT, {RT}},
7854{"mfdmal", XSPR(31,339,923), XSPR_MASK, GEKKO, EXT, {RT}},
7855{"mfrstcfg", XSPR(31,339,923), XSPR_MASK, TITAN, EXT, {RT}},
7856{"mfdcdbtrl", XSPR(31,339,924), XSPR_MASK, TITAN, EXT, {RT}},
7857{"mfdcdbtrh", XSPR(31,339,925), XSPR_MASK, TITAN, EXT, {RT}},
7858{"mficdbtr", XSPR(31,339,927), XSPR_MASK, TITAN, EXT, {RT}},
7859{"mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, EXT, {RT}},
7860{"mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, EXT, {RT}},
7861{"mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, EXT, {RT}},
7862{"mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, EXT, {RT}},
7863{"mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, EXT, {RT}},
7864{"mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, EXT, {RT}},
7865{"mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, EXT, {RT}},
7866{"mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, EXT, {RT}},
7867{"mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, EXT, {RT}},
7868{"mfmmucr", XSPR(31,339,946), XSPR_MASK, TITAN, EXT, {RT}},
7869{"mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, EXT, {RT}},
7870{"mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, EXT, {RT}},
7871{"mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, EXT, {RT}},
7872{"mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, EXT, {RT}},
7873{"mfdvc2", XSPR(31,339,951), XSPR_MASK, PPC405, EXT, {RT}},
7874{"mfmmcr0", XSPR(31,339,952), XSPR_MASK, PPC750, EXT, {RT}},
7875{"mfpmc1", XSPR(31,339,953), XSPR_MASK, PPC750, EXT, {RT}},
7876{"mfsgr", XSPR(31,339,953), XSPR_MASK, PPC403, EXT, {RT}},
7877{"mfdcwr", XSPR(31,339,954), XSPR_MASK, PPC403, EXT, {RT}},
7878{"mfpmc2", XSPR(31,339,954), XSPR_MASK, PPC750, EXT, {RT}},
7879{"mfsia", XSPR(31,339,955), XSPR_MASK, PPC750, EXT, {RT}},
7880{"mfsler", XSPR(31,339,955), XSPR_MASK, PPC405, EXT, {RT}},
7881{"mfmmcr1", XSPR(31,339,956), XSPR_MASK, PPC750, EXT, {RT}},
7882{"mfsu0r", XSPR(31,339,956), XSPR_MASK, PPC405, EXT, {RT}},
7883{"mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, EXT, {RT}},
7884{"mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, EXT, {RT}},
7885{"mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, EXT, {RT}},
7886{"mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, EXT, {RT}},
7887{"mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, EXT, {RT}},
7888{"mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, EXT, {RT}},
7889{"mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, EXT, {RT}},
7890{"mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, EXT, {RT}},
7891{"mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, EXT, {RT}},
7892{"mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, EXT, {RT}},
7893{"mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, EXT, {RT}},
7894{"mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, EXT, {RT}},
7895{"mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, EXT, {RT}},
7896{"mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, EXT, {RT}},
7897{"mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, EXT, {RT}},
7898{"mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, EXT, {RT}},
7899{"mfhid0", XSPR(31,339,1008), XSPR_MASK, GEKKO, EXT, {RT}},
7900{"mfhid1", XSPR(31,339,1009), XSPR_MASK, GEKKO, EXT, {RT}},
7901{"mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, EXT, {RT}},
7902{"mfiabr", XSPR(31,339,1010), XSPR_MASK, GEKKO, EXT, {RT}},
7903{"mfhid4", XSPR(31,339,1011), XSPR_MASK, BROADWAY, EXT, {RT}},
7904{"mfdbdr", XSPR(31,339,1011), XSPR_MASK, TITAN, EXT, {RS}},
7905{"mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, EXT, {RT}},
7906{"mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, EXT, {RT}},
7907{"mfdabr", XSPR(31,339,1013), XSPR_MASK, PPC750, EXT, {RT}},
7908{"mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, EXT, {RT}},
7909{"mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, EXT, {RT}},
7910{"mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, EXT, {RT}},
7911{"mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, EXT, {RT}},
7912{"mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, EXT, {RT}},
7913{"mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, EXT, {RT}},
7914{"mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, EXT, {RT}},
7915{"mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, EXT, {RT}},
7916{"mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, EXT, {RT}},
7917{"mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, EXT, {RT}},
7918{"mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, EXT, {RT}},
7919{"mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, EXT, {RT}},
7920{"mfpir", XSPR(31,339,1023), XSPR_MASK, POWER10, EXT, {RT}},
7921{"mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, EXT, {RT}},
14b57c7c
AM
7922{"mfspr", X(31,339), X_MASK, COM, 0, {RT, SPR}},
7923
7924{"lwax", X(31,341), X_MASK, PPC64, 0, {RT, RA0, RB}},
7925
7926{"dst", XDSS(31,342,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
1ff6a3b8 7927{"dstt", XDSS(31,342,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
14b57c7c
AM
7928
7929{"lhax", X(31,343), X_MASK, COM, 0, {RT, RA0, RB}},
7930
7931{"lvxl", X(31,359), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
7932
7933{"abs", XO(31,360,0,0), XORB_MASK, M601, 0, {RT, RA}},
7934{"abs.", XO(31,360,0,1), XORB_MASK, M601, 0, {RT, RA}},
7935
7936{"divs", XO(31,363,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
7937{"divs.", XO(31,363,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
7938
7939{"lxvwsx", X(31,364), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
7940
7941{"tlbia", X(31,370), 0xffffffff, PPC, E500|TITAN, {0}},
1cb0a767 7942
1ff6a3b8
AM
7943{"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371|POWER4|EXT, {RT}},
7944{"mftb", X(31,371), X_MASK, PPC, NO371|POWER4, {RT, TBR}},
7945{"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371|POWER4|EXT, {RT}},
1cb0a767 7946
14b57c7c 7947{"lwaux", X(31,373), X_MASK, PPC64, 0, {RT, RAL, RB}},
1cb0a767 7948
14b57c7c 7949{"dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
1ff6a3b8 7950{"dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
1cb0a767 7951
14b57c7c 7952{"lhaux", X(31,375), X_MASK, COM, 0, {RT, RAL, RB}},
1cb0a767 7953
14b57c7c 7954{"popcntw", X(31,378), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
066be9f7 7955
4f3e9537
PB
7956{"setbc", X(31,384), XRB_MASK, POWER10, 0, {RT, BI}},
7957
14b57c7c
AM
7958{"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RA, RS}},
7959{"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, 0, {RA, RS}},
1cb0a767 7960
ac8f0f72 7961{"stvexbx", X(31,389), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7962
14b57c7c
AM
7963{"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
7964{"stdfcmx", APU(31,391,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
1cb0a767 7965
14b57c7c
AM
7966{"divdeu", XO(31,393,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7967{"divdeu.", XO(31,393,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7968{"divweu", XO(31,395,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7969{"divweu.", XO(31,395,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 7970
14b57c7c
AM
7971{"stxvx", X(31,396), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
7972{"stxvl", X(31,397), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 7973
14b57c7c 7974{"dcblce", X(31,398), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
1cb0a767 7975
14b57c7c 7976{"slbmte", X(31,402), XRA_MASK, PPC64, 0, {RS, RB}},
1cb0a767 7977
14b57c7c 7978{"mtvsrws", X(31,403), XX1RB_MASK, PPCVSX3, 0, {XT6, RA}},
a680de9a 7979
14b57c7c 7980{"pbt.", XRC(31,404,1), X_MASK, POWER8, 0, {RS, RA0, RB}},
c0637f3a 7981
14b57c7c
AM
7982{"icswx", XRC(31,406,0), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
7983{"icswx.", XRC(31,406,1), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
e0d602ec 7984
14b57c7c 7985{"sthx", X(31,407), X_MASK, COM, 0, {RS, RA0, RB}},
1cb0a767 7986
14b57c7c
AM
7987{"orc", XRC(31,412,0), X_MASK, COM, 0, {RA, RS, RB}},
7988{"orc.", XRC(31,412,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 7989
14b57c7c 7990{"sthepx", X(31,415), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
1cb0a767 7991
4f3e9537
PB
7992{"setbcr", X(31,416), XRB_MASK, POWER10, 0, {RT, BI}},
7993
62adc510 7994{"mtdcrux", X(31,419), X_MASK, PPC464|PPC476, 0, {RA, RS}},
1cb0a767 7995
ac8f0f72 7996{"stvexhx", X(31,421), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7997
14b57c7c 7998{"dcblq.", XRC(31,422,1), X_MASK, E6500, 0, {CT, RA0, RB}},
aea77599 7999
14b57c7c
AM
8000{"divde", XO(31,425,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8001{"divde.", XO(31,425,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8002{"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8003{"divwe.", XO(31,427,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 8004
14b57c7c 8005{"stxvll", X(31,429), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 8006
14b57c7c 8007{"clrbhrb", X(31,430), 0xffffffff, POWER8, 0, {0}},
c0637f3a 8008
14b57c7c 8009{"slbie", X(31,434), XRTRA_MASK, PPC64, 0, {RB}},
1cb0a767 8010
14b57c7c 8011{"mtvsrdd", X(31,435), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 8012
14b57c7c 8013{"ecowx", X(31,438), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
1cb0a767 8014
14b57c7c 8015{"sthux", X(31,439), X_MASK, COM, 0, {RS, RAS, RB}},
1cb0a767 8016
08770ec2 8017/* or 1,1,1 */
1ff6a3b8 8018{"cctpl", 0x7c210b78, 0xffffffff, CELL, EXT, {0}},
08770ec2 8019/* or 2,2,2 */
1ff6a3b8 8020{"cctpm", 0x7c421378, 0xffffffff, CELL, EXT, {0}},
08770ec2 8021/* or 3,3,3 */
1ff6a3b8 8022{"cctph", 0x7c631b78, 0xffffffff, CELL, EXT, {0}},
8b2742a1 8023/* or 26,26,26 */
1ff6a3b8 8024{"miso", 0x7f5ad378, 0xffffffff, POWER8|E6500, EXT, {0}},
8b2742a1 8025/* or 27,27,27 */
1ff6a3b8 8026{"yield", 0x7f7bdb78, 0xffffffff, POWER7, EXT, {0}},
8b2742a1 8027/* or 28,28,28 */
1ff6a3b8 8028{"mdors", 0x7f9ce378, 0xffffffff, E500MC, EXT, {0}},
7993124e 8029{"db8cyc", 0x7f9ce378, 0xffffffff, CELL, EXT, {0}},
8b2742a1 8030/* or 29,29,29 */
1ff6a3b8 8031{"mdoio", 0x7fbdeb78, 0xffffffff, POWER7, EXT, {0}},
7993124e 8032{"db10cyc", 0x7fbdeb78, 0xffffffff, CELL, EXT, {0}},
8b2742a1 8033/* or 30,30,30 */
1ff6a3b8 8034{"mdoom", 0x7fdef378, 0xffffffff, POWER7, EXT, {0}},
7993124e
AM
8035{"db12cyc", 0x7fdef378, 0xffffffff, CELL, EXT, {0}},
8036/* or 31,31,31 */
8037{"db16cyc", 0x7ffffb78, 0xffffffff, CELL, EXT, {0}},
08770ec2 8038
1ff6a3b8 8039{"mr", XRC(31,444,0), X_MASK, COM, EXT, {RA, RSB}},
14b57c7c 8040{"or", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RB}},
1ff6a3b8 8041{"mr.", XRC(31,444,1), X_MASK, COM, EXT, {RA, RSB}},
14b57c7c
AM
8042{"or.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RB}},
8043
4f3e9537
PB
8044{"setnbc", X(31,448), XRB_MASK, POWER10, 0, {RT, BI}},
8045
14b57c7c
AM
8046{"mtexisr", XSPR(31,451, 64), XSPR_MASK, PPC403, 0, {RS}},
8047{"mtexier", XSPR(31,451, 66), XSPR_MASK, PPC403, 0, {RS}},
8048{"mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, 0, {RS}},
8049{"mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, 0, {RS}},
8050{"mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, 0, {RS}},
8051{"mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, 0, {RS}},
8052{"mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, 0, {RS}},
8053{"mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, 0, {RS}},
8054{"mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, 0, {RS}},
8055{"mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, 0, {RS}},
8056{"mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, 0, {RS}},
8057{"mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, 0, {RS}},
8058{"mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, 0, {RS}},
8059{"mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, 0, {RS}},
8060{"mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, 0, {RS}},
8061{"mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, 0, {RS}},
8062{"mtdmasa0", XSPR(31,451,195), XSPR_MASK, PPC403, 0, {RS}},
8063{"mtdmacc0", XSPR(31,451,196), XSPR_MASK, PPC403, 0, {RS}},
8064{"mtdmacr1", XSPR(31,451,200), XSPR_MASK, PPC403, 0, {RS}},
8065{"mtdmact1", XSPR(31,451,201), XSPR_MASK, PPC403, 0, {RS}},
8066{"mtdmada1", XSPR(31,451,202), XSPR_MASK, PPC403, 0, {RS}},
8067{"mtdmasa1", XSPR(31,451,203), XSPR_MASK, PPC403, 0, {RS}},
8068{"mtdmacc1", XSPR(31,451,204), XSPR_MASK, PPC403, 0, {RS}},
8069{"mtdmacr2", XSPR(31,451,208), XSPR_MASK, PPC403, 0, {RS}},
8070{"mtdmact2", XSPR(31,451,209), XSPR_MASK, PPC403, 0, {RS}},
8071{"mtdmada2", XSPR(31,451,210), XSPR_MASK, PPC403, 0, {RS}},
8072{"mtdmasa2", XSPR(31,451,211), XSPR_MASK, PPC403, 0, {RS}},
8073{"mtdmacc2", XSPR(31,451,212), XSPR_MASK, PPC403, 0, {RS}},
8074{"mtdmacr3", XSPR(31,451,216), XSPR_MASK, PPC403, 0, {RS}},
8075{"mtdmact3", XSPR(31,451,217), XSPR_MASK, PPC403, 0, {RS}},
8076{"mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, 0, {RS}},
8077{"mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, 0, {RS}},
8078{"mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, 0, {RS}},
8079{"mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, 0, {RS}},
8080{"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}},
8081{"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, 0, {SPR, RS}},
8082
ac8f0f72 8083{"stvexwx", X(31,453), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c 8084
62adc510 8085{"dccci", X(31,454), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
14b57c7c
AM
8086{"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
8087
8088{"divdu", XO(31,457,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
8089{"divdu.", XO(31,457,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
8090
8091{"divwu", XO(31,459,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
8092{"divwu.", XO(31,459,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
8093
7dacb40b 8094{"stxvpx", X(31,461), XX1_MASK, POWER10, 0, {XSP, RA0, RB}},
94ba9882 8095
14b57c7c 8096{"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, 0, {PMR, RS}},
c03dc33b 8097{"mttmr", X(31,494), X_MASK, PPCTMR, 0, {TMR, RS}},
14b57c7c
AM
8098
8099{"slbieg", X(31,466), XRA_MASK, POWER9, 0, {RS, RB}},
8100
1ff6a3b8
AM
8101{"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, EXT, {RS}},
8102{"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, EXT, {RS}},
8103{"mtudscr", XSPR(31,467, 3), XSPR_MASK, POWER9, EXT, {RS}},
8104{"mtlr", XSPR(31,467, 8), XSPR_MASK, COM, EXT, {RS}},
8105{"mtctr", XSPR(31,467, 9), XSPR_MASK, COM, EXT, {RS}},
8106{"mtuamr", XSPR(31,467, 13), XSPR_MASK, POWER9, EXT, {RS}},
8107{"mtdscr", XSPR(31,467, 17), XSPR_MASK, POWER6, EXT, {RS}},
8108{"mttid", XSPR(31,467, 17), XSPR_MASK, POWER, EXT, {RS}},
8109{"mtdsisr", XSPR(31,467, 18), XSPR_MASK, COM, TITAN|EXT, {RS}},
8110{"mtdar", XSPR(31,467, 19), XSPR_MASK, COM, TITAN|EXT, {RS}},
8111{"mtrtcu", XSPR(31,467, 20), XSPR_MASK, COM, TITAN|EXT, {RS}},
8112{"mtrtcl", XSPR(31,467, 21), XSPR_MASK, COM, TITAN|EXT, {RS}},
8113{"mtdec", XSPR(31,467, 22), XSPR_MASK, COM, EXT, {RS}},
8114{"mtsdr0", XSPR(31,467, 24), XSPR_MASK, POWER, EXT, {RS}},
8115{"mtsdr1", XSPR(31,467, 25), XSPR_MASK, COM, TITAN|EXT, {RS}},
8116{"mtsrr0", XSPR(31,467, 26), XSPR_MASK, COM, EXT, {RS}},
8117{"mtsrr1", XSPR(31,467, 27), XSPR_MASK, COM, EXT, {RS}},
8118{"mtcfar", XSPR(31,467, 28), XSPR_MASK, POWER6, EXT, {RS}},
8119{"mtamr", XSPR(31,467, 29), XSPR_MASK, POWER7, EXT, {RS}},
8120{"mtpidr", XSPR(31,467, 48), XSPR_MASK, POWER10, EXT, {RS}},
8121{"mtpid", XSPR(31,467, 48), XSPR_MASK, BOOKE, EXT, {RS}},
8122{"mtdecar", XSPR(31,467, 54), XSPR_MASK, BOOKE, EXT, {RS}},
8123{"mtcsrr0", XSPR(31,467, 58), XSPR_MASK, BOOKE, EXT, {RS}},
8124{"mtcsrr1", XSPR(31,467, 59), XSPR_MASK, BOOKE, EXT, {RS}},
8125{"mtiamr", XSPR(31,467, 61), XSPR_MASK, POWER10, EXT, {RS}},
8126{"mtdear", XSPR(31,467, 61), XSPR_MASK, BOOKE, EXT, {RS}},
8127{"mtesr", XSPR(31,467, 62), XSPR_MASK, BOOKE, EXT, {RS}},
8128{"mtivpr", XSPR(31,467, 63), XSPR_MASK, BOOKE, EXT, {RS}},
8129{"mttfhar", XSPR(31,467,128), XSPR_MASK, POWER9, EXT, {RS}},
8130{"mttfiar", XSPR(31,467,129), XSPR_MASK, POWER9, EXT, {RS}},
8131{"mttexasr", XSPR(31,467,130), XSPR_MASK, POWER9, EXT, {RS}},
8132{"mttexasru", XSPR(31,467,131), XSPR_MASK, POWER9, EXT, {RS}},
8133{"mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, EXT, {RS}},
8134{"mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, EXT, {RS}},
8135{"mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, EXT, {RS}},
8136{"mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, EXT, {RS}},
8137{"mticr", XSPR(31,467,148), XSPR_MASK, PPC860, EXT, {RS}},
8138{"mtder", XSPR(31,467,149), XSPR_MASK, PPC860, EXT, {RS}},
8139{"mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, EXT, {RS}},
8140{"mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, EXT, {RS}},
8141{"mtctrl", XSPR(31,467,152), XSPR_MASK, POWER4, EXT, {RS}},
8142{"mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, EXT, {RS}},
8143{"mtfscr", XSPR(31,467,153), XSPR_MASK, POWER10, EXT, {RS}},
8144{"mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, EXT, {RS}},
8145{"mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, EXT, {RS}},
8146{"mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, EXT, {RS}},
8147{"mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, EXT, {RS}},
8148{"mtuamor", XSPR(31,467,157), XSPR_MASK, POWER7, EXT, {RS}},
8149{"mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, EXT, {RS}},
8150{"mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, EXT, {RS}},
8151{"mtpspb", XSPR(31,467,159), XSPR_MASK, POWER10, EXT, {RS}},
8152{"mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, EXT, {RS}},
8153{"mtdpdes", XSPR(31,467,176), XSPR_MASK, POWER10, EXT, {RS}},
8154{"mtdawr0", XSPR(31,467,180), XSPR_MASK, POWER10, EXT, {RS}},
8155{"mtdawr1", XSPR(31,467,181), XSPR_MASK, POWER10, EXT, {RS}},
8156{"mtrpr", XSPR(31,467,186), XSPR_MASK, POWER10, EXT, {RS}},
8157{"mtciabr", XSPR(31,467,187), XSPR_MASK, POWER10, EXT, {RS}},
8158{"mtdawrx0", XSPR(31,467,188), XSPR_MASK, POWER10, EXT, {RS}},
8159{"mtdawrx1", XSPR(31,467,189), XSPR_MASK, POWER10, EXT, {RS}},
8160{"mthfscr", XSPR(31,467,190), XSPR_MASK, POWER10, EXT, {RS}},
8161{"mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, EXT, {RS}},
8162{"mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, EXT, {RS}},
8163{"mtsprg", XSPR(31,467,256), XSPRG_MASK, PPC, EXT, {SPRG, RS}},
8164{"mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, EXT, {RS}},
8165{"mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, EXT, {RS}},
8166{"mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, EXT, {RS}},
8167{"mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, EXT, {RS}},
8168{"mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, EXT, {RS}},
8169{"mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, EXT, {RS}},
8170{"mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, EXT, {RS}},
8171{"mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, EXT, {RS}},
8172{"mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, EXT, {RS}},
8173{"mtear", XSPR(31,467,282), XSPR_MASK, PPC, TITAN|EXT, {RS}},
8174{"mttbl", XSPR(31,467,284), XSPR_MASK, PPC, EXT, {RS}},
8175{"mttbu", XSPR(31,467,285), XSPR_MASK, PPC, EXT, {RS}},
8176{"mttbu40", XSPR(31,467,286), XSPR_MASK, POWER10, EXT, {RS}},
8177{"mthsprg0", XSPR(31,467,304), XSPR_MASK, POWER10, EXT, {RS}},
8178{"mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, EXT, {RS}},
8179{"mthsprg1", XSPR(31,467,305), XSPR_MASK, POWER10, EXT, {RS}},
8180{"mthdisr", XSPR(31,467,306), XSPR_MASK, POWER10, EXT, {RS}},
8181{"mthdar", XSPR(31,467,307), XSPR_MASK, POWER10, EXT, {RS}},
8182{"mtspurr", XSPR(31,467,308), XSPR_MASK, POWER10, EXT, {RS}},
8183{"mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, EXT, {RS}},
8184{"mtpurr", XSPR(31,467,309), XSPR_MASK, POWER10, EXT, {RS}},
8185{"mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, EXT, {RS}},
8186{"mthdec", XSPR(31,467,310), XSPR_MASK, POWER10, EXT, {RS}},
8187{"mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, EXT, {RS}},
8188{"mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, EXT, {RS}},
8189{"mthrmor", XSPR(31,467,313), XSPR_MASK, POWER10, EXT, {RS}},
8190{"mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, EXT, {RS}},
8191{"mthsrr0", XSPR(31,467,314), XSPR_MASK, POWER10, EXT, {RS}},
8192{"mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, EXT, {RS}},
8193{"mthsrr1", XSPR(31,467,315), XSPR_MASK, POWER10, EXT, {RS}},
8194{"mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, EXT, {RS}},
8195{"mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, EXT, {RS}},
8196{"mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, EXT, {RS}},
8197{"mtlpcr", XSPR(31,467,318), XSPR_MASK, POWER10, EXT, {RS}},
8198{"mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, EXT, {RS}},
8199{"mtlpidr", XSPR(31,467,319), XSPR_MASK, POWER10, EXT, {RS}},
8200{"mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, EXT, {RS}},
8201{"mthmer", XSPR(31,467,336), XSPR_MASK, POWER7, EXT, {RS}},
8202{"mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, EXT, {RS}},
8203{"mthmeer", XSPR(31,467,337), XSPR_MASK, POWER7, EXT, {RS}},
8204{"mtpcr", XSPR(31,467,338), XSPR_MASK, POWER10, EXT, {RS}},
8205{"mtheir", XSPR(31,467,339), XSPR_MASK, POWER10, EXT, {RS}},
8206{"mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, EXT, {RS}},
8207{"mtamor", XSPR(31,467,349), XSPR_MASK, POWER7, EXT, {RS}},
8208{"mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, EXT, {RS}},
8209{"mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, EXT, {RS}},
8210{"mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, EXT, {RS}},
8211{"mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, EXT, {RS}},
8212{"mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, EXT, {RS}},
8213{"mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, EXT, {RS}},
8214{"mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, EXT, {RS}},
8215{"mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, EXT, {RS}},
8216{"mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, EXT, {RS}},
8217{"mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, EXT, {RS}},
8218{"mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, EXT, {RS}},
8219{"mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, EXT, {RS}},
8220{"mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, EXT, {RS}},
8221{"mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, EXT, {RS}},
8222{"mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, EXT, {RS}},
8223{"mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, EXT, {RS}},
8224{"mtptcr", XSPR(31,467,464), XSPR_MASK, POWER10, EXT, {RS}},
8225{"mtusprg0", XSPR(31,467,496), XSPR_MASK, POWER10, EXT, {RS}},
8226{"mtusprg1", XSPR(31,467,497), XSPR_MASK, POWER10, EXT, {RS}},
8227{"mturmor", XSPR(31,467,505), XSPR_MASK, POWER10, EXT, {RS}},
8228{"mtusrr0", XSPR(31,467,506), XSPR_MASK, POWER10, EXT, {RS}},
8229{"mtusrr1", XSPR(31,467,507), XSPR_MASK, POWER10, EXT, {RS}},
8230{"mtsmfctrl", XSPR(31,467,511), XSPR_MASK, POWER10, EXT, {RS}},
8231{"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, EXT, {RS}},
8232{"mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, EXT, {RS}},
8233{"mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, EXT, {RS}},
8234{"mtivor32", XSPR(31,467,528), XSPR_MASK, PPCSPE|E6500, EXT, {RS}},
8235{"mtivor33", XSPR(31,467,529), XSPR_MASK, PPCSPE|E6500, EXT, {RS}},
8236{"mtivor34", XSPR(31,467,530), XSPR_MASK, PPCSPE, EXT, {RS}},
8237{"mtivor35", XSPR(31,467,531), XSPR_MASK, PPCPMR, EXT, {RS}},
8238{"mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, TITAN|EXT, {SPRBAT, RS}},
8239{"mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, TITAN|EXT, {SPRBAT, RS}},
8240{"mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, TITAN|EXT, {SPRBAT, RS}},
8241{"mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, TITAN|EXT, {SPRBAT, RS}},
8242{"mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, EXT, {RS}},
8243{"mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, EXT, {RS}},
8244{"mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, EXT, {RS}},
8245{"mtsier2", XSPR(31,467,752), XSPR_MASK, POWER10, EXT, {RS}},
8246{"mtsier3", XSPR(31,467,753), XSPR_MASK, POWER10, EXT, {RS}},
8247{"mtmmcr3", XSPR(31,467,754), XSPR_MASK, POWER10, EXT, {RS}},
8248{"mtummcr2", XSPR(31,467,769), XSPR_MASK, POWER9, EXT, {RS}},
8249{"mtmmcr2", XSPR(31,467,769), XSPR_MASK, POWER9, EXT, {RS}},
8250{"mtummcra", XSPR(31,467,770), XSPR_MASK, POWER9, EXT, {RS}},
8251{"mtupmc1", XSPR(31,467,771), XSPR_MASK, POWER9, EXT, {RS}},
8252{"mtupmc2", XSPR(31,467,772), XSPR_MASK, POWER9, EXT, {RS}},
8253{"mtupmc3", XSPR(31,467,773), XSPR_MASK, POWER9, EXT, {RS}},
8254{"mtupmc4", XSPR(31,467,774), XSPR_MASK, POWER9, EXT, {RS}},
8255{"mtupmc5", XSPR(31,467,775), XSPR_MASK, POWER9, EXT, {RS}},
8256{"mtupmc6", XSPR(31,467,776), XSPR_MASK, POWER9, EXT, {RS}},
8257{"mtummcr0", XSPR(31,467,779), XSPR_MASK, POWER9, EXT, {RS}},
8258{"mtsier", XSPR(31,467,784), XSPR_MASK, POWER10, EXT, {RS}},
8259{"mtmmcra", XSPR(31,467,786), XSPR_MASK, POWER7, EXT, {RS}},
8260{"mtpmc1", XSPR(31,467,787), XSPR_MASK, POWER7, EXT, {RS}},
8261{"mtpmc2", XSPR(31,467,788), XSPR_MASK, POWER7, EXT, {RS}},
8262{"mtpmc3", XSPR(31,467,789), XSPR_MASK, POWER7, EXT, {RS}},
8263{"mtpmc4", XSPR(31,467,790), XSPR_MASK, POWER7, EXT, {RS}},
8264{"mtpmc5", XSPR(31,467,791), XSPR_MASK, POWER7, EXT, {RS}},
8265{"mtpmc6", XSPR(31,467,792), XSPR_MASK, POWER7, EXT, {RS}},
8266{"mtmmcr0", XSPR(31,467,795), XSPR_MASK, POWER7, EXT, {RS}},
8267{"mtsiar", XSPR(31,467,796), XSPR_MASK, POWER10, EXT, {RS}},
8268{"mtsdar", XSPR(31,467,797), XSPR_MASK, POWER10, EXT, {RS}},
8269{"mtmmcr1", XSPR(31,467,798), XSPR_MASK, POWER7, EXT, {RS}},
8270{"mtbescrs", XSPR(31,467,800), XSPR_MASK, POWER9, EXT, {RS}},
8271{"mtbescrsu", XSPR(31,467,801), XSPR_MASK, POWER9, EXT, {RS}},
8272{"mtbescrr", XSPR(31,467,802), XSPR_MASK, POWER9, EXT, {RS}},
8273{"mtbescrru", XSPR(31,467,803), XSPR_MASK, POWER9, EXT, {RS}},
8274{"mtebbhr", XSPR(31,467,804), XSPR_MASK, POWER9, EXT, {RS}},
8275{"mtebbrr", XSPR(31,467,805), XSPR_MASK, POWER9, EXT, {RS}},
8276{"mtbescr", XSPR(31,467,806), XSPR_MASK, POWER9, EXT, {RS}},
8277{"mttar", XSPR(31,467,815), XSPR_MASK, POWER9, EXT, {RS}},
8278{"mtasdr", XSPR(31,467,816), XSPR_MASK, POWER10, EXT, {RS}},
8279{"mtpsscr", XSPR(31,467,823), XSPR_MASK, POWER10, EXT, {RS}},
8280{"mtic", XSPR(31,467,848), XSPR_MASK, POWER8, EXT, {RS}},
8281{"mtvtb", XSPR(31,467,849), XSPR_MASK, POWER8, EXT, {RS}},
8282{"mthpsscr", XSPR(31,467,855), XSPR_MASK, POWER10, EXT, {RS}},
8283{"mtivndx", XSPR(31,467,880), XSPR_MASK, TITAN, EXT, {RS}},
8284{"mtdvndx", XSPR(31,467,881), XSPR_MASK, TITAN, EXT, {RS}},
8285{"mtivlim", XSPR(31,467,882), XSPR_MASK, TITAN, EXT, {RS}},
8286{"mtdvlim", XSPR(31,467,883), XSPR_MASK, TITAN, EXT, {RS}},
8287{"mtclcsr", XSPR(31,467,884), XSPR_MASK, TITAN, EXT, {RS}},
8288{"mtccr1", XSPR(31,467,888), XSPR_MASK, TITAN, EXT, {RS}},
4d5d5d46
PB
8289{"mtppr", XSPR(31,467,896), XSPR_MASK, POWER5, EXT, {RS}},
8290{"mtppr32", XSPR(31,467,898), XSPR_MASK, POWER5, EXT, {RS}},
1ff6a3b8
AM
8291{"mtgqr", XSPR(31,467,912), XSPRGQR_MASK, PPCPS, EXT, {SPRGQR, RS}},
8292{"mthid2", XSPR(31,467,920), XSPR_MASK, GEKKO, EXT, {RS}},
8293{"mtwpar", XSPR(31,467,921), XSPR_MASK, GEKKO, EXT, {RS}},
8294{"mtdmau", XSPR(31,467,922), XSPR_MASK, GEKKO, EXT, {RS}},
8295{"mtdmal", XSPR(31,467,923), XSPR_MASK, GEKKO, EXT, {RS}},
8296{"mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, EXT, {RS}},
8297{"mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, EXT, {RS}},
8298{"mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, EXT, {RS}},
8299{"mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, EXT, {RS}},
8300{"mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, EXT, {RS}},
8301{"mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, EXT, {RS}},
8302{"mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, EXT, {RS}},
8303{"mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, EXT, {RS}},
8304{"mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, EXT, {RS}},
8305{"mtrmmucr", XSPR(31,467,946), XSPR_MASK, TITAN, EXT, {RS}},
8306{"mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, EXT, {RS}},
8307{"mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, EXT, {RS}},
8308{"mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, EXT, {RS}},
8309{"mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, EXT, {RS}},
8310{"mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, EXT, {RS}},
8311{"mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, EXT, {RS}},
8312{"mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, EXT, {RS}},
8313{"mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, EXT, {RS}},
8314{"mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, EXT, {RS}},
8315{"mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, EXT, {RS}},
8316{"mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, EXT, {RS}},
8317{"mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, EXT, {RS}},
8318{"mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, EXT, {RS}},
8319{"mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, EXT, {RS}},
8320{"mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, EXT, {RS}},
8321{"mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, EXT, {RS}},
8322{"mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, EXT, {RS}},
8323{"mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, EXT, {RS}},
8324{"mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, EXT, {RS}},
8325{"mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, EXT, {RS}},
8326{"mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, EXT, {RS}},
8327{"mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, EXT, {RS}},
8328{"mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, EXT, {RS}},
8329{"mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, EXT, {RS}},
8330{"mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, EXT, {RS}},
8331{"mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, EXT, {RS}},
8332{"mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, EXT, {RS}},
8333{"mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, EXT, {RS}},
8334{"mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, EXT, {RS}},
8335{"mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, EXT, {RS}},
8336{"mthid0", XSPR(31,467,1008), XSPR_MASK, GEKKO, EXT, {RS}},
8337{"mthid1", XSPR(31,467,1009), XSPR_MASK, GEKKO, EXT, {RS}},
8338{"mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, EXT, {RS}},
8339{"mtiabr", XSPR(31,467,1010), XSPR_MASK, GEKKO, EXT, {RS}},
8340{"mthid4", XSPR(31,467,1011), XSPR_MASK, BROADWAY, EXT, {RS}},
8341{"mtdbdr", XSPR(31,467,1011), XSPR_MASK, TITAN, EXT, {RS}},
8342{"mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, EXT, {RS}},
8343{"mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, EXT, {RS}},
8344{"mtdabr", XSPR(31,467,1013), XSPR_MASK, PPC750, EXT, {RS}},
8345{"mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, EXT, {RS}},
8346{"mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, EXT, {RS}},
8347{"mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, EXT, {RS}},
8348{"mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, EXT, {RS}},
8349{"mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, EXT, {RS}},
8350{"mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, EXT, {RS}},
8351{"mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, EXT, {RS}},
8352{"mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, EXT, {RS}},
8353{"mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, EXT, {RS}},
8354{"mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, EXT, {RS}},
8355{"mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, EXT, {RS}},
8356{"mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, EXT, {RS}},
8357{"mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, EXT, {RS}},
14b57c7c
AM
8358{"mtspr", X(31,467), X_MASK, COM, 0, {SPR, RS}},
8359
8360{"dcbi", X(31,470), XRT_MASK, PPC, 0, {RA0, RB}},
8361
8362{"nand", XRC(31,476,0), X_MASK, COM, 0, {RA, RS, RB}},
8363{"nand.", XRC(31,476,1), X_MASK, COM, 0, {RA, RS, RB}},
8364
4f3e9537
PB
8365{"setnbcr", X(31,480), XRB_MASK, POWER10, 0, {RT, BI}},
8366
14b57c7c
AM
8367{"dsn", X(31,483), XRT_MASK, E500MC, 0, {RA, RB}},
8368
62adc510 8369{"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2, {RT, RA0, RB}},
14b57c7c
AM
8370
8371{"icbtls", X(31,486), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
8372
8373{"stvxl", X(31,487), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
8374
8375{"nabs", XO(31,488,0,0), XORB_MASK, M601, 0, {RT, RA}},
8376{"nabs.", XO(31,488,0,1), XORB_MASK, M601, 0, {RT, RA}},
8377
8378{"divd", XO(31,489,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
8379{"divd.", XO(31,489,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
8380
8381{"divw", XO(31,491,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
8382{"divw.", XO(31,491,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
8383
8384{"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
8385
8386{"slbia", X(31,498), 0xff1fffff, POWER6, 0, {IH}},
4bc0608a 8387{"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}},
1cb0a767 8388
14b57c7c 8389{"cli", X(31,502), XRB_MASK, POWER, 0, {RT, RA}},
1cb0a767 8390
14b57c7c 8391{"popcntd", X(31,506), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
066be9f7 8392
14b57c7c 8393{"cmpb", X(31,508), X_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS, RB}},
1cb0a767 8394
14b57c7c 8395{"mcrxr", X(31,512), XBFRARB_MASK, COM, POWER7, {BF}},
252b5132 8396
dfdaec14 8397{"lbdcbx", X(31,514), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 8398{"lbdx", X(31,515), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 8399
14b57c7c 8400{"bblels", X(31,518), X_MASK, PPCBRLK, 0, {0}},
252b5132 8401
14b57c7c
AM
8402{"lvlx", X(31,519), X_MASK, CELL, 0, {VD, RA0, RB}},
8403{"lbfcmux", APU(31,519,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 8404
14b57c7c
AM
8405{"subfco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8406{"sfo", XO(31,8,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
1ff6a3b8 8407{"subco", XO(31,8,1,0), XO_MASK, PPCCOM, EXT, {RT, RB, RA}},
14b57c7c
AM
8408{"subfco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8409{"sfo.", XO(31,8,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
1ff6a3b8 8410{"subco.", XO(31,8,1,1), XO_MASK, PPCCOM, EXT, {RT, RB, RA}},
43e65147 8411
14b57c7c
AM
8412{"addco", XO(31,10,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8413{"ao", XO(31,10,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
8414{"addco.", XO(31,10,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8415{"ao.", XO(31,10,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 8416
14b57c7c 8417{"lxsspx", X(31,524), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
a60038c6 8418{"lxvrl", X(31,525), XX1_MASK, PPCVSXF, 0, {XT6, RA0, RB}},
c0637f3a 8419
14b57c7c 8420{"clcs", X(31,531), XRB_MASK, M601, 0, {RT, RA}},
418c1742 8421
14b57c7c 8422{"ldbrx", X(31,532), X_MASK, CELL|POWER7|PPCA2, 0, {RT, RA0, RB}},
418c1742 8423
14b57c7c
AM
8424{"lswx", X(31,533), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, RBX}},
8425{"lsx", X(31,533), X_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 8426
14b57c7c
AM
8427{"lwbrx", X(31,534), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
8428{"lbrx", X(31,534), X_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 8429
14b57c7c 8430{"lfsx", X(31,535), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
702f0fb4 8431
14b57c7c
AM
8432{"srw", XRC(31,536,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
8433{"sr", XRC(31,536,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
8434{"srw.", XRC(31,536,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
8435{"sr.", XRC(31,536,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
252b5132 8436
14b57c7c
AM
8437{"rrib", XRC(31,537,0), X_MASK, M601, 0, {RA, RS, RB}},
8438{"rrib.", XRC(31,537,1), X_MASK, M601, 0, {RA, RS, RB}},
23976049 8439
14b57c7c
AM
8440{"cnttzw", XRC(31,538,0), XRB_MASK, POWER9, 0, {RA, RS}},
8441{"cnttzw.", XRC(31,538,1), XRB_MASK, POWER9, 0, {RA, RS}},
a680de9a 8442
14b57c7c
AM
8443{"srd", XRC(31,539,0), X_MASK, PPC64, 0, {RA, RS, RB}},
8444{"srd.", XRC(31,539,1), X_MASK, PPC64, 0, {RA, RS, RB}},
f509565f 8445
14b57c7c
AM
8446{"maskir", XRC(31,541,0), X_MASK, M601, 0, {RA, RS, RB}},
8447{"maskir.", XRC(31,541,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 8448
dfdaec14 8449{"lhdcbx", X(31,546), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 8450{"lhdx", X(31,547), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 8451
ac8f0f72 8452{"lvtrx", X(31,549), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 8453
14b57c7c 8454{"bbelr", X(31,550), X_MASK, PPCBRLK, 0, {0}},
418c1742 8455
14b57c7c
AM
8456{"lvrx", X(31,551), X_MASK, CELL, 0, {VD, RA0, RB}},
8457{"lhfcmux", APU(31,551,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 8458
14b57c7c 8459{"subfo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
1ff6a3b8 8460{"subo", XO(31,40,1,0), XO_MASK, PPC, EXT, {RT, RB, RA}},
14b57c7c 8461{"subfo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
1ff6a3b8 8462{"subo.", XO(31,40,1,1), XO_MASK, PPC, EXT, {RT, RB, RA}},
252b5132 8463
a60038c6
PB
8464{"lxvrll", X(31,557), XX1_MASK, PPCVSXF, 0, {XT6, RA0, RB}},
8465
14b57c7c 8466{"tlbsync", X(31,566), 0xffffffff, PPC, 0, {0}},
252b5132 8467
14b57c7c 8468{"lfsux", X(31,567), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
252b5132 8469
14b57c7c
AM
8470{"cnttzd", XRC(31,570,0), XRB_MASK, POWER9, 0, {RA, RS}},
8471{"cnttzd.", XRC(31,570,1), XRB_MASK, POWER9, 0, {RA, RS}},
a680de9a 8472
ec40e91c
AM
8473{"cnttzdm", X(31,571), X_MASK, POWER10, 0, {RA, RS, RB}},
8474
14b57c7c 8475{"mcrxrx", X(31,576), XBFRARB_MASK, POWER9, 0, {BF}},
a680de9a 8476
dfdaec14 8477{"lwdcbx", X(31,578), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 8478{"lwdx", X(31,579), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 8479
ac8f0f72 8480{"lvtlx", X(31,581), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 8481
14b57c7c 8482{"lwat", X(31,582), X_MASK, POWER9, 0, {RT, RA0, FC}},
a680de9a 8483
14b57c7c 8484{"lwfcmux", APU(31,583,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 8485
14b57c7c 8486{"lxsdx", X(31,588), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
a60038c6 8487{"lxvprl", X(31,589), XX1_MASK, PPCVSXF, 0, {XTP, RA0, RB}},
066be9f7 8488
14b57c7c 8489{"mfsr", X(31,595), XRB_MASK|(1<<20), COM, NON32, {RT, SR}},
252b5132 8490
14b57c7c
AM
8491{"lswi", X(31,597), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, NBI}},
8492{"lsi", X(31,597), X_MASK, PWRCOM, 0, {RT, RA0, NB}},
252b5132 8493
1ff6a3b8
AM
8494{"hwsync", XSYNC(31,598,0), 0xffffffff, POWER4, BOOKE|PPC476|EXT, {0}},
8495{"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, E500|EXT, {0}},
8496{"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, EXT, {0}},
8497{"phwsync", XSYNCLS(31,598,4,0), 0xffffffff, POWER10, EXT, {0}},
8498{"plwsync", XSYNCLS(31,598,5,0), 0xffffffff, POWER10, EXT, {0}},
8499{"stncisync", XSYNCLS(31,598,1,1), 0xffffffff, POWER10, EXT, {0}},
8500{"stcisync", XSYNCLS(31,598,0,2), 0xffffffff, POWER10, EXT, {0}},
8501{"stsync", XSYNCLS(31,598,0,3), 0xffffffff, POWER10, EXT, {0}},
8502{"sync", X(31,598), XSYNCLS_MASK, POWER10, BOOKE|PPC476, {LS3, SC2}},
8503{"sync", X(31,598), XSYNCLE_MASK, E6500, 0, {LS, ESYNC}},
8504{"sync", X(31,598), XSYNC_MASK, PPCCOM, POWER10|BOOKE|PPC476, {LS}},
8505{"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, 0, {0}},
8506{"sync", X(31,598), 0xffffffff, BOOKE|PPC476, E6500, {0}},
8507{"lwsync", X(31,598), 0xffffffff, E500, 0, {0}},
8508{"dcs", X(31,598), 0xffffffff, PWRCOM, 0, {0}},
418c1742 8509
14b57c7c 8510{"lfdx", X(31,599), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
23976049 8511
066be9f7 8512{"mffgpr", XRC(31,607,0), XRA_MASK, POWER6, POWER7, {FRT, RB}},
14b57c7c 8513{"lfdepx", X(31,607), X_MASK, E500MC|PPCA2, 0, {FRT, RA0, RB}},
252b5132 8514
14b57c7c 8515{"lddx", X(31,611), X_MASK, E500MC, 0, {RT, RA, RB}},
19a6653c 8516
ac8f0f72 8517{"lvswx", X(31,613), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 8518
14b57c7c 8519{"ldat", X(31,614), X_MASK, POWER9, 0, {RT, RA0, FC}},
a680de9a 8520
14b57c7c 8521{"lqfcmux", APU(31,615,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 8522
14b57c7c
AM
8523{"nego", XO(31,104,1,0), XORB_MASK, COM, 0, {RT, RA}},
8524{"nego.", XO(31,104,1,1), XORB_MASK, COM, 0, {RT, RA}},
252b5132 8525
14b57c7c
AM
8526{"mulo", XO(31,107,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
8527{"mulo.", XO(31,107,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 8528
a60038c6
PB
8529{"lxvprll", X(31,621), XX1_MASK, PPCVSXF, 0, {XTP, RA0, RB}},
8530
14b57c7c 8531{"mfsri", X(31,627), X_MASK, M601, 0, {RT, RA, RB}},
252b5132 8532
14b57c7c 8533{"dclst", X(31,630), XRB_MASK, M601, 0, {RS, RA}},
252b5132 8534
14b57c7c 8535{"lfdux", X(31,631), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
252b5132 8536
dfdaec14 8537{"stbdcbx", X(31,642), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 8538{"stbdx", X(31,643), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 8539
14b57c7c
AM
8540{"stvlx", X(31,647), X_MASK, CELL, 0, {VS, RA0, RB}},
8541{"stbfcmux", APU(31,647,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
23976049 8542
14b57c7c 8543{"stxsspx", X(31,652), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
a60038c6 8544{"stxvrl", X(31,653), XX1_MASK, PPCVSXF, 0, {XS6, RA0, RB}},
c0637f3a 8545
14b57c7c 8546{"tbegin.", XRC(31,654,1), XRTLRARB_MASK, PPCHTM, 0, {HTM_R}},
5817ffd1 8547
14b57c7c
AM
8548{"subfeo", XO(31,136,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8549{"sfeo", XO(31,136,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
8550{"subfeo.", XO(31,136,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8551{"sfeo.", XO(31,136,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 8552
14b57c7c
AM
8553{"addeo", XO(31,138,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8554{"aeo", XO(31,138,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
8555{"addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8556{"aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 8557
aae7fcb8
PB
8558{"hashstp", X(31,658), XRC_MASK, POWER8, 0, {RB, DW, RA0}},
8559
14b57c7c 8560{"mfsrin", X(31,659), XRA_MASK, PPC, NON32, {RT, RB}},
418c1742 8561
14b57c7c 8562{"stdbrx", X(31,660), X_MASK, CELL|POWER7|PPCA2, 0, {RS, RA0, RB}},
252b5132 8563
14b57c7c
AM
8564{"stswx", X(31,661), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, RB}},
8565{"stsx", X(31,661), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
418c1742 8566
14b57c7c
AM
8567{"stwbrx", X(31,662), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
8568{"stbrx", X(31,662), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
252b5132 8569
14b57c7c 8570{"stfsx", X(31,663), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
ede602d7 8571
14b57c7c
AM
8572{"srq", XRC(31,664,0), X_MASK, M601, 0, {RA, RS, RB}},
8573{"srq.", XRC(31,664,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 8574
14b57c7c
AM
8575{"sre", XRC(31,665,0), X_MASK, M601, 0, {RA, RS, RB}},
8576{"sre.", XRC(31,665,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 8577
dfdaec14 8578{"sthdcbx", X(31,674), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 8579{"sthdx", X(31,675), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 8580
ac8f0f72 8581{"stvfrx", X(31,677), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 8582
14b57c7c
AM
8583{"stvrx", X(31,679), X_MASK, CELL, 0, {VS, RA0, RB}},
8584{"sthfcmux", APU(31,679,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 8585
a60038c6
PB
8586{"stxvrll", X(31,685), XX1_MASK, PPCVSXF, 0, {XS6, RA0, RB}},
8587
14b57c7c
AM
8588{"tendall.", XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0, {0}},
8589{"tend.", XRC(31,686,1), XRTARARB_MASK, PPCHTM, 0, {HTM_A}},
5817ffd1 8590
aae7fcb8
PB
8591{"hashchkp", X(31,690), XRC_MASK, POWER8, 0, {RB, DW, RA0}},
8592
14b57c7c 8593{"stbcx.", XRC(31,694,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
066be9f7 8594
14b57c7c 8595{"stfsux", X(31,695), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
252b5132 8596
14b57c7c
AM
8597{"sriq", XRC(31,696,0), X_MASK, M601, 0, {RA, RS, SH}},
8598{"sriq.", XRC(31,696,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 8599
dfdaec14 8600{"stwdcbx", X(31,706), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 8601{"stwdx", X(31,707), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 8602
ac8f0f72 8603{"stvflx", X(31,709), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 8604
14b57c7c 8605{"stwat", X(31,710), X_MASK, POWER9, 0, {RS, RA0, FC}},
a680de9a 8606
14b57c7c 8607{"stwfcmux", APU(31,711,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 8608
14b57c7c 8609{"stxsdx", X(31,716), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
a60038c6 8610{"stxvprl", X(31,717), XX1_MASK, PPCVSXF, 0, {XSP, RA0, RB}},
066be9f7 8611
14b57c7c 8612{"tcheck", X(31,718), XRTBFRARB_MASK, PPCHTM, 0, {BF}},
5817ffd1 8613
14b57c7c
AM
8614{"subfzeo", XO(31,200,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
8615{"sfzeo", XO(31,200,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
8616{"subfzeo.", XO(31,200,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
8617{"sfzeo.", XO(31,200,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 8618
14b57c7c
AM
8619{"addzeo", XO(31,202,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
8620{"azeo", XO(31,202,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
8621{"addzeo.", XO(31,202,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
8622{"azeo.", XO(31,202,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
fdd12ef3 8623
aae7fcb8
PB
8624{"hashst", X(31,722), XRC_MASK, POWER8, 0, {RB, DW, RA0}},
8625
14b57c7c
AM
8626{"stswi", X(31,725), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, NB}},
8627{"stsi", X(31,725), X_MASK, PWRCOM, 0, {RS, RA0, NB}},
252b5132 8628
14b57c7c 8629{"sthcx.", XRC(31,726,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
066be9f7 8630
14b57c7c 8631{"stfdx", X(31,727), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
252b5132 8632
14b57c7c
AM
8633{"srlq", XRC(31,728,0), X_MASK, M601, 0, {RA, RS, RB}},
8634{"srlq.", XRC(31,728,1), X_MASK, M601, 0, {RA, RS, RB}},
418c1742 8635
14b57c7c
AM
8636{"sreq", XRC(31,729,0), X_MASK, M601, 0, {RA, RS, RB}},
8637{"sreq.", XRC(31,729,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 8638
066be9f7 8639{"mftgpr", XRC(31,735,0), XRA_MASK, POWER6, POWER7, {RT, FRB}},
14b57c7c 8640{"stfdepx", X(31,735), X_MASK, E500MC|PPCA2, 0, {FRS, RA0, RB}},
252b5132 8641
14b57c7c 8642{"stddx", X(31,739), X_MASK, E500MC, 0, {RS, RA, RB}},
19a6653c 8643
ac8f0f72 8644{"stvswx", X(31,741), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 8645
14b57c7c 8646{"stdat", X(31,742), X_MASK, POWER9, 0, {RS, RA0, FC}},
a680de9a 8647
14b57c7c 8648{"stqfcmux", APU(31,743,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 8649
14b57c7c
AM
8650{"subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
8651{"sfmeo", XO(31,232,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
8652{"subfmeo.", XO(31,232,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
8653{"sfmeo.", XO(31,232,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 8654
14b57c7c
AM
8655{"mulldo", XO(31,233,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
8656{"mulldo.", XO(31,233,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
252b5132 8657
14b57c7c
AM
8658{"addmeo", XO(31,234,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
8659{"ameo", XO(31,234,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
8660{"addmeo.", XO(31,234,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
8661{"ameo.", XO(31,234,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 8662
14b57c7c
AM
8663{"mullwo", XO(31,235,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8664{"mulso", XO(31,235,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
8665{"mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8666{"mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
702f0fb4 8667
a60038c6
PB
8668{"stxvprll", X(31,749), XX1_MASK, PPCVSXF, 0, {XSP, RA0, RB}},
8669
1ff6a3b8
AM
8670{"tsuspend.", XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM, EXT, {0}},
8671{"tresume.", XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM, EXT, {0}},
14b57c7c 8672{"tsr.", XRC(31,750,1), XRTLRARB_MASK,PPCHTM, 0, {L}},
5817ffd1 8673
aae7fcb8
PB
8674{"hashchk", X(31,754), XRC_MASK, POWER8, 0, {RB, DW, RA0}},
8675
14b57c7c 8676{"darn", X(31,755), XLRAND_MASK, POWER9, 0, {RT, LRAND}},
a680de9a 8677
14b57c7c
AM
8678{"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
8679{"dcbal", XOPL(31,758,1), XRT_MASK, E500MC, 0, {RA0, RB}},
252b5132 8680
14b57c7c 8681{"stfdux", X(31,759), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
252b5132 8682
14b57c7c
AM
8683{"srliq", XRC(31,760,0), X_MASK, M601, 0, {RA, RS, SH}},
8684{"srliq.", XRC(31,760,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 8685
ac8f0f72 8686{"lvsm", X(31,773), X_MASK, E6500, 0, {VD, RA0, RB}},
a680de9a 8687
fd486b63 8688{"copy", XOPL(31,774,1), XRT_MASK, POWER9, 0, {RA0, RB}},
a680de9a 8689
ac8f0f72 8690{"stvepxl", X(31,775), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c
AM
8691{"lvlxl", X(31,775), X_MASK, CELL, 0, {VD, RA0, RB}},
8692{"ldfcmux", APU(31,775,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
ede602d7 8693
14b57c7c
AM
8694{"dozo", XO(31,264,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
8695{"dozo.", XO(31,264,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 8696
14b57c7c
AM
8697{"addo", XO(31,266,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8698{"caxo", XO(31,266,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
8699{"addo.", XO(31,266,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
8700{"caxo.", XO(31,266,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 8701
14b57c7c
AM
8702{"modsd", X(31,777), X_MASK, POWER9, 0, {RT, RA, RB}},
8703{"modsw", X(31,779), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 8704
14b57c7c
AM
8705{"lxvw4x", X(31,780), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
8706{"lxsibzx", X(31,781), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
066be9f7 8707
14b57c7c 8708{"tabortwc.", XRC(31,782,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
5817ffd1 8709
14b57c7c 8710{"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
252b5132 8711
14b57c7c 8712{"lwzcix", X(31,789), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 8713
14b57c7c 8714{"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}},
252b5132 8715
73f07bff 8716{"lfdpx", X(31,791), X_MASK|Q_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
14b57c7c 8717{"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}},
418c1742 8718
14b57c7c
AM
8719{"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
8720{"sra", XRC(31,792,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
8721{"sraw.", XRC(31,792,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
8722{"sra.", XRC(31,792,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
fdd12ef3 8723
14b57c7c
AM
8724{"srad", XRC(31,794,0), X_MASK, PPC64, 0, {RA, RS, RB}},
8725{"srad.", XRC(31,794,1), X_MASK, PPC64, 0, {RA, RS, RB}},
252b5132 8726
74081948 8727{"evlddepx", VX (31, 1598), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
14b57c7c 8728{"lfddx", X(31,803), X_MASK, E500MC, 0, {FRT, RA, RB}},
19a6653c 8729
ac8f0f72
AM
8730{"lvtrxl", X(31,805), X_MASK, E6500, 0, {VD, RA0, RB}},
8731{"stvepx", X(31,807), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c 8732{"lvrxl", X(31,807), X_MASK, CELL, 0, {VD, RA0, RB}},
252b5132 8733
14b57c7c
AM
8734{"lxvh8x", X(31,812), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
8735{"lxsihzx", X(31,813), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 8736
14b57c7c 8737{"tabortdc.", XRC(31,814,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
5817ffd1 8738
14b57c7c 8739{"rac", X(31,818), X_MASK, M601, 0, {RT, RA, RB}},
252b5132 8740
14b57c7c 8741{"erativax", X(31,819), X_MASK, PPCA2, 0, {RS, RA0, RB}},
e0d602ec 8742
14b57c7c 8743{"lhzcix", X(31,821), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 8744
14b57c7c 8745{"dss", XDSS(31,822,0), XDSS_MASK, PPCVEC, 0, {STRM}},
1ff6a3b8 8746{"dssall", XDSS(31,822,1), XDSS_MASK, PPCVEC, 0, {0}},
252b5132 8747
14b57c7c 8748{"lfqux", X(31,823), X_MASK, POWER2, 0, {FRT, RA, RB}},
fdd12ef3 8749
14b57c7c
AM
8750{"srawi", XRC(31,824,0), X_MASK, PPCCOM, 0, {RA, RS, SH}},
8751{"srai", XRC(31,824,0), X_MASK, PWRCOM, 0, {RA, RS, SH}},
8752{"srawi.", XRC(31,824,1), X_MASK, PPCCOM, 0, {RA, RS, SH}},
8753{"srai.", XRC(31,824,1), X_MASK, PWRCOM, 0, {RA, RS, SH}},
702f0fb4 8754
14b57c7c
AM
8755{"sradi", XS(31,413,0), XS_MASK, PPC64, 0, {RA, RS, SH6}},
8756{"sradi.", XS(31,413,1), XS_MASK, PPC64, 0, {RA, RS, SH6}},
e0c21649 8757
ac8f0f72 8758{"lvtlxl", X(31,837), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 8759
fd486b63 8760{"cpabort", X(31,838), XRTRARB_MASK,POWER9, 0, {0}},
a680de9a 8761
14b57c7c
AM
8762{"divo", XO(31,331,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
8763{"divo.", XO(31,331,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 8764
14b57c7c 8765{"lxvd2x", X(31,844), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
a680de9a 8766{"lxvx", X(31,844), XX1_MASK, POWER8, POWER9|PPCVSX3, {XT6, RA0, RB}},
9b4e5766 8767
14b57c7c 8768{"tabortwci.", XRC(31,846,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
5817ffd1 8769
14b57c7c 8770{"tlbsrx.", XRC(31,850,1), XRT_MASK, PPCA2, 0, {RA0, RB}},
e0d602ec 8771
1224c05d
PB
8772{"slbiag", X(31,850), XRLARB_MASK, POWER10, 0, {RS, A_L}},
8773{"slbiag", X(31,850), XRARB_MASK, POWER9, POWER10, {RS}},
8774
14b57c7c 8775{"slbmfev", X(31,851), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
a680de9a 8776{"slbmfev", X(31,851), XRA_MASK, PPC64, POWER9, {RT, RB}},
252b5132 8777
14b57c7c 8778{"lbzcix", X(31,853), X_MASK, POWER6, 0, {RT, RA0, RB}},
418c1742 8779
9fe54b1c 8780{"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2|PPC476, {0}},
14b57c7c
AM
8781{"mbar", X(31,854), X_MASK, BOOKE|PPCA2|PPC476, 0, {MO}},
8782{"eieio", XMBAR(31,854,1),0xffffffff, E500, 0, {0}},
8783{"eieio", X(31,854), 0xffffffff, PPCA2|PPC476, 0, {0}},
418c1742 8784
14b57c7c 8785{"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, 0, {FRT, RA0, RB}},
418c1742 8786
ac8f0f72 8787{"lvswxl", X(31,869), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 8788
14b57c7c
AM
8789{"abso", XO(31,360,1,0), XORB_MASK, M601, 0, {RT, RA}},
8790{"abso.", XO(31,360,1,1), XORB_MASK, M601, 0, {RT, RA}},
702f0fb4 8791
14b57c7c
AM
8792{"divso", XO(31,363,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
8793{"divso.", XO(31,363,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 8794
14b57c7c 8795{"lxvb16x", X(31,876), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 8796
14b57c7c 8797{"tabortdci.", XRC(31,878,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
5817ffd1 8798
14b57c7c 8799{"rmieg", X(31,882), XRTRA_MASK, POWER9, 0, {RB}},
a680de9a 8800
14b57c7c 8801{"ldcix", X(31,885), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 8802
14b57c7c 8803{"msgsync", X(31,886), 0xffffffff, POWER9, 0, {0}},
a680de9a 8804
14b57c7c 8805{"lfiwzx", X(31,887), X_MASK, POWER7|PPCA2, 0, {FRT, RA0, RB}},
066be9f7 8806
14b57c7c
AM
8807{"extswsli", XS(31,445,0), XS_MASK, POWER9, 0, {RA, RS, SH6}},
8808{"extswsli.", XS(31,445,1), XS_MASK, POWER9, 0, {RA, RS, SH6}},
a680de9a 8809
afef4fe9
PB
8810{"paste.", XRC(31,902,1), XLRT_MASK, POWER10, 0, {RA0, RB, L1OPT}},
8811{"paste.", XRCL(31,902,1,1),XRT_MASK, POWER9, POWER10, {RA0, RB}},
a680de9a 8812
14b57c7c
AM
8813{"stvlxl", X(31,903), X_MASK, CELL, 0, {VS, RA0, RB}},
8814{"stdfcmux", APU(31,903,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 8815
14b57c7c
AM
8816{"divdeuo", XO(31,393,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8817{"divdeuo.", XO(31,393,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8818{"divweuo", XO(31,395,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8819{"divweuo.", XO(31,395,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 8820
14b57c7c
AM
8821{"stxvw4x", X(31,908), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
8822{"stxsibx", X(31,909), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
066be9f7 8823
14b57c7c 8824{"tabort.", XRC(31,910,1), XRTRB_MASK, PPCHTM, 0, {RA}},
5817ffd1 8825
14b57c7c
AM
8826{"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
8827{"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
252b5132 8828
14b57c7c 8829{"slbmfee", X(31,915), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
a680de9a 8830{"slbmfee", X(31,915), XRA_MASK, PPC64, POWER9, {RT, RB}},
702f0fb4 8831
14b57c7c 8832{"stwcix", X(31,917), X_MASK, POWER6, 0, {RS, RA0, RB}},
f5c120c5 8833
14b57c7c 8834{"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}},
252b5132 8835
73f07bff 8836{"stfdpx", X(31,919), X_MASK|Q_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
14b57c7c 8837{"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}},
6ba045b1 8838
14b57c7c
AM
8839{"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}},
8840{"sraq.", XRC(31,920,1), X_MASK, M601, 0, {RA, RS, RB}},
702f0fb4 8841
14b57c7c
AM
8842{"srea", XRC(31,921,0), X_MASK, M601, 0, {RA, RS, RB}},
8843{"srea.", XRC(31,921,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 8844
14b57c7c
AM
8845{"extsh", XRC(31,922,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
8846{"exts", XRC(31,922,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
8847{"extsh.", XRC(31,922,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
8848{"exts.", XRC(31,922,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
702f0fb4 8849
74081948 8850{"evstddepx", VX (31, 1854), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
14b57c7c 8851{"stfddx", X(31,931), X_MASK, E500MC, 0, {FRS, RA, RB}},
19a6653c 8852
ac8f0f72 8853{"stvfrxl", X(31,933), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 8854
1ff6a3b8
AM
8855{"wclrone", XOPL2(31,934,2),XRT_MASK, PPCA2, EXT, {RA0, RB}},
8856{"wclrall", X(31,934), XRARB_MASK, PPCA2, EXT, {L2}},
a5721ba2 8857{"wclr", X(31,934), X_MASK, PPCA2, 0, {L2, RA0, RB}},
85d4ac0b 8858
14b57c7c 8859{"stvrxl", X(31,935), X_MASK, CELL, 0, {VS, RA0, RB}},
6ba045b1 8860
14b57c7c
AM
8861{"divdeo", XO(31,425,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8862{"divdeo.", XO(31,425,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8863{"divweo", XO(31,427,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8864{"divweo.", XO(31,427,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 8865
14b57c7c
AM
8866{"stxvh8x", X(31,940), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
8867{"stxsihx", X(31,941), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 8868
14b57c7c 8869{"treclaim.", XRC(31,942,1), XRTRB_MASK, PPCHTM, 0, {RA}},
5817ffd1 8870
1ff6a3b8
AM
8871{"tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, PPCA2|EXT, {RT, RA}},
8872{"tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, PPCA2|EXT, {RT, RA}},
14b57c7c 8873{"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
702f0fb4 8874
14b57c7c 8875{"sthcix", X(31,949), X_MASK, POWER6, 0, {RS, RA0, RB}},
252b5132 8876
14b57c7c
AM
8877{"icswepx", XRC(31,950,0), X_MASK, PPCA2, 0, {RS, RA, RB}},
8878{"icswepx.", XRC(31,950,1), X_MASK, PPCA2, 0, {RS, RA, RB}},
51b5d4a8 8879
14b57c7c 8880{"stfqux", X(31,951), X_MASK, POWER2, 0, {FRS, RA, RB}},
252b5132 8881
14b57c7c
AM
8882{"sraiq", XRC(31,952,0), X_MASK, M601, 0, {RA, RS, SH}},
8883{"sraiq.", XRC(31,952,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 8884
14b57c7c
AM
8885{"extsb", XRC(31,954,0), XRB_MASK, PPC, 0, {RA, RS}},
8886{"extsb.", XRC(31,954,1), XRB_MASK, PPC, 0, {RA, RS}},
252b5132 8887
ac8f0f72 8888{"stvflxl", X(31,965), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 8889
62adc510 8890{"iccci", X(31,966), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
14b57c7c 8891{"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
43e65147 8892
14b57c7c
AM
8893{"divduo", XO(31,457,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
8894{"divduo.", XO(31,457,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 8895
14b57c7c
AM
8896{"divwuo", XO(31,459,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
8897{"divwuo.", XO(31,459,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
252b5132 8898
14b57c7c 8899{"stxvd2x", X(31,972), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
a680de9a 8900{"stxvx", X(31,972), XX1_MASK, POWER8, POWER9|PPCVSX3, {XS6, RA0, RB}},
9b4e5766 8901
9fe54b1c 8902{"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
1ff6a3b8
AM
8903{"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, EXT, {RT, RA}},
8904{"tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, EXT, {RT, RA}},
14b57c7c 8905{"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
418c1742 8906
14b57c7c 8907{"slbfee.", XRC(31,979,1), XRA_MASK, POWER6, 0, {RT, RB}},
c4e676f1 8908
14b57c7c 8909{"stbcix", X(31,981), X_MASK, POWER6, 0, {RS, RA0, RB}},
252b5132 8910
14b57c7c 8911{"icbi", X(31,982), XRT_MASK, PPC, 0, {RA0, RB}},
252b5132 8912
14b57c7c 8913{"stfiwx", X(31,983), X_MASK, PPC, PPCEFS, {FRS, RA0, RB}},
702f0fb4 8914
14b57c7c
AM
8915{"extsw", XRC(31,986,0), XRB_MASK, PPC64, 0, {RA, RS}},
8916{"extsw.", XRC(31,986,1), XRB_MASK, PPC64, 0, {RA, RS}},
252b5132 8917
14b57c7c 8918{"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
19a6653c 8919
ac8f0f72 8920{"stvswxl", X(31,997), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 8921
14b57c7c 8922{"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA0, RB}},
252b5132 8923
14b57c7c
AM
8924{"nabso", XO(31,488,1,0), XORB_MASK, M601, 0, {RT, RA}},
8925{"nabso.", XO(31,488,1,1), XORB_MASK, M601, 0, {RT, RA}},
252b5132 8926
14b57c7c
AM
8927{"divdo", XO(31,489,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
8928{"divdo.", XO(31,489,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 8929
14b57c7c
AM
8930{"divwo", XO(31,491,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
8931{"divwo.", XO(31,491,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
418c1742 8932
14b57c7c 8933{"stxvb16x", X(31,1004), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 8934
14b57c7c 8935{"trechkpt.", XRC(31,1006,1), XRTRARB_MASK,PPCHTM, 0, {0}},
702f0fb4 8936
14b57c7c 8937{"tlbli", X(31,1010), XRTRA_MASK, PPC, TITAN, {RB}},
252b5132 8938
14b57c7c 8939{"stdcix", X(31,1013), X_MASK, POWER6, 0, {RS, RA0, RB}},
418c1742 8940
14b57c7c
AM
8941{"dcbz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
8942{"dclz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
14b57c7c 8943{"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPC476, {RA0, RB}},
252b5132 8944
1ff6a3b8 8945{"dcbzep", XRT(31,1023,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
252b5132 8946
14b57c7c
AM
8947{"lwz", OP(32), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
8948{"l", OP(32), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 8949
14b57c7c
AM
8950{"lwzu", OP(33), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAL}},
8951{"lu", OP(33), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 8952
14b57c7c 8953{"lbz", OP(34), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 8954
14b57c7c 8955{"lbzu", OP(35), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 8956
14b57c7c
AM
8957{"stw", OP(36), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
8958{"st", OP(36), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 8959
14b57c7c
AM
8960{"stwu", OP(37), OP_MASK, PPCCOM, PPCVLE, {RS, D, RAS}},
8961{"stu", OP(37), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 8962
14b57c7c 8963{"stb", OP(38), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
252b5132 8964
14b57c7c 8965{"stbu", OP(39), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
252b5132 8966
14b57c7c 8967{"lhz", OP(40), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 8968
14b57c7c 8969{"lhzu", OP(41), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 8970
14b57c7c 8971{"lha", OP(42), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 8972
14b57c7c 8973{"lhau", OP(43), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 8974
14b57c7c 8975{"sth", OP(44), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
252b5132 8976
14b57c7c 8977{"sthu", OP(45), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
252b5132 8978
14b57c7c
AM
8979{"lmw", OP(46), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAM}},
8980{"lm", OP(46), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 8981
14b57c7c
AM
8982{"stmw", OP(47), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
8983{"stm", OP(47), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 8984
14b57c7c 8985{"lfs", OP(48), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
252b5132 8986
14b57c7c 8987{"lfsu", OP(49), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
252b5132 8988
14b57c7c 8989{"lfd", OP(50), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
252b5132 8990
14b57c7c 8991{"lfdu", OP(51), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
252b5132 8992
14b57c7c 8993{"stfs", OP(52), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
adadcc0c 8994
14b57c7c 8995{"stfsu", OP(53), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
252b5132 8996
14b57c7c 8997{"stfd", OP(54), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
c3d65c1c 8998
14b57c7c 8999{"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
252b5132 9000
73f07bff 9001{"lq", OP(56), OP_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
14b57c7c
AM
9002{"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
9003{"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
418c1742 9004
14b57c7c
AM
9005{"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
9006{"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
73f07bff 9007{"lfdp", OP(57), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
14b57c7c
AM
9008{"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
9009{"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
802a735e 9010
14b57c7c
AM
9011{"ld", DSO(58,0), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
9012{"ldu", DSO(58,1), DS_MASK, PPC64, PPCVLE, {RT, DS, RAL}},
9013{"lwa", DSO(58,2), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
702f0fb4 9014
14b57c7c
AM
9015{"dadd", XRC(59,2,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
9016{"dadd.", XRC(59,2,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
252b5132 9017
14b57c7c
AM
9018{"dqua", ZRC(59,3,0), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
9019{"dqua.", ZRC(59,3,1), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
252b5132 9020
79e24d0a 9021{"dmxvi8ger4pp",XX3(59,2), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
0a246853 9022{"xvi8ger4pp", XX3(59,2), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
79e24d0a 9023{"dmxvi8ger4", XX3(59,3), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
0a246853 9024{"xvi8ger4", XX3(59,3), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9025
14b57c7c
AM
9026{"fdivs", A(59,18,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
9027{"fdivs.", A(59,18,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 9028
14b57c7c
AM
9029{"fsubs", A(59,20,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
9030{"fsubs.", A(59,20,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 9031
14b57c7c
AM
9032{"fadds", A(59,21,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
9033{"fadds.", A(59,21,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 9034
14b57c7c
AM
9035{"fsqrts", A(59,22,0), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
9036{"fsqrts.", A(59,22,1), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
252b5132 9037
14b57c7c
AM
9038{"fres", A(59,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
9039{"fres", A(59,24,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
9040{"fres.", A(59,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
9041{"fres.", A(59,24,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
1ed8e1e4 9042
14b57c7c
AM
9043{"fmuls", A(59,25,0), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
9044{"fmuls.", A(59,25,1), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
252b5132 9045
14b57c7c
AM
9046{"frsqrtes", A(59,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
9047{"frsqrtes", A(59,26,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
9048{"frsqrtes.", A(59,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
9049{"frsqrtes.", A(59,26,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
252b5132 9050
14b57c7c
AM
9051{"fmsubs", A(59,28,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9052{"fmsubs.", A(59,28,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 9053
14b57c7c
AM
9054{"fmadds", A(59,29,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9055{"fmadds.", A(59,29,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 9056
14b57c7c
AM
9057{"fnmsubs", A(59,30,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9058{"fnmsubs.", A(59,30,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
702f0fb4 9059
14b57c7c
AM
9060{"fnmadds", A(59,31,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9061{"fnmadds.", A(59,31,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
702f0fb4 9062
14b57c7c
AM
9063{"dmul", XRC(59,34,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
9064{"dmul.", XRC(59,34,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
702f0fb4 9065
14b57c7c
AM
9066{"drrnd", ZRC(59,35,0), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
9067{"drrnd.", ZRC(59,35,1), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
702f0fb4 9068
bb98553c
PB
9069{"dmxvi8gerx4pp", XX3(59,10), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
9070{"dmxvi8gerx4", XX3(59,11), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
9071
14b57c7c
AM
9072{"dscli", ZRC(59,66,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
9073{"dscli.", ZRC(59,66,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
702f0fb4 9074
14b57c7c
AM
9075{"dquai", ZRC(59,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
9076{"dquai.", ZRC(59,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
702f0fb4 9077
79e24d0a
PB
9078{"dmxvf16ger2pp",XX3(59,18), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9079{"xvf16ger2pp", XX3(59,18), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9080{"dmxvf16ger2", XX3(59,19), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9081{"xvf16ger2", XX3(59,19), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9082
14b57c7c
AM
9083{"dscri", ZRC(59,98,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
9084{"dscri.", ZRC(59,98,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
702f0fb4 9085
14b57c7c
AM
9086{"drintx", ZRC(59,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
9087{"drintx.", ZRC(59,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
702f0fb4 9088
79e24d0a 9089{"dmxvf32gerpp",XX3(59,26), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
0a246853 9090{"xvf32gerpp", XX3(59,26), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
79e24d0a 9091{"dmxvf32ger", XX3(59,27), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
0a246853 9092{"xvf32ger", XX3(59,27), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9093
14b57c7c 9094{"dcmpo", X(59,130), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
702f0fb4 9095
79e24d0a 9096{"dmxvi4ger8pp",XX3(59,34), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
0a246853 9097{"xvi4ger8pp", XX3(59,34), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
79e24d0a 9098{"dmxvi4ger8", XX3(59,35), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
0a246853 9099{"xvi4ger8", XX3(59,35), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9100
14b57c7c 9101{"dtstex", X(59,162), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
aa3c112f 9102
79e24d0a
PB
9103{"dmxvi16ger2spp",XX3(59,42), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9104{"xvi16ger2spp", XX3(59,42), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9105{"dmxvi16ger2s", XX3(59,43), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9106{"xvi16ger2s", XX3(59,43), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9107
14b57c7c 9108{"dtstdc", Z(59,194), Z_MASK, POWER6, PPCVLE, {BF, FRA, DCM}},
aa3c112f 9109
79e24d0a
PB
9110{"dmxvbf16ger2pp",XX3(59,50), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9111{"xvbf16ger2pp", XX3(59,50), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9112{"dmxvbf16ger2", XX3(59,51), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9113{"xvbf16ger2", XX3(59,51), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9114
14b57c7c
AM
9115{"dtstdg", Z(59,226), Z_MASK, POWER6, PPCVLE, {BF, FRA, DGM}},
9116
9117{"drintn", ZRC(59,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
9118{"drintn.", ZRC(59,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
9119
79e24d0a 9120{"dmxvf64gerpp",XX3(59,58), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
0a246853 9121{"xvf64gerpp", XX3(59,58), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
79e24d0a 9122{"dmxvf64ger", XX3(59,59), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
0a246853 9123{"xvf64ger", XX3(59,59), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
aa3c112f 9124
14b57c7c
AM
9125{"dctdp", XRC(59,258,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
9126{"dctdp.", XRC(59,258,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
9127
bb98553c
PB
9128{"dmxvf16gerx2pp", XX3(59,66), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
9129{"dmxvf16gerx2", XX3(59,67), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
9130
14b57c7c
AM
9131{"dctfix", XRC(59,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
9132{"dctfix.", XRC(59,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
9133
9134{"ddedpd", XRC(59,322,0), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
9135{"ddedpd.", XRC(59,322,1), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
9136
bb98553c 9137{"dmxvbf16gerx2pp", XX3(59,74), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
79e24d0a 9138{"dmxvi16ger2", XX3(59,75), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
0a246853 9139{"xvi16ger2", XX3(59,75), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9140
79e24d0a
PB
9141{"dmxvf16ger2np", XX3(59,82), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9142{"xvf16ger2np", XX3(59,82), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
bb98553c 9143{"dmxvf16gerx2np",XX3(59,83), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
aa3c112f 9144
14b57c7c
AM
9145{"dxex", XRC(59,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
9146{"dxex.", XRC(59,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
9147
79e24d0a
PB
9148{"dmxvf32gernp", XX3(59,90), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9149{"xvf32gernp", XX3(59,90), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
bb98553c 9150{"dmxvbf16gerx2", XX3(59,91), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
aa3c112f 9151
bb98553c 9152{"dmxvi8gerx4spp",XX3(59,98), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
79e24d0a
PB
9153{"dmxvi8ger4spp", XX3(59,99), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9154{"xvi8ger4spp", XX3(59,99), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9155
79e24d0a
PB
9156{"dmxvi16ger2pp", XX3(59,107), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9157{"xvi16ger2pp", XX3(59,107), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9158
79e24d0a
PB
9159{"dmxvbf16ger2np",XX3(59,114), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9160{"xvbf16ger2np", XX3(59,114), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
bb98553c 9161{"dmxvbf16gerx2np",XX3(59,115), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
aa3c112f 9162
79e24d0a
PB
9163{"dmxvf64gernp", XX3(59,122), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
9164{"xvf64gernp", XX3(59,122), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
aa3c112f 9165
14b57c7c
AM
9166{"dsub", XRC(59,514,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
9167{"dsub.", XRC(59,514,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
9168
9169{"ddiv", XRC(59,546,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
9170{"ddiv.", XRC(59,546,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
9171
79e24d0a
PB
9172{"dmxvf16ger2pn", XX3(59,146), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9173{"xvf16ger2pn", XX3(59,146), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
bb98553c 9174{"dmxvf16gerx2pn",XX3(59,147), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
aa3c112f 9175
79e24d0a 9176{"dmxvf32gerpn",XX3(59,154), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
0a246853 9177{"xvf32gerpn", XX3(59,154), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9178
14b57c7c
AM
9179{"dcmpu", X(59,642), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
9180
9181{"dtstsf", X(59,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
9182{"dtstsfi", X(59,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRB}},
9183
79e24d0a
PB
9184{"dmxvbf16ger2pn",XX3(59,178), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9185{"xvbf16ger2pn", XX3(59,178), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
bb98553c 9186{"dmxvbf16gerx2pn", XX3(59,179),XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
aa3c112f 9187
79e24d0a 9188{"dmxvf64gerpn",XX3(59,186), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
0a246853 9189{"xvf64gerpn", XX3(59,186), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
aa3c112f 9190
14b57c7c
AM
9191{"drsp", XRC(59,770,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
9192{"drsp.", XRC(59,770,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
9193
9194{"dcffix", XRC(59,802,0), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
9195{"dcffix.", XRC(59,802,1), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
9196
bb98553c
PB
9197{"dmxvf16gerx2nn", XX3(59,202), XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
9198
14b57c7c
AM
9199{"denbcd", XRC(59,834,0), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
9200{"denbcd.", XRC(59,834,1), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
9201
79e24d0a
PB
9202{"dmxvf16ger2nn", XX3(59,210), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9203{"xvf16ger2nn", XX3(59,210), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9204
14b57c7c
AM
9205{"fcfids", XRC(59,846,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
9206{"fcfids.", XRC(59,846,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
9207
9208{"diex", XRC(59,866,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
9209{"diex.", XRC(59,866,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
9210
79e24d0a 9211{"dmxvf32gernn",XX3(59,218), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
0a246853 9212{"xvf32gernn", XX3(59,218), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9213
bb98553c
PB
9214{"dmxvbf16gerx2nn", XX3(59,234),XX3GERX_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB6}},
9215
79e24d0a
PB
9216{"dmxvbf16ger2nn",XX3(59,242), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
9217{"xvbf16ger2nn", XX3(59,242), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
aa3c112f 9218
14b57c7c
AM
9219{"fcfidus", XRC(59,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
9220{"fcfidus.", XRC(59,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
9221
79e24d0a 9222{"dmxvf64gernn",XX3(59,250), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
0a246853 9223{"xvf64gernn", XX3(59,250), XX3ACC_MASK, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
aa3c112f 9224
14b57c7c
AM
9225{"xsaddsp", XX3(60,0), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9226{"xsmaddasp", XX3(60,1), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9227{"xxsldwi", XX3(60,2), XX3SHW_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, SHW}},
9228{"xscmpeqdp", XX3(60,3), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9229{"xsrsqrtesp", XX2(60,10), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
9230{"xssqrtsp", XX2(60,11), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
9231{"xxsel", XX4(60,3), XX4_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, XC6}},
9232{"xssubsp", XX3(60,8), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9233{"xsmaddmsp", XX3(60,9), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
1ff6a3b8
AM
9234{"xxspltd", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE|EXT, {XT6, XAB6, DMEX}},
9235{"xxmrghd", XX3(60,10), XX3_MASK, PPCVSX, PPCVLE|EXT, {XT6, XA6, XB6}},
9236{"xxswapd", XX3(60,10)|(2<<8), XX3_MASK, PPCVSX, PPCVLE|EXT, {XT6, XAB6}},
9237{"xxmrgld", XX3(60,10)|(3<<8), XX3_MASK, PPCVSX, PPCVLE|EXT, {XT6, XA6, XB6}},
14b57c7c
AM
9238{"xxpermdi", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, DM}},
9239{"xscmpgtdp", XX3(60,11), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9240{"xsresp", XX2(60,26), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
9241{"xsmulsp", XX3(60,16), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9242{"xsmsubasp", XX3(60,17), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9243{"xxmrghw", XX3(60,18), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9244{"xscmpgedp", XX3(60,19), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9245{"xsdivsp", XX3(60,24), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9246{"xsmsubmsp", XX3(60,25), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9247{"xxperm", XX3(60,26), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9248{"xsadddp", XX3(60,32), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9249{"xsmaddadp", XX3(60,33), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9250{"xscmpudp", XX3(60,35), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
9251{"xscvdpuxws", XX2(60,72), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9252{"xsrdpi", XX2(60,73), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9253{"xsrsqrtedp", XX2(60,74), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9254{"xssqrtdp", XX2(60,75), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9255{"xssubdp", XX3(60,40), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9256{"xsmaddmdp", XX3(60,41), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9257{"xscmpodp", XX3(60,43), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
9258{"xscvdpsxws", XX2(60,88), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9259{"xsrdpiz", XX2(60,89), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9260{"xsredp", XX2(60,90), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9261{"xsmuldp", XX3(60,48), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9262{"xsmsubadp", XX3(60,49), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9263{"xxmrglw", XX3(60,50), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9264{"xsrdpip", XX2(60,105), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9265{"xstsqrtdp", XX2(60,106), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
9266{"xsrdpic", XX2(60,107), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9267{"xsdivdp", XX3(60,56), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9268{"xsmsubmdp", XX3(60,57), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9269{"xxpermr", XX3(60,58), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9270{"xscmpexpdp", XX3(60,59), XX3BF_MASK, PPCVSX3, PPCVLE, {BF, XA6, XB6}},
9271{"xsrdpim", XX2(60,121), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9272{"xstdivdp", XX3(60,61), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
9273{"xvaddsp", XX3(60,64), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9274{"xvmaddasp", XX3(60,65), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9275{"xvcmpeqsp", XX3RC(60,67,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9276{"xvcmpeqsp.", XX3RC(60,67,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9277{"xvcvspuxws", XX2(60,136), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9278{"xvrspi", XX2(60,137), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9279{"xvrsqrtesp", XX2(60,138), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9280{"xvsqrtsp", XX2(60,139), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9281{"xvsubsp", XX3(60,72), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9282{"xvmaddmsp", XX3(60,73), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9283{"xvcmpgtsp", XX3RC(60,75,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9284{"xvcmpgtsp.", XX3RC(60,75,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9285{"xvcvspsxws", XX2(60,152), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9286{"xvrspiz", XX2(60,153), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9287{"xvresp", XX2(60,154), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9288{"xvmulsp", XX3(60,80), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9289{"xvmsubasp", XX3(60,81), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9290{"xxspltw", XX2(60,164), XX2UIM_MASK, PPCVSX, PPCVLE, {XT6, XB6, UIM}},
9291{"xxextractuw", XX2(60,165), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
9292{"xvcmpgesp", XX3RC(60,83,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9293{"xvcmpgesp.", XX3RC(60,83,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9294{"xvcvuxwsp", XX2(60,168), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9295{"xvrspip", XX2(60,169), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9296{"xvtsqrtsp", XX2(60,170), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
9297{"xvrspic", XX2(60,171), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9298{"xvdivsp", XX3(60,88), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9299{"xvmsubmsp", XX3(60,89), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9300{"xxspltib", X(60,360), XX1_MASK|3<<19, PPCVSX3, PPCVLE, {XT6, IMM8}},
6edbfd3b 9301{"lxvkq", XVA(60,360,31), XVA_MASK&~1, POWER10, PPCVLE, {XT6, UIM5}},
14b57c7c
AM
9302{"xxinsertw", XX2(60,181), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
9303{"xvcvsxwsp", XX2(60,184), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9304{"xvrspim", XX2(60,185), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9305{"xvtdivsp", XX3(60,93), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
9306{"xvadddp", XX3(60,96), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9307{"xvmaddadp", XX3(60,97), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9308{"xvcmpeqdp", XX3RC(60,99,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9309{"xvcmpeqdp.", XX3RC(60,99,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9310{"xvcvdpuxws", XX2(60,200), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9311{"xvrdpi", XX2(60,201), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9312{"xvrsqrtedp", XX2(60,202), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9313{"xvsqrtdp", XX2(60,203), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9314{"xvsubdp", XX3(60,104), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9315{"xvmaddmdp", XX3(60,105), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9316{"xvcmpgtdp", XX3RC(60,107,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9317{"xvcmpgtdp.", XX3RC(60,107,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9318{"xvcvdpsxws", XX2(60,216), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9319{"xvrdpiz", XX2(60,217), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9320{"xvredp", XX2(60,218), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9321{"xvmuldp", XX3(60,112), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9322{"xvmsubadp", XX3(60,113), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9323{"xvcmpgedp", XX3RC(60,115,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9324{"xvcmpgedp.", XX3RC(60,115,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9325{"xvcvuxwdp", XX2(60,232), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9326{"xvrdpip", XX2(60,233), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9327{"xvtsqrtdp", XX2(60,234), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
9328{"xvrdpic", XX2(60,235), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9329{"xvdivdp", XX3(60,120), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9330{"xvmsubmdp", XX3(60,121), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9331{"xvcvsxwdp", XX2(60,248), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9332{"xvrdpim", XX2(60,249), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9333{"xvtdivdp", XX3(60,125), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
9334{"xsmaxcdp", XX3(60,128), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9335{"xsnmaddasp", XX3(60,129), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9336{"xxland", XX3(60,130), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9337{"xscvdpsp", XX2(60,265), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9338{"xscvdpspn", XX2(60,267), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
9339{"xsmincdp", XX3(60,136), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9340{"xsnmaddmsp", XX3(60,137), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9341{"xxlandc", XX3(60,138), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9342{"xsrsp", XX2(60,281), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
9343{"xsmaxjdp", XX3(60,144), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9344{"xsnmsubasp", XX3(60,145), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
1ff6a3b8 9345{"xxmr", XX3(60,146), XX3_MASK, PPCVSX, PPCVLE|EXT, {XT6, XAB6}},
14b57c7c
AM
9346{"xxlor", XX3(60,146), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9347{"xscvuxdsp", XX2(60,296), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
9348{"xststdcsp", XX2(60,298), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
9349{"xsminjdp", XX3(60,152), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9350{"xsnmsubmsp", XX3(60,153), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9351{"xxlxor", XX3(60,154), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9352{"xscvsxdsp", XX2(60,312), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
9353{"xsmaxdp", XX3(60,160), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9354{"xsnmaddadp", XX3(60,161), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
1ff6a3b8 9355{"xxlnot", XX3(60,162), XX3_MASK, PPCVSX, PPCVLE|EXT, {XT6, XAB6}},
14b57c7c
AM
9356{"xxlnor", XX3(60,162), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9357{"xscvdpuxds", XX2(60,328), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9358{"xscvspdp", XX2(60,329), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9359{"xscvspdpn", XX2(60,331), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
9360{"xsmindp", XX3(60,168), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9361{"xsnmaddmdp", XX3(60,169), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9362{"xxlorc", XX3(60,170), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9363{"xscvdpsxds", XX2(60,344), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9364{"xsabsdp", XX2(60,345), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9365{"xsxexpdp", XX2VA(60,347,0),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
9366{"xsxsigdp", XX2VA(60,347,1),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
9367{"xscvhpdp", XX2VA(60,347,16),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
9368{"xscvdphp", XX2VA(60,347,17),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
9369{"xscpsgndp", XX3(60,176), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9370{"xsnmsubadp", XX3(60,177), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9371{"xxlnand", XX3(60,178), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9372{"xscvuxddp", XX2(60,360), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9373{"xsnabsdp", XX2(60,361), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9374{"xststdcdp", XX2(60,362), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
9375{"xsnmsubmdp", XX3(60,185), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9376{"xxleqv", XX3(60,186), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
9377{"xscvsxddp", XX2(60,376), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9378{"xsnegdp", XX2(60,377), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9379{"xvmaxsp", XX3(60,192), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9380{"xvnmaddasp", XX3(60,193), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9381{"xvcvspuxds", XX2(60,392), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9382{"xvcvdpsp", XX2(60,393), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9383{"xvminsp", XX3(60,200), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9384{"xvnmaddmsp", XX3(60,201), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9385{"xvcvspsxds", XX2(60,408), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9386{"xvabssp", XX2(60,409), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
1ff6a3b8 9387{"xvmovsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE|EXT, {XT6, XAB6}},
14b57c7c
AM
9388{"xvcpsgnsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9389{"xvnmsubasp", XX3(60,209), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9390{"xvcvuxdsp", XX2(60,424), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9391{"xvnabssp", XX2(60,425), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9392{"xvtstdcsp", XX2(60,426), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
9393{"xviexpsp", XX3(60,216), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9394{"xvnmsubmsp", XX3(60,217), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9395{"xvcvsxdsp", XX2(60,440), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9396{"xvnegsp", XX2(60,441), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9397{"xvmaxdp", XX3(60,224), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9398{"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
79e24d0a 9399{"dmxxextfdmr512",XX3(60,226), XX3DMR_MASK, FUTURE, PPCVLE, {XA5p, XB5p, DMR, P1}},
14b57c7c
AM
9400{"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9401{"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
d7e97a76
AM
9402{"xxgenpcvbm", X(60,916), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
9403{"xxgenpcvhm", X(60,917), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
14b57c7c
AM
9404{"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}},
9405{"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9406{"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
79e24d0a 9407{"dmxxinstdmr512",XX3(60,234), XX3DMR_MASK, FUTURE, PPCVLE, {DMR, XA5p, XB5p,P1}},
14b57c7c
AM
9408{"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9409{"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
d7e97a76
AM
9410{"xxgenpcvwm", X(60,948), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
9411{"xxgenpcvdm", X(60,949), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
14b57c7c
AM
9412{"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
9413{"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
18a8a00e 9414{"xvtlsbb", XX2VA(60,475,2),XX2BF_MASK, POWER10, PPCVLE, {BF, XB6}},
14b57c7c
AM
9415{"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
9416{"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
9417{"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
9418{"xxbrw", XX2VA(60,475,15),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
f5fc30d0 9419{"xvcvbf16spn", XX2VA(60,475,16),XX2_MASK, PPCVSX4, PPCVLE, {XT6, XB6}},
aa3c112f 9420{"xvcvspbf16", XX2VA(60,475,17),XX2_MASK, PPCVSX4, PPCVLE, {XT6, XB6}},
14b57c7c
AM
9421{"xxbrd", XX2VA(60,475,23),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
9422{"xvcvhpsp", XX2VA(60,475,24),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
9423{"xvcvsphp", XX2VA(60,475,25),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
9424{"xxbrq", XX2VA(60,475,31),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
1ff6a3b8 9425{"xvmovdp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE|EXT, {XT6, XAB6}},
14b57c7c
AM
9426{"xvcpsgndp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9427{"xvnmsubadp", XX3(60,241), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
79e24d0a
PB
9428{"dmxxextfdmr256",XX2(60,484), XX2DMR_MASK, FUTURE, PPCVLE, {XB5p, DMR, P2}},
9429{"dmxxinstdmr256",XX2(60,485), XX2DMR_MASK, FUTURE, PPCVLE, {DMR, XB5p, P2}},
14b57c7c
AM
9430{"xvcvuxddp", XX2(60,488), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9431{"xvnabsdp", XX2(60,489), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9432{"xvtstdcdp", XX2(60,490), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
9433{"xviexpdp", XX3(60,248), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
9434{"xvnmsubmdp", XX3(60,249), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
9435{"xvcvsxddp", XX2(60,504), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9436{"xvnegdp", XX2(60,505), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
9437
9438{"psq_st", OP(60), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
9439{"stfq", OP(60), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
9440
9441{"lxv", DQX(61,1), DQX_MASK, PPCVSX3, PPCVLE, {XTQ6, DQ, RA0}},
9442{"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}},
9443{"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
9444{"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
73f07bff 9445{"stfdp", OP(61), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
14b57c7c
AM
9446{"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
9447{"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
9448
9449{"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}},
9450{"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}},
73f07bff 9451{"stq", DSO(62,2), DS_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
14b57c7c
AM
9452
9453{"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
9454
73f07bff
AM
9455{"daddq", XRC(63,2,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
9456{"daddq.", XRC(63,2,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
14b57c7c 9457
73f07bff
AM
9458{"dquaq", ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
9459{"dquaq.", ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
14b57c7c
AM
9460
9461{"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
9462{"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
9463
9464{"xsrqpi", ZRC(63,5,0), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
9465{"xsrqpix", ZRC(63,5,1), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
9466
9467{"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
9468{"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
9469
9470{"frsp", XRC(63,12,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
9471{"frsp.", XRC(63,12,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
9472
9473{"fctiw", XRC(63,14,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
9474{"fcir", XRC(63,14,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
9475{"fctiw.", XRC(63,14,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
9476{"fcir.", XRC(63,14,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
9477
9478{"fctiwz", XRC(63,15,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
9479{"fcirz", XRC(63,15,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
9480{"fctiwz.", XRC(63,15,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
9481{"fcirz.", XRC(63,15,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
9482
9483{"fdiv", A(63,18,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
9484{"fd", A(63,18,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
9485{"fdiv.", A(63,18,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
9486{"fd.", A(63,18,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
9487
9488{"fsub", A(63,20,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
9489{"fs", A(63,20,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
9490{"fsub.", A(63,20,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
9491{"fs.", A(63,20,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
9492
9493{"fadd", A(63,21,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
9494{"fa", A(63,21,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
9495{"fadd.", A(63,21,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
9496{"fa.", A(63,21,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
9497
9498{"fsqrt", A(63,22,0), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
9499{"fsqrt.", A(63,22,1), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
9500
9501{"fsel", A(63,23,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9502{"fsel.", A(63,23,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9503
9504{"fre", A(63,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
9505{"fre", A(63,24,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
9506{"fre.", A(63,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
9507{"fre.", A(63,24,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
1ed8e1e4 9508
14b57c7c
AM
9509{"fmul", A(63,25,0), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
9510{"fm", A(63,25,0), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
9511{"fmul.", A(63,25,1), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
9512{"fm.", A(63,25,1), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
252b5132 9513
14b57c7c
AM
9514{"frsqrte", A(63,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
9515{"frsqrte", A(63,26,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
9516{"frsqrte.", A(63,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
9517{"frsqrte.", A(63,26,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
252b5132 9518
14b57c7c
AM
9519{"fmsub", A(63,28,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9520{"fms", A(63,28,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
9521{"fmsub.", A(63,28,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9522{"fms.", A(63,28,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 9523
14b57c7c
AM
9524{"fmadd", A(63,29,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9525{"fma", A(63,29,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
9526{"fmadd.", A(63,29,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9527{"fma.", A(63,29,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 9528
14b57c7c
AM
9529{"fnmsub", A(63,30,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9530{"fnms", A(63,30,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
9531{"fnmsub.", A(63,30,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9532{"fnms.", A(63,30,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 9533
14b57c7c
AM
9534{"fnmadd", A(63,31,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9535{"fnma", A(63,31,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
9536{"fnmadd.", A(63,31,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
9537{"fnma.", A(63,31,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 9538
14b57c7c 9539{"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
252b5132 9540
73f07bff
AM
9541{"dmulq", XRC(63,34,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
9542{"dmulq.", XRC(63,34,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 9543
73f07bff
AM
9544{"drrndq", ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
9545{"drrndq.", ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
702f0fb4 9546
14b57c7c
AM
9547{"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
9548{"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 9549
14b57c7c 9550{"xsrqpxp", Z(63,37), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
a680de9a 9551
96a86c01
AM
9552{"mtfsb1", XRC(63,38,0), XRARB_MASK, COM, PPCVLE, {BTF}},
9553{"mtfsb1.", XRC(63,38,1), XRARB_MASK, COM, PPCVLE, {BTF}},
252b5132 9554
14b57c7c
AM
9555{"fneg", XRC(63,40,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
9556{"fneg.", XRC(63,40,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 9557
14b57c7c 9558{"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
252b5132 9559
73f07bff
AM
9560{"dscliq", ZRC(63,66,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
9561{"dscliq.", ZRC(63,66,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
702f0fb4 9562
73f07bff
AM
9563{"dquaiq", ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
9564{"dquaiq.", ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
702f0fb4 9565
3b646889
AM
9566{"xscmpeqqp", X(63,68), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
9567
96a86c01
AM
9568{"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BTF}},
9569{"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BTF}},
252b5132 9570
14b57c7c
AM
9571{"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
9572{"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 9573
73f07bff
AM
9574{"dscriq", ZRC(63,98,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
9575{"dscriq.", ZRC(63,98,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
702f0fb4 9576
73f07bff
AM
9577{"drintxq", ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
9578{"drintxq.", ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
702f0fb4 9579
14b57c7c 9580{"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 9581
14b57c7c 9582{"ftdiv", X(63,128), XBF_MASK, POWER7, PPCVLE, {BF, FRA, FRB}},
066be9f7 9583
14b57c7c 9584{"dcmpoq", X(63,130), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
702f0fb4 9585
14b57c7c 9586{"xscmpoqp", X(63,132), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 9587
14b57c7c
AM
9588{"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
9589{"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
9590{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
9591{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
252b5132 9592
14b57c7c
AM
9593{"fnabs", XRC(63,136,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
9594{"fnabs.", XRC(63,136,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 9595
14b57c7c
AM
9596{"fctiwu", XRC(63,142,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
9597{"fctiwu.", XRC(63,142,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
9598{"fctiwuz", XRC(63,143,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
9599{"fctiwuz.", XRC(63,143,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
066be9f7 9600
14b57c7c 9601{"ftsqrt", X(63,160), XBF_MASK|FRA_MASK, POWER7, PPCVLE, {BF, FRB}},
066be9f7 9602
14b57c7c 9603{"dtstexq", X(63,162), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
a680de9a 9604
14b57c7c 9605{"xscmpexpqp", X(63,164), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 9606
14b57c7c 9607{"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}},
3b646889
AM
9608
9609{"xscmpgeqp", X(63,196), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
9610
14b57c7c 9611{"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}},
702f0fb4 9612
73f07bff
AM
9613{"drintnq", ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
9614{"drintnq.", ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
702f0fb4 9615
3b646889
AM
9616{"xscmpgtqp", X(63,228), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
9617
73f07bff
AM
9618{"dctqpq", XRC(63,258,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
9619{"dctqpq.", XRC(63,258,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
702f0fb4 9620
14b57c7c
AM
9621{"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
9622{"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 9623
14b57c7c
AM
9624{"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
9625{"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
702f0fb4 9626
73f07bff
AM
9627{"ddedpdq", XRC(63,322,0), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
9628{"ddedpdq.", XRC(63,322,1), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
702f0fb4 9629
14b57c7c
AM
9630{"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
9631{"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
702f0fb4 9632
14b57c7c
AM
9633{"xsmaddqp", XRC(63,388,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
9634{"xsmaddqpo", XRC(63,388,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 9635
14b57c7c
AM
9636{"frin", XRC(63,392,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
9637{"frin.", XRC(63,392,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 9638
14b57c7c
AM
9639{"xsmsubqp", XRC(63,420,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
9640{"xsmsubqpo", XRC(63,420,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 9641
14b57c7c
AM
9642{"friz", XRC(63,424,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
9643{"friz.", XRC(63,424,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 9644
14b57c7c
AM
9645{"xsnmaddqp", XRC(63,452,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
9646{"xsnmaddqpo", XRC(63,452,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 9647
14b57c7c
AM
9648{"frip", XRC(63,456,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
9649{"frip.", XRC(63,456,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 9650
14b57c7c
AM
9651{"xsnmsubqp", XRC(63,484,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
9652{"xsnmsubqpo", XRC(63,484,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 9653
14b57c7c
AM
9654{"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
9655{"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
ce7a772b 9656
73f07bff
AM
9657{"dsubq", XRC(63,514,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
9658{"dsubq.", XRC(63,514,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 9659
14b57c7c
AM
9660{"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
9661{"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 9662
73f07bff
AM
9663{"ddivq", XRC(63,546,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
9664{"ddivq.", XRC(63,546,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 9665
14b57c7c
AM
9666{"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
9667{"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 9668
14b57c7c
AM
9669{"mffs", XRC(63,583,0), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
9670{"mffs.", XRC(63,583,1), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
252b5132 9671
6fd3a02d
PB
9672{"mffsce", XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
9673{"mffscdrn", XMMF(63,583,2,4), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
9674{"mffscdrni", XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE, {FRT, DRM}},
9675{"mffscrn", XMMF(63,583,2,6), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
9676{"mffscrni", XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE, {FRT, RM}},
9677{"mffsl", XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
9678
14b57c7c 9679{"dcmpuq", X(63,642), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
702f0fb4 9680
14b57c7c 9681{"xscmpuqp", X(63,644), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 9682
14b57c7c
AM
9683{"dtstsfq", X(63,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRBp}},
9684{"dtstsfiq", X(63,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRBp}},
a680de9a 9685
3b646889
AM
9686{"xsmaxcqp", X(63,676), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
9687
14b57c7c 9688{"xststdcqp", X(63,708), X_MASK, PPCVSX3, PPCVLE, {BF, VB, DCMX}},
702f0fb4 9689
14b57c7c
AM
9690{"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
9691{"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
9692{"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
9693{"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
252b5132 9694
3b646889
AM
9695{"xsmincqp", X(63,740), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
9696
73f07bff
AM
9697{"drdpq", XRC(63,770,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
9698{"drdpq.", XRC(63,770,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
702f0fb4 9699
73f07bff
AM
9700{"dcffixq", XRC(63,802,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
9701{"dcffixq.", XRC(63,802,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
702f0fb4 9702
14b57c7c
AM
9703{"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9704{"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9705{"xsnabsqp", XVA(63,804,8), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9706{"xsnegqp", XVA(63,804,16), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9707{"xsxsigqp", XVA(63,804,18), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9708{"xssqrtqp", XVARC(63,804,27,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9709{"xssqrtqpo", XVARC(63,804,27,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
a680de9a 9710
14b57c7c
AM
9711{"fctid", XRC(63,814,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
9712{"fctid", XRC(63,814,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
9713{"fctid.", XRC(63,814,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
9714{"fctid.", XRC(63,814,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 9715
14b57c7c
AM
9716{"fctidz", XRC(63,815,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
9717{"fctidz", XRC(63,815,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
9718{"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
9719{"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 9720
73f07bff
AM
9721{"denbcdq", XRC(63,834,0), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
9722{"denbcdq.", XRC(63,834,1), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
702f0fb4 9723
c7d7aea2 9724{"xscvqpuqz", XVA(63,836,0), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
14b57c7c
AM
9725{"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9726{"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
c7d7aea2
AM
9727{"xscvuqqp", XVA(63,836,3), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
9728{"xscvqpsqz", XVA(63,836,8), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
14b57c7c
AM
9729{"xscvqpswz", XVA(63,836,9), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9730{"xscvsdqp", XVA(63,836,10), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
c7d7aea2 9731{"xscvsqqp", XVA(63,836,11), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
14b57c7c
AM
9732{"xscvqpudz", XVA(63,836,17), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9733{"xscvqpdp", XVARC(63,836,20,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9734{"xscvqpdpo", XVARC(63,836,20,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9735{"xscvdpqp", XVA(63,836,22), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
9736{"xscvqpsdz", XVA(63,836,25), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
a680de9a 9737
14b57c7c 9738{"fmrgow", X(63,838), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
c0637f3a 9739
14b57c7c
AM
9740{"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
9741{"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
9742{"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
9743{"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 9744
73f07bff
AM
9745{"diexq", XRC(63,866,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
9746{"diexq.", XRC(63,866,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
702f0fb4 9747
14b57c7c 9748{"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 9749
14b57c7c
AM
9750{"fctidu", XRC(63,942,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
9751{"fctidu.", XRC(63,942,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
066be9f7 9752
14b57c7c
AM
9753{"fctiduz", XRC(63,943,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
9754{"fctiduz.", XRC(63,943,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
066be9f7 9755
14b57c7c 9756{"fmrgew", X(63,966), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
c0637f3a 9757
14b57c7c
AM
9758{"fcfidu", XRC(63,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
9759{"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
c7d7aea2
AM
9760
9761{"dcffixqq", XVA(63,994,0), XVA_MASK, POWER10, PPCVLE, {FRTp, VB}},
9762{"dctfixqq", XVA(63,994,1), XVA_MASK, POWER10, PPCVLE, {VD, FRBp}},
252b5132
RH
9763};
9764
61a457e5 9765const unsigned int powerpc_num_opcodes = ARRAY_SIZE (powerpc_opcodes);
252b5132 9766\f
dd7efa79
PB
9767/* The opcode table for 8-byte prefix instructions.
9768
9769 The format of this opcode table is the same as the main opcode table. */
9770
9771const struct powerpc_opcode prefix_opcodes[] = {
7c1f4227 9772{"pnop", PMRR, PREFIX_MASK, POWER10, 0, {0}},
1ff6a3b8 9773{"pli", PMLS|OP(14), P_DRAPCREL_MASK, POWER10, EXT, {RT, SI34}},
7149607f
AM
9774{"pla", PMLS|OP(14), P_D_MASK, POWER10, EXT, {RT, D34, PRA0, PCREL1}},
9775{"paddi", PMLS|OP(14), P_D_MASK, POWER10, 0, {RT, RA0, SI34, PCREL}},
9776{"psubi", PMLS|OP(14), P_D_MASK, POWER10, EXT, {RT, RA0, NSI34, PCREL}},
6edbfd3b
AM
9777{"xxsplti32dx", P8RR|VSOP(32,0), P_VSI_MASK, POWER10, 0, {XTS, IX, IMM32}},
9778{"xxspltidp", P8RR|VSOP(32,2), P_VS_MASK, POWER10, 0, {XTS, IMM32}},
9779{"xxspltiw", P8RR|VSOP(32,3), P_VS_MASK, POWER10, 0, {XTS, IMM32}},
7c1f4227 9780{"plwz", PMLS|OP(32), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
6edbfd3b
AM
9781{"xxblendvb", P8RR|XX4(33,0), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
9782{"xxblendvh", P8RR|XX4(33,1), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
9783{"xxblendvw", P8RR|XX4(33,2), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
9784{"xxblendvd", P8RR|XX4(33,3), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
9785{"xxpermx", P8RR|XX4(34,0), P_UXX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6, UIM3}},
ec40e91c 9786{"xxeval", P8RR|XX4(34,1), P_U8XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6, UIM8}},
7c1f4227
AM
9787{"plbz", PMLS|OP(34), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
9788{"pstw", PMLS|OP(36), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
9789{"pstb", PMLS|OP(38), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
9790{"plhz", PMLS|OP(40), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
9791{"plwa", P8LS|OP(41), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
9792{"plxsd", P8LS|OP(42), P_D_MASK, POWER10, 0, {VD, D34, PRA0, PCREL}},
9793{"plha", PMLS|OP(42), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
9794{"plxssp", P8LS|OP(43), P_D_MASK, POWER10, 0, {VD, D34, PRA0, PCREL}},
9795{"psth", PMLS|OP(44), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
9796{"pstxsd", P8LS|OP(46), P_D_MASK, POWER10, 0, {VS, D34, PRA0, PCREL}},
9797{"pstxssp", P8LS|OP(47), P_D_MASK, POWER10, 0, {VS, D34, PRA0, PCREL}},
9798{"plfs", PMLS|OP(48), P_D_MASK, POWER10, 0, {FRT, D34, PRA0, PCREL}},
9799{"plxv", P8LS|OP(50), P_D_MASK&~OP(1), POWER10, 0, {XTOP, D34, PRA0, PCREL}},
9800{"plfd", PMLS|OP(50), P_D_MASK, POWER10, 0, {FRT, D34, PRA0, PCREL}},
9801{"pstfs", PMLS|OP(52), P_D_MASK, POWER10, 0, {FRS, D34, PRA0, PCREL}},
9802{"pstxv", P8LS|OP(54), P_D_MASK&~OP(1), POWER10, 0, {XTOP, D34, PRA0, PCREL}},
9803{"pstfd", PMLS|OP(54), P_D_MASK, POWER10, 0, {FRS, D34, PRA0, PCREL}},
9804{"plq", P8LS|OP(56), P_D_MASK, POWER10, 0, {RTQ, D34, PRAQ, PCREL}},
9805{"pld", P8LS|OP(57), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
94ba9882 9806{"plxvp", P8LS|OP(58), P_D_MASK, POWER10, 0, {XTP, D34, PRA0, PCREL}},
79e24d0a 9807{"pmdmxvi8ger4pp",PMMIRR|XX3(59,2), P_GER4_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
aa3c112f 9808{"pmxvi8ger4pp", PMMIRR|XX3(59,2), P_GER4_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
79e24d0a 9809{"pmdmxvi8ger4", PMMIRR|XX3(59,3), P_GER4_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
aa3c112f 9810{"pmxvi8ger4", PMMIRR|XX3(59,3), P_GER4_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
bb98553c
PB
9811{"pmdmxvi8gerx4pp",PMMIRR|XX3(59,10), P_GERX4_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK4}},
9812{"pmdmxvi8gerx4", PMMIRR|XX3(59,11), P_GERX4_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK4}},
79e24d0a 9813{"pmdmxvf16ger2pp",PMMIRR|XX3(59,18), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9814{"pmxvf16ger2pp", PMMIRR|XX3(59,18), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9815{"pmdmxvf16ger2", PMMIRR|XX3(59,19), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9816{"pmxvf16ger2", PMMIRR|XX3(59,19), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9817{"pmdmxvf32gerpp",PMMIRR|XX3(59,26), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
aa3c112f 9818{"pmxvf32gerpp", PMMIRR|XX3(59,26), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
79e24d0a 9819{"pmdmxvf32ger", PMMIRR|XX3(59,27), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
aa3c112f 9820{"pmxvf32ger", PMMIRR|XX3(59,27), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
79e24d0a 9821{"pmdmxvi4ger8pp",PMMIRR|XX3(59,34), P_GER8_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
aa3c112f 9822{"pmxvi4ger8pp", PMMIRR|XX3(59,34), P_GER8_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
79e24d0a 9823{"pmdmxvi4ger8", PMMIRR|XX3(59,35), P_GER8_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
aa3c112f 9824{"pmxvi4ger8", PMMIRR|XX3(59,35), P_GER8_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
79e24d0a 9825{"pmdmxvi16ger2spp",PMMIRR|XX3(59,42), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9826{"pmxvi16ger2spp",PMMIRR|XX3(59,42), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9827{"pmdmxvi16ger2s",PMMIRR|XX3(59,43), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9828{"pmxvi16ger2s", PMMIRR|XX3(59,43), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9829{"pmdmxvbf16ger2pp",PMMIRR|XX3(59,50), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9830{"pmxvbf16ger2pp",PMMIRR|XX3(59,50), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9831{"pmdmxvbf16ger2",PMMIRR|XX3(59,51), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9832{"pmxvbf16ger2", PMMIRR|XX3(59,51), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9833{"pmdmxvf64gerpp",PMMIRR|XX3(59,58), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
aa3c112f 9834{"pmxvf64gerpp", PMMIRR|XX3(59,58), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
79e24d0a 9835{"pmdmxvf64ger", PMMIRR|XX3(59,59), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
aa3c112f 9836{"pmxvf64ger", PMMIRR|XX3(59,59), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
bb98553c
PB
9837{"pmdmxvf16gerx2pp",PMMIRR|XX3(59,66), P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
9838{"pmdmxvf16gerx2",PMMIRR|XX3(59,67), P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
9839{"pmdmxvbf16gerx2pp",PMMIRR|XX3(59,74),P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
79e24d0a 9840{"pmdmxvi16ger2", PMMIRR|XX3(59,75), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9841{"pmxvi16ger2", PMMIRR|XX3(59,75), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9842{"pmdmxvf16ger2np",PMMIRR|XX3(59,82), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9843{"pmxvf16ger2np", PMMIRR|XX3(59,82), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
bb98553c 9844{"pmdmxvf16gerx2np",PMMIRR|XX3(59,83), P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
79e24d0a 9845{"pmdmxvf32gernp",PMMIRR|XX3(59,90), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
aa3c112f 9846{"pmxvf32gernp", PMMIRR|XX3(59,90), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
bb98553c
PB
9847{"pmdmxvbf16gerx2",PMMIRR|XX3(59,91), P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
9848{"pmdmxvi8gerx4spp",PMMIRR|XX3(59,98), P_GERX4_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK4}},
79e24d0a 9849{"pmdmxvi8ger4spp",PMMIRR|XX3(59,99), P_GER4_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
aa3c112f 9850{"pmxvi8ger4spp", PMMIRR|XX3(59,99), P_GER4_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
79e24d0a 9851{"pmdmxvi16ger2pp",PMMIRR|XX3(59,107), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9852{"pmxvi16ger2pp", PMMIRR|XX3(59,107), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9853{"pmdmxvbf16ger2np",PMMIRR|XX3(59,114),P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9854{"pmxvbf16ger2np",PMMIRR|XX3(59,114), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
bb98553c 9855{"pmdmxvbf16gerx2np",PMMIRR|XX3(59,115),P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
79e24d0a 9856{"pmdmxvf64gernp",PMMIRR|XX3(59,122), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
aa3c112f 9857{"pmxvf64gernp", PMMIRR|XX3(59,122), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
79e24d0a 9858{"pmdmxvf16ger2pn",PMMIRR|XX3(59,146), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9859{"pmxvf16ger2pn", PMMIRR|XX3(59,146), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
bb98553c 9860{"pmdmxvf16gerx2pn",PMMIRR|XX3(59,147),P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
79e24d0a 9861{"pmdmxvf32gerpn",PMMIRR|XX3(59,154), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
aa3c112f 9862{"pmxvf32gerpn", PMMIRR|XX3(59,154), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
79e24d0a 9863{"pmdmxvbf16ger2pn",PMMIRR|XX3(59,178),P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9864{"pmxvbf16ger2pn",PMMIRR|XX3(59,178), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
bb98553c 9865{"pmdmxvbf16gerx2pn",PMMIRR|XX3(59,179),P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
79e24d0a 9866{"pmdmxvf64gerpn",PMMIRR|XX3(59,186), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
aa3c112f 9867{"pmxvf64gerpn", PMMIRR|XX3(59,186), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
bb98553c 9868{"pmdmxvf16gerx2nn",PMMIRR|XX3(59,202),P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
79e24d0a 9869{"pmdmxvf16ger2nn",PMMIRR|XX3(59,210), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9870{"pmxvf16ger2nn", PMMIRR|XX3(59,210), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9871{"pmdmxvf32gernn",PMMIRR|XX3(59,218), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
aa3c112f 9872{"pmxvf32gernn", PMMIRR|XX3(59,218), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
bb98553c 9873{"pmdmxvbf16gerx2nn",PMMIRR|XX3(59,234),P_GERX2_MASK, FUTURE, 0, {DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
79e24d0a 9874{"pmdmxvbf16ger2nn",PMMIRR|XX3(59,242),P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
aa3c112f 9875{"pmxvbf16ger2nn",PMMIRR|XX3(59,242), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
79e24d0a 9876{"pmdmxvf64gernn",PMMIRR|XX3(59,250), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
aa3c112f 9877{"pmxvf64gernn", PMMIRR|XX3(59,250), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
7c1f4227
AM
9878{"pstq", P8LS|OP(60), P_D_MASK, POWER10, 0, {RSQ, D34, PRA0, PCREL}},
9879{"pstd", P8LS|OP(61), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
7dacb40b 9880{"pstxvp", P8LS|OP(62), P_D_MASK, POWER10, 0, {XSP, D34, PRA0, PCREL}},
dd7efa79
PB
9881};
9882
61a457e5 9883const unsigned int prefix_num_opcodes = ARRAY_SIZE (prefix_opcodes);
dd7efa79 9884\f
b9c361e0
JL
9885/* The VLE opcode table.
9886
9887 The format of this opcode table is the same as the main opcode table. */
9888
9889const struct powerpc_opcode vle_opcodes[] = {
14b57c7c
AM
9890{"se_illegal", C(0), C_MASK, PPCVLE, 0, {}},
9891{"se_isync", C(1), C_MASK, PPCVLE, 0, {}},
9892{"se_sc", C(2), C_MASK, PPCVLE, 0, {}},
9893{"se_blr", C_LK(2,0), C_LK_MASK, PPCVLE, 0, {}},
9894{"se_blrl", C_LK(2,1), C_LK_MASK, PPCVLE, 0, {}},
9895{"se_bctr", C_LK(3,0), C_LK_MASK, PPCVLE, 0, {}},
9896{"se_bctrl", C_LK(3,1), C_LK_MASK, PPCVLE, 0, {}},
9897{"se_rfi", C(8), C_MASK, PPCVLE, 0, {}},
9898{"se_rfci", C(9), C_MASK, PPCVLE, 0, {}},
9899{"se_rfdi", C(10), C_MASK, PPCVLE, 0, {}},
45685a2f
AM
9900/* PPCRFMCI in the following does not enable the instruction for any
9901 PPC_OPCODE_RFMCI supporting cpu as vle_opcodes are all added to the
9902 assembler hash table or searched by the disassembler under control
9903 of PPC_OPCODE_VLE. It's there to set apuinfo. */
14b57c7c 9904{"se_rfmci", C(11), C_MASK, PPCRFMCI|PPCVLE, 0, {}},
a8cc8a54 9905{"se_rfgi", C(12), C_MASK, PPCVLE, 0, {}},
14b57c7c
AM
9906{"se_not", SE_R(0,2), SE_R_MASK, PPCVLE, 0, {RX}},
9907{"se_neg", SE_R(0,3), SE_R_MASK, PPCVLE, 0, {RX}},
9908{"se_mflr", SE_R(0,8), SE_R_MASK, PPCVLE, 0, {RX}},
9909{"se_mtlr", SE_R(0,9), SE_R_MASK, PPCVLE, 0, {RX}},
9910{"se_mfctr", SE_R(0,10), SE_R_MASK, PPCVLE, 0, {RX}},
9911{"se_mtctr", SE_R(0,11), SE_R_MASK, PPCVLE, 0, {RX}},
9912{"se_extzb", SE_R(0,12), SE_R_MASK, PPCVLE, 0, {RX}},
9913{"se_extsb", SE_R(0,13), SE_R_MASK, PPCVLE, 0, {RX}},
9914{"se_extzh", SE_R(0,14), SE_R_MASK, PPCVLE, 0, {RX}},
9915{"se_extsh", SE_R(0,15), SE_R_MASK, PPCVLE, 0, {RX}},
9916{"se_mr", SE_RR(0,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9917{"se_mtar", SE_RR(0,2), SE_RR_MASK, PPCVLE, 0, {ARX, RY}},
9918{"se_mfar", SE_RR(0,3), SE_RR_MASK, PPCVLE, 0, {RX, ARY}},
9919{"se_add", SE_RR(1,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9920{"se_mullw", SE_RR(1,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9921{"se_sub", SE_RR(1,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9922{"se_subf", SE_RR(1,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9923{"se_cmp", SE_RR(3,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9924{"se_cmpl", SE_RR(3,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9925{"se_cmph", SE_RR(3,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9926{"se_cmphl", SE_RR(3,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9927
e3c2f928 9928/* by major opcode */
61a457e5
AM
9929{"e_cmpi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
9930{"e_cmpwi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
9931{"e_cmpli", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
9932{"e_cmplwi", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
9933{"e_addi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9934{"e_subi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
9935{"e_addi.", SCI8(6,17), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9936{"e_addic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9937{"e_subic", SCI8(6,18), SCI8_MASK, PPCVLE, EXT, {RT, RA, SCLSCI8N}},
9938{"e_addic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9939{"e_subic.", SCI8(6,19), SCI8_MASK, PPCVLE, EXT, {RT, RA, SCLSCI8N}},
9940{"e_mulli", SCI8(6,20), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9941{"e_subfic", SCI8(6,22), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9942{"e_subfic.", SCI8(6,23), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9943{"e_andi", SCI8(6,24), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9944{"e_andi.", SCI8(6,25), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9945{"e_nop", SCI8(6,26), 0xffffffff, PPCVLE, EXT, {0}},
9946{"e_ori", SCI8(6,26), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9947{"e_ori.", SCI8(6,27), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9948{"e_xori", SCI8(6,28), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9949{"e_xori.", SCI8(6,29), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9950{"e_lbzu", OPVUP(6,0), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9951{"e_lhau", OPVUP(6,3), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9952{"e_lhzu", OPVUP(6,1), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9953{"e_lmw", OPVUP(6,8), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9954{"e_lwzu", OPVUP(6,2), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9955{"e_stbu", OPVUP(6,4), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9956{"e_sthu", OPVUP(6,5), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9957{"e_stwu", OPVUP(6,6), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9958{"e_stmw", OPVUP(6,9), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9959{"e_lmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9960{"e_ldmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9961{"e_stmvgprw", OPVUPRT(6,17,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9962{"e_lmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9963{"e_ldmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9964{"e_stmvsprw", OPVUPRT(6,17,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9965{"e_lmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9966{"e_ldmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9967{"e_stmvsrrw", OPVUPRT(6,17,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9968{"e_lmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9969{"e_ldmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9970{"e_stmvcsrrw", OPVUPRT(6,17,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9971{"e_lmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9972{"e_ldmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9973{"e_stmvdsrrw", OPVUPRT(6,17,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9974{"e_lmvmcsrrw", OPVUPRT(6,16,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
45685a2f 9975{"e_stmvmcsrrw",OPVUPRT(6,17,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
61a457e5
AM
9976{"e_add16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, SI}},
9977{"e_la", OP(7), OP_MASK, PPCVLE, EXT, {RT, D, RA0}},
9978{"e_sub16i", OP(7), OP_MASK, PPCVLE, EXT, {RT, RA, NSI}},
9979
9980{"se_addi", SE_IM5(8,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9981{"se_cmpli", SE_IM5(8,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9982{"se_subi", SE_IM5(9,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9983{"se_subi.", SE_IM5(9,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9984{"se_cmpi", SE_IM5(10,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9985{"se_bmaski", SE_IM5(11,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9986{"se_andi", SE_IM5(11,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9987
9988{"e_lbz", OP(12), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9989{"e_stb", OP(13), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9990{"e_lha", OP(14), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9991
9992{"se_srw", SE_RR(16,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9993{"se_sraw", SE_RR(16,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9994{"se_slw", SE_RR(16,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9995{"se_nop", SE_RR(17,0), 0xffff, PPCVLE, EXT, {0}},
9996{"se_or", SE_RR(17,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9997{"se_andc", SE_RR(17,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9998{"se_and", SE_RR(17,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9999{"se_and.", SE_RR(17,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
10000{"se_li", IM7(9), IM7_MASK, PPCVLE, 0, {RX, UI7}},
10001
10002{"e_lwz", OP(20), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
10003{"e_stw", OP(21), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
10004{"e_lhz", OP(22), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
10005{"e_sth", OP(23), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
10006
10007{"se_bclri", SE_IM5(24,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
10008{"se_bgeni", SE_IM5(24,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
10009{"se_bseti", SE_IM5(25,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
10010{"se_btsti", SE_IM5(25,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
10011{"se_srwi", SE_IM5(26,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
10012{"se_srawi", SE_IM5(26,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
10013{"se_slwi", SE_IM5(27,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
10014
10015{"e_lis", I16L(28,28), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
10016{"e_and2is.", I16L(28,29), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
10017{"e_or2is", I16L(28,26), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
10018{"e_and2i.", I16L(28,25), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
10019{"e_or2i", I16L(28,24), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
10020{"e_cmphl16i", IA16(28,23), IA16_MASK, PPCVLE, 0, {RA, VLEUIMM}},
10021{"e_cmph16i", IA16(28,22), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
10022{"e_cmpl16i", I16A(28,21), I16A_MASK, PPCVLE, 0, {RA, VLEUIMM}},
10023{"e_mull2i", I16A(28,20), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
10024{"e_cmp16i", IA16(28,19), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
10025{"e_sub2is", I16A(28,18), I16A_MASK, PPCVLE, EXT, {RA, VLENSIMM}},
10026{"e_add2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
10027{"e_sub2i.", I16A(28,17), I16A_MASK, PPCVLE, EXT, {RA, VLENSIMM}},
10028{"e_add2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
10029{"e_li", LI20(28,0), LI20_MASK, PPCVLE, 0, {RT, IMM20}},
10030{"e_rlwimi", M(29,0), M_MASK, PPCVLE, 0, {RA, RS, SH, MB, ME}},
10031{"e_inslwi", M(29,0), M_MASK, PPCVLE, EXT, {RA, RS, ILWn, ILWb}},
10032{"e_insrwi", M(29,0), M_MASK, PPCVLE, EXT, {RA, RS, IRWn, IRWb}},
10033{"e_rotlwi", MME(29,31,1), MMBME_MASK, PPCVLE, EXT, {RA, RS, SH}},
10034{"e_rotrwi", MME(29,31,1), MMBME_MASK, PPCVLE, EXT, {RA, RS, RRWn}},
10035{"e_clrlwi", MME(29,31,1), MSHME_MASK, PPCVLE, EXT, {RA, RS, MB}},
10036{"e_clrrwi", M(29,1), MSHMB_MASK, PPCVLE, EXT, {RA, RS, CRWn}},
10037{"e_rlwinm", M(29,1), M_MASK, PPCVLE, 0, {RA, RS, SH, MBE, ME}},
10038{"e_extlwi", M(29,1), MMB_MASK, PPCVLE, EXT, {RA, RS, ELWn, SH}},
10039{"e_extrwi", MME(29,31,1), MME_MASK, PPCVLE, EXT, {RA, RS, ERWn, ERWb}},
10040{"e_clrlslwi", M(29,1), M_MASK, PPCVLE, EXT, {RA, RS, CSLWb, CSLWn}},
10041{"e_b", BD24(30,0,0), BD24_MASK, PPCVLE, 0, {B24}},
10042{"e_bl", BD24(30,0,1), BD24_MASK, PPCVLE, 0, {B24}},
10043{"e_bdnz", EBD15(30,8,BO32DNZ,0), EBD15_MASK, PPCVLE, EXT, {B15}},
10044{"e_bdnzl", EBD15(30,8,BO32DNZ,1), EBD15_MASK, PPCVLE, EXT, {B15}},
10045{"e_bdz", EBD15(30,8,BO32DZ,0), EBD15_MASK, PPCVLE, EXT, {B15}},
10046{"e_bdzl", EBD15(30,8,BO32DZ,1), EBD15_MASK, PPCVLE, EXT, {B15}},
10047{"e_bge", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10048{"e_bgel", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10049{"e_bnl", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10050{"e_bnll", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10051{"e_blt", EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10052{"e_bltl", EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10053{"e_bgt", EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10054{"e_bgtl", EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10055{"e_ble", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10056{"e_blel", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10057{"e_bng", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10058{"e_bngl", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10059{"e_bne", EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10060{"e_bnel", EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10061{"e_beq", EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10062{"e_beql", EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10063{"e_bso", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10064{"e_bsol", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10065{"e_bun", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10066{"e_bunl", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10067{"e_bns", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10068{"e_bnsl", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10069{"e_bnu", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10070{"e_bnul", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, EXT, {CRS,B15}},
10071{"e_bc", BD15(30,8,0), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
10072{"e_bcl", BD15(30,8,1), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
10073
10074{"e_bf", EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, EXT, {BI32,B15}},
10075{"e_bfl", EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, EXT, {BI32,B15}},
10076{"e_bt", EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, EXT, {BI32,B15}},
10077{"e_btl", EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, EXT, {BI32,B15}},
10078
10079{"e_cmph", X(31,14), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
10080{"e_sc", X(31,36), XRTRA_MASK, PPCVLE, 0, {ELEV}},
10081{"e_cmphl", X(31,46), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
10082{"e_crandc", XL(31,129), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
10083{"e_crnand", XL(31,225), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
10084{"e_crnot", XL(31,33), XL_MASK, PPCVLE, EXT, {BT, BAB}},
10085{"e_crnor", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
10086{"e_crclr", XL(31,193), XL_MASK, PPCVLE, EXT, {BTAB}},
10087{"e_crxor", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
10088{"e_mcrf", XL(31,16), XL_MASK, PPCVLE, 0, {CRD, CR}},
10089{"e_slwi", EX(31,112), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
10090{"e_slwi.", EX(31,113), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
10091
10092{"e_crand", XL(31,257), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
10093
10094{"e_rlw", EX(31,560), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
10095{"e_rlw.", EX(31,561), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
10096
10097{"e_crset", XL(31,289), XL_MASK, PPCVLE, EXT, {BTAB}},
10098{"e_creqv", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
10099
10100{"e_rlwi", EX(31,624), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
10101{"e_rlwi.", EX(31,625), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
10102
10103{"e_crorc", XL(31,417), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
10104
10105{"e_crmove", XL(31,449), XL_MASK, PPCVLE, EXT, {BT, BAB}},
10106{"e_cror", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
10107
10108{"mtmas1", XSPR(31,467,625), XSPR_MASK, PPCVLE, EXT, {RS}},
10109
10110{"e_srwi", EX(31,1136), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
10111{"e_srwi.", EX(31,1137), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
10112
10113{"se_lbz", SD4(8), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
10114
10115{"se_stb", SD4(9), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
10116
10117{"se_lhz", SD4(10), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
10118
10119{"se_sth", SD4(11), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
10120
10121{"se_lwz", SD4(12), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
10122
10123{"se_stw", SD4(13), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
10124
10125{"se_bge", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10126{"se_bnl", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10127{"se_ble", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10128{"se_bng", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10129{"se_bne", EBD8IO(28,0,2), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10130{"se_bns", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10131{"se_bnu", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10132{"se_bf", EBD8IO(28,0,0), EBD8IO2_MASK, PPCVLE, EXT, {BI16, B8}},
10133{"se_blt", EBD8IO(28,1,0), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10134{"se_bgt", EBD8IO(28,1,1), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10135{"se_beq", EBD8IO(28,1,2), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10136{"se_bso", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10137{"se_bun", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, EXT, {B8}},
10138{"se_bt", EBD8IO(28,1,0), EBD8IO2_MASK, PPCVLE, EXT, {BI16, B8}},
10139{"se_bc", BD8IO(28), BD8IO_MASK, PPCVLE, 0, {BO16, BI16, B8}},
10140{"se_b", BD8(58,0,0), BD8_MASK, PPCVLE, 0, {B8}},
10141{"se_bl", BD8(58,0,1), BD8_MASK, PPCVLE, 0, {B8}},
10142};
10143
10144const unsigned int vle_num_opcodes = ARRAY_SIZE (vle_opcodes);
10145
10146const struct powerpc_opcode lsp_opcodes[] = {
e3c2f928
AF
10147{"zvaddih", VX(4, 0x200), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
10148{"zvsubifh", VX(4, 0x201), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
10149{"zvaddh", VX(4, 0x204), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10150{"zvsubfh", VX(4, 0x205), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10151{"zvaddsubfh", VX(4, 0x206), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10152{"zvsubfaddh", VX(4, 0x207), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10153{"zvaddhx", VX(4, 0x20C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10154{"zvsubfhx", VX(4, 0x20D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10155{"zvaddsubfhx", VX(4, 0x20E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10156{"zvsubfaddhx", VX(4, 0x20F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10157{"zaddwus", VX(4, 0x210), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10158{"zsubfwus", VX(4, 0x211), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10159{"zaddwss", VX(4, 0x212), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10160{"zsubfwss", VX(4, 0x213), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10161{"zvaddhus", VX(4, 0x214), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10162{"zvsubfhus", VX(4, 0x215), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10163{"zvaddhss", VX(4, 0x216), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10164{"zvsubfhss", VX(4, 0x217), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10165{"zvaddsubfhss", VX(4, 0x21A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10166{"zvsubfaddhss", VX(4, 0x21B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10167{"zvaddhxss", VX(4, 0x21C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10168{"zvsubfhxss", VX(4, 0x21D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10169{"zvaddsubfhxss", VX(4, 0x21E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10170{"zvsubfaddhxss", VX(4, 0x21F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10171{"zaddheuw", VX(4, 0x220), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10172{"zsubfheuw", VX(4, 0x221), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10173{"zaddhesw", VX(4, 0x222), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10174{"zsubfhesw", VX(4, 0x223), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10175{"zaddhouw", VX(4, 0x224), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10176{"zsubfhouw", VX(4, 0x225), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10177{"zaddhosw", VX(4, 0x226), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10178{"zsubfhosw", VX(4, 0x227), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10179{"zvmergehih", VX(4, 0x22C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10180{"zvmergeloh", VX(4, 0x22D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10181{"zvmergehiloh", VX(4, 0x22E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10182{"zvmergelohih", VX(4, 0x22F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10183{"zvcmpgthu", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
10184{"zvcmpgths", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
10185{"zvcmplthu", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
10186{"zvcmplths", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
10187{"zvcmpeqh", VX(4, 0x232), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
10188{"zpkswgshfrs", VX(4, 0x238), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10189{"zpkswgswfrs", VX(4, 0x239), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10190{"zvpkshgwshfrs", VX(4, 0x23A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10191{"zvpkswshfrs", VX(4, 0x23B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10192{"zvpkswuhs", VX(4, 0x23C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10193{"zvpkswshs", VX(4, 0x23D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10194{"zvpkuwuhs", VX(4, 0x23E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10195{"zvsplatih", VX_LSP(4, 0x23F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
10196{"zvsplatfih", VX_LSP(4, 0xA3F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
10197{"zcntlsw", VX_LSP(4, 0x2A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10198{"zvcntlzh", VX_LSP(4, 0x323F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10199{"zvcntlsh", VX_LSP(4, 0x3A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10200{"znegws", VX_LSP(4, 0x4A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10201{"zvnegh", VX_LSP(4, 0x523F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10202{"zvneghs", VX_LSP(4, 0x5A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10203{"zvnegho", VX_LSP(4, 0x623F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10204{"zvneghos", VX_LSP(4, 0x6A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10205{"zrndwh", VX_LSP(4, 0x823F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10206{"zrndwhss", VX_LSP(4, 0x8A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10207{"zvabsh", VX_LSP(4, 0xA23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10208{"zvabshs", VX_LSP(4, 0xAA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10209{"zabsw", VX_LSP(4, 0xB23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10210{"zabsws", VX_LSP(4, 0xBA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10211{"zsatswuw", VX_LSP(4, 0xC23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10212{"zsatuwsw", VX_LSP(4, 0xCA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10213{"zsatswuh", VX_LSP(4, 0xD23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10214{"zsatswsh", VX_LSP(4, 0xDA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10215{"zvsatshuh", VX_LSP(4, 0xE23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10216{"zvsatuhsh", VX_LSP(4, 0xEA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10217{"zsatuwuh", VX_LSP(4, 0xF23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10218{"zsatuwsh", VX_LSP(4, 0xFA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
10219{"zsatsduw", VX(4, 0x260), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10220{"zsatsdsw", VX(4, 0x261), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10221{"zsatuduw", VX(4, 0x262), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10222{"zvselh", VX(4, 0x264), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10223{"zxtrw", VX(4, 0x264), VX_LSP_OFF_MASK, PPCLSP, 0, {RD, RA, RB, VX_OFF}},
10224{"zbrminc", VX(4, 0x268), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10225{"zcircinc", VX(4, 0x269), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10226{"zdivwsf", VX(4, 0x26B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10227{"zvsrhu", VX(4, 0x270), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10228{"zvsrhs", VX(4, 0x271), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10229{"zvsrhiu", VX(4, 0x272), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
10230{"zvsrhis", VX(4, 0x273), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
10231{"zvslh", VX(4, 0x274), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10232{"zvrlh", VX(4, 0x275), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10233{"zvslhi", VX(4, 0x276), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
10234{"zvrlhi", VX(4, 0x277), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
10235{"zvslhus", VX(4, 0x278), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10236{"zvslhss", VX(4, 0x279), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10237{"zvslhius", VX(4, 0x27A), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
10238{"zvslhiss", VX(4, 0x27B), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
10239{"zslwus", VX(4, 0x27C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10240{"zslwss", VX(4, 0x27D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10241{"zslwius", VX(4, 0x27E), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
10242{"zslwiss", VX(4, 0x27F), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
61a457e5
AM
10243{"zlddx", VX(4, 0x300), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10244{"zldd", VX(4, 0x301), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
10245{"zldwx", VX(4, 0x302), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10246{"zldw", VX(4, 0x303), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
10247{"zldhx", VX(4, 0x304), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10248{"zldh", VX(4, 0x305), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
10249{"zlwgsfdx", VX(4, 0x308), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10250{"zlwgsfd", VX(4, 0x309), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
10251{"zlwwosdx", VX(4, 0x30A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10252{"zlwwosd", VX(4, 0x30B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
10253{"zlwhsplatwdx", VX(4, 0x30C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10254{"zlwhsplatwd", VX(4, 0x30D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
10255{"zlwhsplatdx", VX(4, 0x30E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10256{"zlwhsplatd", VX(4, 0x30F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
10257{"zlwhgwsfdx", VX(4, 0x310), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10258{"zlwhgwsfd", VX(4, 0x311), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
10259{"zlwhedx", VX(4, 0x312), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10260{"zlwhed", VX(4, 0x313), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
10261{"zlwhosdx", VX(4, 0x314), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10262{"zlwhosd", VX(4, 0x315), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
10263{"zlwhoudx", VX(4, 0x316), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10264{"zlwhoud", VX(4, 0x317), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
10265{"zlwhx", VX(4, 0x318), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10266{"zlwh", VX(4, 0x319), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
10267{"zlwwx", VX(4, 0x31A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10268{"zlww", VX(4, 0x31B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
10269{"zlhgwsfx", VX(4, 0x31C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10270{"zlhgwsf", VX(4, 0x31D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
10271{"zlhhsplatx", VX(4, 0x31E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10272{"zlhhsplat", VX(4, 0x31F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
10273{"zstddx", VX(4, 0x320), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10274{"zstdd", VX(4, 0x321), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
10275{"zstdwx", VX(4, 0x322), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10276{"zstdw", VX(4, 0x323), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
10277{"zstdhx", VX(4, 0x324), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10278{"zstdh", VX(4, 0x325), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
10279{"zstwhedx", VX(4, 0x328), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10280{"zstwhed", VX(4, 0x329), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
10281{"zstwhodx", VX(4, 0x32A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10282{"zstwhod", VX(4, 0x32B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
10283{"zlhhex", VX(4, 0x330), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10284{"zlhhe", VX(4, 0x331), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
10285{"zlhhosx", VX(4, 0x332), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10286{"zlhhos", VX(4, 0x333), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
10287{"zlhhoux", VX(4, 0x334), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10288{"zlhhou", VX(4, 0x335), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
10289{"zsthex", VX(4, 0x338), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
10290{"zsthe", VX(4, 0x339), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
10291{"zsthox", VX(4, 0x33A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
10292{"zstho", VX(4, 0x33B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
10293{"zstwhx", VX(4, 0x33C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
10294{"zstwh", VX(4, 0x33D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
10295{"zstwwx", VX(4, 0x33E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
10296{"zstww", VX(4, 0x33F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
10297{"zlddmx", VX(4, 0x340), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10298{"zlddu", VX(4, 0x341), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
10299{"zldwmx", VX(4, 0x342), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10300{"zldwu", VX(4, 0x343), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
10301{"zldhmx", VX(4, 0x344), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10302{"zldhu", VX(4, 0x345), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
10303{"zlwgsfdmx", VX(4, 0x348), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10304{"zlwgsfdu", VX(4, 0x349), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
10305{"zlwwosdmx", VX(4, 0x34A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10306{"zlwwosdu", VX(4, 0x34B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
10307{"zlwhsplatwdmx", VX(4, 0x34C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10308{"zlwhsplatwdu", VX(4, 0x34D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
10309{"zlwhsplatdmx", VX(4, 0x34E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10310{"zlwhsplatdu", VX(4, 0x34F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
10311{"zlwhgwsfdmx", VX(4, 0x350), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10312{"zlwhgwsfdu", VX(4, 0x351), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
10313{"zlwhedmx", VX(4, 0x352), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10314{"zlwhedu", VX(4, 0x353), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
10315{"zlwhosdmx", VX(4, 0x354), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10316{"zlwhosdu", VX(4, 0x355), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
10317{"zlwhoudmx", VX(4, 0x356), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10318{"zlwhoudu", VX(4, 0x357), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
10319{"zlwhmx", VX(4, 0x358), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10320{"zlwhu", VX(4, 0x359), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
10321{"zlwwmx", VX(4, 0x35A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10322{"zlwwu", VX(4, 0x35B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
10323{"zlhgwsfmx", VX(4, 0x35C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10324{"zlhgwsfu", VX(4, 0x35D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
10325{"zlhhsplatmx", VX(4, 0x35E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10326{"zlhhsplatu", VX(4, 0x35F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
10327{"zstddmx", VX(4, 0x360), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10328{"zstddu", VX(4, 0x361), VX_MASK, PPCLSP, 0, {RS, EVUIMM_8_EX0, RA}},
10329{"zstdwmx", VX(4, 0x362), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10330{"zstdwu", VX(4, 0x363), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
10331{"zstdhmx", VX(4, 0x364), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10332{"zstdhu", VX(4, 0x365), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
10333{"zstwhedmx", VX(4, 0x368), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10334{"zstwhedu", VX(4, 0x369), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
10335{"zstwhodmx", VX(4, 0x36A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
10336{"zstwhodu", VX(4, 0x36B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
10337{"zlhhemx", VX(4, 0x370), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10338{"zlhheu", VX(4, 0x371), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
10339{"zlhhosmx", VX(4, 0x372), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10340{"zlhhosu", VX(4, 0x373), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
10341{"zlhhoumx", VX(4, 0x374), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10342{"zlhhouu", VX(4, 0x375), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
10343{"zsthemx", VX(4, 0x378), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
10344{"zstheu", VX(4, 0x379), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
10345{"zsthomx", VX(4, 0x37A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
10346{"zsthou", VX(4, 0x37B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
10347{"zstwhmx", VX(4, 0x37C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
10348{"zstwhu", VX(4, 0x37D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
10349{"zstwwmx", VX(4, 0x37E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
10350{"zstwwu", VX(4, 0x37F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
10351{"zaddwgui", VX(4, 0x460), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10352{"zsubfwgui", VX(4, 0x461), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10353{"zaddd", VX(4, 0x462), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10354{"zsubfd", VX(4, 0x463), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10355{"zvaddsubfw", VX(4, 0x464), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10356{"zvsubfaddw", VX(4, 0x465), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10357{"zvaddw", VX(4, 0x466), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10358{"zvsubfw", VX(4, 0x467), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10359{"zaddwgsi", VX(4, 0x468), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10360{"zsubfwgsi", VX(4, 0x469), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10361{"zadddss", VX(4, 0x46A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10362{"zsubfdss", VX(4, 0x46B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10363{"zvaddsubfwss", VX(4, 0x46C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10364{"zvsubfaddwss", VX(4, 0x46D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10365{"zvaddwss", VX(4, 0x46E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10366{"zvsubfwss", VX(4, 0x46F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10367{"zaddwgsf", VX(4, 0x470), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10368{"zsubfwgsf", VX(4, 0x471), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10369{"zadddus", VX(4, 0x472), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10370{"zsubfdus", VX(4, 0x473), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10371{"zvaddwus", VX(4, 0x476), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10372{"zvsubfwus", VX(4, 0x477), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10373{"zvunpkhgwsf", VX_LSP(4, 0x478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
10374{"zvunpkhsf", VX_LSP(4, 0xC78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
10375{"zvunpkhui", VX_LSP(4, 0x1478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
10376{"zvunpkhsi", VX_LSP(4, 0x1C78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
10377{"zunpkwgsf", VX_LSP(4, 0x2478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
10378{"zvdotphgwasmf", VX(4, 0x488), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10379{"zvdotphgwasmfr", VX(4, 0x489), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10380{"zvdotphgwasmfaa", VX(4, 0x48A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10381{"zvdotphgwasmfraa", VX(4, 0x48B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10382{"zvdotphgwasmfan", VX(4, 0x48C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10383{"zvdotphgwasmfran", VX(4, 0x48D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10384{"zvmhulgwsmf", VX(4, 0x490), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10385{"zvmhulgwsmfr", VX(4, 0x491), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10386{"zvmhulgwsmfaa", VX(4, 0x492), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10387{"zvmhulgwsmfraa", VX(4, 0x493), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10388{"zvmhulgwsmfan", VX(4, 0x494), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10389{"zvmhulgwsmfran", VX(4, 0x495), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10390{"zvmhulgwsmfanp", VX(4, 0x496), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
e3c2f928
AF
10391{"zvmhulgwsmfranp", VX(4, 0x497), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10392{"zmhegwsmf", VX(4, 0x498), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10393{"zmhegwsmfr", VX(4, 0x499), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10394{"zmhegwsmfaa", VX(4, 0x49A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10395{"zmhegwsmfraa", VX(4, 0x49B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10396{"zmhegwsmfan", VX(4, 0x49C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10397{"zmhegwsmfran", VX(4, 0x49D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10398{"zvdotphxgwasmf", VX(4, 0x4A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10399{"zvdotphxgwasmfr", VX(4, 0x4A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10400{"zvdotphxgwasmfaa", VX(4, 0x4AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10401{"zvdotphxgwasmfraa", VX(4, 0x4AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10402{"zvdotphxgwasmfan", VX(4, 0x4AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10403{"zvdotphxgwasmfran", VX(4, 0x4AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10404{"zvmhllgwsmf", VX(4, 0x4B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10405{"zvmhllgwsmfr", VX(4, 0x4B1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10406{"zvmhllgwsmfaa", VX(4, 0x4B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10407{"zvmhllgwsmfraa", VX(4, 0x4B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10408{"zvmhllgwsmfan", VX(4, 0x4B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10409{"zvmhllgwsmfran", VX(4, 0x4B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10410{"zvmhllgwsmfanp", VX(4, 0x4B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10411{"zvmhllgwsmfranp", VX(4, 0x4B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10412{"zmheogwsmf", VX(4, 0x4B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10413{"zmheogwsmfr", VX(4, 0x4B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10414{"zmheogwsmfaa", VX(4, 0x4BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10415{"zmheogwsmfraa", VX(4, 0x4BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10416{"zmheogwsmfan", VX(4, 0x4BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10417{"zmheogwsmfran", VX(4, 0x4BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10418{"zvdotphgwssmf", VX(4, 0x4C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10419{"zvdotphgwssmfr", VX(4, 0x4C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10420{"zvdotphgwssmfaa", VX(4, 0x4CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10421{"zvdotphgwssmfraa", VX(4, 0x4CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10422{"zvdotphgwssmfan", VX(4, 0x4CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10423{"zvdotphgwssmfran", VX(4, 0x4CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10424{"zvmhuugwsmf", VX(4, 0x4D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10425{"zvmhuugwsmfr", VX(4, 0x4D1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10426{"zvmhuugwsmfaa", VX(4, 0x4D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10427{"zvmhuugwsmfraa", VX(4, 0x4D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10428{"zvmhuugwsmfan", VX(4, 0x4D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10429{"zvmhuugwsmfran", VX(4, 0x4D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10430{"zvmhuugwsmfanp", VX(4, 0x4D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10431{"zvmhuugwsmfranp", VX(4, 0x4D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10432{"zmhogwsmf", VX(4, 0x4D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10433{"zmhogwsmfr", VX(4, 0x4D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10434{"zmhogwsmfaa", VX(4, 0x4DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10435{"zmhogwsmfraa", VX(4, 0x4DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10436{"zmhogwsmfan", VX(4, 0x4DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10437{"zmhogwsmfran", VX(4, 0x4DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10438{"zvmhxlgwsmf", VX(4, 0x4F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10439{"zvmhxlgwsmfr", VX(4, 0x4F1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10440{"zvmhxlgwsmfaa", VX(4, 0x4F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10441{"zvmhxlgwsmfraa", VX(4, 0x4F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10442{"zvmhxlgwsmfan", VX(4, 0x4F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10443{"zvmhxlgwsmfran", VX(4, 0x4F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10444{"zvmhxlgwsmfanp", VX(4, 0x4F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10445{"zvmhxlgwsmfranp", VX(4, 0x4F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10446{"zmhegui", VX(4, 0x500), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10447{"zvdotphgaui", VX(4, 0x501), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10448{"zmheguiaa", VX(4, 0x502), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10449{"zvdotphgauiaa", VX(4, 0x503), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10450{"zmheguian", VX(4, 0x504), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10451{"zvdotphgauian", VX(4, 0x505), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10452{"zmhegsi", VX(4, 0x508), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10453{"zvdotphgasi", VX(4, 0x509), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10454{"zmhegsiaa", VX(4, 0x50A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10455{"zvdotphgasiaa", VX(4, 0x50B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10456{"zmhegsian", VX(4, 0x50C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10457{"zvdotphgasian", VX(4, 0x50D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10458{"zmhegsui", VX(4, 0x510), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10459{"zvdotphgasui", VX(4, 0x511), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10460{"zmhegsuiaa", VX(4, 0x512), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10461{"zvdotphgasuiaa", VX(4, 0x513), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10462{"zmhegsuian", VX(4, 0x514), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10463{"zvdotphgasuian", VX(4, 0x515), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10464{"zmhegsmf", VX(4, 0x518), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10465{"zvdotphgasmf", VX(4, 0x519), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10466{"zmhegsmfaa", VX(4, 0x51A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10467{"zvdotphgasmfaa", VX(4, 0x51B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10468{"zmhegsmfan", VX(4, 0x51C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10469{"zvdotphgasmfan", VX(4, 0x51D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10470{"zmheogui", VX(4, 0x520), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10471{"zvdotphxgaui", VX(4, 0x521), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10472{"zmheoguiaa", VX(4, 0x522), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10473{"zvdotphxgauiaa", VX(4, 0x523), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10474{"zmheoguian", VX(4, 0x524), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10475{"zvdotphxgauian", VX(4, 0x525), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10476{"zmheogsi", VX(4, 0x528), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10477{"zvdotphxgasi", VX(4, 0x529), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10478{"zmheogsiaa", VX(4, 0x52A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10479{"zvdotphxgasiaa", VX(4, 0x52B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10480{"zmheogsian", VX(4, 0x52C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10481{"zvdotphxgasian", VX(4, 0x52D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10482{"zmheogsui", VX(4, 0x530), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10483{"zvdotphxgasui", VX(4, 0x531), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10484{"zmheogsuiaa", VX(4, 0x532), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10485{"zvdotphxgasuiaa", VX(4, 0x533), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10486{"zmheogsuian", VX(4, 0x534), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10487{"zvdotphxgasuian", VX(4, 0x535), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10488{"zmheogsmf", VX(4, 0x538), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10489{"zvdotphxgasmf", VX(4, 0x539), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10490{"zmheogsmfaa", VX(4, 0x53A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10491{"zvdotphxgasmfaa", VX(4, 0x53B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10492{"zmheogsmfan", VX(4, 0x53C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10493{"zvdotphxgasmfan", VX(4, 0x53D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10494{"zmhogui", VX(4, 0x540), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10495{"zvdotphgsui", VX(4, 0x541), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10496{"zmhoguiaa", VX(4, 0x542), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10497{"zvdotphgsuiaa", VX(4, 0x543), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10498{"zmhoguian", VX(4, 0x544), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10499{"zvdotphgsuian", VX(4, 0x545), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10500{"zmhogsi", VX(4, 0x548), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10501{"zvdotphgssi", VX(4, 0x549), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10502{"zmhogsiaa", VX(4, 0x54A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10503{"zvdotphgssiaa", VX(4, 0x54B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10504{"zmhogsian", VX(4, 0x54C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10505{"zvdotphgssian", VX(4, 0x54D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10506{"zmhogsui", VX(4, 0x550), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10507{"zvdotphgssui", VX(4, 0x551), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10508{"zmhogsuiaa", VX(4, 0x552), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10509{"zvdotphgssuiaa", VX(4, 0x553), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10510{"zmhogsuian", VX(4, 0x554), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10511{"zvdotphgssuian", VX(4, 0x555), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10512{"zmhogsmf", VX(4, 0x558), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10513{"zvdotphgssmf", VX(4, 0x559), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10514{"zmhogsmfaa", VX(4, 0x55A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10515{"zvdotphgssmfaa", VX(4, 0x55B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10516{"zmhogsmfan", VX(4, 0x55C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10517{"zvdotphgssmfan", VX(4, 0x55D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10518{"zmwgui", VX(4, 0x560), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10519{"zmwguiaa", VX(4, 0x562), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10520{"zmwguiaas", VX(4, 0x563), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10521{"zmwguian", VX(4, 0x564), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10522{"zmwguians", VX(4, 0x565), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10523{"zmwgsi", VX(4, 0x568), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10524{"zmwgsiaa", VX(4, 0x56A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10525{"zmwgsiaas", VX(4, 0x56B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10526{"zmwgsian", VX(4, 0x56C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10527{"zmwgsians", VX(4, 0x56D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10528{"zmwgsui", VX(4, 0x570), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10529{"zmwgsuiaa", VX(4, 0x572), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10530{"zmwgsuiaas", VX(4, 0x573), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10531{"zmwgsuian", VX(4, 0x574), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10532{"zmwgsuians", VX(4, 0x575), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10533{"zmwgsmf", VX(4, 0x578), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10534{"zmwgsmfr", VX(4, 0x579), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10535{"zmwgsmfaa", VX(4, 0x57A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10536{"zmwgsmfraa", VX(4, 0x57B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10537{"zmwgsmfan", VX(4, 0x57C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10538{"zmwgsmfran", VX(4, 0x57D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10539{"zvmhului", VX(4, 0x580), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10540{"zvmhuluiaa", VX(4, 0x582), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10541{"zvmhuluiaas", VX(4, 0x583), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10542{"zvmhuluian", VX(4, 0x584), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10543{"zvmhuluians", VX(4, 0x585), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10544{"zvmhuluianp", VX(4, 0x586), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10545{"zvmhuluianps", VX(4, 0x587), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10546{"zvmhulsi", VX(4, 0x588), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10547{"zvmhulsiaa", VX(4, 0x58A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10548{"zvmhulsiaas", VX(4, 0x58B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10549{"zvmhulsian", VX(4, 0x58C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10550{"zvmhulsians", VX(4, 0x58D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10551{"zvmhulsianp", VX(4, 0x58E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10552{"zvmhulsianps", VX(4, 0x58F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10553{"zvmhulsui", VX(4, 0x590), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10554{"zvmhulsuiaa", VX(4, 0x592), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10555{"zvmhulsuiaas", VX(4, 0x593), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10556{"zvmhulsuian", VX(4, 0x594), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10557{"zvmhulsuians", VX(4, 0x595), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10558{"zvmhulsuianp", VX(4, 0x596), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10559{"zvmhulsuianps", VX(4, 0x597), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10560{"zvmhulsf", VX(4, 0x598), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10561{"zvmhulsfr", VX(4, 0x599), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10562{"zvmhulsfaas", VX(4, 0x59A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10563{"zvmhulsfraas", VX(4, 0x59B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10564{"zvmhulsfans", VX(4, 0x59C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10565{"zvmhulsfrans", VX(4, 0x59D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10566{"zvmhulsfanps", VX(4, 0x59E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10567{"zvmhulsfranps", VX(4, 0x59F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10568{"zvmhllui", VX(4, 0x5A0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10569{"zvmhlluiaa", VX(4, 0x5A2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10570{"zvmhlluiaas", VX(4, 0x5A3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10571{"zvmhlluian", VX(4, 0x5A4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10572{"zvmhlluians", VX(4, 0x5A5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10573{"zvmhlluianp", VX(4, 0x5A6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10574{"zvmhlluianps", VX(4, 0x5A7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10575{"zvmhllsi", VX(4, 0x5A8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10576{"zvmhllsiaa", VX(4, 0x5AA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10577{"zvmhllsiaas", VX(4, 0x5AB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10578{"zvmhllsian", VX(4, 0x5AC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10579{"zvmhllsians", VX(4, 0x5AD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10580{"zvmhllsianp", VX(4, 0x5AE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10581{"zvmhllsianps", VX(4, 0x5AF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10582{"zvmhllsui", VX(4, 0x5B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10583{"zvmhllsuiaa", VX(4, 0x5B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10584{"zvmhllsuiaas", VX(4, 0x5B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10585{"zvmhllsuian", VX(4, 0x5B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10586{"zvmhllsuians", VX(4, 0x5B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10587{"zvmhllsuianp", VX(4, 0x5B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10588{"zvmhllsuianps", VX(4, 0x5B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10589{"zvmhllsf", VX(4, 0x5B8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10590{"zvmhllsfr", VX(4, 0x5B9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10591{"zvmhllsfaas", VX(4, 0x5BA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10592{"zvmhllsfraas", VX(4, 0x5BB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10593{"zvmhllsfans", VX(4, 0x5BC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10594{"zvmhllsfrans", VX(4, 0x5BD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10595{"zvmhllsfanps", VX(4, 0x5BE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10596{"zvmhllsfranps", VX(4, 0x5BF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10597{"zvmhuuui", VX(4, 0x5C0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10598{"zvmhuuuiaa", VX(4, 0x5C2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10599{"zvmhuuuiaas", VX(4, 0x5C3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10600{"zvmhuuuian", VX(4, 0x5C4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10601{"zvmhuuuians", VX(4, 0x5C5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10602{"zvmhuuuianp", VX(4, 0x5C6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10603{"zvmhuuuianps", VX(4, 0x5C7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10604{"zvmhuusi", VX(4, 0x5C8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10605{"zvmhuusiaa", VX(4, 0x5CA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10606{"zvmhuusiaas", VX(4, 0x5CB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10607{"zvmhuusian", VX(4, 0x5CC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10608{"zvmhuusians", VX(4, 0x5CD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10609{"zvmhuusianp", VX(4, 0x5CE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10610{"zvmhuusianps", VX(4, 0x5CF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10611{"zvmhuusui", VX(4, 0x5D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10612{"zvmhuusuiaa", VX(4, 0x5D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10613{"zvmhuusuiaas", VX(4, 0x5D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10614{"zvmhuusuian", VX(4, 0x5D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10615{"zvmhuusuians", VX(4, 0x5D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10616{"zvmhuusuianp", VX(4, 0x5D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10617{"zvmhuusuianps", VX(4, 0x5D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10618{"zvmhuusf", VX(4, 0x5D8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10619{"zvmhuusfr", VX(4, 0x5D9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10620{"zvmhuusfaas", VX(4, 0x5DA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10621{"zvmhuusfraas", VX(4, 0x5DB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10622{"zvmhuusfans", VX(4, 0x5DC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10623{"zvmhuusfrans", VX(4, 0x5DD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10624{"zvmhuusfanps", VX(4, 0x5DE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10625{"zvmhuusfranps", VX(4, 0x5DF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10626{"zvmhxlui", VX(4, 0x5E0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10627{"zvmhxluiaa", VX(4, 0x5E2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10628{"zvmhxluiaas", VX(4, 0x5E3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10629{"zvmhxluian", VX(4, 0x5E4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10630{"zvmhxluians", VX(4, 0x5E5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10631{"zvmhxluianp", VX(4, 0x5E6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10632{"zvmhxluianps", VX(4, 0x5E7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10633{"zvmhxlsi", VX(4, 0x5E8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10634{"zvmhxlsiaa", VX(4, 0x5EA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10635{"zvmhxlsiaas", VX(4, 0x5EB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10636{"zvmhxlsian", VX(4, 0x5EC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10637{"zvmhxlsians", VX(4, 0x5ED), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10638{"zvmhxlsianp", VX(4, 0x5EE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10639{"zvmhxlsianps", VX(4, 0x5EF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10640{"zvmhxlsui", VX(4, 0x5F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10641{"zvmhxlsuiaa", VX(4, 0x5F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10642{"zvmhxlsuiaas", VX(4, 0x5F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10643{"zvmhxlsuian", VX(4, 0x5F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10644{"zvmhxlsuians", VX(4, 0x5F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10645{"zvmhxlsuianp", VX(4, 0x5F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10646{"zvmhxlsuianps", VX(4, 0x5F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10647{"zvmhxlsf", VX(4, 0x5F8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10648{"zvmhxlsfr", VX(4, 0x5F9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10649{"zvmhxlsfaas", VX(4, 0x5FA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10650{"zvmhxlsfraas", VX(4, 0x5FB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10651{"zvmhxlsfans", VX(4, 0x5FC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10652{"zvmhxlsfrans", VX(4, 0x5FD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10653{"zvmhxlsfanps", VX(4, 0x5FE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10654{"zvmhxlsfranps", VX(4, 0x5FF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
10655{"zmheui", VX(4, 0x600), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10656{"zmheuiaa", VX(4, 0x602), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10657{"zmheuiaas", VX(4, 0x603), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10658{"zmheuian", VX(4, 0x604), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10659{"zmheuians", VX(4, 0x605), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10660{"zmhesi", VX(4, 0x608), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10661{"zmhesiaa", VX(4, 0x60A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10662{"zmhesiaas", VX(4, 0x60B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10663{"zmhesian", VX(4, 0x60C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10664{"zmhesians", VX(4, 0x60D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10665{"zmhesui", VX(4, 0x610), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10666{"zmhesuiaa", VX(4, 0x612), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10667{"zmhesuiaas", VX(4, 0x613), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10668{"zmhesuian", VX(4, 0x614), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10669{"zmhesuians", VX(4, 0x615), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10670{"zmhesf", VX(4, 0x618), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10671{"zmhesfr", VX(4, 0x619), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10672{"zmhesfaas", VX(4, 0x61A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10673{"zmhesfraas", VX(4, 0x61B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10674{"zmhesfans", VX(4, 0x61C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10675{"zmhesfrans", VX(4, 0x61D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10676{"zmheoui", VX(4, 0x620), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10677{"zmheouiaa", VX(4, 0x622), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10678{"zmheouiaas", VX(4, 0x623), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10679{"zmheouian", VX(4, 0x624), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10680{"zmheouians", VX(4, 0x625), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10681{"zmheosi", VX(4, 0x628), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10682{"zmheosiaa", VX(4, 0x62A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10683{"zmheosiaas", VX(4, 0x62B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10684{"zmheosian", VX(4, 0x62C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10685{"zmheosians", VX(4, 0x62D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10686{"zmheosui", VX(4, 0x630), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10687{"zmheosuiaa", VX(4, 0x632), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10688{"zmheosuiaas", VX(4, 0x633), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10689{"zmheosuian", VX(4, 0x634), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10690{"zmheosuians", VX(4, 0x635), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10691{"zmheosf", VX(4, 0x638), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10692{"zmheosfr", VX(4, 0x639), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10693{"zmheosfaas", VX(4, 0x63A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10694{"zmheosfraas", VX(4, 0x63B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10695{"zmheosfans", VX(4, 0x63C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10696{"zmheosfrans", VX(4, 0x63D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10697{"zmhoui", VX(4, 0x640), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10698{"zmhouiaa", VX(4, 0x642), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10699{"zmhouiaas", VX(4, 0x643), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10700{"zmhouian", VX(4, 0x644), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10701{"zmhouians", VX(4, 0x645), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10702{"zmhosi", VX(4, 0x648), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10703{"zmhosiaa", VX(4, 0x64A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10704{"zmhosiaas", VX(4, 0x64B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10705{"zmhosian", VX(4, 0x64C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10706{"zmhosians", VX(4, 0x64D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10707{"zmhosui", VX(4, 0x650), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10708{"zmhosuiaa", VX(4, 0x652), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10709{"zmhosuiaas", VX(4, 0x653), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10710{"zmhosuian", VX(4, 0x654), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10711{"zmhosuians", VX(4, 0x655), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10712{"zmhosf", VX(4, 0x658), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10713{"zmhosfr", VX(4, 0x659), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10714{"zmhosfaas", VX(4, 0x65A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10715{"zmhosfraas", VX(4, 0x65B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10716{"zmhosfans", VX(4, 0x65C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10717{"zmhosfrans", VX(4, 0x65D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10718{"zvmhuih", VX(4, 0x660), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10719{"zvmhuihs", VX(4, 0x661), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10720{"zvmhuiaah", VX(4, 0x662), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10721{"zvmhuiaahs", VX(4, 0x663), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10722{"zvmhuianh", VX(4, 0x664), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10723{"zvmhuianhs", VX(4, 0x665), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10724{"zvmhsihs", VX(4, 0x669), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10725{"zvmhsiaahs", VX(4, 0x66B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10726{"zvmhsianhs", VX(4, 0x66D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10727{"zvmhsuihs", VX(4, 0x671), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10728{"zvmhsuiaahs", VX(4, 0x673), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10729{"zvmhsuianhs", VX(4, 0x675), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10730{"zvmhsfh", VX(4, 0x678), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10731{"zvmhsfrh", VX(4, 0x679), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10732{"zvmhsfaahs", VX(4, 0x67A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10733{"zvmhsfraahs", VX(4, 0x67B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10734{"zvmhsfanhs", VX(4, 0x67C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10735{"zvmhsfranhs", VX(4, 0x67D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10736{"zvdotphaui", VX(4, 0x680), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10737{"zvdotphauis", VX(4, 0x681), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10738{"zvdotphauiaa", VX(4, 0x682), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10739{"zvdotphauiaas", VX(4, 0x683), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10740{"zvdotphauian", VX(4, 0x684), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10741{"zvdotphauians", VX(4, 0x685), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10742{"zvdotphasi", VX(4, 0x688), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10743{"zvdotphasis", VX(4, 0x689), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10744{"zvdotphasiaa", VX(4, 0x68A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10745{"zvdotphasiaas", VX(4, 0x68B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10746{"zvdotphasian", VX(4, 0x68C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10747{"zvdotphasians", VX(4, 0x68D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10748{"zvdotphasui", VX(4, 0x690), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10749{"zvdotphasuis", VX(4, 0x691), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10750{"zvdotphasuiaa", VX(4, 0x692), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10751{"zvdotphasuiaas", VX(4, 0x693), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10752{"zvdotphasuian", VX(4, 0x694), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10753{"zvdotphasuians", VX(4, 0x695), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10754{"zvdotphasfs", VX(4, 0x698), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10755{"zvdotphasfrs", VX(4, 0x699), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10756{"zvdotphasfaas", VX(4, 0x69A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10757{"zvdotphasfraas", VX(4, 0x69B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10758{"zvdotphasfans", VX(4, 0x69C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10759{"zvdotphasfrans", VX(4, 0x69D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10760{"zvdotphxaui", VX(4, 0x6A0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10761{"zvdotphxauis", VX(4, 0x6A1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10762{"zvdotphxauiaa", VX(4, 0x6A2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10763{"zvdotphxauiaas", VX(4, 0x6A3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10764{"zvdotphxauian", VX(4, 0x6A4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10765{"zvdotphxauians", VX(4, 0x6A5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10766{"zvdotphxasi", VX(4, 0x6A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10767{"zvdotphxasis", VX(4, 0x6A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10768{"zvdotphxasiaa", VX(4, 0x6AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10769{"zvdotphxasiaas", VX(4, 0x6AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10770{"zvdotphxasian", VX(4, 0x6AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10771{"zvdotphxasians", VX(4, 0x6AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10772{"zvdotphxasui", VX(4, 0x6B0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10773{"zvdotphxasuis", VX(4, 0x6B1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10774{"zvdotphxasuiaa", VX(4, 0x6B2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10775{"zvdotphxasuiaas", VX(4, 0x6B3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10776{"zvdotphxasuian", VX(4, 0x6B4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10777{"zvdotphxasuians", VX(4, 0x6B5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10778{"zvdotphxasfs", VX(4, 0x6B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10779{"zvdotphxasfrs", VX(4, 0x6B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10780{"zvdotphxasfaas", VX(4, 0x6BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10781{"zvdotphxasfraas", VX(4, 0x6BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10782{"zvdotphxasfans", VX(4, 0x6BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10783{"zvdotphxasfrans", VX(4, 0x6BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10784{"zvdotphsui", VX(4, 0x6C0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10785{"zvdotphsuis", VX(4, 0x6C1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10786{"zvdotphsuiaa", VX(4, 0x6C2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10787{"zvdotphsuiaas", VX(4, 0x6C3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10788{"zvdotphsuian", VX(4, 0x6C4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10789{"zvdotphsuians", VX(4, 0x6C5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10790{"zvdotphssi", VX(4, 0x6C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10791{"zvdotphssis", VX(4, 0x6C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10792{"zvdotphssiaa", VX(4, 0x6CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10793{"zvdotphssiaas", VX(4, 0x6CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10794{"zvdotphssian", VX(4, 0x6CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10795{"zvdotphssians", VX(4, 0x6CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10796{"zvdotphssui", VX(4, 0x6D0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10797{"zvdotphssuis", VX(4, 0x6D1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10798{"zvdotphssuiaa", VX(4, 0x6D2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10799{"zvdotphssuiaas", VX(4, 0x6D3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10800{"zvdotphssuian", VX(4, 0x6D4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10801{"zvdotphssuians", VX(4, 0x6D5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10802{"zvdotphssfs", VX(4, 0x6D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10803{"zvdotphssfrs", VX(4, 0x6D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10804{"zvdotphssfaas", VX(4, 0x6DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10805{"zvdotphssfraas", VX(4, 0x6DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10806{"zvdotphssfans", VX(4, 0x6DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10807{"zvdotphssfrans", VX(4, 0x6DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10808{"zmwluis", VX(4, 0x6E1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10809{"zmwluiaa", VX(4, 0x6E2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10810{"zmwluiaas", VX(4, 0x6E3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10811{"zmwluian", VX(4, 0x6E4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10812{"zmwluians", VX(4, 0x6E5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10813{"zmwlsis", VX(4, 0x6E9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10814{"zmwlsiaas", VX(4, 0x6EB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10815{"zmwlsians", VX(4, 0x6ED), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10816{"zmwlsuis", VX(4, 0x6F1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10817{"zmwlsuiaas", VX(4, 0x6F3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10818{"zmwlsuians", VX(4, 0x6F5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10819{"zmwsf", VX(4, 0x6F8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10820{"zmwsfr", VX(4, 0x6F9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10821{"zmwsfaas", VX(4, 0x6FA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10822{"zmwsfraas", VX(4, 0x6FB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10823{"zmwsfans", VX(4, 0x6FC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
10824{"zmwsfrans", VX(4, 0x6FD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
b9c361e0
JL
10825};
10826
61a457e5 10827const unsigned int lsp_num_opcodes = ARRAY_SIZE (lsp_opcodes);
74081948
AF
10828
10829/* SPE v2 instruction set from SPE2PIM Rev. 2 08/2011 */
10830const struct powerpc_opcode spe2_opcodes[] = {
10831{"evdotpwcssi", VX (4, 128), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10832{"evdotpwcsmi", VX (4, 129), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10833{"evdotpwcssfr", VX (4, 130), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10834{"evdotpwcssf", VX (4, 131), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10835{"evdotpwgasmf", VX (4, 136), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10836{"evdotpwxgasmf", VX (4, 137), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10837{"evdotpwgasmfr", VX (4, 138), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10838{"evdotpwxgasmfr", VX (4, 139), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10839{"evdotpwgssmf", VX (4, 140), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10840{"evdotpwxgssmf", VX (4, 141), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10841{"evdotpwgssmfr", VX (4, 142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10842{"evdotpwxgssmfr", VX (4, 143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10843{"evdotpwcssiaaw3", VX (4, 144), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10844{"evdotpwcsmiaaw3", VX (4, 145), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10845{"evdotpwcssfraaw3", VX (4, 146), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10846{"evdotpwcssfaaw3", VX (4, 147), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10847{"evdotpwgasmfaa3", VX (4, 152), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10848{"evdotpwxgasmfaa3", VX (4, 153), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10849{"evdotpwgasmfraa3", VX (4, 154), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10850{"evdotpwxgasmfraa3", VX (4, 155), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10851{"evdotpwgssmfaa3", VX (4, 156), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10852{"evdotpwxgssmfaa3", VX (4, 157), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10853{"evdotpwgssmfraa3", VX (4, 158), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10854{"evdotpwxgssmfraa3", VX (4, 159), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10855{"evdotpwcssia", VX (4, 160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10856{"evdotpwcsmia", VX (4, 161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10857{"evdotpwcssfra", VX (4, 162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10858{"evdotpwcssfa", VX (4, 163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10859{"evdotpwgasmfa", VX (4, 168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10860{"evdotpwxgasmfa", VX (4, 169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10861{"evdotpwgasmfra", VX (4, 170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10862{"evdotpwxgasmfra", VX (4, 171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10863{"evdotpwgssmfa", VX (4, 172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10864{"evdotpwxgssmfa", VX (4, 173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10865{"evdotpwgssmfra", VX (4, 174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10866{"evdotpwxgssmfra", VX (4, 175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10867{"evdotpwcssiaaw", VX (4, 176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10868{"evdotpwcsmiaaw", VX (4, 177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10869{"evdotpwcssfraaw", VX (4, 178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10870{"evdotpwcssfaaw", VX (4, 179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10871{"evdotpwgasmfaa", VX (4, 184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10872{"evdotpwxgasmfaa", VX (4, 185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10873{"evdotpwgasmfraa", VX (4, 186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10874{"evdotpwxgasmfraa", VX (4, 187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10875{"evdotpwgssmfaa", VX (4, 188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10876{"evdotpwxgssmfaa", VX (4, 189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10877{"evdotpwgssmfraa", VX (4, 190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10878{"evdotpwxgssmfraa", VX (4, 191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10879{"evdotphihcssi", VX (4, 256), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10880{"evdotplohcssi", VX (4, 257), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10881{"evdotphihcssf", VX (4, 258), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10882{"evdotplohcssf", VX (4, 259), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10883{"evdotphihcsmi", VX (4, 264), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10884{"evdotplohcsmi", VX (4, 265), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10885{"evdotphihcssfr", VX (4, 266), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10886{"evdotplohcssfr", VX (4, 267), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10887{"evdotphihcssiaaw3", VX (4, 272), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10888{"evdotplohcssiaaw3", VX (4, 273), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10889{"evdotphihcssfaaw3", VX (4, 274), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10890{"evdotplohcssfaaw3", VX (4, 275), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10891{"evdotphihcsmiaaw3", VX (4, 280), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10892{"evdotplohcsmiaaw3", VX (4, 281), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10893{"evdotphihcssfraaw3", VX (4, 282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10894{"evdotplohcssfraaw3", VX (4, 283), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10895{"evdotphihcssia", VX (4, 288), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10896{"evdotplohcssia", VX (4, 289), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10897{"evdotphihcssfa", VX (4, 290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10898{"evdotplohcssfa", VX (4, 291), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10899{"evdotphihcsmia", VX (4, 296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10900{"evdotplohcsmia", VX (4, 297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10901{"evdotphihcssfra", VX (4, 298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10902{"evdotplohcssfra", VX (4, 299), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10903{"evdotphihcssiaaw", VX (4, 304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10904{"evdotplohcssiaaw", VX (4, 305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10905{"evdotphihcssfaaw", VX (4, 306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10906{"evdotplohcssfaaw", VX (4, 307), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10907{"evdotphihcsmiaaw", VX (4, 312), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10908{"evdotplohcsmiaaw", VX (4, 313), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10909{"evdotphihcssfraaw", VX (4, 314), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10910{"evdotplohcssfraaw", VX (4, 315), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10911{"evdotphausi", VX (4, 320), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10912{"evdotphassi", VX (4, 321), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10913{"evdotphasusi", VX (4, 322), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10914{"evdotphassf", VX (4, 323), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10915{"evdotphsssf", VX (4, 327), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10916{"evdotphaumi", VX (4, 328), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10917{"evdotphasmi", VX (4, 329), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10918{"evdotphasumi", VX (4, 330), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10919{"evdotphassfr", VX (4, 331), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10920{"evdotphssmi", VX (4, 333), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8736318e 10921{"evdotphsssi", VX (4, 333), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
74081948
AF
10922{"evdotphsssfr", VX (4, 335), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10923{"evdotphausiaaw3", VX (4, 336), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10924{"evdotphassiaaw3", VX (4, 337), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10925{"evdotphasusiaaw3", VX (4, 338), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10926{"evdotphassfaaw3", VX (4, 339), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10927{"evdotphsssiaaw3", VX (4, 341), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10928{"evdotphsssfaaw3", VX (4, 343), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10929{"evdotphaumiaaw3", VX (4, 344), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10930{"evdotphasmiaaw3", VX (4, 345), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10931{"evdotphasumiaaw3", VX (4, 346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10932{"evdotphassfraaw3", VX (4, 347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10933{"evdotphssmiaaw3", VX (4, 349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10934{"evdotphsssfraaw3", VX (4, 351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10935{"evdotphausia", VX (4, 352), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10936{"evdotphassia", VX (4, 353), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10937{"evdotphasusia", VX (4, 354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10938{"evdotphassfa", VX (4, 355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10939{"evdotphsssfa", VX (4, 359), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10940{"evdotphaumia", VX (4, 360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10941{"evdotphasmia", VX (4, 361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10942{"evdotphasumia", VX (4, 362), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10943{"evdotphassfra", VX (4, 363), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10944{"evdotphssmia", VX (4, 365), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8736318e 10945{"evdotphsssia", VX (4, 365), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
74081948
AF
10946{"evdotphsssfra", VX (4, 367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10947{"evdotphausiaaw", VX (4, 368), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10948{"evdotphassiaaw", VX (4, 369), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10949{"evdotphasusiaaw", VX (4, 370), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10950{"evdotphassfaaw", VX (4, 371), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10951{"evdotphsssiaaw", VX (4, 373), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10952{"evdotphsssfaaw", VX (4, 375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10953{"evdotphaumiaaw", VX (4, 376), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10954{"evdotphasmiaaw", VX (4, 377), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10955{"evdotphasumiaaw", VX (4, 378), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10956{"evdotphassfraaw", VX (4, 379), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10957{"evdotphssmiaaw", VX (4, 381), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10958{"evdotphsssfraaw", VX (4, 383), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10959{"evdotp4hgaumi", VX (4, 384), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10960{"evdotp4hgasmi", VX (4, 385), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10961{"evdotp4hgasumi", VX (4, 386), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10962{"evdotp4hgasmf", VX (4, 387), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10963{"evdotp4hgssmi", VX (4, 388), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10964{"evdotp4hgssmf", VX (4, 389), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10965{"evdotp4hxgasmi", VX (4, 390), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10966{"evdotp4hxgasmf", VX (4, 391), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10967{"evdotpbaumi", VX (4, 392), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10968{"evdotpbasmi", VX (4, 393), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10969{"evdotpbasumi", VX (4, 394), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10970{"evdotp4hxgssmi", VX (4, 398), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10971{"evdotp4hxgssmf", VX (4, 399), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10972{"evdotp4hgaumiaa3", VX (4, 400), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10973{"evdotp4hgasmiaa3", VX (4, 401), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10974{"evdotp4hgasumiaa3", VX (4, 402), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10975{"evdotp4hgasmfaa3", VX (4, 403), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10976{"evdotp4hgssmiaa3", VX (4, 404), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10977{"evdotp4hgssmfaa3", VX (4, 405), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10978{"evdotp4hxgasmiaa3", VX (4, 406), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10979{"evdotp4hxgasmfaa3", VX (4, 407), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10980{"evdotpbaumiaaw3", VX (4, 408), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10981{"evdotpbasmiaaw3", VX (4, 409), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10982{"evdotpbasumiaaw3", VX (4, 410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10983{"evdotp4hxgssmiaa3", VX (4, 414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10984{"evdotp4hxgssmfaa3", VX (4, 415), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10985{"evdotp4hgaumia", VX (4, 416), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10986{"evdotp4hgasmia", VX (4, 417), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10987{"evdotp4hgasumia", VX (4, 418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10988{"evdotp4hgasmfa", VX (4, 419), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10989{"evdotp4hgssmia", VX (4, 420), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10990{"evdotp4hgssmfa", VX (4, 421), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10991{"evdotp4hxgasmia", VX (4, 422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10992{"evdotp4hxgasmfa", VX (4, 423), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10993{"evdotpbaumia", VX (4, 424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10994{"evdotpbasmia", VX (4, 425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10995{"evdotpbasumia", VX (4, 426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10996{"evdotp4hxgssmia", VX (4, 430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10997{"evdotp4hxgssmfa", VX (4, 431), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10998{"evdotp4hgaumiaa", VX (4, 432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10999{"evdotp4hgasmiaa", VX (4, 433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11000{"evdotp4hgasumiaa", VX (4, 434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11001{"evdotp4hgasmfaa", VX (4, 435), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11002{"evdotp4hgssmiaa", VX (4, 436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11003{"evdotp4hgssmfaa", VX (4, 437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11004{"evdotp4hxgasmiaa", VX (4, 438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11005{"evdotp4hxgasmfaa", VX (4, 439), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11006{"evdotpbaumiaaw", VX (4, 440), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11007{"evdotpbasmiaaw", VX (4, 441), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11008{"evdotpbasumiaaw", VX (4, 442), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11009{"evdotp4hxgssmiaa", VX (4, 446), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11010{"evdotp4hxgssmfaa", VX (4, 447), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11011{"evdotpwausi", VX (4, 448), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11012{"evdotpwassi", VX (4, 449), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11013{"evdotpwasusi", VX (4, 450), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11014{"evdotpwaumi", VX (4, 456), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11015{"evdotpwasmi", VX (4, 457), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11016{"evdotpwasumi", VX (4, 458), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11017{"evdotpwssmi", VX (4, 461), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8736318e 11018{"evdotpwsssi", VX (4, 461), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
74081948
AF
11019{"evdotpwausiaa3", VX (4, 464), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11020{"evdotpwassiaa3", VX (4, 465), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11021{"evdotpwasusiaa3", VX (4, 466), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11022{"evdotpwsssiaa3", VX (4, 469), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11023{"evdotpwaumiaa3", VX (4, 472), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11024{"evdotpwasmiaa3", VX (4, 473), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11025{"evdotpwasumiaa3", VX (4, 474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11026{"evdotpwssmiaa3", VX (4, 477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11027{"evdotpwausia", VX (4, 480), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11028{"evdotpwassia", VX (4, 481), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11029{"evdotpwasusia", VX (4, 482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11030{"evdotpwaumia", VX (4, 488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11031{"evdotpwasmia", VX (4, 489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11032{"evdotpwasumia", VX (4, 490), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11033{"evdotpwssmia", VX (4, 493), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
8736318e 11034{"evdotpwsssia", VX (4, 493), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
74081948
AF
11035{"evdotpwausiaa", VX (4, 496), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11036{"evdotpwassiaa", VX (4, 497), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11037{"evdotpwasusiaa", VX (4, 498), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11038{"evdotpwsssiaa", VX (4, 501), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11039{"evdotpwaumiaa", VX (4, 504), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11040{"evdotpwasmiaa", VX (4, 505), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11041{"evdotpwasumiaa", VX (4, 506), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11042{"evdotpwssmiaa", VX (4, 509), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11043{"evaddib", VX (4, 515), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
11044{"evaddih", VX (4, 513), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
11045{"evsubifh", VX (4, 517), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
11046{"evsubifb", VX (4, 519), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
11047{"evabsb", VX_RB_CONST(4, 520, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11048{"evabsh", VX_RB_CONST(4, 520, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11049{"evabsd", VX_RB_CONST(4, 520, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11050{"evabss", VX_RB_CONST(4, 520, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11051{"evabsbs", VX_RB_CONST(4, 520, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11052{"evabshs", VX_RB_CONST(4, 520, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11053{"evabsds", VX_RB_CONST(4, 520, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11054{"evnegwo", VX_RB_CONST(4, 521, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11055{"evnegb", VX_RB_CONST(4, 521, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11056{"evnegbo", VX_RB_CONST(4, 521, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11057{"evnegh", VX_RB_CONST(4, 521, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11058{"evnegho", VX_RB_CONST(4, 521, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11059{"evnegd", VX_RB_CONST(4, 521, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11060{"evnegs", VX_RB_CONST(4, 521, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11061{"evnegwos", VX_RB_CONST(4, 521, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11062{"evnegbs", VX_RB_CONST(4, 521, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11063{"evnegbos", VX_RB_CONST(4, 521, 11), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11064{"evneghs", VX_RB_CONST(4, 521, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11065{"evneghos", VX_RB_CONST(4, 521, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11066{"evnegds", VX_RB_CONST(4, 521, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11067{"evextzb", VX_RB_CONST(4, 522, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11068{"evextsbh", VX_RB_CONST(4, 522, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11069{"evextsw", VX_RB_CONST(4, 523, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11070{"evrndwh", VX_RB_CONST(4, 524, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11071{"evrndhb", VX_RB_CONST(4, 524, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11072{"evrnddw", VX_RB_CONST(4, 524, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11073{"evrndwhus", VX_RB_CONST(4, 524, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11074{"evrndwhss", VX_RB_CONST(4, 524, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11075{"evrndhbus", VX_RB_CONST(4, 524, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11076{"evrndhbss", VX_RB_CONST(4, 524, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11077{"evrnddwus", VX_RB_CONST(4, 524, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11078{"evrnddwss", VX_RB_CONST(4, 524, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11079{"evrndwnh", VX_RB_CONST(4, 524, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11080{"evrndhnb", VX_RB_CONST(4, 524, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11081{"evrnddnw", VX_RB_CONST(4, 524, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11082{"evrndwnhus", VX_RB_CONST(4, 524, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11083{"evrndwnhss", VX_RB_CONST(4, 524, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11084{"evrndhnbus", VX_RB_CONST(4, 524, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11085{"evrndhnbss", VX_RB_CONST(4, 524, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11086{"evrnddnwus", VX_RB_CONST(4, 524, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11087{"evrnddnwss", VX_RB_CONST(4, 524, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11088{"evcntlzh", VX_RB_CONST(4, 525, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11089{"evcntlsh", VX_RB_CONST(4, 526, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11090{"evpopcntb", VX_RB_CONST(4, 526, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11091{"circinc", VX (4, 528), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11092{"evunpkhibui", VX_RB_CONST(4, 540, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11093{"evunpkhibsi", VX_RB_CONST(4, 540, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11094{"evunpkhihui", VX_RB_CONST(4, 540, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11095{"evunpkhihsi", VX_RB_CONST(4, 540, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11096{"evunpklobui", VX_RB_CONST(4, 540, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11097{"evunpklobsi", VX_RB_CONST(4, 540, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11098{"evunpklohui", VX_RB_CONST(4, 540, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11099{"evunpklohsi", VX_RB_CONST(4, 540, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11100{"evunpklohf", VX_RB_CONST(4, 540, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11101{"evunpkhihf", VX_RB_CONST(4, 540, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11102{"evunpklowgsf", VX_RB_CONST(4, 540, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11103{"evunpkhiwgsf", VX_RB_CONST(4, 540, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11104{"evsatsduw", VX_RB_CONST(4, 540, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11105{"evsatsdsw", VX_RB_CONST(4, 540, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11106{"evsatshub", VX_RB_CONST(4, 540, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11107{"evsatshsb", VX_RB_CONST(4, 540, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11108{"evsatuwuh", VX_RB_CONST(4, 540, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11109{"evsatswsh", VX_RB_CONST(4, 540, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11110{"evsatswuh", VX_RB_CONST(4, 540, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11111{"evsatuhub", VX_RB_CONST(4, 540, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11112{"evsatuduw", VX_RB_CONST(4, 540, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11113{"evsatuwsw", VX_RB_CONST(4, 540, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11114{"evsatshuh", VX_RB_CONST(4, 540, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11115{"evsatuhsh", VX_RB_CONST(4, 540, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11116{"evsatswuw", VX_RB_CONST(4, 540, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11117{"evsatswgsdf", VX_RB_CONST(4, 540, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11118{"evsatsbub", VX_RB_CONST(4, 540, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11119{"evsatubsb", VX_RB_CONST(4, 540, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11120{"evmaxhpuw", VX_RB_CONST(4, 541, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11121{"evmaxhpsw", VX_RB_CONST(4, 541, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11122{"evmaxbpuh", VX_RB_CONST(4, 541, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11123{"evmaxbpsh", VX_RB_CONST(4, 541, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11124{"evmaxwpud", VX_RB_CONST(4, 541, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11125{"evmaxwpsd", VX_RB_CONST(4, 541, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11126{"evminhpuw", VX_RB_CONST(4, 541, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11127{"evminhpsw", VX_RB_CONST(4, 541, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11128{"evminbpuh", VX_RB_CONST(4, 541, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11129{"evminbpsh", VX_RB_CONST(4, 541, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11130{"evminwpud", VX_RB_CONST(4, 541, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11131{"evminwpsd", VX_RB_CONST(4, 541, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11132{"evmaxmagws", VX (4, 543), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11133{"evsl", VX (4, 549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11134{"evsli", VX (4, 551), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
11135{"evsplatie", VX_RB_CONST (4, 553, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11136{"evsplatib", VX_RB_CONST (4, 553, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11137{"evsplatibe", VX_RB_CONST (4, 553, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11138{"evsplatih", VX_RB_CONST (4, 553, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11139{"evsplatihe", VX_RB_CONST (4, 553, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11140{"evsplatid", VX_RB_CONST (4, 553, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11141{"evsplatia", VX_RB_CONST (4, 553, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11142{"evsplatiea", VX_RB_CONST (4, 553, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11143{"evsplatiba", VX_RB_CONST (4, 553, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11144{"evsplatibea", VX_RB_CONST (4, 553, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11145{"evsplatiha", VX_RB_CONST (4, 553, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11146{"evsplatihea", VX_RB_CONST (4, 553, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11147{"evsplatida", VX_RB_CONST (4, 553, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11148{"evsplatfio", VX_RB_CONST (4, 555, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11149{"evsplatfib", VX_RB_CONST (4, 555, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11150{"evsplatfibo", VX_RB_CONST (4, 555, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11151{"evsplatfih", VX_RB_CONST (4, 555, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11152{"evsplatfiho", VX_RB_CONST (4, 555, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11153{"evsplatfid", VX_RB_CONST (4, 555, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11154{"evsplatfia", VX_RB_CONST (4, 555, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11155{"evsplatfioa", VX_RB_CONST (4, 555, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11156{"evsplatfiba", VX_RB_CONST (4, 555, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11157{"evsplatfiboa", VX_RB_CONST (4, 555, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11158{"evsplatfiha", VX_RB_CONST (4, 555, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11159{"evsplatfihoa", VX_RB_CONST (4, 555, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11160{"evsplatfida", VX_RB_CONST (4, 555, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
11161{"evcmpgtdu", VX_SPE_CRFD (4, 560, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
11162{"evcmpgtds", VX_SPE_CRFD (4, 561, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
11163{"evcmpltdu", VX_SPE_CRFD (4, 562, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
11164{"evcmpltds", VX_SPE_CRFD (4, 563, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
11165{"evcmpeqd", VX_SPE_CRFD (4, 564, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
11166{"evswapbhilo", VX (4, 568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11167{"evswapblohi", VX (4, 569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11168{"evswaphhilo", VX (4, 570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11169{"evswaphlohi", VX (4, 571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11170{"evswaphe", VX (4, 572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11171{"evswaphhi", VX (4, 573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11172{"evswaphlo", VX (4, 574), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11173{"evswapho", VX (4, 575), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11174{"evinsb", VX (4, 584), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
11175{"evxtrb", VX (4, 586), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
11176{"evsplath", VX_SPE2_HH (4, 588, 0, 0), VX_SPE2_HH_MASK, PPCSPE2, 0, {RD, RA, HH}},
11177{"evsplatb", VX_SPE2_SPLATB (4, 588, 2), VX_SPE2_SPLATB_MASK, PPCSPE2, 0, {RD, RA, BBB}},
11178{"evinsh", VX_SPE2_DDHH (4, 589, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
11179{"evclrbe", VX_SPE2_CLR (4, 590, 0), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
11180{"evclrbo", VX_SPE2_CLR (4, 590, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
11181{"evclrh", VX_SPE2_CLR (4, 591, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
11182{"evxtrh", VX_SPE2_DDHH (4, 591, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
11183{"evselbitm0", VX (4, 592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11184{"evselbitm1", VX (4, 593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11185{"evselbit", VX (4, 594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11186{"evperm", VX (4, 596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11187{"evperm2", VX (4, 597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11188{"evperm3", VX (4, 598), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11189{"evxtrd", VX (4, 600), VX_OFF_SPE2_MASK, PPCSPE2, 0, {RD, RA, RB, VX_OFF_SPE2}},
11190{"evsrbu", VX (4, 608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11191{"evsrbs", VX (4, 609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11192{"evsrbiu", VX (4, 610), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
11193{"evsrbis", VX (4, 611), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
11194{"evslb", VX (4, 612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11195{"evrlb", VX (4, 613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11196{"evslbi", VX (4, 614), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
11197{"evrlbi", VX (4, 615), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
11198{"evsrhu", VX (4, 616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11199{"evsrhs", VX (4, 617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11200{"evsrhiu", VX (4, 618), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
11201{"evsrhis", VX (4, 619), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
11202{"evslh", VX (4, 620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11203{"evrlh", VX (4, 621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11204{"evslhi", VX (4, 622), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
11205{"evrlhi", VX (4, 623), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
11206{"evsru", VX (4, 624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11207{"evsrs", VX (4, 625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11208{"evsriu", VX (4, 626), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
11209{"evsris", VX (4, 627), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
11210{"evlvsl", VX (4, 628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11211{"evlvsr", VX (4, 629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11212{"evsroiu", VX_SPE2_OCTET (4, 631, 0), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
11213{"evsrois", VX_SPE2_OCTET (4, 631, 1), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
11214{"evsloi", VX_SPE2_OCTET (4, 631, 2), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
11215{"evldbx", VX (4, 774), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11216{"evldb", VX (4, 775), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8, RA}},
11217{"evlhhsplathx", VX (4, 778), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11218{"evlhhsplath", VX (4, 779), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2, RA}},
11219{"evlwbsplatwx", VX (4, 786), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11220{"evlwbsplatw", VX (4, 787), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
11221{"evlwhsplatwx", VX (4, 794), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11222{"evlwhsplatw", VX (4, 795), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
11223{"evlbbsplatbx", VX (4, 798), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11224{"evlbbsplatb", VX (4, 799), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1, RA}},
11225{"evstdbx", VX (4, 806), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11226{"evstdb", VX (4, 807), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8, RA}},
11227{"evlwbex", VX (4, 810), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11228{"evlwbe", VX (4, 811), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
11229{"evlwboux", VX (4, 812), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11230{"evlwbou", VX (4, 813), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
11231{"evlwbosx", VX (4, 814), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11232{"evlwbos", VX (4, 815), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
11233{"evstwbex", VX (4, 818), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11234{"evstwbe", VX (4, 819), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
11235{"evstwbox", VX (4, 822), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11236{"evstwbo", VX (4, 823), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
11237{"evstwbx", VX (4, 826), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11238{"evstwb", VX (4, 827), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
11239{"evsthbx", VX (4, 830), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11240{"evsthb", VX (4, 831), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2, RA}},
11241{"evlddmx", VX (4, 832), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11242{"evlddu", VX (4, 833), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
11243{"evldwmx", VX (4, 834), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11244{"evldwu", VX (4, 835), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
11245{"evldhmx", VX (4, 836), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11246{"evldhu", VX (4, 837), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
11247{"evldbmx", VX (4, 838), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11248{"evldbu", VX (4, 839), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
11249{"evlhhesplatmx", VX (4, 840), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11250{"evlhhesplatu", VX (4, 841), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
11251{"evlhhsplathmx", VX (4, 842), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11252{"evlhhsplathu", VX (4, 843), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
11253{"evlhhousplatmx", VX (4, 844), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11254{"evlhhousplatu", VX (4, 845), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
11255{"evlhhossplatmx", VX (4, 846), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11256{"evlhhossplatu", VX (4, 847), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
11257{"evlwhemx", VX (4, 848), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11258{"evlwheu", VX (4, 849), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11259{"evlwbsplatwmx", VX (4, 850), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11260{"evlwbsplatwu", VX (4, 851), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11261{"evlwhoumx", VX (4, 852), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11262{"evlwhouu", VX (4, 853), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11263{"evlwhosmx", VX (4, 854), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11264{"evlwhosu", VX (4, 855), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11265{"evlwwsplatmx", VX (4, 856), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11266{"evlwwsplatu", VX (4, 857), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11267{"evlwhsplatwmx", VX (4, 858), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11268{"evlwhsplatwu", VX (4, 859), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11269{"evlwhsplatmx", VX (4, 860), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11270{"evlwhsplatu", VX (4, 861), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11271{"evlbbsplatbmx", VX (4, 862), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11272{"evlbbsplatbu", VX (4, 863), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1_EX0, RA}},
11273{"evstddmx", VX (4, 864), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11274{"evstddu", VX (4, 865), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
11275{"evstdwmx", VX (4, 866), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11276{"evstdwu", VX (4, 867), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
11277{"evstdhmx", VX (4, 868), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11278{"evstdhu", VX (4, 869), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
11279{"evstdbmx", VX (4, 870), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11280{"evstdbu", VX (4, 871), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
11281{"evlwbemx", VX (4, 874), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11282{"evlwbeu", VX (4, 875), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11283{"evlwboumx", VX (4, 876), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11284{"evlwbouu", VX (4, 877), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11285{"evlwbosmx", VX (4, 878), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11286{"evlwbosu", VX (4, 879), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
11287{"evstwhemx", VX (4, 880), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11288{"evstwheu", VX (4, 881), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
11289{"evstwbemx", VX (4, 882), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11290{"evstwbeu", VX (4, 883), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
11291{"evstwhomx", VX (4, 884), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11292{"evstwhou", VX (4, 885), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
11293{"evstwbomx", VX (4, 886), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11294{"evstwbou", VX (4, 887), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
11295{"evstwwemx", VX (4, 888), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11296{"evstwweu", VX (4, 889), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
11297{"evstwbmx", VX (4, 890), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11298{"evstwbu", VX (4, 891), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
11299{"evstwwomx", VX (4, 892), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11300{"evstwwou", VX (4, 893), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
11301{"evsthbmx", VX (4, 894), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
11302{"evsthbu", VX (4, 895), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2_EX0, RA}},
11303{"evmhusi", VX (4, 1024), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11304{"evmhssi", VX (4, 1025), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11305{"evmhsusi", VX (4, 1026), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11306{"evmhssf", VX (4, 1028), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11307{"evmhumi", VX (4, 1029), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11308{"evmhssfr", VX (4, 1030), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11309{"evmhesumi", VX (4, 1034), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11310{"evmhosumi", VX (4, 1038), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11311{"evmbeumi", VX (4, 1048), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11312{"evmbesmi", VX (4, 1049), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11313{"evmbesumi", VX (4, 1050), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11314{"evmboumi", VX (4, 1052), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11315{"evmbosmi", VX (4, 1053), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11316{"evmbosumi", VX (4, 1054), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11317{"evmhesumia", VX (4, 1066), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11318{"evmhosumia", VX (4, 1070), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11319{"evmbeumia", VX (4, 1080), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11320{"evmbesmia", VX (4, 1081), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11321{"evmbesumia", VX (4, 1082), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11322{"evmboumia", VX (4, 1084), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11323{"evmbosmia", VX (4, 1085), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11324{"evmbosumia", VX (4, 1086), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11325{"evmwusiw", VX (4, 1088), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11326{"evmwssiw", VX (4, 1089), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11327{"evmwhssfr", VX (4, 1094), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11328{"evmwehgsmfr", VX (4, 1110), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11329{"evmwehgsmf", VX (4, 1111), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11330{"evmwohgsmfr", VX (4, 1118), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11331{"evmwohgsmf", VX (4, 1119), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11332{"evmwhssfra", VX (4, 1126), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11333{"evmwehgsmfra", VX (4, 1142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11334{"evmwehgsmfa", VX (4, 1143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11335{"evmwohgsmfra", VX (4, 1150), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11336{"evmwohgsmfa", VX (4, 1151), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11337{"evaddusiaa", VX_RB_CONST(4, 1152, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11338{"evaddssiaa", VX_RB_CONST(4, 1153, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11339{"evsubfusiaa", VX_RB_CONST(4, 1154, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11340{"evsubfssiaa", VX_RB_CONST(4, 1155, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11341{"evaddsmiaa", VX_RB_CONST(4, 1156, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11342{"evsubfsmiaa", VX_RB_CONST(4, 1158, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11343{"evaddh", VX (4, 1160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11344{"evaddhss", VX (4, 1161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11345{"evsubfh", VX (4, 1162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11346{"evsubfhss", VX (4, 1163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11347{"evaddhx", VX (4, 1164), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11348{"evaddhxss", VX (4, 1165), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11349{"evsubfhx", VX (4, 1166), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11350{"evsubfhxss", VX (4, 1167), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11351{"evaddd", VX (4, 1168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11352{"evadddss", VX (4, 1169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11353{"evsubfd", VX (4, 1170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11354{"evsubfdss", VX (4, 1171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11355{"evaddb", VX (4, 1172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11356{"evaddbss", VX (4, 1173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11357{"evsubfb", VX (4, 1174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11358{"evsubfbss", VX (4, 1175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11359{"evaddsubfh", VX (4, 1176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11360{"evaddsubfhss", VX (4, 1177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11361{"evsubfaddh", VX (4, 1178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11362{"evsubfaddhss", VX (4, 1179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11363{"evaddsubfhx", VX (4, 1180), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11364{"evaddsubfhxss", VX (4, 1181), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11365{"evsubfaddhx", VX (4, 1182), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11366{"evsubfaddhxss", VX (4, 1183), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11367{"evadddus", VX (4, 1184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11368{"evaddbus", VX (4, 1185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11369{"evsubfdus", VX (4, 1186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11370{"evsubfbus", VX (4, 1187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11371{"evaddwus", VX (4, 1188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11372{"evaddwxus", VX (4, 1189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11373{"evsubfwus", VX (4, 1190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11374{"evsubfwxus", VX (4, 1191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11375{"evadd2subf2h", VX (4, 1192), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11376{"evadd2subf2hss", VX (4, 1193), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11377{"evsubf2add2h", VX (4, 1194), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11378{"evsubf2add2hss", VX (4, 1195), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11379{"evaddhus", VX (4, 1196), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11380{"evaddhxus", VX (4, 1197), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11381{"evsubfhus", VX (4, 1198), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11382{"evsubfhxus", VX (4, 1199), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11383{"evaddwss", VX (4, 1201), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11384{"evsubfwss", VX (4, 1203), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11385{"evaddwx", VX (4, 1204), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11386{"evaddwxss", VX (4, 1205), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11387{"evsubfwx", VX (4, 1206), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11388{"evsubfwxss", VX (4, 1207), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11389{"evaddsubfw", VX (4, 1208), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11390{"evaddsubfwss", VX (4, 1209), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11391{"evsubfaddw", VX (4, 1210), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11392{"evsubfaddwss", VX (4, 1211), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11393{"evaddsubfwx", VX (4, 1212), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11394{"evaddsubfwxss", VX (4, 1213), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11395{"evsubfaddwx", VX (4, 1214), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11396{"evsubfaddwxss", VX (4, 1215), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11397{"evmar", VX_SPE2_EVMAR (4, 1220), VX_SPE2_EVMAR_MASK, PPCSPE2, 0, {RD}},
11398{"evsumwu", VX_RB_CONST(4, 1221, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11399{"evsumws", VX_RB_CONST(4, 1221, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11400{"evsum4bu", VX_RB_CONST(4, 1221, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11401{"evsum4bs", VX_RB_CONST(4, 1221, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11402{"evsum2hu", VX_RB_CONST(4, 1221, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11403{"evsum2hs", VX_RB_CONST(4, 1221, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11404{"evdiff2his", VX_RB_CONST(4, 1221, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11405{"evsum2his", VX_RB_CONST(4, 1221, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11406{"evsumwua", VX_RB_CONST(4, 1221, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11407{"evsumwsa", VX_RB_CONST(4, 1221, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11408{"evsum4bua", VX_RB_CONST(4, 1221, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11409{"evsum4bsa", VX_RB_CONST(4, 1221, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11410{"evsum2hua", VX_RB_CONST(4, 1221, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11411{"evsum2hsa", VX_RB_CONST(4, 1221, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11412{"evdiff2hisa", VX_RB_CONST(4, 1221, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11413{"evsum2hisa", VX_RB_CONST(4, 1221, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11414{"evsumwuaa", VX_RB_CONST(4, 1221, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11415{"evsumwsaa", VX_RB_CONST(4, 1221, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11416{"evsum4buaaw", VX_RB_CONST(4, 1221, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11417{"evsum4bsaaw", VX_RB_CONST(4, 1221, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11418{"evsum2huaaw", VX_RB_CONST(4, 1221, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11419{"evsum2hsaaw", VX_RB_CONST(4, 1221, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11420{"evdiff2hisaaw", VX_RB_CONST(4, 1221, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11421{"evsum2hisaaw", VX_RB_CONST(4, 1221, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
11422{"evdivwsf", VX (4, 1228), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11423{"evdivwuf", VX (4, 1229), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11424{"evdivs", VX (4, 1230), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11425{"evdivu", VX (4, 1231), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11426{"evaddwegsi", VX (4, 1232), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11427{"evaddwegsf", VX (4, 1233), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11428{"evsubfwegsi", VX (4, 1234), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11429{"evsubfwegsf", VX (4, 1235), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11430{"evaddwogsi", VX (4, 1236), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11431{"evaddwogsf", VX (4, 1237), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11432{"evsubfwogsi", VX (4, 1238), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11433{"evsubfwogsf", VX (4, 1239), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11434{"evaddhhiuw", VX (4, 1240), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11435{"evaddhhisw", VX (4, 1241), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11436{"evsubfhhiuw", VX (4, 1242), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11437{"evsubfhhisw", VX (4, 1243), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11438{"evaddhlouw", VX (4, 1244), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11439{"evaddhlosw", VX (4, 1245), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11440{"evsubfhlouw", VX (4, 1246), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11441{"evsubfhlosw", VX (4, 1247), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11442{"evmhesusiaaw", VX (4, 1282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11443{"evmhosusiaaw", VX (4, 1286), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11444{"evmhesumiaaw", VX (4, 1290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11445{"evmhosumiaaw", VX (4, 1294), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11446{"evmbeusiaah", VX (4, 1296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11447{"evmbessiaah", VX (4, 1297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11448{"evmbesusiaah", VX (4, 1298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11449{"evmbousiaah", VX (4, 1300), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11450{"evmbossiaah", VX (4, 1301), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11451{"evmbosusiaah", VX (4, 1302), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11452{"evmbeumiaah", VX (4, 1304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11453{"evmbesmiaah", VX (4, 1305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11454{"evmbesumiaah", VX (4, 1306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11455{"evmboumiaah", VX (4, 1308), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11456{"evmbosmiaah", VX (4, 1309), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11457{"evmbosumiaah", VX (4, 1310), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11458{"evmwlusiaaw3", VX (4, 1346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11459{"evmwlssiaaw3", VX (4, 1347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11460{"evmwhssfraaw3", VX (4, 1348), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11461{"evmwhssfaaw3", VX (4, 1349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11462{"evmwhssfraaw", VX (4, 1350), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11463{"evmwhssfaaw", VX (4, 1351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11464{"evmwlumiaaw3", VX (4, 1354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11465{"evmwlsmiaaw3", VX (4, 1355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11466{"evmwusiaa", VX (4, 1360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11467{"evmwssiaa", VX (4, 1361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11468{"evmwehgsmfraa", VX (4, 1366), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11469{"evmwehgsmfaa", VX (4, 1367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11470{"evmwohgsmfraa", VX (4, 1374), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11471{"evmwohgsmfaa", VX (4, 1375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11472{"evmhesusianw", VX (4, 1410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11473{"evmhosusianw", VX (4, 1414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11474{"evmhesumianw", VX (4, 1418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11475{"evmhosumianw", VX (4, 1422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11476{"evmbeusianh", VX (4, 1424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11477{"evmbessianh", VX (4, 1425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11478{"evmbesusianh", VX (4, 1426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11479{"evmbousianh", VX (4, 1428), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11480{"evmbossianh", VX (4, 1429), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11481{"evmbosusianh", VX (4, 1430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11482{"evmbeumianh", VX (4, 1432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11483{"evmbesmianh", VX (4, 1433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11484{"evmbesumianh", VX (4, 1434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11485{"evmboumianh", VX (4, 1436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11486{"evmbosmianh", VX (4, 1437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11487{"evmbosumianh", VX (4, 1438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11488{"evmwlusianw3", VX (4, 1474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11489{"evmwlssianw3", VX (4, 1475), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11490{"evmwhssfranw3", VX (4, 1476), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11491{"evmwhssfanw3", VX (4, 1477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11492{"evmwhssfranw", VX (4, 1478), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11493{"evmwhssfanw", VX (4, 1479), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11494{"evmwlumianw3", VX (4, 1482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11495{"evmwlsmianw3", VX (4, 1483), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11496{"evmwusian", VX (4, 1488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11497{"evmwssian", VX (4, 1489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11498{"evmwehgsmfran", VX (4, 1494), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11499{"evmwehgsmfan", VX (4, 1495), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11500{"evmwohgsmfran", VX (4, 1502), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11501{"evmwohgsmfan", VX (4, 1503), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11502{"evseteqb", VX (4, 1536), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11503{"evseteqb.", VX (4, 1537), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11504{"evseteqh", VX (4, 1538), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11505{"evseteqh.", VX (4, 1539), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11506{"evseteqw", VX (4, 1540), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11507{"evseteqw.", VX (4, 1541), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11508{"evsetgthu", VX (4, 1544), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11509{"evsetgthu.", VX (4, 1545), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11510{"evsetgths", VX (4, 1546), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11511{"evsetgths.", VX (4, 1547), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11512{"evsetgtwu", VX (4, 1548), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11513{"evsetgtwu.", VX (4, 1549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11514{"evsetgtws", VX (4, 1550), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11515{"evsetgtws.", VX (4, 1551), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11516{"evsetgtbu", VX (4, 1552), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11517{"evsetgtbu.", VX (4, 1553), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11518{"evsetgtbs", VX (4, 1554), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11519{"evsetgtbs.", VX (4, 1555), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11520{"evsetltbu", VX (4, 1556), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11521{"evsetltbu.", VX (4, 1557), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11522{"evsetltbs", VX (4, 1558), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11523{"evsetltbs.", VX (4, 1559), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11524{"evsetlthu", VX (4, 1560), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11525{"evsetlthu.", VX (4, 1561), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11526{"evsetlths", VX (4, 1562), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11527{"evsetlths.", VX (4, 1563), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11528{"evsetltwu", VX (4, 1564), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11529{"evsetltwu.", VX (4, 1565), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11530{"evsetltws", VX (4, 1566), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11531{"evsetltws.", VX (4, 1567), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11532{"evsaduw", VX (4, 1568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11533{"evsadsw", VX (4, 1569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11534{"evsad4ub", VX (4, 1570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11535{"evsad4sb", VX (4, 1571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11536{"evsad2uh", VX (4, 1572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11537{"evsad2sh", VX (4, 1573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11538{"evsaduwa", VX (4, 1576), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11539{"evsadswa", VX (4, 1577), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11540{"evsad4uba", VX (4, 1578), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11541{"evsad4sba", VX (4, 1579), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11542{"evsad2uha", VX (4, 1580), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11543{"evsad2sha", VX (4, 1581), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11544{"evabsdifuw", VX (4, 1584), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11545{"evabsdifsw", VX (4, 1585), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11546{"evabsdifub", VX (4, 1586), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11547{"evabsdifsb", VX (4, 1587), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11548{"evabsdifuh", VX (4, 1588), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11549{"evabsdifsh", VX (4, 1589), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11550{"evsaduwaa", VX (4, 1592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11551{"evsadswaa", VX (4, 1593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11552{"evsad4ubaaw", VX (4, 1594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11553{"evsad4sbaaw", VX (4, 1595), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11554{"evsad2uhaaw", VX (4, 1596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11555{"evsad2shaaw", VX (4, 1597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11556{"evpkshubs", VX (4, 1600), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11557{"evpkshsbs", VX (4, 1601), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11558{"evpkswuhs", VX (4, 1602), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11559{"evpkswshs", VX (4, 1603), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11560{"evpkuhubs", VX (4, 1604), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11561{"evpkuwuhs", VX (4, 1605), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11562{"evpkswshilvs", VX (4, 1606), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11563{"evpkswgshefrs", VX (4, 1607), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11564{"evpkswshfrs", VX (4, 1608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11565{"evpkswshilvfrs", VX (4, 1609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11566{"evpksdswfrs", VX (4, 1610), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11567{"evpksdshefrs", VX (4, 1611), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11568{"evpkuduws", VX (4, 1612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11569{"evpksdsws", VX (4, 1613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11570{"evpkswgswfrs", VX (4, 1614), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11571{"evilveh", VX (4, 1616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11572{"evilveoh", VX (4, 1617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11573{"evilvhih", VX (4, 1618), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11574{"evilvhiloh", VX (4, 1619), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11575{"evilvloh", VX (4, 1620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11576{"evilvlohih", VX (4, 1621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11577{"evilvoeh", VX (4, 1622), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11578{"evilvoh", VX (4, 1623), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11579{"evdlveb", VX (4, 1624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11580{"evdlveh", VX (4, 1625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11581{"evdlveob", VX (4, 1626), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11582{"evdlveoh", VX (4, 1627), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11583{"evdlvob", VX (4, 1628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11584{"evdlvoh", VX (4, 1629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11585{"evdlvoeb", VX (4, 1630), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11586{"evdlvoeh", VX (4, 1631), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11587{"evmaxbu", VX (4, 1632), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11588{"evmaxbs", VX (4, 1633), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11589{"evmaxhu", VX (4, 1634), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11590{"evmaxhs", VX (4, 1635), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11591{"evmaxwu", VX (4, 1636), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11592{"evmaxws", VX (4, 1637), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11593{"evmaxdu", VX (4, 1638), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11594{"evmaxds", VX (4, 1639), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11595{"evminbu", VX (4, 1640), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11596{"evminbs", VX (4, 1641), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11597{"evminhu", VX (4, 1642), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11598{"evminhs", VX (4, 1643), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11599{"evminwu", VX (4, 1644), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11600{"evminws", VX (4, 1645), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11601{"evmindu", VX (4, 1646), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11602{"evminds", VX (4, 1647), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11603{"evavgwu", VX (4, 1648), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11604{"evavgws", VX (4, 1649), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11605{"evavgbu", VX (4, 1650), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11606{"evavgbs", VX (4, 1651), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11607{"evavghu", VX (4, 1652), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11608{"evavghs", VX (4, 1653), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11609{"evavgdu", VX (4, 1654), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11610{"evavgds", VX (4, 1655), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11611{"evavgwur", VX (4, 1656), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11612{"evavgwsr", VX (4, 1657), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11613{"evavgbur", VX (4, 1658), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11614{"evavgbsr", VX (4, 1659), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11615{"evavghur", VX (4, 1660), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11616{"evavghsr", VX (4, 1661), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11617{"evavgdur", VX (4, 1662), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11618{"evavgdsr", VX (4, 1663), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
11619};
11620
61a457e5 11621const unsigned int spe2_num_opcodes = ARRAY_SIZE (spe2_opcodes);