or1k: Implement relocation R_OR1K_GOT_AHI16 for gotha()
[deliverable/binutils-gdb.git] / opcodes / ppc-opc.c
CommitLineData
252b5132 1/* ppc-opc.c -- PowerPC opcode list
250d07de 2 Copyright (C) 1994-2021 Free Software Foundation, Inc.
252b5132
RH
3 Written by Ian Lance Taylor, Cygnus Support
4
9b201bb5 5 This file is part of the GNU opcodes library.
252b5132 6
9b201bb5
NC
7 This library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
10 any later version.
252b5132 11
9b201bb5
NC
12 It is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
252b5132 16
112290ab 17 You should have received a copy of the GNU General Public License
9b201bb5
NC
18 along with this file; see the file COPYING. If not, write to the
19 Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
252b5132 21
0d8dfecf 22#include "sysdep.h"
df7b86aa 23#include <stdio.h>
252b5132
RH
24#include "opcode/ppc.h"
25#include "opintl.h"
26
27/* This file holds the PowerPC opcode table. The opcode table
28 includes almost all of the extended instruction mnemonics. This
29 permits the disassembler to use them, and simplifies the assembler
30 logic, at the cost of increasing the table size. The table is
31 strictly constant data, so the compiler should be able to put it in
b80c7270 32 the text segment.
252b5132
RH
33
34 This file also holds the operand table. All knowledge about
35 inserting operands into instructions and vice-versa is kept in this
36 file. */
252b5132 37
b80c7270 38/* The functions used to insert and extract complicated operands. */
252b5132 39
b80c7270 40/* The ARX, ARY, RX and RY operands are alternate encodings of GPRs. */
252b5132 41
0f873fd5
PB
42static uint64_t
43insert_arx (uint64_t insn,
44 int64_t value,
b80c7270
AM
45 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
46 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 47{
71553718
AM
48 value -= 8;
49 if (value < 0 || value >= 16)
b80c7270
AM
50 {
51 *errmsg = _("invalid register");
71553718 52 value = 0xf;
b80c7270 53 }
71553718 54 return insn | value;
b80c7270 55}
b9c361e0 56
0f873fd5
PB
57static int64_t
58extract_arx (uint64_t insn,
b80c7270
AM
59 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
60 int *invalid ATTRIBUTE_UNUSED)
61{
62 return (insn & 0xf) + 8;
63}
b9c361e0 64
0f873fd5
PB
65static uint64_t
66insert_ary (uint64_t insn,
67 int64_t value,
b80c7270
AM
68 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
69 const char **errmsg ATTRIBUTE_UNUSED)
70{
71553718
AM
71 value -= 8;
72 if (value < 0 || value >= 16)
b80c7270
AM
73 {
74 *errmsg = _("invalid register");
71553718 75 value = 0xf;
b80c7270 76 }
71553718 77 return insn | (value << 4);
b80c7270 78}
23976049 79
0f873fd5
PB
80static int64_t
81extract_ary (uint64_t insn,
b80c7270
AM
82 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
83 int *invalid ATTRIBUTE_UNUSED)
84{
85 return ((insn >> 4) & 0xf) + 8;
86}
418c1742 87
0f873fd5
PB
88static uint64_t
89insert_rx (uint64_t insn,
90 int64_t value,
b80c7270
AM
91 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
92 const char **errmsg)
93{
94 if (value >= 0 && value < 8)
71553718 95 ;
b80c7270 96 else if (value >= 24 && value <= 31)
71553718 97 value -= 16;
b80c7270
AM
98 else
99 {
100 *errmsg = _("invalid register");
71553718 101 value = 0xf;
b80c7270 102 }
71553718 103 return insn | value;
b80c7270 104}
252b5132 105
0f873fd5
PB
106static int64_t
107extract_rx (uint64_t insn,
b80c7270
AM
108 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
109 int *invalid ATTRIBUTE_UNUSED)
110{
0f873fd5 111 int64_t value = insn & 0xf;
b80c7270
AM
112 if (value >= 0 && value < 8)
113 return value;
114 else
115 return value + 16;
116}
b9c361e0 117
0f873fd5
PB
118static uint64_t
119insert_ry (uint64_t insn,
120 int64_t value,
b80c7270
AM
121 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
122 const char **errmsg)
123{
124 if (value >= 0 && value < 8)
71553718 125 ;
b80c7270 126 else if (value >= 24 && value <= 31)
71553718 127 value -= 16;
b80c7270
AM
128 else
129 {
130 *errmsg = _("invalid register");
71553718 131 value = 0xf;
b80c7270 132 }
71553718 133 return insn | (value << 4);
b80c7270 134}
a680de9a 135
0f873fd5
PB
136static int64_t
137extract_ry (uint64_t insn,
b80c7270
AM
138 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
139 int *invalid ATTRIBUTE_UNUSED)
140{
0f873fd5 141 int64_t value = (insn >> 4) & 0xf;
b80c7270
AM
142 if (value >= 0 && value < 8)
143 return value;
144 else
145 return value + 16;
146}
a680de9a 147
98553ad3
PB
148/* The BA and BB fields in an XL form instruction or the RA and RB fields or
149 VRA and VRB fields in a VX form instruction when they must be the same.
150 This is used for extended mnemonics like crclr. The extraction function
151 enforces that the fields are the same. */
adadcc0c 152
0f873fd5 153static uint64_t
98553ad3
PB
154insert_bab (uint64_t insn,
155 int64_t value,
b80c7270
AM
156 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
157 const char **errmsg ATTRIBUTE_UNUSED)
158{
98553ad3
PB
159 value &= 0x1f;
160 return insn | (value << 16) | (value << 11);
b80c7270 161}
252b5132 162
0f873fd5 163static int64_t
98553ad3 164extract_bab (uint64_t insn,
b80c7270
AM
165 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
166 int *invalid)
167{
98553ad3
PB
168 int64_t ba = (insn >> 16) & 0x1f;
169 int64_t bb = (insn >> 11) & 0x1f;
170
171 if (ba != bb)
b80c7270 172 *invalid = 1;
98553ad3 173 return ba;
b80c7270 174}
19a6653c 175
98553ad3
PB
176/* The BT, BA and BB fields in an XL form instruction when they must all be
177 the same. This is used for extended mnemonics like crclr. The extraction
178 function enforces that the fields are the same. */
a680de9a 179
0f873fd5 180static uint64_t
98553ad3
PB
181insert_btab (uint64_t insn,
182 int64_t value,
183 ppc_cpu_t dialect,
184 const char **errmsg)
b80c7270 185{
98553ad3
PB
186 value &= 0x1f;
187 return (value << 21) | insert_bab (insn, value, dialect, errmsg);
b80c7270 188}
a680de9a 189
0f873fd5 190static int64_t
98553ad3
PB
191extract_btab (uint64_t insn,
192 ppc_cpu_t dialect,
b80c7270
AM
193 int *invalid)
194{
98553ad3
PB
195 int64_t bt = (insn >> 21) & 0x1f;
196 int64_t bab = extract_bab (insn, dialect, invalid);
197
198 if (bt != bab)
b80c7270 199 *invalid = 1;
98553ad3 200 return bt;
b80c7270 201}
252b5132 202
b80c7270
AM
203/* The BD field in a B form instruction when the - modifier is used.
204 This modifier means that the branch is not expected to be taken.
205 For chips built to versions of the architecture prior to version 2
206 (ie. not Power4 compatible), we set the y bit of the BO field to 1
207 if the offset is negative. When extracting, we require that the y
208 bit be 1 and that the offset be positive, since if the y bit is 0
209 we just want to print the normal form of the instruction.
210 Power4 compatible targets use two bits, "a", and "t", instead of
211 the "y" bit. "at" == 00 => no hint, "at" == 01 => unpredictable,
212 "at" == 10 => not taken, "at" == 11 => taken. The "t" bit is 00001
213 in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000
214 for branch on CTR. We only handle the taken/not-taken hint here.
215 Note that we don't relax the conditions tested here when
216 disassembling with -Many because insns using extract_bdm and
217 extract_bdp always occur in pairs. One or the other will always
218 be valid. */
252b5132 219
b80c7270 220#define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
252b5132 221
0f873fd5
PB
222static uint64_t
223insert_bdm (uint64_t insn,
224 int64_t value,
b80c7270
AM
225 ppc_cpu_t dialect,
226 const char **errmsg ATTRIBUTE_UNUSED)
227{
228 if ((dialect & ISA_V2) == 0)
229 {
230 if ((value & 0x8000) != 0)
231 insn |= 1 << 21;
232 }
233 else
234 {
235 if ((insn & (0x14 << 21)) == (0x04 << 21))
236 insn |= 0x02 << 21;
237 else if ((insn & (0x14 << 21)) == (0x10 << 21))
238 insn |= 0x08 << 21;
239 }
240 return insn | (value & 0xfffc);
241}
252b5132 242
0f873fd5
PB
243static int64_t
244extract_bdm (uint64_t insn,
b80c7270
AM
245 ppc_cpu_t dialect,
246 int *invalid)
247{
248 if ((dialect & ISA_V2) == 0)
249 {
250 if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
251 *invalid = 1;
252 }
253 else
254 {
255 if ((insn & (0x17 << 21)) != (0x06 << 21)
256 && (insn & (0x1d << 21)) != (0x18 << 21))
257 *invalid = 1;
258 }
252b5132 259
b80c7270
AM
260 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
261}
989993d8 262
b80c7270
AM
263/* The BD field in a B form instruction when the + modifier is used.
264 This is like BDM, above, except that the branch is expected to be
265 taken. */
252b5132 266
0f873fd5
PB
267static uint64_t
268insert_bdp (uint64_t insn,
269 int64_t value,
b80c7270
AM
270 ppc_cpu_t dialect,
271 const char **errmsg ATTRIBUTE_UNUSED)
272{
273 if ((dialect & ISA_V2) == 0)
274 {
275 if ((value & 0x8000) == 0)
276 insn |= 1 << 21;
277 }
278 else
279 {
280 if ((insn & (0x14 << 21)) == (0x04 << 21))
281 insn |= 0x03 << 21;
282 else if ((insn & (0x14 << 21)) == (0x10 << 21))
283 insn |= 0x09 << 21;
284 }
285 return insn | (value & 0xfffc);
286}
989993d8 287
0f873fd5
PB
288static int64_t
289extract_bdp (uint64_t insn,
b80c7270
AM
290 ppc_cpu_t dialect,
291 int *invalid)
292{
293 if ((dialect & ISA_V2) == 0)
294 {
295 if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
296 *invalid = 1;
297 }
298 else
299 {
300 if ((insn & (0x17 << 21)) != (0x07 << 21)
301 && (insn & (0x1d << 21)) != (0x19 << 21))
302 *invalid = 1;
303 }
252b5132 304
b80c7270
AM
305 return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
306}
252b5132 307
b80c7270 308static inline int
0f873fd5 309valid_bo_pre_v2 (int64_t value)
b80c7270
AM
310{
311 /* Certain encodings have bits that are required to be zero.
312 These are (z must be zero, y may be anything):
313 0000y
314 0001y
315 001zy
316 0100y
317 0101y
318 011zy
319 1z00y
320 1z01y
321 1z1zz
322 */
323 if ((value & 0x14) == 0)
aae9718e 324 /* BO: 0000y, 0001y, 0100y, 0101y. */
b80c7270
AM
325 return 1;
326 else if ((value & 0x14) == 0x4)
aae9718e 327 /* BO: 001zy, 011zy. */
b80c7270
AM
328 return (value & 0x2) == 0;
329 else if ((value & 0x14) == 0x10)
aae9718e 330 /* BO: 1z00y, 1z01y. */
b80c7270
AM
331 return (value & 0x8) == 0;
332 else
aae9718e 333 /* BO: 1z1zz. */
b80c7270
AM
334 return value == 0x14;
335}
989993d8 336
b80c7270 337static inline int
0f873fd5 338valid_bo_post_v2 (int64_t value)
b80c7270
AM
339{
340 /* Certain encodings have bits that are required to be zero.
341 These are (z must be zero, a & t may be anything):
342 0000z
343 0001z
344 001at
345 0100z
346 0101z
347 011at
348 1a00t
349 1a01t
350 1z1zz
351 */
352 if ((value & 0x14) == 0)
aae9718e 353 /* BO: 0000z, 0001z, 0100z, 0101z. */
b80c7270
AM
354 return (value & 0x1) == 0;
355 else if ((value & 0x14) == 0x14)
aae9718e 356 /* BO: 1z1zz. */
b80c7270 357 return value == 0x14;
aae9718e
PB
358 else if ((value & 0x14) == 0x4)
359 /* BO: 001at, 011at, with "at" == 0b01 being reserved. */
360 return (value & 0x3) != 1;
361 else if ((value & 0x14) == 0x10)
362 /* BO: 1a00t, 1a01t, with "at" == 0b01 being reserved. */
363 return (value & 0x9) != 1;
b80c7270
AM
364 else
365 return 1;
366}
c168870a 367
b80c7270 368/* Check for legal values of a BO field. */
252b5132 369
b80c7270 370static int
0f873fd5 371valid_bo (int64_t value, ppc_cpu_t dialect, int extract)
b80c7270
AM
372{
373 int valid_y = valid_bo_pre_v2 (value);
374 int valid_at = valid_bo_post_v2 (value);
b9c361e0 375
b80c7270
AM
376 /* When disassembling with -Many, accept either encoding on the
377 second pass through opcodes. */
378 if (extract && dialect == ~(ppc_cpu_t) PPC_OPCODE_ANY)
379 return valid_y || valid_at;
380 if ((dialect & ISA_V2) == 0)
381 return valid_y;
382 else
383 return valid_at;
384}
a5721ba2 385
b80c7270
AM
386/* The BO field in a B form instruction. Warn about attempts to set
387 the field to an illegal value. */
252b5132 388
0f873fd5
PB
389static uint64_t
390insert_bo (uint64_t insn,
391 int64_t value,
b80c7270
AM
392 ppc_cpu_t dialect,
393 const char **errmsg)
394{
395 if (!valid_bo (value, dialect, 0))
396 *errmsg = _("invalid conditional option");
aae9718e
PB
397 else if (PPC_OP (insn) == 19
398 && (((insn >> 1) & 0x3ff) == 528) && ! (value & 4))
b80c7270
AM
399 *errmsg = _("invalid counter access");
400 return insn | ((value & 0x1f) << 21);
401}
a680de9a 402
0f873fd5
PB
403static int64_t
404extract_bo (uint64_t insn,
b80c7270
AM
405 ppc_cpu_t dialect,
406 int *invalid)
407{
0f873fd5 408 int64_t value = (insn >> 21) & 0x1f;
b80c7270
AM
409 if (!valid_bo (value, dialect, 1))
410 *invalid = 1;
411 return value;
412}
252b5132 413
aae9718e
PB
414/* For the given BO value, return a bit mask detailing which bits
415 define the branch hints. */
416
417static int64_t
418get_bo_hint_mask (int64_t bo, ppc_cpu_t dialect)
419{
420 if ((dialect & ISA_V2) == 0)
421 {
422 if ((bo & 0x14) != 0x14)
423 /* BO: 0000y, 0001y, 001zy, 0100y, 0101y, 011zy, 1z00y, 1z01y . */
424 return 1;
425 else
426 /* BO: 1z1zz. */
427 return 0;
428 }
429 else
430 {
431 if ((bo & 0x14) == 0x4)
432 /* BO: 001at, 011at. */
433 return 0x3;
434 else if ((bo & 0x14) == 0x10)
435 /* BO: 1a00t, 1a01t. */
436 return 0x9;
437 else
438 /* BO: 0000z, 0001z, 0100z, 0101z, 1z1zz. */
439 return 0;
440 }
441}
442
443/* The BO field in a B form instruction when the + or - modifier is used. */
1ed8e1e4 444
0f873fd5
PB
445static uint64_t
446insert_boe (uint64_t insn,
447 int64_t value,
b80c7270 448 ppc_cpu_t dialect,
aae9718e
PB
449 const char **errmsg,
450 int branch_taken)
b80c7270 451{
aae9718e
PB
452 int64_t implied_hint;
453 int64_t hint_mask = get_bo_hint_mask (value, dialect);
252b5132 454
aae9718e
PB
455 if (branch_taken)
456 implied_hint = hint_mask;
457 else
458 implied_hint = hint_mask & ~1;
459
460 /* The branch hint bit(s) in the BO field must either be zero or exactly
461 match the branch hint bits implied by the '+' or '-' modifier. */
462 if (implied_hint == 0)
463 *errmsg = _("BO value implies no branch hint, when using + or - modifier");
464 else if ((value & hint_mask) != 0
465 && (value & hint_mask) != implied_hint)
466 {
467 if ((dialect & ISA_V2) == 0)
468 *errmsg = _("attempt to set y bit when using + or - modifier");
469 else
470 *errmsg = _("attempt to set 'at' bits when using + or - modifier");
471 }
472
473 value |= implied_hint;
474
475 return insert_bo (insn, value, dialect, errmsg);
b80c7270 476}
252b5132 477
0f873fd5
PB
478static int64_t
479extract_boe (uint64_t insn,
b80c7270 480 ppc_cpu_t dialect,
aae9718e
PB
481 int *invalid,
482 int branch_taken)
b80c7270 483{
0f873fd5 484 int64_t value = (insn >> 21) & 0x1f;
aae9718e
PB
485 int64_t implied_hint;
486 int64_t hint_mask = get_bo_hint_mask (value, dialect);
487
488 if (branch_taken)
489 implied_hint = hint_mask;
490 else
491 implied_hint = hint_mask & ~1;
492
493 if (!valid_bo (value, dialect, 1)
494 || implied_hint == 0
495 || (value & hint_mask) != implied_hint)
b80c7270 496 *invalid = 1;
aae9718e
PB
497 return value;
498}
499
500/* The BO field in a B form instruction when the - modifier is used. */
501
502static uint64_t
503insert_bom (uint64_t insn,
504 int64_t value,
505 ppc_cpu_t dialect,
506 const char **errmsg)
507{
508 return insert_boe (insn, value, dialect, errmsg, 0);
509}
510
511static int64_t
512extract_bom (uint64_t insn,
513 ppc_cpu_t dialect,
514 int *invalid)
515{
516 return extract_boe (insn, dialect, invalid, 0);
517}
518
519/* The BO field in a B form instruction when the + modifier is used. */
520
521static uint64_t
522insert_bop (uint64_t insn,
523 int64_t value,
524 ppc_cpu_t dialect,
525 const char **errmsg)
526{
527 return insert_boe (insn, value, dialect, errmsg, 1);
528}
529
530static int64_t
531extract_bop (uint64_t insn,
532 ppc_cpu_t dialect,
533 int *invalid)
534{
535 return extract_boe (insn, dialect, invalid, 1);
b80c7270 536}
252b5132 537
b80c7270
AM
538/* The DCMX field in a X form instruction when the field is split
539 into separate DC, DM and DX fields. */
252b5132 540
0f873fd5
PB
541static uint64_t
542insert_dcmxs (uint64_t insn,
543 int64_t value,
b80c7270
AM
544 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
545 const char **errmsg ATTRIBUTE_UNUSED)
546{
547 return (insn
548 | ((value & 0x1f) << 16)
549 | ((value & 0x20) >> 3)
550 | (value & 0x40));
551}
252b5132 552
0f873fd5
PB
553static int64_t
554extract_dcmxs (uint64_t insn,
b80c7270
AM
555 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
556 int *invalid ATTRIBUTE_UNUSED)
557{
558 return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
559}
252b5132 560
aae7fcb8
PB
561/* The DW field in a X form instruction when the field is split
562 into separate D and DX fields. */
563
564static uint64_t
565insert_dw (uint64_t insn,
566 int64_t value,
567 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
568 const char **errmsg ATTRIBUTE_UNUSED)
569{
570 /* DW offsets must be in the range [-512, -8] and be a multiple of 8. */
571 if (value < -512
572 || value > -8
573 || (value & 0x7) != 0)
574 *errmsg = _("invalid offset: must be in the range [-512, -8] "
575 "and be a multiple of 8");
576
577 return insn | ((value & 0xf8) << 18) | ((value >> 8) & 1);
578}
579
580static int64_t
581extract_dw (uint64_t insn,
582 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
583 int *invalid ATTRIBUTE_UNUSED)
584{
585 int64_t dw = ((insn & 1) << 8) | ((insn >> 18) & 0xf8);
586 return dw - 512;
587}
588
b80c7270
AM
589/* The D field in a DX form instruction when the field is split
590 into separate D0, D1 and D2 fields. */
989993d8 591
0f873fd5
PB
592static uint64_t
593insert_dxd (uint64_t insn,
594 int64_t value,
b80c7270
AM
595 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
596 const char **errmsg ATTRIBUTE_UNUSED)
597{
598 return insn | (value & 0xffc1) | ((value & 0x3e) << 15);
599}
e43de63c 600
0f873fd5
PB
601static int64_t
602extract_dxd (uint64_t insn,
b80c7270
AM
603 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
604 int *invalid ATTRIBUTE_UNUSED)
605{
0f873fd5 606 uint64_t dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e);
b80c7270
AM
607 return (dxd ^ 0x8000) - 0x8000;
608}
252b5132 609
0f873fd5
PB
610static uint64_t
611insert_dxdn (uint64_t insn,
612 int64_t value,
b80c7270
AM
613 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
614 const char **errmsg ATTRIBUTE_UNUSED)
615{
616 return insert_dxd (insn, -value, dialect, errmsg);
617}
252b5132 618
0f873fd5
PB
619static int64_t
620extract_dxdn (uint64_t insn,
b80c7270 621 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
9cf7e568 622 int *invalid)
b80c7270
AM
623{
624 return -extract_dxd (insn, dialect, invalid);
625}
fdd12ef3 626
8acf1435
PB
627/* The D field in a 64-bit D form prefix instruction when the field is split
628 into separate D0 and D1 fields. */
629
630static uint64_t
631insert_d34 (uint64_t insn,
632 int64_t value,
633 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
634 const char **errmsg ATTRIBUTE_UNUSED)
635{
636 return insn | ((value & 0x3ffff0000ULL) << 16) | (value & 0xffff);
637}
638
639static int64_t
640extract_d34 (uint64_t insn,
641 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
642 int *invalid ATTRIBUTE_UNUSED)
643{
644 int64_t mask = 1ULL << 33;
645 int64_t value = ((insn >> 16) & 0x3ffff0000ULL) | (insn & 0xffff);
646 value = (value ^ mask) - mask;
647 return value;
648}
649
650/* The NSI34 field in an 8-byte D form prefix instruction. This is the same
651 as the SI34 field, only negated. The extraction function always marks it
652 as invalid, since we never want to recognize an instruction which uses
653 a field of this type. */
654
655static uint64_t
656insert_nsi34 (uint64_t insn,
657 int64_t value,
658 ppc_cpu_t dialect,
659 const char **errmsg)
660{
661 return insert_d34 (insn, -value, dialect, errmsg);
662}
663
664static int64_t
665extract_nsi34 (uint64_t insn,
666 ppc_cpu_t dialect,
667 int *invalid)
668{
669 int64_t value = extract_d34 (insn, dialect, invalid);
670 *invalid = 1;
671 return -value;
672}
673
6edbfd3b
AM
674/* The split IMM32 field in a vector splat insn. */
675
676static uint64_t
677insert_imm32 (uint64_t insn,
678 int64_t value,
679 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
680 const char **errmsg ATTRIBUTE_UNUSED)
681{
682 return insn | ((value & 0xffff0000) << 16) | (value & 0xffff);
683}
684
685static int64_t
686extract_imm32 (uint64_t insn,
687 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
688 int *invalid ATTRIBUTE_UNUSED)
689{
690 return (insn & 0xffff) | ((insn >> 16) & 0xffff0000);
691}
692
8acf1435
PB
693/* The R field in an 8-byte prefix instruction when there are restrictions
694 between R's value and the RA value (ie, they cannot both be non zero). */
695
696static uint64_t
697insert_pcrel (uint64_t insn,
698 int64_t value,
699 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
700 const char **errmsg)
701{
702 value &= 0x1;
703 int64_t ra = (insn >> 16) & 0x1f;
704 if (ra != 0 && value != 0)
705 *errmsg = _("invalid R operand");
706
707 return insn | (value << 52);
708}
709
710static int64_t
711extract_pcrel (uint64_t insn,
712 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
713 int *invalid)
714{
715 /* If called with *invalid < 0 to return the value for missing
716 operands, *invalid will be the negative count of missing operands
717 including this one. Return a default value of 1 if the PRA0/PRAQ
718 operand was also omitted (ie. *invalid is -2). Return a default
719 value of 0 if the PRA0/PRAQ operand was not omitted
720 (ie. *invalid is -1). */
721 if (*invalid < 0)
722 return ~ *invalid & 1;
723
724 int64_t ra = (insn >> 16) & 0x1f;
725 int64_t pcrel = (insn >> 52) & 0x1;
726 if (ra != 0 && pcrel != 0)
727 *invalid = 1;
728
729 return pcrel;
730}
731
732/* Variant of extract_pcrel that sets invalid for R bit set. The idea
733 is to disassemble "paddi rt,0,offset,1" as "pla rt,offset". */
734
735static int64_t
736extract_pcrel0 (uint64_t insn,
737 ppc_cpu_t dialect,
738 int *invalid)
739{
740 int64_t pcrel = extract_pcrel (insn, dialect, invalid);
741 if (pcrel)
742 *invalid = 1;
743 return pcrel;
744}
745
b80c7270 746/* FXM mask in mfcr and mtcrf instructions. */
adadcc0c 747
0f873fd5
PB
748static uint64_t
749insert_fxm (uint64_t insn,
750 int64_t value,
b80c7270
AM
751 ppc_cpu_t dialect,
752 const char **errmsg)
753{
754 /* If we're handling the mfocrf and mtocrf insns ensure that exactly
755 one bit of the mask field is set. */
756 if ((insn & (1 << 20)) != 0)
757 {
758 if (value == 0 || (value & -value) != value)
759 {
760 *errmsg = _("invalid mask field");
761 value = 0;
762 }
763 }
252b5132 764
b80c7270
AM
765 /* If only one bit of the FXM field is set, we can use the new form
766 of the instruction, which is faster. Unlike the Power4 branch hint
767 encoding, this is not backward compatible. Do not generate the
768 new form unless -mpower4 has been given, or -many and the two
769 operand form of mfcr was used. */
770 else if (value > 0
771 && (value & -value) == value
772 && ((dialect & PPC_OPCODE_POWER4) != 0
773 || ((dialect & PPC_OPCODE_ANY) != 0
774 && (insn & (0x3ff << 1)) == 19 << 1)))
775 insn |= 1 << 20;
252b5132 776
b80c7270
AM
777 /* Any other value on mfcr is an error. */
778 else if ((insn & (0x3ff << 1)) == 19 << 1)
779 {
780 /* A value of -1 means we used the one operand form of
781 mfcr which is valid. */
782 if (value != -1)
783 *errmsg = _("invalid mfcr mask");
784 value = 0;
785 }
252b5132 786
b80c7270
AM
787 return insn | ((value & 0xff) << 12);
788}
1f6c9eb0 789
0f873fd5
PB
790static int64_t
791extract_fxm (uint64_t insn,
b80c7270
AM
792 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
793 int *invalid)
794{
9cf7e568
AM
795 /* Return a value of -1 for a missing optional operand, which is
796 used as a flag by insert_fxm. */
797 if (*invalid < 0)
798 return -1;
252b5132 799
9cf7e568 800 int64_t mask = (insn >> 12) & 0xff;
b80c7270
AM
801 /* Is this a Power4 insn? */
802 if ((insn & (1 << 20)) != 0)
803 {
804 /* Exactly one bit of MASK should be set. */
805 if (mask == 0 || (mask & -mask) != mask)
806 *invalid = 1;
807 }
252b5132 808
b80c7270
AM
809 /* Check that non-power4 form of mfcr has a zero MASK. */
810 else if ((insn & (0x3ff << 1)) == 19 << 1)
811 {
812 if (mask != 0)
813 *invalid = 1;
814 else
815 mask = -1;
816 }
989993d8 817
b80c7270
AM
818 return mask;
819}
cee62821 820
afef4fe9
PB
821/* L field in the paste. instruction. */
822
823static uint64_t
824insert_l1opt (uint64_t insn,
825 int64_t value,
826 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
827 const char **errmsg ATTRIBUTE_UNUSED)
828{
829 return insn | ((value & 1) << 21);
830}
831
832static int64_t
833extract_l1opt (uint64_t insn,
834 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
835 int *invalid)
836{
837 /* Return a value of 1 for a missing optional operand. */
838 if (*invalid < 0)
839 return 1;
840
841 return (insn >> 21) & 1;
842}
843
0f873fd5
PB
844static uint64_t
845insert_li20 (uint64_t insn,
846 int64_t value,
b80c7270
AM
847 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
848 const char **errmsg ATTRIBUTE_UNUSED)
849{
850 return (insn
851 | ((value & 0xf0000) >> 5)
852 | ((value & 0x0f800) << 5)
853 | (value & 0x7ff));
854}
a680de9a 855
0f873fd5
PB
856static int64_t
857extract_li20 (uint64_t insn,
b80c7270
AM
858 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
859 int *invalid ATTRIBUTE_UNUSED)
860{
f143cb5f
AM
861 return ((((insn << 5) & 0xf0000)
862 | ((insn >> 5) & 0xf800)
863 | (insn & 0x7ff)) ^ 0x80000) - 0x80000;
b80c7270 864}
e3c2f928 865
3d205eb4 866/* The 2-bit/3-bit L or 2-bit WC field in a SYNC, DCBF or WAIT instruction.
b80c7270 867 For SYNC, some L values are reserved:
3d205eb4
PB
868 * Values 6 and 7 are reserved on newer server cpus.
869 * Value 3 is reserved on all server cpus.
870 * Value 2 is reserved on all other cpus.
871 For DCBF, some L values are reserved:
872 * Values 2, 5 and 7 are reserved on all cpus.
873 For WAIT, some WC values are reserved:
874 * Value 3 is reserved on all server cpus.
875 * Values 1 and 2 are reserved on older server cpus. */
adadcc0c 876
0f873fd5
PB
877static uint64_t
878insert_ls (uint64_t insn,
879 int64_t value,
b80c7270
AM
880 ppc_cpu_t dialect,
881 const char **errmsg)
882{
3d205eb4
PB
883 int64_t mask;
884
b80c7270
AM
885 if (((insn >> 1) & 0x3ff) == 598)
886 {
3d205eb4
PB
887 /* For SYNC, some L values are illegal. */
888 mask = (dialect & PPC_OPCODE_POWER10) ? 0x7 : 0x3;
889
890 /* If the value is within range, check for other illegal values. */
891 if ((value & mask) == value)
892 switch (value)
893 {
894 case 2:
895 if (dialect & PPC_OPCODE_POWER4)
896 break;
897 /* Fall through. */
898 case 3:
899 case 6:
900 case 7:
901 *errmsg = _("illegal L operand value");
902 break;
903 default:
904 break;
905 }
906 }
907 else if (((insn >> 1) & 0x3ff) == 86)
908 {
909 /* For DCBF, some L values are illegal. */
910 mask = (dialect & PPC_OPCODE_POWER10) ? 0x7 : 0x3;
911
912 /* If the value is within range, check for other illegal values. */
913 if ((value & mask) == value)
914 switch (value)
915 {
916 case 2:
917 case 5:
918 case 7:
919 *errmsg = _("illegal L operand value");
920 break;
921 default:
922 break;
923 }
924 }
925 else
926 {
927 /* For WAIT, some WC values are illegal. */
928 mask = 0x3;
929
930 /* If the value is within range, check for other illegal values. */
931 if ((dialect & PPC_OPCODE_A2) == 0
932 && (dialect & PPC_OPCODE_E500MC) == 0
933 && (value & mask) == value)
934 switch (value)
935 {
936 case 1:
937 case 2:
938 if (dialect & PPC_OPCODE_POWER10)
939 break;
940 /* Fall through. */
941 case 3:
942 *errmsg = _("illegal WC operand value");
943 break;
944 default:
945 break;
946 }
b80c7270 947 }
1f6c9eb0 948
3d205eb4 949 return insn | ((value & mask) << 21);
b80c7270 950}
b9c361e0 951
0f873fd5
PB
952static int64_t
953extract_ls (uint64_t insn,
b80c7270
AM
954 ppc_cpu_t dialect,
955 int *invalid)
956{
3d205eb4
PB
957 uint64_t value;
958
9cf7e568
AM
959 /* Missing optional operands have a value of zero. */
960 if (*invalid < 0)
961 return 0;
b9c361e0 962
b80c7270
AM
963 if (((insn >> 1) & 0x3ff) == 598)
964 {
3d205eb4
PB
965 /* For SYNC, some L values are illegal. */
966 int64_t mask = (dialect & PPC_OPCODE_POWER10) ? 0x7 : 0x3;
967
968 value = (insn >> 21) & mask;
969 switch (value)
970 {
971 case 2:
972 if (dialect & PPC_OPCODE_POWER4)
973 break;
974 /* Fall through. */
975 case 3:
976 case 6:
977 case 7:
978 *invalid = 1;
979 break;
980 default:
981 break;
982 }
983 }
984 else if (((insn >> 1) & 0x3ff) == 86)
985 {
986 /* For DCBF, some L values are illegal. */
987 int64_t mask = (dialect & PPC_OPCODE_POWER10) ? 0x7 : 0x3;
988
989 value = (insn >> 21) & mask;
990 switch (value)
991 {
992 case 2:
993 case 5:
994 case 7:
995 *invalid = 1;
996 break;
997 default:
998 break;
999 }
b80c7270 1000 }
3d205eb4
PB
1001 else
1002 {
1003 /* For WAIT, some WC values are illegal. */
1004 value = (insn >> 21) & 0x3;
1005 if ((dialect & PPC_OPCODE_A2) == 0
1006 && (dialect & PPC_OPCODE_E500MC) == 0)
1007 switch (value)
1008 {
1009 case 1:
1010 case 2:
1011 if (dialect & PPC_OPCODE_POWER10)
1012 break;
1013 /* Fall through. */
1014 case 3:
1015 *invalid = 1;
1016 break;
1017 default:
1018 break;
1019 }
1020 }
1021
1022 return value;
b80c7270 1023}
b9c361e0 1024
b80c7270
AM
1025/* The 4-bit E field in a sync instruction that accepts 2 operands.
1026 If ESYNC is non-zero, then the L field must be either 0 or 1 and
1027 the complement of ESYNC-bit2. */
b9c361e0 1028
0f873fd5
PB
1029static uint64_t
1030insert_esync (uint64_t insn,
1031 int64_t value,
9cf7e568 1032 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270
AM
1033 const char **errmsg)
1034{
0f873fd5 1035 uint64_t ls = (insn >> 21) & 0x03;
b9c361e0 1036
9cf7e568
AM
1037 if (value != 0
1038 && ((~value >> 1) & 0x1) != ls)
b80c7270 1039 *errmsg = _("incompatible L operand value");
b9c361e0 1040
b80c7270
AM
1041 return insn | ((value & 0xf) << 16);
1042}
b9c361e0 1043
0f873fd5
PB
1044static int64_t
1045extract_esync (uint64_t insn,
9cf7e568 1046 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270
AM
1047 int *invalid)
1048{
8acf1435 1049 /* Missing optional operands have a value of zero. */
9cf7e568
AM
1050 if (*invalid < 0)
1051 return 0;
b9c361e0 1052
9cf7e568
AM
1053 uint64_t ls = (insn >> 21) & 0x3;
1054 uint64_t value = (insn >> 16) & 0xf;
1055 if (value != 0
1056 && ((~value >> 1) & 0x1) != ls)
b80c7270 1057 *invalid = 1;
9cf7e568 1058 return value;
b80c7270 1059}
e3c2f928 1060
b80c7270
AM
1061/* The MB and ME fields in an M form instruction expressed as a single
1062 operand which is itself a bitmask. The extraction function always
1063 marks it as invalid, since we never want to recognize an
1064 instruction which uses a field of this type. */
5817ffd1 1065
0f873fd5
PB
1066static uint64_t
1067insert_mbe (uint64_t insn,
1068 int64_t value,
b80c7270
AM
1069 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1070 const char **errmsg)
1071{
0f873fd5
PB
1072 uint64_t uval, mask;
1073 long mb, me, mx, count, last;
252b5132 1074
b80c7270 1075 uval = value;
1f6c9eb0 1076
b80c7270
AM
1077 if (uval == 0)
1078 {
1079 *errmsg = _("illegal bitmask");
1080 return insn;
1081 }
252b5132 1082
b80c7270
AM
1083 mb = 0;
1084 me = 32;
1085 if ((uval & 1) != 0)
1086 last = 1;
1087 else
1088 last = 0;
1089 count = 0;
252b5132 1090
b80c7270
AM
1091 /* mb: location of last 0->1 transition */
1092 /* me: location of last 1->0 transition */
1093 /* count: # transitions */
b9c361e0 1094
0f873fd5 1095 for (mx = 0, mask = (uint64_t) 1 << 31; mx < 32; ++mx, mask >>= 1)
b80c7270
AM
1096 {
1097 if ((uval & mask) && !last)
1098 {
1099 ++count;
1100 mb = mx;
1101 last = 1;
1102 }
1103 else if (!(uval & mask) && last)
1104 {
1105 ++count;
1106 me = mx;
1107 last = 0;
1108 }
1109 }
1110 if (me == 0)
1111 me = 32;
252b5132 1112
b80c7270
AM
1113 if (count != 2 && (count != 0 || ! last))
1114 *errmsg = _("illegal bitmask");
252b5132 1115
b80c7270
AM
1116 return insn | (mb << 6) | ((me - 1) << 1);
1117}
252b5132 1118
0f873fd5
PB
1119static int64_t
1120extract_mbe (uint64_t insn,
b80c7270
AM
1121 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1122 int *invalid)
1123{
0f873fd5
PB
1124 int64_t ret;
1125 long mb, me;
1126 long i;
252b5132 1127
b80c7270 1128 *invalid = 1;
f5c120c5 1129
b80c7270
AM
1130 mb = (insn >> 6) & 0x1f;
1131 me = (insn >> 1) & 0x1f;
1132 if (mb < me + 1)
1133 {
1134 ret = 0;
1135 for (i = mb; i <= me; i++)
0f873fd5 1136 ret |= (uint64_t) 1 << (31 - i);
b80c7270
AM
1137 }
1138 else if (mb == me + 1)
1139 ret = ~0;
1140 else /* (mb > me + 1) */
1141 {
1142 ret = ~0;
1143 for (i = me + 1; i < mb; i++)
0f873fd5 1144 ret &= ~((uint64_t) 1 << (31 - i));
b80c7270
AM
1145 }
1146 return ret;
1147}
aea77599 1148
b80c7270
AM
1149/* The MB or ME field in an MD or MDS form instruction. The high bit
1150 is wrapped to the low end. */
252b5132 1151
0f873fd5
PB
1152static uint64_t
1153insert_mb6 (uint64_t insn,
1154 int64_t value,
b80c7270
AM
1155 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1156 const char **errmsg ATTRIBUTE_UNUSED)
1157{
1158 return insn | ((value & 0x1f) << 6) | (value & 0x20);
1159}
252b5132 1160
0f873fd5
PB
1161static int64_t
1162extract_mb6 (uint64_t insn,
b80c7270
AM
1163 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1164 int *invalid ATTRIBUTE_UNUSED)
1165{
1166 return ((insn >> 6) & 0x1f) | (insn & 0x20);
1167}
252b5132 1168
b80c7270
AM
1169/* The NB field in an X form instruction. The value 32 is stored as
1170 0. */
786e2c0f 1171
0f873fd5
PB
1172static int64_t
1173extract_nb (uint64_t insn,
b80c7270
AM
1174 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1175 int *invalid ATTRIBUTE_UNUSED)
1176{
0f873fd5 1177 int64_t ret;
a47622ac 1178
b80c7270
AM
1179 ret = (insn >> 11) & 0x1f;
1180 if (ret == 0)
1181 ret = 32;
1182 return ret;
1183}
b9c361e0 1184
b80c7270
AM
1185/* The NB field in an lswi instruction, which has special value
1186 restrictions. The value 32 is stored as 0. */
b9c361e0 1187
0f873fd5
PB
1188static uint64_t
1189insert_nbi (uint64_t insn,
1190 int64_t value,
b80c7270
AM
1191 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1192 const char **errmsg ATTRIBUTE_UNUSED)
1193{
0f873fd5
PB
1194 int64_t rtvalue = (insn >> 21) & 0x1f;
1195 int64_t ravalue = (insn >> 16) & 0x1f;
b9c361e0 1196
b80c7270
AM
1197 if (value == 0)
1198 value = 32;
1199 if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32
1200 : ravalue))
1201 *errmsg = _("address register in load range");
1202 return insn | ((value & 0x1f) << 11);
1203}
786e2c0f 1204
b80c7270
AM
1205/* The NSI field in a D form instruction. This is the same as the SI
1206 field, only negated. The extraction function always marks it as
1207 invalid, since we never want to recognize an instruction which uses
1208 a field of this type. */
786e2c0f 1209
0f873fd5
PB
1210static uint64_t
1211insert_nsi (uint64_t insn,
1212 int64_t value,
b80c7270
AM
1213 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1214 const char **errmsg ATTRIBUTE_UNUSED)
1215{
1216 return insn | (-value & 0xffff);
1217}
786e2c0f 1218
0f873fd5
PB
1219static int64_t
1220extract_nsi (uint64_t insn,
b80c7270
AM
1221 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1222 int *invalid)
1223{
1224 *invalid = 1;
1225 return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
1226}
786e2c0f 1227
3d205eb4
PB
1228/* The 2-bit SC field in a SYNC or PL field in a WAIT instruction.
1229 For WAIT, some PL values are reserved:
1230 * Values 1, 2 and 3 are reserved. */
1231
1232static uint64_t
1233insert_pl (uint64_t insn,
1234 int64_t value,
1235 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1236 const char **errmsg)
1237{
1238 /* For WAIT, some PL values are illegal. */
1239 if (((insn >> 1) & 0x3ff) == 30
1240 && value != 0)
1241 *errmsg = _("illegal PL operand value");
1242 return insn | ((value & 0x3) << 16);
1243}
1244
1245static int64_t
1246extract_pl (uint64_t insn,
1247 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1248 int *invalid)
1249{
1250 /* Missing optional operands have a value of zero. */
1251 if (*invalid < 0)
1252 return 0;
1253
1254 uint64_t value = (insn >> 16) & 0x3;
1255
1256 /* For WAIT, some PL values are illegal. */
1257 if (((insn >> 1) & 0x3ff) == 30
1258 && value != 0)
1259 *invalid = 1;
1260 return value;
1261}
1262
b80c7270
AM
1263/* The RA field in a D or X form instruction which is an updating
1264 load, which means that the RA field may not be zero and may not
1265 equal the RT field. */
786e2c0f 1266
0f873fd5
PB
1267static uint64_t
1268insert_ral (uint64_t insn,
1269 int64_t value,
b80c7270
AM
1270 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1271 const char **errmsg)
1272{
1273 if (value == 0
0f873fd5 1274 || (uint64_t) value == ((insn >> 21) & 0x1f))
b80c7270
AM
1275 *errmsg = "invalid register operand when updating";
1276 return insn | ((value & 0x1f) << 16);
1277}
786e2c0f 1278
0f873fd5
PB
1279static int64_t
1280extract_ral (uint64_t insn,
b80c7270
AM
1281 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1282 int *invalid)
1283{
0f873fd5
PB
1284 int64_t rtvalue = (insn >> 21) & 0x1f;
1285 int64_t ravalue = (insn >> 16) & 0x1f;
fb048c26 1286
b80c7270
AM
1287 if (rtvalue == ravalue || ravalue == 0)
1288 *invalid = 1;
1289 return ravalue;
1290}
a680de9a 1291
b80c7270
AM
1292/* The RA field in an lmw instruction, which has special value
1293 restrictions. */
c0637f3a 1294
0f873fd5
PB
1295static uint64_t
1296insert_ram (uint64_t insn,
1297 int64_t value,
b80c7270
AM
1298 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1299 const char **errmsg)
1300{
0f873fd5 1301 if ((uint64_t) value >= ((insn >> 21) & 0x1f))
b80c7270
AM
1302 *errmsg = _("index register in load range");
1303 return insn | ((value & 0x1f) << 16);
1304}
c0637f3a 1305
0f873fd5
PB
1306static int64_t
1307extract_ram (uint64_t insn,
b80c7270
AM
1308 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1309 int *invalid)
1310{
0f873fd5
PB
1311 uint64_t rtvalue = (insn >> 21) & 0x1f;
1312 uint64_t ravalue = (insn >> 16) & 0x1f;
ff3a6ee3 1313
b80c7270
AM
1314 if (ravalue >= rtvalue)
1315 *invalid = 1;
1316 return ravalue;
1317}
23976049 1318
b80c7270
AM
1319/* The RA field in the DQ form lq or an lswx instruction, which have special
1320 value restrictions. */
e3c2f928 1321
0f873fd5
PB
1322static uint64_t
1323insert_raq (uint64_t insn,
1324 int64_t value,
b80c7270
AM
1325 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1326 const char **errmsg)
1327{
0f873fd5 1328 int64_t rtvalue = (insn >> 21) & 0x1f;
23976049 1329
b80c7270
AM
1330 if (value == rtvalue)
1331 *errmsg = _("source and target register operands must be different");
1332 return insn | ((value & 0x1f) << 16);
1333}
e3c2f928 1334
0f873fd5
PB
1335static int64_t
1336extract_raq (uint64_t insn,
b80c7270
AM
1337 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1338 int *invalid)
1339{
8acf1435 1340 /* Missing optional operands have a value of zero. */
9cf7e568
AM
1341 if (*invalid < 0)
1342 return 0;
1343
0f873fd5
PB
1344 uint64_t rtvalue = (insn >> 21) & 0x1f;
1345 uint64_t ravalue = (insn >> 16) & 0x1f;
b80c7270
AM
1346 if (ravalue == rtvalue)
1347 *invalid = 1;
1348 return ravalue;
1349}
e3c2f928 1350
b80c7270
AM
1351/* The RA field in a D or X form instruction which is an updating
1352 store or an updating floating point load, which means that the RA
1353 field may not be zero. */
ff3a6ee3 1354
0f873fd5
PB
1355static uint64_t
1356insert_ras (uint64_t insn,
1357 int64_t value,
b80c7270
AM
1358 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1359 const char **errmsg)
1360{
1361 if (value == 0)
1362 *errmsg = _("invalid register operand when updating");
1363 return insn | ((value & 0x1f) << 16);
1364}
c3d65c1c 1365
0f873fd5
PB
1366static int64_t
1367extract_ras (uint64_t insn,
b80c7270
AM
1368 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1369 int *invalid)
1370{
0f873fd5 1371 uint64_t ravalue = (insn >> 16) & 0x1f;
c3d65c1c 1372
b80c7270
AM
1373 if (ravalue == 0)
1374 *invalid = 1;
1375 return ravalue;
1376}
c3d65c1c 1377
98553ad3
PB
1378/* The RS and RB fields in an X form instruction when they must be the same.
1379 This is used for extended mnemonics like mr. The extraction function
1380 enforces that the fields are the same. */
c3d65c1c 1381
0f873fd5 1382static uint64_t
98553ad3
PB
1383insert_rsb (uint64_t insn,
1384 int64_t value,
b80c7270
AM
1385 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1386 const char **errmsg ATTRIBUTE_UNUSED)
1387{
98553ad3
PB
1388 value &= 0x1f;
1389 return insn | (value << 21) | (value << 11);
b80c7270 1390}
5ae2e65e 1391
0f873fd5 1392static int64_t
98553ad3 1393extract_rsb (uint64_t insn,
b80c7270
AM
1394 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1395 int *invalid)
1396{
98553ad3
PB
1397 int64_t rs = (insn >> 21) & 0x1f;
1398 int64_t rb = (insn >> 11) & 0x1f;
1399
1400 if (rs != rb)
b80c7270 1401 *invalid = 1;
98553ad3 1402 return rs;
b80c7270 1403}
702f0fb4 1404
b80c7270
AM
1405/* The RB field in an lswx instruction, which has special value
1406 restrictions. */
702f0fb4 1407
0f873fd5
PB
1408static uint64_t
1409insert_rbx (uint64_t insn,
1410 int64_t value,
b80c7270
AM
1411 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1412 const char **errmsg)
1413{
0f873fd5 1414 int64_t rtvalue = (insn >> 21) & 0x1f;
a680de9a 1415
b80c7270
AM
1416 if (value == rtvalue)
1417 *errmsg = _("source and target register operands must be different");
1418 return insn | ((value & 0x1f) << 11);
1419}
a680de9a 1420
0f873fd5
PB
1421static int64_t
1422extract_rbx (uint64_t insn,
b80c7270
AM
1423 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1424 int *invalid)
1425{
0f873fd5
PB
1426 uint64_t rtvalue = (insn >> 21) & 0x1f;
1427 uint64_t rbvalue = (insn >> 11) & 0x1f;
702f0fb4 1428
b80c7270
AM
1429 if (rbvalue == rtvalue)
1430 *invalid = 1;
1431 return rbvalue;
1432}
702f0fb4 1433
b80c7270 1434/* The SCI8 field is made up of SCL and {U,N}I8 fields. */
0f873fd5
PB
1435static uint64_t
1436insert_sci8 (uint64_t insn,
1437 int64_t value,
b80c7270
AM
1438 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1439 const char **errmsg)
1440{
0f873fd5
PB
1441 uint64_t fill_scale = 0;
1442 uint64_t ui8 = value;
c0637f3a 1443
b80c7270
AM
1444 if ((ui8 & 0xffffff00) == 0)
1445 ;
1446 else if ((ui8 & 0xffffff00) == 0xffffff00)
1447 fill_scale = 0x400;
1448 else if ((ui8 & 0xffff00ff) == 0)
1449 {
1450 fill_scale = 1 << 8;
1451 ui8 >>= 8;
1452 }
1453 else if ((ui8 & 0xffff00ff) == 0xffff00ff)
1454 {
1455 fill_scale = 0x400 | (1 << 8);
1456 ui8 >>= 8;
1457 }
1458 else if ((ui8 & 0xff00ffff) == 0)
1459 {
1460 fill_scale = 2 << 8;
1461 ui8 >>= 16;
1462 }
1463 else if ((ui8 & 0xff00ffff) == 0xff00ffff)
1464 {
1465 fill_scale = 0x400 | (2 << 8);
1466 ui8 >>= 16;
1467 }
1468 else if ((ui8 & 0x00ffffff) == 0)
1469 {
1470 fill_scale = 3 << 8;
1471 ui8 >>= 24;
1472 }
1473 else if ((ui8 & 0x00ffffff) == 0x00ffffff)
1474 {
1475 fill_scale = 0x400 | (3 << 8);
1476 ui8 >>= 24;
1477 }
1478 else
1479 {
1480 *errmsg = _("illegal immediate value");
1481 ui8 = 0;
1482 }
702f0fb4 1483
b80c7270
AM
1484 return insn | fill_scale | (ui8 & 0xff);
1485}
ea192fa3 1486
0f873fd5
PB
1487static int64_t
1488extract_sci8 (uint64_t insn,
b80c7270
AM
1489 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1490 int *invalid ATTRIBUTE_UNUSED)
1491{
0f873fd5
PB
1492 int64_t fill = insn & 0x400;
1493 int64_t scale_factor = (insn & 0x300) >> 5;
1494 int64_t value = (insn & 0xff) << scale_factor;
081ba1b3 1495
b80c7270 1496 if (fill != 0)
0f873fd5 1497 value |= ~((int64_t) 0xff << scale_factor);
b80c7270
AM
1498 return value;
1499}
081ba1b3 1500
0f873fd5
PB
1501static uint64_t
1502insert_sci8n (uint64_t insn,
1503 int64_t value,
b80c7270
AM
1504 ppc_cpu_t dialect,
1505 const char **errmsg)
1506{
1507 return insert_sci8 (insn, -value, dialect, errmsg);
1508}
081ba1b3 1509
0f873fd5
PB
1510static int64_t
1511extract_sci8n (uint64_t insn,
b80c7270
AM
1512 ppc_cpu_t dialect,
1513 int *invalid)
1514{
1515 return -extract_sci8 (insn, dialect, invalid);
1516}
081ba1b3 1517
0f873fd5
PB
1518static uint64_t
1519insert_oimm (uint64_t insn,
1520 int64_t value,
b80c7270
AM
1521 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1522 const char **errmsg ATTRIBUTE_UNUSED)
1523{
1524 return insn | (((value - 1) & 0x1f) << 4);
1525}
b9c361e0 1526
0f873fd5
PB
1527static int64_t
1528extract_oimm (uint64_t insn,
b80c7270
AM
1529 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1530 int *invalid ATTRIBUTE_UNUSED)
1531{
1532 return ((insn >> 4) & 0x1f) + 1;
1533}
b9c361e0 1534
b80c7270 1535/* The SH field in an MD form instruction. This is split. */
b9c361e0 1536
0f873fd5
PB
1537static uint64_t
1538insert_sh6 (uint64_t insn,
1539 int64_t value,
b80c7270
AM
1540 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1541 const char **errmsg ATTRIBUTE_UNUSED)
1542{
71553718 1543 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
b80c7270 1544}
9b4e5766 1545
0f873fd5
PB
1546static int64_t
1547extract_sh6 (uint64_t insn,
b80c7270
AM
1548 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1549 int *invalid ATTRIBUTE_UNUSED)
1550{
71553718 1551 return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
b80c7270 1552}
a680de9a 1553
b80c7270
AM
1554/* The SPR field in an XFX form instruction. This is flipped--the
1555 lower 5 bits are stored in the upper 5 and vice- versa. */
9b4e5766 1556
0f873fd5
PB
1557static uint64_t
1558insert_spr (uint64_t insn,
1559 int64_t value,
b80c7270
AM
1560 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1561 const char **errmsg ATTRIBUTE_UNUSED)
1562{
1563 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
1564}
9b4e5766 1565
0f873fd5
PB
1566static int64_t
1567extract_spr (uint64_t insn,
b80c7270
AM
1568 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1569 int *invalid ATTRIBUTE_UNUSED)
1570{
1571 return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
1572}
9b4e5766 1573
fa758a70
AC
1574/* Some dialects have 8 [DI]BAT registers instead of the standard 4. */
1575#define ALLOW8_BAT (PPC_OPCODE_750)
1576
16065af1
AM
1577static uint64_t
1578insert_sprbat (uint64_t insn,
1579 int64_t value,
fa758a70
AC
1580 ppc_cpu_t dialect,
1581 const char **errmsg)
1582{
71553718
AM
1583 if ((uint64_t) value > 7
1584 || ((uint64_t) value > 3 && (dialect & ALLOW8_BAT) == 0))
fa758a70
AC
1585 *errmsg = _("invalid bat number");
1586
1587 /* If this is [di]bat4..7 then use spr 560..575, otherwise 528..543. */
71553718 1588 if ((uint64_t) value > 3)
fa758a70
AC
1589 value = ((value & 3) << 6) | 1;
1590 else
1591 value = value << 6;
1592
1593 return insn | (value << 11);
1594}
1595
16065af1
AM
1596static int64_t
1597extract_sprbat (uint64_t insn,
fa758a70
AC
1598 ppc_cpu_t dialect,
1599 int *invalid)
1600{
16065af1 1601 uint64_t val = (insn >> 17) & 0x3;
fa758a70
AC
1602
1603 val = val + ((insn >> 9) & 0x4);
1604 if (val > 3 && (dialect & ALLOW8_BAT) == 0)
1605 *invalid = 1;
1606 return val;
1607}
1608
b80c7270
AM
1609/* Some dialects have 8 SPRG registers instead of the standard 4. */
1610#define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405)
066be9f7 1611
0f873fd5
PB
1612static uint64_t
1613insert_sprg (uint64_t insn,
1614 int64_t value,
b80c7270
AM
1615 ppc_cpu_t dialect,
1616 const char **errmsg)
1617{
71553718
AM
1618 if ((uint64_t) value > 7
1619 || ((uint64_t) value > 3 && (dialect & ALLOW8_SPRG) == 0))
b80c7270 1620 *errmsg = _("invalid sprg number");
066be9f7 1621
b80c7270
AM
1622 /* If this is mfsprg4..7 then use spr 260..263 which can be read in
1623 user mode. Anything else must use spr 272..279. */
71553718 1624 if ((uint64_t) value <= 3 || (insn & 0x100) != 0)
b80c7270 1625 value |= 0x10;
066be9f7 1626
b80c7270
AM
1627 return insn | ((value & 0x17) << 16);
1628}
e0d602ec 1629
0f873fd5
PB
1630static int64_t
1631extract_sprg (uint64_t insn,
b80c7270
AM
1632 ppc_cpu_t dialect,
1633 int *invalid)
1634{
0f873fd5 1635 uint64_t val = (insn >> 16) & 0x1f;
4bc0608a 1636
b80c7270
AM
1637 /* mfsprg can use 260..263 and 272..279. mtsprg only uses spr 272..279
1638 If not BOOKE, 405 or VLE, then both use only 272..275. */
1639 if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0)
1640 || (val - 0x10 > 7 && (insn & 0x100) != 0)
1641 || val <= 3
1642 || (val & 8) != 0)
1643 *invalid = 1;
1644 return val & 7;
1645}
a680de9a 1646
b80c7270
AM
1647/* The TBR field in an XFX instruction. This is just like SPR, but it
1648 is optional. */
e3c2f928 1649
0f873fd5
PB
1650static uint64_t
1651insert_tbr (uint64_t insn,
1652 int64_t value,
b80c7270
AM
1653 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1654 const char **errmsg)
1655{
1656 if (value != 268 && value != 269)
1657 *errmsg = _("invalid tbr number");
1658 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
1659}
252b5132 1660
0f873fd5
PB
1661static int64_t
1662extract_tbr (uint64_t insn,
b80c7270
AM
1663 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1664 int *invalid)
1665{
8acf1435 1666 /* Missing optional operands have a value of 268. */
9cf7e568
AM
1667 if (*invalid < 0)
1668 return 268;
1669
0f873fd5 1670 int64_t ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
b80c7270
AM
1671 if (ret != 268 && ret != 269)
1672 *invalid = 1;
1673 return ret;
1674}
252b5132 1675
b80c7270 1676/* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */
b9c361e0 1677
0f873fd5
PB
1678static uint64_t
1679insert_xt6 (uint64_t insn,
1680 int64_t value,
b9c361e0
JL
1681 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1682 const char **errmsg ATTRIBUTE_UNUSED)
1683{
b80c7270 1684 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5);
b9c361e0
JL
1685}
1686
0f873fd5
PB
1687static int64_t
1688extract_xt6 (uint64_t insn,
b9c361e0
JL
1689 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1690 int *invalid ATTRIBUTE_UNUSED)
43e65147 1691{
b80c7270 1692 return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f);
b9c361e0
JL
1693}
1694
b80c7270 1695/* The XT and XS fields in an DQ form VSX instruction. This is split. */
0f873fd5
PB
1696static uint64_t
1697insert_xtq6 (uint64_t insn,
1698 int64_t value,
b80c7270
AM
1699 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1700 const char **errmsg ATTRIBUTE_UNUSED)
1701{
1702 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2);
1703}
1704
0f873fd5
PB
1705static int64_t
1706extract_xtq6 (uint64_t insn,
b80c7270
AM
1707 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1708 int *invalid ATTRIBUTE_UNUSED)
1709{
1710 return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f);
1711}
1712
1713/* The XA field in an XX3 form instruction. This is split. */
1714
0f873fd5
PB
1715static uint64_t
1716insert_xa6 (uint64_t insn,
1717 int64_t value,
b9c361e0
JL
1718 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1719 const char **errmsg ATTRIBUTE_UNUSED)
1720{
b80c7270 1721 return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3);
b9c361e0
JL
1722}
1723
0f873fd5
PB
1724static int64_t
1725extract_xa6 (uint64_t insn,
b9c361e0
JL
1726 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1727 int *invalid ATTRIBUTE_UNUSED)
1728{
b80c7270 1729 return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
b9c361e0
JL
1730}
1731
aa3c112f
AM
1732/* The XA field in an MMA XX3 form instruction. This is split
1733 and must not overlap with the ACC operand. */
1734
1735static uint64_t
1736insert_xa6a (uint64_t insn,
1737 int64_t value,
1738 ppc_cpu_t dialect,
1739 const char **errmsg)
1740{
1741 int64_t acc = (insn >> 23) & 0x7;
1742 if ((value >> 2) == acc)
1743 *errmsg = _("VSR overlaps ACC operand");
1744 return insert_xa6 (insn, value, dialect, errmsg);
1745}
1746
1747static int64_t
1748extract_xa6a (uint64_t insn,
1749 ppc_cpu_t dialect,
1750 int *invalid)
1751{
1752 int64_t acc = (insn >> 23) & 0x7;
1753 int64_t value = extract_xa6 (insn, dialect, invalid);
1754 if ((value >> 2) == acc)
1755 *invalid = 1;
1756 return value;
1757}
1758
b80c7270
AM
1759/* The XB field in an XX3 form instruction. This is split. */
1760
0f873fd5
PB
1761static uint64_t
1762insert_xb6 (uint64_t insn,
1763 int64_t value,
b80c7270
AM
1764 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1765 const char **errmsg ATTRIBUTE_UNUSED)
b9c361e0 1766{
b80c7270 1767 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
b9c361e0
JL
1768}
1769
0f873fd5
PB
1770static int64_t
1771extract_xb6 (uint64_t insn,
b80c7270
AM
1772 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1773 int *invalid ATTRIBUTE_UNUSED)
b9c361e0 1774{
b80c7270 1775 return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f);
b9c361e0
JL
1776}
1777
aa3c112f
AM
1778/* The XB field in an MMA XX3 form instruction. This is split
1779 and must not overlap with the ACC operand. */
1780
1781static uint64_t
1782insert_xb6a (uint64_t insn,
1783 int64_t value,
1784 ppc_cpu_t dialect,
1785 const char **errmsg)
1786{
1787 int64_t acc = (insn >> 23) & 0x7;
1788 if ((value >> 2) == acc)
1789 *errmsg = _("VSR overlaps ACC operand");
1790 return insert_xb6 (insn, value, dialect, errmsg);
1791}
1792
1793static int64_t
1794extract_xb6a (uint64_t insn,
1795 ppc_cpu_t dialect,
1796 int *invalid)
1797{
1798 int64_t acc = (insn >> 23) & 0x7;
1799 int64_t value = extract_xb6 (insn, dialect, invalid);
1800 if ((value >> 2) == acc)
1801 *invalid = 1;
1802 return value;
1803}
1804
98553ad3
PB
1805/* The XA and XB fields in an XX3 form instruction when they must be the same.
1806 This is used for extended mnemonics like xvmovdp. The extraction function
1807 enforces that the fields are the same. */
b80c7270 1808
0f873fd5 1809static uint64_t
98553ad3
PB
1810insert_xab6 (uint64_t insn,
1811 int64_t value,
1812 ppc_cpu_t dialect,
1813 const char **errmsg)
b9c361e0 1814{
98553ad3
PB
1815 return insert_xa6 (insn, value, dialect, errmsg)
1816 | insert_xb6 (insn, value, dialect, errmsg);
b9c361e0
JL
1817}
1818
0f873fd5 1819static int64_t
98553ad3
PB
1820extract_xab6 (uint64_t insn,
1821 ppc_cpu_t dialect,
b80c7270 1822 int *invalid)
b9c361e0 1823{
98553ad3
PB
1824 int64_t xa6 = extract_xa6 (insn, dialect, invalid);
1825 int64_t xb6 = extract_xb6 (insn, dialect, invalid);
1826
1827 if (xa6 != xb6)
b80c7270 1828 *invalid = 1;
98553ad3 1829 return xa6;
b9c361e0
JL
1830}
1831
b80c7270 1832/* The XC field in an XX4 form instruction. This is split. */
252b5132 1833
0f873fd5
PB
1834static uint64_t
1835insert_xc6 (uint64_t insn,
1836 int64_t value,
fa452fa6 1837 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2fbfdc41 1838 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1839{
b80c7270 1840 return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
252b5132
RH
1841}
1842
0f873fd5
PB
1843static int64_t
1844extract_xc6 (uint64_t insn,
fa452fa6 1845 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
b80c7270 1846 int *invalid ATTRIBUTE_UNUSED)
252b5132 1847{
b80c7270
AM
1848 return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
1849}
1850
94ba9882
AM
1851/* The split XTp field in a vector paired insn. */
1852
1853static uint64_t
1854insert_xtp (uint64_t insn,
1855 int64_t value,
1856 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1857 const char **errmsg ATTRIBUTE_UNUSED)
1858{
1859 return insn | ((value & 0x1e) << 21) | ((value & 0x20) << (21 - 5));
1860}
1861
1862static int64_t
1863extract_xtp (uint64_t insn,
1864 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1865 int *invalid ATTRIBUTE_UNUSED)
1866{
1867 return ((insn >> (21 - 5)) & 0x20) | ((insn >> 21) & 0x1e);
1868}
1869
6edbfd3b
AM
1870/* The split XT field in a vector splat insn. */
1871
1872static uint64_t
1873insert_xts (uint64_t insn,
1874 int64_t value,
1875 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1876 const char **errmsg ATTRIBUTE_UNUSED)
1877{
1878 return insn | ((value & 0x1f) << 21) | ((value & 0x20) << (16 - 5));
1879}
1880
1881static int64_t
1882extract_xts (uint64_t insn,
1883 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1884 int *invalid ATTRIBUTE_UNUSED)
1885{
1886 return ((insn >> (16 - 5)) & 0x20) | ((insn >> 21) & 0x1f);
1887}
1888
0f873fd5
PB
1889static uint64_t
1890insert_dm (uint64_t insn,
1891 int64_t value,
b80c7270
AM
1892 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1893 const char **errmsg)
1894{
1895 if (value != 0 && value != 1)
1896 *errmsg = _("invalid constant");
1897 return insn | (((value) ? 3 : 0) << 8);
1898}
1899
0f873fd5
PB
1900static int64_t
1901extract_dm (uint64_t insn,
b80c7270
AM
1902 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1903 int *invalid)
1904{
0f873fd5 1905 int64_t value = (insn >> 8) & 3;
b80c7270 1906 if (value != 0 && value != 3)
252b5132 1907 *invalid = 1;
b80c7270 1908 return (value) ? 1 : 0;
252b5132
RH
1909}
1910
b80c7270 1911/* The VLESIMM field in an I16A form instruction. This is split. */
252b5132 1912
0f873fd5
PB
1913static uint64_t
1914insert_vlesi (uint64_t insn,
1915 int64_t value,
b80c7270
AM
1916 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1917 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1918{
b80c7270 1919 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132
RH
1920}
1921
0f873fd5
PB
1922static int64_t
1923extract_vlesi (uint64_t insn,
b80c7270
AM
1924 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1925 int *invalid ATTRIBUTE_UNUSED)
252b5132 1926{
0f873fd5 1927 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
b80c7270
AM
1928 value = (value ^ 0x8000) - 0x8000;
1929 return value;
252b5132
RH
1930}
1931
0f873fd5
PB
1932static uint64_t
1933insert_vlensi (uint64_t insn,
1934 int64_t value,
b80c7270
AM
1935 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1936 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1937{
b80c7270
AM
1938 value = -value;
1939 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132 1940}
0f873fd5
PB
1941static int64_t
1942extract_vlensi (uint64_t insn,
b80c7270 1943 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
9cf7e568 1944 int *invalid)
252b5132 1945{
0f873fd5 1946 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
b80c7270
AM
1947 value = (value ^ 0x8000) - 0x8000;
1948 /* Don't use for disassembly. */
1949 *invalid = 1;
1950 return -value;
252b5132
RH
1951}
1952
b80c7270 1953/* The VLEUIMM field in an I16A form instruction. This is split. */
252b5132 1954
0f873fd5
PB
1955static uint64_t
1956insert_vleui (uint64_t insn,
1957 int64_t value,
b80c7270
AM
1958 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1959 const char **errmsg ATTRIBUTE_UNUSED)
252b5132 1960{
b80c7270 1961 return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
252b5132
RH
1962}
1963
0f873fd5
PB
1964static int64_t
1965extract_vleui (uint64_t insn,
b80c7270
AM
1966 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1967 int *invalid ATTRIBUTE_UNUSED)
252b5132 1968{
b80c7270
AM
1969 return ((insn >> 10) & 0xf800) | (insn & 0x7ff);
1970}
8427c424 1971
b80c7270
AM
1972/* The VLEUIMML field in an I16L form instruction. This is split. */
1973
0f873fd5
PB
1974static uint64_t
1975insert_vleil (uint64_t insn,
1976 int64_t value,
b80c7270
AM
1977 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1978 const char **errmsg ATTRIBUTE_UNUSED)
1979{
1980 return insn | ((value & 0xf800) << 5) | (value & 0x7ff);
252b5132
RH
1981}
1982
0f873fd5
PB
1983static int64_t
1984extract_vleil (uint64_t insn,
b80c7270
AM
1985 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1986 int *invalid ATTRIBUTE_UNUSED)
252b5132 1987{
b80c7270 1988 return ((insn >> 5) & 0xf800) | (insn & 0x7ff);
8ebac3aa 1989}
ba4e851b 1990
0f873fd5
PB
1991static uint64_t
1992insert_evuimm1_ex0 (uint64_t insn,
1993 int64_t value,
74081948
AF
1994 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
1995 const char **errmsg)
1996{
71553718
AM
1997 if (value <= 0 || value > 0x1f)
1998 *errmsg = _("UIMM = 00000 is illegal");
1999 return insn | ((value & 0x1f) << 11);
74081948
AF
2000}
2001
0f873fd5
PB
2002static int64_t
2003extract_evuimm1_ex0 (uint64_t insn,
74081948
AF
2004 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2005 int *invalid)
2006{
0f873fd5 2007 int64_t value = ((insn >> 11) & 0x1f);
74081948
AF
2008 if (value == 0)
2009 *invalid = 1;
2010
2011 return value;
2012}
2013
0f873fd5
PB
2014static uint64_t
2015insert_evuimm2_ex0 (uint64_t insn,
2016 int64_t value,
b80c7270
AM
2017 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2018 const char **errmsg)
8ebac3aa 2019{
71553718
AM
2020 if (value <= 0 || value > 0x3e)
2021 *errmsg = _("UIMM = 00000 is illegal");
2022 return insn | ((value & 0x3e) << 10);
252b5132
RH
2023}
2024
0f873fd5
PB
2025static int64_t
2026extract_evuimm2_ex0 (uint64_t insn,
b80c7270
AM
2027 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2028 int *invalid)
8ebac3aa 2029{
0f873fd5 2030 int64_t value = ((insn >> 10) & 0x3e);
b80c7270
AM
2031 if (value == 0)
2032 *invalid = 1;
8ebac3aa 2033
b80c7270 2034 return value;
8ebac3aa
AM
2035}
2036
0f873fd5
PB
2037static uint64_t
2038insert_evuimm4_ex0 (uint64_t insn,
2039 int64_t value,
b80c7270
AM
2040 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2041 const char **errmsg)
252b5132 2042{
71553718
AM
2043 if (value <= 0 || value > 0x7c)
2044 *errmsg = _("UIMM = 00000 is illegal");
2045 return insn | ((value & 0x7c) << 9);
252b5132
RH
2046}
2047
0f873fd5
PB
2048static int64_t
2049extract_evuimm4_ex0 (uint64_t insn,
b80c7270
AM
2050 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2051 int *invalid)
252b5132 2052{
0f873fd5 2053 int64_t value = ((insn >> 9) & 0x7c);
b80c7270 2054 if (value == 0)
252b5132 2055 *invalid = 1;
b80c7270 2056
252b5132
RH
2057 return value;
2058}
2059
0f873fd5
PB
2060static uint64_t
2061insert_evuimm8_ex0 (uint64_t insn,
2062 int64_t value,
b80c7270
AM
2063 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2064 const char **errmsg)
2065{
71553718
AM
2066 if (value <= 0 || value > 0xf8)
2067 *errmsg = _("UIMM = 00000 is illegal");
2068 return insn | ((value & 0xf8) << 8);
252b5132
RH
2069}
2070
0f873fd5
PB
2071static int64_t
2072extract_evuimm8_ex0 (uint64_t insn,
b80c7270
AM
2073 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2074 int *invalid)
252b5132 2075{
0f873fd5 2076 int64_t value = ((insn >> 8) & 0xf8);
b80c7270 2077 if (value == 0)
252b5132 2078 *invalid = 1;
252b5132 2079
b80c7270
AM
2080 return value;
2081}
a680de9a 2082
0f873fd5
PB
2083static uint64_t
2084insert_evuimm_lt8 (uint64_t insn,
2085 int64_t value,
74081948
AF
2086 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2087 const char **errmsg)
2088{
71553718
AM
2089 if (value < 0 || value > 7)
2090 *errmsg = _("UIMM values >7 are illegal");
2091 return insn | ((value & 0x7) << 11);
74081948
AF
2092}
2093
0f873fd5
PB
2094static int64_t
2095extract_evuimm_lt8 (uint64_t insn,
74081948
AF
2096 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2097 int *invalid)
2098{
0f873fd5 2099 int64_t value = ((insn >> 11) & 0x1f);
74081948
AF
2100 if (value > 7)
2101 *invalid = 1;
2102
2103 return value;
2104}
2105
0f873fd5
PB
2106static uint64_t
2107insert_evuimm_lt16 (uint64_t insn,
2108 int64_t value,
b80c7270
AM
2109 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2110 const char **errmsg)
a680de9a 2111{
71553718
AM
2112 if (value < 0 || value > 15)
2113 *errmsg = _("UIMM values >15 are illegal");
2114 return insn | ((value & 0xf) << 11);
a680de9a
PB
2115}
2116
0f873fd5
PB
2117static int64_t
2118extract_evuimm_lt16 (uint64_t insn,
b80c7270
AM
2119 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2120 int *invalid)
a680de9a 2121{
0f873fd5 2122 int64_t value = ((insn >> 11) & 0x1f);
b80c7270
AM
2123 if (value > 15)
2124 *invalid = 1;
a680de9a 2125
b80c7270
AM
2126 return value;
2127}
a680de9a 2128
0f873fd5
PB
2129static uint64_t
2130insert_rD_rS_even (uint64_t insn,
2131 int64_t value,
b80c7270
AM
2132 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2133 const char **errmsg)
a680de9a 2134{
71553718
AM
2135 if ((value & 0x1) != 0)
2136 *errmsg = _("GPR odd is illegal");
2137 return insn | ((value & 0x1e) << 21);
a680de9a
PB
2138}
2139
0f873fd5
PB
2140static int64_t
2141extract_rD_rS_even (uint64_t insn,
b80c7270
AM
2142 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2143 int *invalid)
a680de9a 2144{
0f873fd5 2145 int64_t value = ((insn >> 21) & 0x1f);
b80c7270
AM
2146 if ((value & 0x1) != 0)
2147 *invalid = 1;
2148
2149 return value;
a680de9a
PB
2150}
2151
0f873fd5
PB
2152static uint64_t
2153insert_off_lsp (uint64_t insn,
2154 int64_t value,
b80c7270
AM
2155 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2156 const char **errmsg)
a680de9a 2157{
71553718
AM
2158 if (value <= 0 || value > 0x3)
2159 *errmsg = _("invalid offset");
2160 return insn | (value & 0x3);
a680de9a
PB
2161}
2162
0f873fd5
PB
2163static int64_t
2164extract_off_lsp (uint64_t insn,
b80c7270
AM
2165 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2166 int *invalid)
a680de9a 2167{
0f873fd5 2168 int64_t value = (insn & 0x3);
b80c7270
AM
2169 if (value == 0)
2170 *invalid = 1;
2171
2172 return value;
a680de9a 2173}
74081948 2174
0f873fd5
PB
2175static uint64_t
2176insert_off_spe2 (uint64_t insn,
2177 int64_t value,
74081948
AF
2178 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2179 const char **errmsg)
2180{
71553718
AM
2181 if (value <= 0 || value > 0x7)
2182 *errmsg = _("invalid offset");
2183 return insn | (value & 0x7);
74081948
AF
2184}
2185
0f873fd5
PB
2186static int64_t
2187extract_off_spe2 (uint64_t insn,
74081948
AF
2188 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2189 int *invalid)
2190{
0f873fd5 2191 int64_t value = (insn & 0x7);
74081948
AF
2192 if (value == 0)
2193 *invalid = 1;
2194
2195 return value;
2196}
2197
0f873fd5
PB
2198static uint64_t
2199insert_Ddd (uint64_t insn,
2200 int64_t value,
74081948
AF
2201 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2202 const char **errmsg)
2203{
71553718
AM
2204 if (value < 0 || value > 0x7)
2205 *errmsg = _("invalid Ddd value");
2206 return insn | ((value & 0x3) << 11) | ((value & 0x4) >> 2);
74081948
AF
2207}
2208
0f873fd5
PB
2209static int64_t
2210extract_Ddd (uint64_t insn,
74081948
AF
2211 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2212 int *invalid ATTRIBUTE_UNUSED)
2213{
2214 return ((insn >> 11) & 0x3) | ((insn << 2) & 0x4);
2215}
9cf7e568
AM
2216
2217static uint64_t
2218insert_sxl (uint64_t insn,
2219 int64_t value,
2220 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2221 const char **errmsg ATTRIBUTE_UNUSED)
2222{
2223 return insn | ((value & 0x1) << 11);
2224}
2225
2226static int64_t
2227extract_sxl (uint64_t insn,
2228 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2229 int *invalid)
2230{
8acf1435 2231 /* Missing optional operands have a value of one. */
9cf7e568
AM
2232 if (*invalid < 0)
2233 return 1;
2234 return (insn >> 11) & 0x1;
2235}
97bf40d8
AM
2236
2237/* The list of embedded processors that use the embedded operand ordering
2238 for the 3 operand dcbt and dcbtst instructions. */
2239#define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
2240 | PPC_OPCODE_A2)
2241
2242/* ISA 2.03 and later specify extended mnemonics dcbtct, dcbtds, and
2243 dcbtstct, dcbtstds with a note saying these should be used in new
2244 programs rather than the base mnemonics "so that it can be coded
2245 with TH as the last operand for all categories". For that reason
2246 the extended mnemonics are enabled in the assembler for the
2247 embedded processors, but not for the disassembler so as to display
2248 the embedded dcbt or dcbtst expected form with TH first for
2249 embedded programmers. */
2250
2251static uint64_t
2252insert_thct (uint64_t insn,
2253 int64_t value,
2254 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2255 const char **errmsg)
2256{
2257 if ((uint64_t) value > 7)
2258 *errmsg = _("invalid TH value");
2259 return insn | ((value & 7) << 21);
2260}
2261
2262static int64_t
2263extract_thct (uint64_t insn,
2264 ppc_cpu_t dialect,
2265 int *invalid)
2266{
2267 /* Missing optional operands have a value of 0. */
2268 if (*invalid < 0)
2269 return 0;
2270
2271 int64_t value = (insn >> 21) & 0x1f;
2272 if (value > 7 || (dialect & DCBT_EO) != 0)
2273 *invalid = 1;
2274
2275 return value;
2276}
2277
2278static uint64_t
2279insert_thds (uint64_t insn,
2280 int64_t value,
2281 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
2282 const char **errmsg)
2283{
2284 if (value < 8 || value > 15)
2285 *errmsg = _("invalid TH value");
2286 return insn | ((value & 0x1f) << 21);
2287}
2288
2289static int64_t
2290extract_thds (uint64_t insn,
2291 ppc_cpu_t dialect,
2292 int *invalid)
2293{
2294 /* Missing optional operands have a value of 8. */
2295 if (*invalid < 0)
2296 return 8;
2297
2298 int64_t value = (insn >> 21) & 0x1f;
2299 if (value < 8 || value > 15 || (dialect & DCBT_EO) != 0)
2300 *invalid = 1;
2301
2302 return value;
2303}
b80c7270
AM
2304\f
2305/* The operands table.
a680de9a 2306
b80c7270 2307 The fields are bitm, shift, insert, extract, flags.
2fbfdc41 2308
b80c7270
AM
2309 We used to put parens around the various additions, like the one
2310 for BA just below. However, that caused trouble with feeble
2311 compilers with a limit on depth of a parenthesized expression, like
2312 (reportedly) the compiler in Microsoft Developer Studio 5. So we
2313 omit the parens, since the macros are never used in a context where
2314 the addition will be ambiguous. */
2315
2316const struct powerpc_operand powerpc_operands[] =
c168870a 2317{
b80c7270
AM
2318 /* The zero index is used to indicate the end of the list of
2319 operands. */
2320#define UNUSED 0
2321 { 0, 0, NULL, NULL, 0 },
2322
2323 /* The BA field in an XL form instruction. */
2324#define BA UNUSED + 1
2325 /* The BI field in a B form or XL form instruction. */
2326#define BI BA
2327#define BI_MASK (0x1f << 16)
2328 { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
2329
98553ad3
PB
2330 /* The BT, BA and BB fields in a XL form instruction when they must all
2331 be the same. */
2332#define BTAB BA + 1
2333 { 0x1f, 21, insert_btab, extract_btab, PPC_OPERAND_CR_BIT },
b80c7270
AM
2334
2335 /* The BB field in an XL form instruction. */
98553ad3 2336#define BB BTAB + 1
b80c7270
AM
2337#define BB_MASK (0x1f << 11)
2338 { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT },
2339
98553ad3
PB
2340 /* The BA and BB fields in a XL form instruction when they must be
2341 the same. */
2342#define BAB BB + 1
2343 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_CR_BIT },
2344
2345 /* The VRA and VRB fields in a VX form instruction when they must be the same.
2346 This is used for extended mnemonics like vmr. */
2347#define VAB BAB + 1
2348 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_VR },
2349
2350 /* The RA and RB fields in a VX form instruction when they must be the same.
2351 This is used for extended mnemonics like evmr. */
2352#define RAB VAB + 1
2353 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_GPR },
b80c7270
AM
2354
2355 /* The BD field in a B form instruction. The lower two bits are
2356 forced to zero. */
98553ad3 2357#define BD RAB + 1
b80c7270
AM
2358 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2359
2360 /* The BD field in a B form instruction when absolute addressing is
2361 used. */
2362#define BDA BD + 1
2363 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2364
2365 /* The BD field in a B form instruction when the - modifier is used.
2366 This sets the y bit of the BO field appropriately. */
2367#define BDM BDA + 1
2368 { 0xfffc, 0, insert_bdm, extract_bdm,
2369 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2370
2371 /* The BD field in a B form instruction when the - modifier is used
2372 and absolute address is used. */
2373#define BDMA BDM + 1
2374 { 0xfffc, 0, insert_bdm, extract_bdm,
2375 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2376
2377 /* The BD field in a B form instruction when the + modifier is used.
2378 This sets the y bit of the BO field appropriately. */
2379#define BDP BDMA + 1
2380 { 0xfffc, 0, insert_bdp, extract_bdp,
2381 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
2382
2383 /* The BD field in a B form instruction when the + modifier is used
2384 and absolute addressing is used. */
2385#define BDPA BDP + 1
2386 { 0xfffc, 0, insert_bdp, extract_bdp,
2387 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
2388
2389 /* The BF field in an X or XL form instruction. */
2390#define BF BDPA + 1
2391 /* The CRFD field in an X form instruction. */
2392#define CRFD BF
2393 /* The CRD field in an XL form instruction. */
2394#define CRD BF
2395 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG },
2396
2397 /* The BF field in an X or XL form instruction. */
2398#define BFF BF + 1
2399 { 0x7, 23, NULL, NULL, 0 },
2400
aa3c112f
AM
2401 /* The ACC field in a VSX ACC 8LS:D-form instruction. */
2402#define ACC BFF + 1
2403 { 0x7, 23, NULL, NULL, PPC_OPERAND_ACC },
2404
b80c7270
AM
2405 /* An optional BF field. This is used for comparison instructions,
2406 in which an omitted BF field is taken as zero. */
aa3c112f 2407#define OBF ACC + 1
b80c7270
AM
2408 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
2409
2410 /* The BFA field in an X or XL form instruction. */
2411#define BFA OBF + 1
2412 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG },
2413
2414 /* The BO field in a B form instruction. Certain values are
2415 illegal. */
2416#define BO BFA + 1
2417#define BO_MASK (0x1f << 21)
2418 { 0x1f, 21, insert_bo, extract_bo, 0 },
2419
aae9718e
PB
2420 /* The BO field in a B form instruction when the - modifier is used. */
2421#define BOM BO + 1
2422 { 0x1f, 21, insert_bom, extract_bom, 0 },
2423
2424 /* The BO field in a B form instruction when the + modifier is used. */
2425#define BOP BOM + 1
2426 { 0x1f, 21, insert_bop, extract_bop, 0 },
b80c7270
AM
2427
2428 /* The RM field in an X form instruction. */
aae9718e 2429#define RM BOP + 1
74081948 2430#define DD RM
b80c7270
AM
2431 { 0x3, 11, NULL, NULL, 0 },
2432
2433#define BH RM + 1
2434 { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
2435
2436 /* The BT field in an X or XL form instruction. */
2437#define BT BH + 1
2438 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT },
2439
96a86c01
AM
2440 /* The BT field in a mtfsb0 or mtfsb1 instruction. */
2441#define BTF BT + 1
2442 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT | PPC_OPERAND_CR_REG },
2443
b80c7270 2444 /* The BI16 field in a BD8 form instruction. */
96a86c01 2445#define BI16 BTF + 1
b80c7270
AM
2446 { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT },
2447
2448 /* The BI32 field in a BD15 form instruction. */
2449#define BI32 BI16 + 1
2450 { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
98e69875 2451
b80c7270
AM
2452 /* The BO32 field in a BD15 form instruction. */
2453#define BO32 BI32 + 1
2454 { 0x3, 20, NULL, NULL, 0 },
c168870a 2455
b80c7270
AM
2456 /* The B8 field in a BD8 form instruction. */
2457#define B8 BO32 + 1
2458 { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 2459
b80c7270
AM
2460 /* The B15 field in a BD15 form instruction. The lowest bit is
2461 forced to zero. */
2462#define B15 B8 + 1
2463 { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 2464
b80c7270
AM
2465 /* The B24 field in a BD24 form instruction. The lowest bit is
2466 forced to zero. */
2467#define B24 B15 + 1
2468 { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
c168870a 2469
b80c7270
AM
2470 /* The condition register number portion of the BI field in a B form
2471 or XL form instruction. This is used for the extended
2472 conditional branch mnemonics, which set the lower two bits of the
2473 BI field. This field is optional. */
2474#define CR B24 + 1
2475 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
c168870a 2476
b80c7270
AM
2477 /* The CRB field in an X form instruction. */
2478#define CRB CR + 1
2479 /* The MB field in an M form instruction. */
2480#define MB CRB
2481#define MB_MASK (0x1f << 6)
2482 { 0x1f, 6, NULL, NULL, 0 },
c168870a 2483
b80c7270
AM
2484 /* The CRD32 field in an XL form instruction. */
2485#define CRD32 CRB + 1
2486 { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG },
c168870a 2487
b80c7270
AM
2488 /* The CRFS field in an X form instruction. */
2489#define CRFS CRD32 + 1
2490 { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG },
b9c361e0 2491
b80c7270
AM
2492#define CRS CRFS + 1
2493 { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
b9c361e0 2494
b80c7270
AM
2495 /* The CT field in an X form instruction. */
2496#define CT CRS + 1
2497 /* The MO field in an mbar instruction. */
2498#define MO CT
2499 { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2500
97bf40d8
AM
2501 /* The TH field in dcbtct. */
2502#define THCT CT + 1
2503 { 0x1f, 21, insert_thct, extract_thct, PPC_OPERAND_OPTIONAL },
2504
2505 /* The TH field in dcbtds. */
2506#define THDS THCT + 1
2507 { 0x1f, 21, insert_thds, extract_thds, PPC_OPERAND_OPTIONAL },
2508
b80c7270
AM
2509 /* The D field in a D form instruction. This is a displacement off
2510 a register, and implies that the next operand is a register in
2511 parentheses. */
97bf40d8 2512#define D THDS + 1
b80c7270 2513 { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
aea77599 2514
b80c7270
AM
2515 /* The D8 field in a D form instruction. This is a displacement off
2516 a register, and implies that the next operand is a register in
2517 parentheses. */
2518#define D8 D + 1
2519 { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
7b934113 2520
b80c7270
AM
2521 /* The DCMX field in an X form instruction. */
2522#define DCMX D8 + 1
2523 { 0x7f, 16, NULL, NULL, 0 },
7b934113 2524
b80c7270
AM
2525 /* The split DCMX field in an X form instruction. */
2526#define DCMXS DCMX + 1
2527 { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 },
73f07bff 2528
b80c7270
AM
2529 /* The DQ field in a DQ form instruction. This is like D, but the
2530 lower four bits are forced to zero. */
2531#define DQ DCMXS + 1
2532 { 0xfff0, 0, NULL, NULL,
2533 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },
73f07bff 2534
b80c7270
AM
2535 /* The DS field in a DS form instruction. This is like D, but the
2536 lower two bits are forced to zero. */
2537#define DS DQ + 1
2538 { 0xfffc, 0, NULL, NULL,
2539 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
7b934113 2540
8acf1435
PB
2541 /* The D field in an 8-byte D form prefix instruction. This is a displacement
2542 off a register, and implies that the next operand is a register in
2543 parentheses. */
2544#define D34 DS + 1
0e62b37a 2545 { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34,
8acf1435
PB
2546 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
2547
2548 /* The SI field in an 8-byte D form prefix instruction. */
2549#define SI34 D34 + 1
0e62b37a 2550 { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34, PPC_OPERAND_SIGNED },
8acf1435
PB
2551
2552 /* The NSI field in an 8-byte D form prefix instruction. This is the
2553 same as the SI34 field, only negated. */
2554#define NSI34 SI34 + 1
0e62b37a 2555 { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_nsi34, extract_nsi34,
8acf1435
PB
2556 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
2557
6edbfd3b
AM
2558 /* The IMM32 field in a vector splat immediate prefix instruction. */
2559#define IMM32 NSI34 + 1
2560 { 0xffffffff, PPC_OPSHIFT_INV, insert_imm32, extract_imm32, 0},
2561
2562 /* The UIM field in a vector permute extended prefix instruction. */
2563#define UIM3 IMM32 + 1
2564 { 0x7, 32, NULL, NULL, 0},
2565
ec40e91c
AM
2566 /* The UIM field in a vector eval prefix instruction. */
2567#define UIM8 UIM3 + 1
2568 { 0xff, 32, NULL, NULL, 0},
2569
6edbfd3b 2570 /* The IX field in xxsplti32dx. */
ec40e91c 2571#define IX UIM8 + 1
6edbfd3b
AM
2572 { 0x1, 17, NULL, NULL, 0 },
2573
aa3c112f
AM
2574 /* The PMSK field in GER rank 8 prefix instructions. */
2575#define PMSK8 IX + 1
2576 { 0xff, 40, NULL, NULL, 0 },
2577
2578 /* The PMSK field in GER rank 4 prefix instructions. */
2579#define PMSK4 PMSK8 + 1
2580 { 0xf, 44, NULL, NULL, 0 },
2581
2582 /* The PMSK field in GER rank 2 prefix instructions. */
2583#define PMSK2 PMSK4 + 1
2584 { 0x3, 46, NULL, NULL, 0 },
2585
2586 /* The XMSK field in GER prefix instructions. */
2587#define XMSK PMSK2 + 1
2588 { 0xf, 36, NULL, NULL, 0 },
2589
2590 /* The YMSK field in GER prefix instructions. */
2591#define YMSK XMSK + 1
2592 { 0xf, 32, NULL, NULL, 0 },
2593
2594 /* The YMSK field in 64-bit GER prefix instructions. */
2595#define YMSK2 YMSK + 1
2596 { 0x3, 34, NULL, NULL, 0 },
2597
b80c7270
AM
2598 /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits
2599 unsigned imediate */
aa3c112f 2600#define DUIS YMSK2 + 1
b80c7270
AM
2601#define BHRBE DUIS
2602 { 0x3ff, 11, NULL, NULL, 0 },
aea77599 2603
aae7fcb8
PB
2604 /* The split DW field in a X form instruction. */
2605#define DW DUIS + 1
2606 { -1, PPC_OPSHIFT_INV, insert_dw, extract_dw,
2607 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED},
2608
b80c7270 2609 /* The split D field in a DX form instruction. */
aae7fcb8 2610#define DXD DW + 1
b80c7270
AM
2611 { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd,
2612 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
7b934113 2613
b80c7270
AM
2614 /* The split ND field in a DX form instruction.
2615 This is the same as the DX field, only negated. */
2616#define NDXD DXD + 1
2617 { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn,
2618 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
7b934113 2619
b80c7270
AM
2620 /* The E field in a wrteei instruction. */
2621 /* And the W bit in the pair singles instructions. */
2622 /* And the ST field in a VX form instruction. */
2623#define E NDXD + 1
2624#define PSW E
2625#define ST E
2626 { 0x1, 15, NULL, NULL, 0 },
aea77599 2627
b80c7270
AM
2628 /* The FL1 field in a POWER SC form instruction. */
2629#define FL1 E + 1
2630 /* The U field in an X form instruction. */
2631#define U FL1
2632 { 0xf, 12, NULL, NULL, 0 },
73f07bff 2633
b80c7270
AM
2634 /* The FL2 field in a POWER SC form instruction. */
2635#define FL2 FL1 + 1
2636 { 0x7, 2, NULL, NULL, 0 },
73f07bff 2637
b80c7270
AM
2638 /* The FLM field in an XFL form instruction. */
2639#define FLM FL2 + 1
2640 { 0xff, 17, NULL, NULL, 0 },
73f07bff 2641
b80c7270
AM
2642 /* The FRA field in an X or A form instruction. */
2643#define FRA FLM + 1
2644#define FRA_MASK (0x1f << 16)
2645 { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2646
b80c7270
AM
2647 /* The FRAp field of DFP instructions. */
2648#define FRAp FRA + 1
2649 { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2650
b80c7270
AM
2651 /* The FRB field in an X or A form instruction. */
2652#define FRB FRAp + 1
2653#define FRB_MASK (0x1f << 11)
2654 { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR },
2655
2656 /* The FRBp field of DFP instructions. */
2657#define FRBp FRB + 1
2658 { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2659
b80c7270
AM
2660 /* The FRC field in an A form instruction. */
2661#define FRC FRBp + 1
2662#define FRC_MASK (0x1f << 6)
2663 { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2664
b80c7270
AM
2665 /* The FRS field in an X form instruction or the FRT field in a D, X
2666 or A form instruction. */
2667#define FRS FRC + 1
2668#define FRT FRS
2669 { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2670
b80c7270
AM
2671 /* The FRSp field of stfdp or the FRTp field of lfdp and DFP
2672 instructions. */
2673#define FRSp FRS + 1
2674#define FRTp FRSp
2675 { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR },
252b5132 2676
b80c7270
AM
2677 /* The FXM field in an XFX instruction. */
2678#define FXM FRSp + 1
2679 { 0xff, 12, insert_fxm, extract_fxm, 0 },
252b5132 2680
b80c7270
AM
2681 /* Power4 version for mfcr. */
2682#define FXM4 FXM + 1
9cf7e568 2683 { 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL },
252b5132 2684
b80c7270 2685 /* The IMM20 field in an LI instruction. */
9cf7e568 2686#define IMM20 FXM4 + 1
b80c7270 2687 { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED},
252b5132 2688
b80c7270
AM
2689 /* The L field in a D or X form instruction. */
2690#define L IMM20 + 1
2691 { 0x1, 21, NULL, NULL, 0 },
252b5132 2692
b80c7270
AM
2693 /* The optional L field in tlbie and tlbiel instructions. */
2694#define LOPT L + 1
2695 /* The R field in a HTM X form instruction. */
2696#define HTM_R LOPT
2697 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 2698
afef4fe9
PB
2699 /* The optional L field in the paste. instruction. This is similar to LOPT
2700 above, but with a default value of 1. */
2701#define L1OPT LOPT + 1
2702 { 0x1, 21, insert_l1opt, extract_l1opt, PPC_OPERAND_OPTIONAL },
2703
b80c7270 2704 /* The optional (for 32-bit) L field in cmp[l][i] instructions. */
afef4fe9 2705#define L32OPT L1OPT + 1
b80c7270 2706 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 },
252b5132 2707
3d205eb4 2708 /* The 2-bit L or WC field in an X (sync, dcbf or wait) form instruction. */
b80c7270 2709#define L2OPT L32OPT + 1
3d205eb4
PB
2710#define LS L2OPT
2711#define WC L2OPT
2712 { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
252b5132 2713
b80c7270
AM
2714 /* The LEV field in a POWER SVC / POWER9 SCV form instruction. */
2715#define SVC_LEV L2OPT + 1
2716 { 0x7f, 5, NULL, NULL, 0 },
252b5132 2717
b80c7270
AM
2718 /* The LEV field in an SC form instruction. */
2719#define LEV SVC_LEV + 1
2720 { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL },
252b5132 2721
b80c7270
AM
2722 /* The LI field in an I form instruction. The lower two bits are
2723 forced to zero. */
2724#define LI LEV + 1
2725 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
252b5132 2726
b80c7270
AM
2727 /* The LI field in an I form instruction when used as an absolute
2728 address. */
2729#define LIA LI + 1
2730 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
252b5132 2731
3d205eb4
PB
2732 /* The 3-bit L field in a sync or dcbf instruction. */
2733#define LS3 LIA + 1
2734#define L3OPT LS3
2735 { 0x7, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
252b5132 2736
b80c7270 2737 /* The ME field in an M form instruction. */
3d205eb4 2738#define ME LS3 + 1
b80c7270
AM
2739#define ME_MASK (0x1f << 1)
2740 { 0x1f, 1, NULL, NULL, 0 },
989993d8 2741
b80c7270
AM
2742 /* The MB and ME fields in an M form instruction expressed a single
2743 operand which is a bitmask indicating which bits to select. This
2744 is a two operand form using PPC_OPERAND_NEXT. See the
2745 description in opcode/ppc.h for what this means. */
2746#define MBE ME + 1
2747 { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },
2748 { -1, 0, insert_mbe, extract_mbe, 0 },
989993d8 2749
b80c7270
AM
2750 /* The MB or ME field in an MD or MDS form instruction. The high
2751 bit is wrapped to the low end. */
2752#define MB6 MBE + 2
2753#define ME6 MB6
2754#define MB6_MASK (0x3f << 5)
2755 { 0x3f, 5, insert_mb6, extract_mb6, 0 },
989993d8 2756
b80c7270
AM
2757 /* The NB field in an X form instruction. The value 32 is stored as
2758 0. */
2759#define NB MB6 + 1
2760 { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 },
252b5132 2761
b80c7270
AM
2762 /* The NBI field in an lswi instruction, which has special value
2763 restrictions. The value 32 is stored as 0. */
2764#define NBI NB + 1
2765 { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 },
252b5132 2766
b80c7270
AM
2767 /* The NSI field in a D form instruction. This is the same as the
2768 SI field, only negated. */
2769#define NSI NBI + 1
2770 { 0xffff, 0, insert_nsi, extract_nsi,
2771 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
252b5132 2772
b80c7270
AM
2773 /* The NSI field in a D form instruction when we accept a wide range
2774 of positive values. */
2775#define NSISIGNOPT NSI + 1
2776 { 0xffff, 0, insert_nsi, extract_nsi,
2777 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
252b5132 2778
b80c7270
AM
2779 /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */
2780#define RA NSISIGNOPT + 1
2781#define RA_MASK (0x1f << 16)
2782 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
252b5132 2783
b80c7270
AM
2784 /* As above, but 0 in the RA field means zero, not r0. */
2785#define RA0 RA + 1
2786 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 },
73f07bff 2787
8acf1435
PB
2788 /* Similar to above, but optional. */
2789#define PRA0 RA0 + 1
2790 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
2791
b80c7270
AM
2792 /* The RA field in the DQ form lq or an lswx instruction, which have
2793 special value restrictions. */
8acf1435 2794#define RAQ PRA0 + 1
b80c7270
AM
2795#define RAX RAQ
2796 { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 },
73f07bff 2797
8acf1435
PB
2798 /* Similar to above, but optional. */
2799#define PRAQ RAQ + 1
2800 { 0x1f, 16, insert_raq, extract_raq,
2801 PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
2802
2803 /* The R field in an 8-byte D, DS, DQ or X form prefix instruction. */
2804#define PCREL PRAQ + 1
2805#define PCREL_MASK (1ULL << 52)
2806 { 0x1, 52, insert_pcrel, extract_pcrel, PPC_OPERAND_OPTIONAL },
2807
2808#define PCREL0 PCREL + 1
2809 { 0x1, 52, insert_pcrel, extract_pcrel0, PPC_OPERAND_OPTIONAL },
2810
b80c7270
AM
2811 /* The RA field in a D or X form instruction which is an updating
2812 load, which means that the RA field may not be zero and may not
2813 equal the RT field. */
8acf1435 2814#define RAL PCREL0 + 1
b80c7270 2815 { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 },
252b5132 2816
b80c7270
AM
2817 /* The RA field in an lmw instruction, which has special value
2818 restrictions. */
2819#define RAM RAL + 1
2820 { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 },
252b5132 2821
b80c7270
AM
2822 /* The RA field in a D or X form instruction which is an updating
2823 store or an updating floating point load, which means that the RA
2824 field may not be zero. */
2825#define RAS RAM + 1
2826 { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 },
73f07bff 2827
b80c7270
AM
2828 /* The RA field of the tlbwe, dccci and iccci instructions,
2829 which are optional. */
2830#define RAOPT RAS + 1
2831 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 2832
b80c7270
AM
2833 /* The RB field in an X, XO, M, or MDS form instruction. */
2834#define RB RAOPT + 1
2835#define RB_MASK (0x1f << 11)
2836 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR },
adadcc0c 2837
98553ad3
PB
2838 /* The RS and RB fields in an X form instruction when they must be the same.
2839 This is used for extended mnemonics like mr. */
2840#define RSB RB + 1
2841 { 0x1f, 11, insert_rsb, extract_rsb, PPC_OPERAND_GPR },
adadcc0c 2842
b80c7270
AM
2843 /* The RB field in an lswx instruction, which has special value
2844 restrictions. */
98553ad3 2845#define RBX RSB + 1
b80c7270 2846 { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR },
adadcc0c 2847
b80c7270
AM
2848 /* The RB field of the dccci and iccci instructions, which are optional. */
2849#define RBOPT RBX + 1
2850 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 2851
b80c7270
AM
2852 /* The RC register field in an maddld, maddhd or maddhdu instruction. */
2853#define RC RBOPT + 1
2854 { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR },
73f07bff 2855
b80c7270
AM
2856 /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form
2857 instruction or the RT field in a D, DS, X, XFX or XO form
2858 instruction. */
2859#define RS RC + 1
2860#define RT RS
2861#define RT_MASK (0x1f << 21)
2862#define RD RS
2863 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR },
252b5132 2864
b80c7270
AM
2865#define RD_EVEN RS + 1
2866#define RS_EVEN RD_EVEN
2867 { 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR },
252b5132 2868
b80c7270
AM
2869 /* The RS and RT fields of the DS form stq and DQ form lq instructions,
2870 which have special value restrictions. */
2871#define RSQ RS_EVEN + 1
2872#define RTQ RSQ
2873#define Q_MASK (1 << 21)
2874 { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
73f07bff 2875
b80c7270
AM
2876 /* The RS field of the tlbwe instruction, which is optional. */
2877#define RSO RSQ + 1
2878#define RTO RSO
2879 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
73f07bff 2880
b80c7270
AM
2881 /* The RX field of the SE_RR form instruction. */
2882#define RX RSO + 1
2883 { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR },
252b5132 2884
b80c7270
AM
2885 /* The ARX field of the SE_RR form instruction. */
2886#define ARX RX + 1
2887 { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR },
252b5132 2888
b80c7270
AM
2889 /* The RY field of the SE_RR form instruction. */
2890#define RY ARX + 1
2891#define RZ RY
2892 { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR },
252b5132 2893
b80c7270
AM
2894 /* The ARY field of the SE_RR form instruction. */
2895#define ARY RY + 1
2896 { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR },
989993d8 2897
b80c7270
AM
2898 /* The SCLSCI8 field in a D form instruction. */
2899#define SCLSCI8 ARY + 1
2900 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 },
989993d8 2901
b80c7270
AM
2902 /* The SCLSCI8N field in a D form instruction. This is the same as the
2903 SCLSCI8 field, only negated. */
2904#define SCLSCI8N SCLSCI8 + 1
2905 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n,
2906 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
989993d8 2907
b80c7270
AM
2908 /* The SD field of the SD4 form instruction. */
2909#define SE_SD SCLSCI8N + 1
2910 { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS },
73f07bff 2911
b80c7270
AM
2912 /* The SD field of the SD4 form instruction, for halfword. */
2913#define SE_SDH SE_SD + 1
71553718 2914 { 0x1e, 7, NULL, NULL, PPC_OPERAND_PARENS },
73f07bff 2915
b80c7270
AM
2916 /* The SD field of the SD4 form instruction, for word. */
2917#define SE_SDW SE_SDH + 1
71553718 2918 { 0x3c, 6, NULL, NULL, PPC_OPERAND_PARENS },
b9c361e0 2919
b80c7270
AM
2920 /* The SH field in an X or M form instruction. */
2921#define SH SE_SDW + 1
2922#define SH_MASK (0x1f << 11)
2923 /* The other UIMM field in a EVX form instruction. */
2924#define EVUIMM SH
2925 /* The FC field in an atomic X form instruction. */
2926#define FC SH
6edbfd3b 2927#define UIM5 SH
b80c7270 2928 { 0x1f, 11, NULL, NULL, 0 },
b9c361e0 2929
74081948
AF
2930#define EVUIMM_LT8 SH + 1
2931 { 0x1f, 11, insert_evuimm_lt8, extract_evuimm_lt8, 0 },
2932
2933#define EVUIMM_LT16 EVUIMM_LT8 + 1
b80c7270 2934 { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 },
b9c361e0 2935
b80c7270
AM
2936 /* The SI field in a HTM X form instruction. */
2937#define HTM_SI EVUIMM_LT16 + 1
2938 { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED },
943d398f 2939
b80c7270
AM
2940 /* The SH field in an MD form instruction. This is split. */
2941#define SH6 HTM_SI + 1
2942#define SH6_MASK ((0x1f << 11) | (1 << 1))
2943 { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 },
b9c361e0 2944
b80c7270
AM
2945 /* The SH field of some variants of the tlbre and tlbwe
2946 instructions, and the ELEV field of the e_sc instruction. */
2947#define SHO SH6 + 1
2948#define ELEV SHO
2949 { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 2950
b80c7270
AM
2951 /* The SI field in a D form instruction. */
2952#define SI SHO + 1
2953 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
b9c361e0 2954
b80c7270
AM
2955 /* The SI field in a D form instruction when we accept a wide range
2956 of positive values. */
2957#define SISIGNOPT SI + 1
2958 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
b9c361e0 2959
b80c7270
AM
2960 /* The SI8 field in a D form instruction. */
2961#define SI8 SISIGNOPT + 1
2962 { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
b9c361e0 2963
b80c7270
AM
2964 /* The SPR field in an XFX form instruction. This is flipped--the
2965 lower 5 bits are stored in the upper 5 and vice- versa. */
2966#define SPR SI8 + 1
2967#define PMR SPR
2968#define TMR SPR
2969#define SPR_MASK (0x3ff << 11)
2970 { 0x3ff, 11, insert_spr, extract_spr, PPC_OPERAND_SPR },
b9c361e0 2971
b80c7270
AM
2972 /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */
2973#define SPRBAT SPR + 1
fa758a70
AC
2974#define SPRBAT_MASK (0xc1 << 11)
2975 { 0x7, PPC_OPSHIFT_INV, insert_sprbat, extract_sprbat, PPC_OPERAND_SPR },
2976
2977 /* The GQR index number in an XFX form m[ft]gqr instruction. */
2978#define SPRGQR SPRBAT + 1
2979#define SPRGQR_MASK (0x7 << 16)
2980 { 0x7, 16, NULL, NULL, PPC_OPERAND_GQR },
b9c361e0 2981
b80c7270 2982 /* The SPRG register number in an XFX form m[ft]sprg instruction. */
fa758a70 2983#define SPRG SPRGQR + 1
b80c7270 2984 { 0x1f, 16, insert_sprg, extract_sprg, PPC_OPERAND_SPR },
b9c361e0 2985
b80c7270
AM
2986 /* The SR field in an X form instruction. */
2987#define SR SPRG + 1
2988 /* The 4-bit UIMM field in a VX form instruction. */
2989#define UIMM4 SR
2990 { 0xf, 16, NULL, NULL, 0 },
b9c361e0 2991
b80c7270
AM
2992 /* The STRM field in an X AltiVec form instruction. */
2993#define STRM SR + 1
2994 /* The T field in a tlbilx form instruction. */
2995#define T STRM
2996 /* The L field in wclr instructions. */
2997#define L2 STRM
2998 { 0x3, 21, NULL, NULL, 0 },
252b5132 2999
b80c7270
AM
3000 /* The ESYNC field in an X (sync) form instruction. */
3001#define ESYNC STRM + 1
3002 { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL },
252b5132 3003
b80c7270
AM
3004 /* The SV field in a POWER SC form instruction. */
3005#define SV ESYNC + 1
3006 { 0x3fff, 2, NULL, NULL, 0 },
252b5132 3007
b80c7270
AM
3008 /* The TBR field in an XFX form instruction. This is like the SPR
3009 field, but it is optional. */
3010#define TBR SV + 1
3011 { 0x3ff, 11, insert_tbr, extract_tbr,
9cf7e568 3012 PPC_OPERAND_SPR | PPC_OPERAND_OPTIONAL },
252b5132 3013
b80c7270 3014 /* The TO field in a D or X form instruction. */
9cf7e568 3015#define TO TBR + 1
b80c7270
AM
3016#define DUI TO
3017#define TO_MASK (0x1f << 21)
3018 { 0x1f, 21, NULL, NULL, 0 },
252b5132 3019
b80c7270
AM
3020 /* The UI field in a D form instruction. */
3021#define UI TO + 1
3022 { 0xffff, 0, NULL, NULL, 0 },
252b5132 3023
b80c7270
AM
3024#define UISIGNOPT UI + 1
3025 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT },
da99ee72 3026
b80c7270
AM
3027 /* The IMM field in an SE_IM5 instruction. */
3028#define UI5 UISIGNOPT + 1
3029 { 0x1f, 4, NULL, NULL, 0 },
da99ee72 3030
b80c7270
AM
3031 /* The OIMM field in an SE_OIM5 instruction. */
3032#define OIMM5 UI5 + 1
71553718 3033 { 0x1f, 4, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 },
da99ee72 3034
b80c7270
AM
3035 /* The UI7 field in an SE_LI instruction. */
3036#define UI7 OIMM5 + 1
3037 { 0x7f, 4, NULL, NULL, 0 },
da99ee72 3038
b80c7270
AM
3039 /* The VA field in a VA, VX or VXR form instruction. */
3040#define VA UI7 + 1
3041 { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR },
da99ee72 3042
b80c7270
AM
3043 /* The VB field in a VA, VX or VXR form instruction. */
3044#define VB VA + 1
3045 { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR },
da99ee72 3046
b80c7270
AM
3047 /* The VC field in a VA form instruction. */
3048#define VC VB + 1
3049 { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR },
252b5132 3050
b80c7270
AM
3051 /* The VD or VS field in a VA, VX, VXR or X form instruction. */
3052#define VD VC + 1
3053#define VS VD
3054 { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR },
252b5132 3055
b80c7270
AM
3056 /* The SIMM field in a VX form instruction, and TE in Z form. */
3057#define SIMM VD + 1
3058#define TE SIMM
3059 { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED},
252b5132 3060
b80c7270
AM
3061 /* The UIMM field in a VX form instruction. */
3062#define UIMM SIMM + 1
3063#define DCTL UIMM
3064 { 0x1f, 16, NULL, NULL, 0 },
9b4e5766 3065
b80c7270
AM
3066 /* The 3-bit UIMM field in a VX form instruction. */
3067#define UIMM3 UIMM + 1
3068 { 0x7, 16, NULL, NULL, 0 },
9b4e5766 3069
b80c7270
AM
3070 /* The 6-bit UIM field in a X form instruction. */
3071#define UIM6 UIMM3 + 1
3072 { 0x3f, 16, NULL, NULL, 0 },
9b4e5766 3073
b80c7270
AM
3074 /* The SIX field in a VX form instruction. */
3075#define SIX UIM6 + 1
74081948 3076#define MMMM SIX
b80c7270 3077 { 0xf, 11, NULL, NULL, 0 },
9b4e5766 3078
b80c7270
AM
3079 /* The PS field in a VX form instruction. */
3080#define PS SIX + 1
3081 { 0x1, 9, NULL, NULL, 0 },
a680de9a 3082
6edbfd3b
AM
3083 /* The SH field in a vector shift double by bit immediate instruction. */
3084#define SH3 PS + 1
3085 { 0x7, 6, NULL, NULL, 0 },
3086
b80c7270 3087 /* The SHB field in a VA form instruction. */
6edbfd3b 3088#define SHB SH3 + 1
b80c7270 3089 { 0xf, 6, NULL, NULL, 0 },
a680de9a 3090
b80c7270 3091 /* The other UIMM field in a half word EVX form instruction. */
74081948
AF
3092#define EVUIMM_1 SHB + 1
3093 { 0x1f, 11, NULL, NULL, PPC_OPERAND_PARENS },
3094
3095#define EVUIMM_1_EX0 EVUIMM_1 + 1
3096 { 0x1f, 11, insert_evuimm1_ex0, extract_evuimm1_ex0, PPC_OPERAND_PARENS },
3097
3098#define EVUIMM_2 EVUIMM_1_EX0 + 1
b80c7270 3099 { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 3100
b80c7270
AM
3101#define EVUIMM_2_EX0 EVUIMM_2 + 1
3102 { 0x3e, 10, insert_evuimm2_ex0, extract_evuimm2_ex0, PPC_OPERAND_PARENS },
9b4e5766 3103
b80c7270
AM
3104 /* The other UIMM field in a word EVX form instruction. */
3105#define EVUIMM_4 EVUIMM_2_EX0 + 1
3106 { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 3107
b80c7270
AM
3108#define EVUIMM_4_EX0 EVUIMM_4 + 1
3109 { 0x7c, 9, insert_evuimm4_ex0, extract_evuimm4_ex0, PPC_OPERAND_PARENS },
9b4e5766 3110
b80c7270
AM
3111 /* The other UIMM field in a double EVX form instruction. */
3112#define EVUIMM_8 EVUIMM_4_EX0 + 1
3113 { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS },
9b4e5766 3114
b80c7270
AM
3115#define EVUIMM_8_EX0 EVUIMM_8 + 1
3116 { 0xf8, 8, insert_evuimm8_ex0, extract_evuimm8_ex0, PPC_OPERAND_PARENS },
9b4e5766 3117
b80c7270
AM
3118 /* The WS or DRM field in an X form instruction. */
3119#define WS EVUIMM_8_EX0 + 1
3120#define DRM WS
74081948
AF
3121 /* The NNN field in a VX form instruction for SPE2 */
3122#define NNN WS
b80c7270 3123 { 0x7, 11, NULL, NULL, 0 },
9b4e5766 3124
b80c7270
AM
3125 /* PowerPC paired singles extensions. */
3126 /* W bit in the pair singles instructions for x type instructions. */
3127#define PSWM WS + 1
3128 /* The BO16 field in a BD8 form instruction. */
3129#define BO16 PSWM
3130 { 0x1, 10, 0, 0, 0 },
9b4e5766 3131
b80c7270
AM
3132 /* IDX bits for quantization in the pair singles instructions. */
3133#define PSQ PSWM + 1
3134 { 0x7, 12, 0, 0, PPC_OPERAND_GQR },
066be9f7 3135
b80c7270
AM
3136 /* IDX bits for quantization in the pair singles x-type instructions. */
3137#define PSQM PSQ + 1
3138 { 0x7, 7, 0, 0, PPC_OPERAND_GQR },
066be9f7 3139
b80c7270
AM
3140 /* Smaller D field for quantization in the pair singles instructions. */
3141#define PSD PSQM + 1
3142 { 0xfff, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
066be9f7 3143
b80c7270
AM
3144 /* The L field in an mtmsrd or A form instruction or R or W in an
3145 X form. */
3146#define A_L PSD + 1
3147#define W A_L
3148#define X_R A_L
3149 { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL },
066be9f7 3150
b80c7270
AM
3151 /* The RMC or CY field in a Z23 form instruction. */
3152#define RMC A_L + 1
3153#define CY RMC
3154 { 0x3, 9, NULL, NULL, 0 },
066be9f7 3155
b80c7270 3156#define R RMC + 1
fdefed7c 3157#define MP R
b80c7270 3158 { 0x1, 16, NULL, NULL, 0 },
066be9f7 3159
b80c7270
AM
3160#define RIC R + 1
3161 { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL },
7b934113 3162
b80c7270
AM
3163#define PRS RIC + 1
3164 { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 3165
b80c7270
AM
3166#define SP PRS + 1
3167 { 0x3, 19, NULL, NULL, 0 },
b9c361e0 3168
b80c7270
AM
3169#define S SP + 1
3170 { 0x1, 20, NULL, NULL, 0 },
b9c361e0 3171
b80c7270
AM
3172 /* The S field in a XL form instruction. */
3173#define SXL S + 1
9cf7e568 3174 { 0x1, 11, insert_sxl, extract_sxl, PPC_OPERAND_OPTIONAL },
b80c7270
AM
3175
3176 /* SH field starting at bit position 16. */
9cf7e568 3177#define SH16 SXL + 1
b80c7270
AM
3178 /* The DCM and DGM fields in a Z form instruction. */
3179#define DCM SH16
3180#define DGM DCM
3181 { 0x3f, 10, NULL, NULL, 0 },
3182
3183 /* The EH field in larx instruction. */
3184#define EH SH16 + 1
3185 { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL },
b9c361e0 3186
b80c7270
AM
3187 /* The L field in an mtfsf or XFL form instruction. */
3188 /* The A field in a HTM X form instruction. */
3189#define XFL_L EH + 1
3190#define HTM_A XFL_L
3191 { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL},
b9c361e0 3192
b80c7270
AM
3193 /* Xilinx APU related masks and macros */
3194#define FCRT XFL_L + 1
3195#define FCRT_MASK (0x1f << 21)
3196 { 0x1f, 21, 0, 0, PPC_OPERAND_FCR },
b9c361e0 3197
b80c7270
AM
3198 /* Xilinx FSL related masks and macros */
3199#define FSL FCRT + 1
3200#define FSL_MASK (0x1f << 11)
3201 { 0x1f, 11, 0, 0, PPC_OPERAND_FSL },
b9c361e0 3202
b80c7270
AM
3203 /* Xilinx UDI related masks and macros */
3204#define URT FSL + 1
3205 { 0x1f, 21, 0, 0, PPC_OPERAND_UDI },
b9c361e0 3206
b80c7270
AM
3207#define URA URT + 1
3208 { 0x1f, 16, 0, 0, PPC_OPERAND_UDI },
b9c361e0 3209
b80c7270
AM
3210#define URB URA + 1
3211 { 0x1f, 11, 0, 0, PPC_OPERAND_UDI },
b9c361e0 3212
b80c7270
AM
3213#define URC URB + 1
3214 { 0x1f, 6, 0, 0, PPC_OPERAND_UDI },
e3c2f928 3215
b80c7270
AM
3216 /* The VLESIMM field in a D form instruction. */
3217#define VLESIMM URC + 1
3218 { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi,
3219 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
e3c2f928 3220
b80c7270
AM
3221 /* The VLENSIMM field in a D form instruction. */
3222#define VLENSIMM VLESIMM + 1
3223 { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi,
3224 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
e3c2f928 3225
b80c7270
AM
3226 /* The VLEUIMM field in a D form instruction. */
3227#define VLEUIMM VLENSIMM + 1
3228 { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 },
e3c2f928 3229
b80c7270
AM
3230 /* The VLEUIMML field in a D form instruction. */
3231#define VLEUIMML VLEUIMM + 1
3232 { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 },
e3c2f928 3233
b80c7270
AM
3234 /* The XT and XS fields in an XX1 or XX3 form instruction. This is
3235 split. */
3236#define XS6 VLEUIMML + 1
3237#define XT6 XS6
3238 { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR },
e3c2f928 3239
b80c7270
AM
3240 /* The XT and XS fields in an DQ form VSX instruction. This is split. */
3241#define XSQ6 XT6 + 1
3242#define XTQ6 XSQ6
3243 { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR },
e3c2f928 3244
94ba9882
AM
3245 /* The split XTp field in a vector paired instruction. */
3246#define XTP XSQ6 + 1
3247 { 0x3e, PPC_OPSHIFT_INV, insert_xtp, extract_xtp, PPC_OPERAND_VSR },
3248
6edbfd3b
AM
3249#define XTS XTP + 1
3250 { 0x3f, PPC_OPSHIFT_INV, insert_xts, extract_xts, PPC_OPERAND_VSR },
3251
8acf1435 3252 /* The XT field in a plxv instruction. Runs into the OP field. */
6edbfd3b 3253#define XTOP XTS + 1
8acf1435
PB
3254 { 0x3f, 21, NULL, NULL, PPC_OPERAND_VSR },
3255
b80c7270 3256 /* The XA field in an XX3 form instruction. This is split. */
8acf1435 3257#define XA6 XTOP + 1
b80c7270 3258 { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR },
e3c2f928 3259
aa3c112f
AM
3260 /* The XA field in an MMA XX3 form instruction. This is split and
3261 must not overlap with the ACC operand. */
3262#define XA6a XA6 + 1
3263 { 0x3f, PPC_OPSHIFT_INV, insert_xa6a, extract_xa6a, PPC_OPERAND_VSR },
3264
3265 /* The XAp field in an MMA XX3 form instruction. This is split.
3266 This is like XA6a, but must be even. */
3267#define XA6ap XA6a + 1
3268 { 0x3e, PPC_OPSHIFT_INV, insert_xa6a, extract_xa6a, PPC_OPERAND_VSR },
3269
b80c7270 3270 /* The XB field in an XX2 or XX3 form instruction. This is split. */
aa3c112f 3271#define XB6 XA6ap + 1
b80c7270 3272 { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR },
e3c2f928 3273
aa3c112f
AM
3274 /* The XB field in an XX3 form instruction. This is split and
3275 must not overlap with the ACC operand. */
3276#define XB6a XB6 + 1
3277 { 0x3f, PPC_OPSHIFT_INV, insert_xb6a, extract_xb6a, PPC_OPERAND_VSR },
3278
98553ad3
PB
3279 /* The XA and XB fields in an XX3 form instruction when they must be the same.
3280 This is used in extended mnemonics like xvmovdp. This is split. */
aa3c112f 3281#define XAB6 XB6a + 1
98553ad3 3282 { 0x3f, PPC_OPSHIFT_INV, insert_xab6, extract_xab6, PPC_OPERAND_VSR },
e3c2f928 3283
b80c7270 3284 /* The XC field in an XX4 form instruction. This is split. */
98553ad3 3285#define XC6 XAB6 + 1
b80c7270 3286 { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR },
e3c2f928 3287
b80c7270
AM
3288 /* The DM or SHW field in an XX3 form instruction. */
3289#define DM XC6 + 1
3290#define SHW DM
3291 { 0x3, 8, NULL, NULL, 0 },
e3c2f928 3292
b80c7270
AM
3293 /* The DM field in an extended mnemonic XX3 form instruction. */
3294#define DMEX DM + 1
3295 { 0x3, 8, insert_dm, extract_dm, 0 },
e3c2f928 3296
b80c7270
AM
3297 /* The UIM field in an XX2 form instruction. */
3298#define UIM DMEX + 1
3299 /* The 2-bit UIMM field in a VX form instruction. */
3300#define UIMM2 UIM
3301 /* The 2-bit L field in a darn instruction. */
3302#define LRAND UIM
3303 { 0x3, 16, NULL, NULL, 0 },
e3c2f928 3304
b80c7270
AM
3305#define ERAT_T UIM + 1
3306 { 0x7, 21, NULL, NULL, 0 },
e3c2f928 3307
b80c7270
AM
3308#define IH ERAT_T + 1
3309 { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
e3c2f928 3310
3d205eb4
PB
3311 /* The 2-bit SC or PL field in an X form instruction. */
3312#define SC2 IH + 1
3313#define PL SC2
3314 { 0x3, 16, insert_pl, extract_pl, PPC_OPERAND_OPTIONAL },
3315
b80c7270 3316 /* The 8-bit IMM8 field in a XX1 form instruction. */
3d205eb4 3317#define IMM8 SC2 + 1
b80c7270 3318 { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT },
e3c2f928 3319
b80c7270
AM
3320#define VX_OFF IMM8 + 1
3321 { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 },
74081948
AF
3322
3323#define VX_OFF_SPE2 VX_OFF + 1
3324 { 0x7, 0, insert_off_spe2, extract_off_spe2, 0 },
3325
3326#define BBB VX_OFF_SPE2 + 1
3327 { 0x7, 13, NULL, NULL, 0 },
3328
3329#define DDD BBB + 1
3330#define VX_MASK_DDD (VX_MASK & ~0x1)
3331 { 0x7, PPC_OPSHIFT_INV, insert_Ddd, extract_Ddd, 0 },
3332
3333#define HH DDD + 1
3334 { 0x3, 13, NULL, NULL, 0 },
b80c7270
AM
3335};
3336
3337const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
3338 / sizeof (powerpc_operands[0]));
252b5132
RH
3339\f
3340/* Macros used to form opcodes. */
3341
3342/* The main opcode. */
0f873fd5 3343#define OP(x) ((((uint64_t)(x)) & 0x3f) << 26)
252b5132
RH
3344#define OP_MASK OP (0x3f)
3345
dd7efa79
PB
3346/* The prefix opcode. */
3347#define PREFIX_OP (1ULL << 58)
3348
3349/* The 2-bit prefix form. */
3350#define PREFIX_FORM(x) ((x & 3ULL) << 56)
3351
3352#define SUFFIX_MASK ((1ULL << 32) - 1)
3353#define PREFIX_MASK (SUFFIX_MASK << 32)
3354
8acf1435
PB
3355/* Prefix insn, eight byte load/store form 8LS. */
3356#define P8LS (PREFIX_OP | PREFIX_FORM (0))
3357
6edbfd3b
AM
3358/* Prefix insn, eight byte register to register form 8RR. */
3359#define P8RR (PREFIX_OP | PREFIX_FORM (1))
3360
8acf1435
PB
3361/* Prefix insn, modified load/store form MLS. */
3362#define PMLS (PREFIX_OP | PREFIX_FORM (2))
3363
dd7efa79
PB
3364/* Prefix insn, modified register to register form MRR. */
3365#define PMRR (PREFIX_OP | PREFIX_FORM (3))
3366
aa3c112f
AM
3367/* Prefix insn, modified masked immediate register to register form MMIRR. */
3368#define PMMIRR (PREFIX_OP | PREFIX_FORM (3) | (9ULL << 52))
3369
8acf1435
PB
3370/* An 8-byte D form prefix instruction. */
3371#define P_D_MASK (((-1ULL << 50) & ~PCREL_MASK) | OP_MASK)
3372
3373/* The same as P_D_MASK, but with the RA and PCREL fields specified. */
3374#define P_DRAPCREL_MASK (P_D_MASK | PCREL_MASK | RA_MASK)
3375
aa3c112f
AM
3376/* Mask for prefix X form instructions. */
3377#define P_X_MASK (PREFIX_MASK | X_MASK)
3378#define P_XX1_MASK (PREFIX_MASK | XX1_MASK)
3379
6edbfd3b
AM
3380/* Mask for prefix vector permute insns. */
3381#define P_XX4_MASK (PREFIX_MASK | XX4_MASK)
3382#define P_UXX4_MASK (P_XX4_MASK & ~(7ULL << 32))
ec40e91c 3383#define P_U8XX4_MASK (P_XX4_MASK & ~(0xffULL << 32))
6edbfd3b 3384
aa3c112f
AM
3385/* MMIRR:XX3-form 8-byte outer product instructions. */
3386#define P_GER_MASK ((-1ULL << 40) | XX3_MASK | (3 << 21) | 1)
3387#define P_GER2_MASK (P_GER_MASK & ~(3ULL << 46))
3388#define P_GER4_MASK (P_GER_MASK & ~(15ULL << 44))
3389#define P_GER8_MASK (P_GER_MASK & ~(255ULL << 40))
3390#define P_GER64_MASK (P_GER_MASK | (3ULL << 32))
3391
6edbfd3b
AM
3392/* Vector splat immediate op. */
3393#define VSOP(op, xop) (OP (op) | (xop << 17))
3394#define P_VS_MASK ((-1ULL << 48) | VSOP (0x3f, 0xf))
3395#define P_VSI_MASK ((-1ULL << 48) | VSOP (0x3f, 0xe))
3396
252b5132
RH
3397/* The main opcode combined with a trap code in the TO field of a D
3398 form instruction. Used for extended mnemonics for the trap
3399 instructions. */
0f873fd5 3400#define OPTO(x,to) (OP (x) | ((((uint64_t)(to)) & 0x1f) << 21))
252b5132
RH
3401#define OPTO_MASK (OP_MASK | TO_MASK)
3402
3403/* The main opcode combined with a comparison size bit in the L field
3404 of a D form or X form instruction. Used for extended mnemonics for
3405 the comparison instructions. */
0f873fd5 3406#define OPL(x,l) (OP (x) | ((((uint64_t)(l)) & 1) << 21))
252b5132
RH
3407#define OPL_MASK OPL (0x3f,1)
3408
b9c361e0
JL
3409/* The main opcode combined with an update code in D form instruction.
3410 Used for extended mnemonics for VLE memory instructions. */
0f873fd5 3411#define OPVUP(x,vup) (OP (x) | ((((uint64_t)(vup)) & 0xff) << 8))
b9c361e0
JL
3412#define OPVUP_MASK OPVUP (0x3f, 0xff)
3413
b80c7270
AM
3414/* The main opcode combined with an update code and the RT fields
3415 specified in D form instruction. Used for VLE volatile context
3416 save/restore instructions. */
3417#define OPVUPRT(x,vup,rt) \
3418 (OPVUP (x, vup) \
0f873fd5 3419 | ((((uint64_t)(rt)) & 0x1f) << 21))
dfdaec14
AJ
3420#define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f)
3421
252b5132 3422/* An A form instruction. */
b80c7270
AM
3423#define A(op, xop, rc) \
3424 (OP (op) \
0f873fd5
PB
3425 | ((((uint64_t)(xop)) & 0x1f) << 1) \
3426 | (((uint64_t)(rc)) & 1))
252b5132
RH
3427#define A_MASK A (0x3f, 0x1f, 1)
3428
3429/* An A_MASK with the FRB field fixed. */
3430#define AFRB_MASK (A_MASK | FRB_MASK)
3431
3432/* An A_MASK with the FRC field fixed. */
3433#define AFRC_MASK (A_MASK | FRC_MASK)
3434
3435/* An A_MASK with the FRA and FRC fields fixed. */
3436#define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)
3437
702f0fb4 3438/* An AFRAFRC_MASK, but with L bit clear. */
0f873fd5 3439#define AFRALFRC_MASK (AFRAFRC_MASK & ~((uint64_t) 1 << 16))
702f0fb4 3440
252b5132 3441/* A B form instruction. */
b80c7270
AM
3442#define B(op, aa, lk) \
3443 (OP (op) \
0f873fd5 3444 | ((((uint64_t)(aa)) & 1) << 1) \
b80c7270 3445 | ((lk) & 1))
252b5132
RH
3446#define B_MASK B (0x3f, 1, 1)
3447
b9c361e0 3448/* A BD8 form instruction. This is a 16-bit instruction. */
b80c7270 3449#define BD8(op, aa, lk) \
0f873fd5 3450 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270
AM
3451 | (((aa) & 1) << 9) \
3452 | (((lk) & 1) << 8))
b9c361e0
JL
3453#define BD8_MASK BD8 (0x3f, 1, 1)
3454
3455/* Another BD8 form instruction. This is a 16-bit instruction. */
0f873fd5 3456#define BD8IO(op) ((((uint64_t)(op)) & 0x1f) << 11)
b9c361e0
JL
3457#define BD8IO_MASK BD8IO (0x1f)
3458
3459/* A BD8 form instruction for simplified mnemonics. */
3460#define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8))
3461/* A mask that excludes BO32 and BI32. */
3462#define EBD8IO1_MASK 0xf800
3463/* A mask that includes BO32 and excludes BI32. */
3464#define EBD8IO2_MASK 0xfc00
3465/* A mask that include BO32 AND BI32. */
3466#define EBD8IO3_MASK 0xff00
3467
3468/* A BD15 form instruction. */
b80c7270
AM
3469#define BD15(op, aa, lk) \
3470 (OP (op) \
0f873fd5 3471 | ((((uint64_t)(aa)) & 0xf) << 22) \
b80c7270 3472 | ((lk) & 1))
b9c361e0
JL
3473#define BD15_MASK BD15 (0x3f, 0xf, 1)
3474
3475/* A BD15 form instruction for extended conditional branch mnemonics. */
b80c7270 3476#define EBD15(op, aa, bo, lk) \
2480b6fa 3477 (((op) & 0x3fu) << 26) \
b80c7270
AM
3478 | (((aa) & 0xf) << 22) \
3479 | (((bo) & 0x3) << 20) \
3480 | ((lk) & 1)
b9c361e0
JL
3481#define EBD15_MASK 0xfff00001
3482
b80c7270
AM
3483/* A BD15 form instruction for extended conditional branch mnemonics
3484 with BI. */
3485#define EBD15BI(op, aa, bo, bi, lk) \
2480b6fa 3486 ((((op) & 0x3fu) << 26) \
b80c7270
AM
3487 | (((aa) & 0xf) << 22) \
3488 | (((bo) & 0x3) << 20) \
3489 | (((bi) & 0x3) << 16) \
3490 | ((lk) & 1))
3491
b9c361e0
JL
3492#define EBD15BI_MASK 0xfff30001
3493
3494/* A BD24 form instruction. */
b80c7270
AM
3495#define BD24(op, aa, lk) \
3496 (OP (op) \
0f873fd5 3497 | ((((uint64_t)(aa)) & 1) << 25) \
b80c7270 3498 | ((lk) & 1))
b9c361e0
JL
3499#define BD24_MASK BD24 (0x3f, 1, 1)
3500
252b5132 3501/* A B form instruction setting the BO field. */
b80c7270
AM
3502#define BBO(op, bo, aa, lk) \
3503 (B ((op), (aa), (lk)) \
0f873fd5 3504 | ((((uint64_t)(bo)) & 0x1f) << 21))
252b5132
RH
3505#define BBO_MASK BBO (0x3f, 0x1f, 1, 1)
3506
3507/* A BBO_MASK with the y bit of the BO field removed. This permits
3508 matching a conditional branch regardless of the setting of the y
94efba12 3509 bit. Similarly for the 'at' bits used for power4 branch hints. */
0f873fd5
PB
3510#define Y_MASK (((uint64_t) 1) << 21)
3511#define AT1_MASK (((uint64_t) 3) << 21)
3512#define AT2_MASK (((uint64_t) 9) << 21)
802a735e
AM
3513#define BBOY_MASK (BBO_MASK &~ Y_MASK)
3514#define BBOAT_MASK (BBO_MASK &~ AT1_MASK)
252b5132
RH
3515
3516/* A B form instruction setting the BO field and the condition bits of
3517 the BI field. */
3518#define BBOCB(op, bo, cb, aa, lk) \
0f873fd5 3519 (BBO ((op), (bo), (aa), (lk)) | ((((uint64_t)(cb)) & 0x3) << 16))
252b5132
RH
3520#define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)
3521
3522/* A BBOCB_MASK with the y bit of the BO field removed. */
3523#define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)
802a735e
AM
3524#define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)
3525#define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)
252b5132
RH
3526
3527/* A BBOYCB_MASK in which the BI field is fixed. */
3528#define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)
802a735e 3529#define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)
252b5132 3530
b9c361e0 3531/* A VLE C form instruction. */
0f873fd5 3532#define C_LK(x, lk) (((((uint64_t)(x)) & 0x7fff) << 1) | ((lk) & 1))
b9c361e0 3533#define C_LK_MASK C_LK(0x7fff, 1)
0f873fd5 3534#define C(x) ((((uint64_t)(x)) & 0xffff))
b9c361e0
JL
3535#define C_MASK C(0xffff)
3536
23976049 3537/* An Context form instruction. */
0f873fd5 3538#define CTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7))
fdd12ef3 3539#define CTX_MASK CTX(0x3f, 0x7)
23976049
EZ
3540
3541/* An User Context form instruction. */
0f873fd5 3542#define UCTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
fdd12ef3 3543#define UCTX_MASK UCTX(0x3f, 0x1f)
23976049 3544
252b5132
RH
3545/* The main opcode mask with the RA field clear. */
3546#define DRA_MASK (OP_MASK | RA_MASK)
3547
a680de9a
PB
3548/* A DQ form VSX instruction. */
3549#define DQX(op, xop) (OP (op) | ((xop) & 0x7))
3550#define DQX_MASK DQX (0x3f, 7)
3551
94ba9882
AM
3552/* A DQ form VSX vector paired instruction. */
3553#define DQXP(op, xop) (OP (op) | ((xop) & 0xf))
3554#define DQXP_MASK DQXP (0x3f, 0xf)
3555
252b5132
RH
3556/* A DS form instruction. */
3557#define DSO(op, xop) (OP (op) | ((xop) & 0x3))
3558#define DS_MASK DSO (0x3f, 3)
3559
a680de9a 3560/* An DX form instruction. */
0f873fd5 3561#define DX(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
a680de9a 3562#define DX_MASK DX (0x3f, 0x1f)
1437d063
PB
3563/* An DX form instruction with the D bits specified. */
3564#define NODX_MASK (DX_MASK | 0x1fffc1)
a680de9a 3565
23976049 3566/* An EVSEL form instruction. */
0f873fd5 3567#define EVSEL(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xff) << 3)
23976049
EZ
3568#define EVSEL_MASK EVSEL(0x3f, 0xff)
3569
b9c361e0 3570/* An IA16 form instruction. */
0f873fd5 3571#define IA16(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
3572#define IA16_MASK IA16(0x3f, 0x1f)
3573
3574/* An I16A form instruction. */
0f873fd5 3575#define I16A(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
3576#define I16A_MASK I16A(0x3f, 0x1f)
3577
3578/* An I16L form instruction. */
0f873fd5 3579#define I16L(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
b9c361e0
JL
3580#define I16L_MASK I16L(0x3f, 0x1f)
3581
3582/* An IM7 form instruction. */
0f873fd5 3583#define IM7(op) ((((uint64_t)(op)) & 0x1f) << 11)
b9c361e0
JL
3584#define IM7_MASK IM7(0x1f)
3585
252b5132
RH
3586/* An M form instruction. */
3587#define M(op, rc) (OP (op) | ((rc) & 1))
3588#define M_MASK M (0x3f, 1)
3589
b9c361e0 3590/* An LI20 form instruction. */
0f873fd5 3591#define LI20(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1) << 15)
b9c361e0
JL
3592#define LI20_MASK LI20(0x3f, 0x1)
3593
252b5132 3594/* An M form instruction with the ME field specified. */
b80c7270
AM
3595#define MME(op, me, rc) \
3596 (M ((op), (rc)) \
0f873fd5 3597 | ((((uint64_t)(me)) & 0x1f) << 1))
252b5132
RH
3598
3599/* An M_MASK with the MB and ME fields fixed. */
3600#define MMBME_MASK (M_MASK | MB_MASK | ME_MASK)
3601
3602/* An M_MASK with the SH and ME fields fixed. */
3603#define MSHME_MASK (M_MASK | SH_MASK | ME_MASK)
3604
3605/* An MD form instruction. */
b80c7270
AM
3606#define MD(op, xop, rc) \
3607 (OP (op) \
0f873fd5 3608 | ((((uint64_t)(xop)) & 0x7) << 2) \
b80c7270 3609 | ((rc) & 1))
252b5132
RH
3610#define MD_MASK MD (0x3f, 0x7, 1)
3611
3612/* An MD_MASK with the MB field fixed. */
3613#define MDMB_MASK (MD_MASK | MB6_MASK)
3614
3615/* An MD_MASK with the SH field fixed. */
3616#define MDSH_MASK (MD_MASK | SH6_MASK)
3617
3618/* An MDS form instruction. */
b80c7270
AM
3619#define MDS(op, xop, rc) \
3620 (OP (op) \
0f873fd5 3621 | ((((uint64_t)(xop)) & 0xf) << 1) \
b80c7270 3622 | ((rc) & 1))
252b5132
RH
3623#define MDS_MASK MDS (0x3f, 0xf, 1)
3624
3625/* An MDS_MASK with the MB field fixed. */
3626#define MDSMB_MASK (MDS_MASK | MB6_MASK)
3627
3628/* An SC form instruction. */
b80c7270
AM
3629#define SC(op, sa, lk) \
3630 (OP (op) \
0f873fd5 3631 | ((((uint64_t)(sa)) & 1) << 1) \
b80c7270
AM
3632 | ((lk) & 1))
3633#define SC_MASK \
3634 (OP_MASK \
0f873fd5
PB
3635 | (((uint64_t) 0x3ff) << 16) \
3636 | (((uint64_t) 1) << 1) \
b80c7270 3637 | 1)
252b5132 3638
b9c361e0 3639/* An SCI8 form instruction. */
0f873fd5 3640#define SCI8(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 11))
b9c361e0
JL
3641#define SCI8_MASK SCI8(0x3f, 0x1f)
3642
3643/* An SCI8 form instruction. */
b80c7270
AM
3644#define SCI8BF(op, fop, xop) \
3645 (OP (op) \
0f873fd5 3646 | ((((uint64_t)(xop)) & 0x1f) << 11) \
b80c7270 3647 | (((fop) & 7) << 23))
b9c361e0
JL
3648#define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f)
3649
3650/* An SD4 form instruction. This is a 16-bit instruction. */
0f873fd5 3651#define SD4(op) ((((uint64_t)(op)) & 0xf) << 12)
b9c361e0
JL
3652#define SD4_MASK SD4(0xf)
3653
3654/* An SE_IM5 form instruction. This is a 16-bit instruction. */
b80c7270 3655#define SE_IM5(op, xop) \
0f873fd5 3656 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 3657 | (((xop) & 0x1) << 9))
b9c361e0
JL
3658#define SE_IM5_MASK SE_IM5(0x3f, 1)
3659
3660/* An SE_R form instruction. This is a 16-bit instruction. */
b80c7270 3661#define SE_R(op, xop) \
0f873fd5 3662 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 3663 | (((xop) & 0x3f) << 4))
b9c361e0
JL
3664#define SE_R_MASK SE_R(0x3f, 0x3f)
3665
3666/* An SE_RR form instruction. This is a 16-bit instruction. */
b80c7270 3667#define SE_RR(op, xop) \
0f873fd5 3668 (((((uint64_t)(op)) & 0x3f) << 10) \
b80c7270 3669 | (((xop) & 0x3) << 8))
b9c361e0
JL
3670#define SE_RR_MASK SE_RR(0x3f, 3)
3671
3672/* A VX form instruction. */
0f873fd5 3673#define VX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
786e2c0f 3674
112290ab 3675/* The mask for an VX form instruction. */
786e2c0f
C
3676#define VX_MASK VX(0x3f, 0x7ff)
3677
e3c2f928 3678/* A VX LSP form instruction. */
0f873fd5 3679#define VX_LSP(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xffff))
e3c2f928
AF
3680
3681/* The mask for an VX LSP form instruction. */
3682#define VX_LSP_MASK VX_LSP(0x3f, 0xffff)
3683#define VX_LSP_OFF_MASK VX_LSP(0x3f, 0x7fc)
3684
74081948
AF
3685/* Additional format of VX SPE2 form instruction. */
3686#define VX_RA_CONST(op, xop, bits11_15) \
3687 (OP (op) \
0f873fd5
PB
3688 | (((uint64_t)(bits11_15) & 0x1f) << 16) \
3689 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3690#define VX_RA_CONST_MASK VX_RA_CONST(0x3f, 0x7ff, 0x1f)
3691
3692#define VX_RB_CONST(op, xop, bits16_20) \
3693 (OP (op) \
0f873fd5
PB
3694 | (((uint64_t)(bits16_20) & 0x1f) << 11) \
3695 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3696#define VX_RB_CONST_MASK VX_RB_CONST(0x3f, 0x7ff, 0x1f)
3697
3698#define VX_OFF_SPE2_MASK VX(0x3f, 0x7f8)
3699
3700#define VX_SPE_CRFD(op, xop, bits9_10) \
3701 (OP (op) \
0f873fd5
PB
3702 | (((uint64_t)(bits9_10) & 0x3) << 21) \
3703 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3704#define VX_SPE_CRFD_MASK VX_SPE_CRFD(0x3f, 0x7ff, 0x3)
3705
3706#define VX_SPE2_CLR(op, xop, bit16) \
3707 (OP (op) \
0f873fd5
PB
3708 | (((uint64_t)(bit16) & 0x1) << 15) \
3709 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3710#define VX_SPE2_CLR_MASK VX_SPE2_CLR(0x3f, 0x7ff, 0x1)
3711
3712#define VX_SPE2_SPLATB(op, xop, bits19_20) \
3713 (OP (op) \
0f873fd5
PB
3714 | (((uint64_t)(bits19_20) & 0x3) << 11) \
3715 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3716#define VX_SPE2_SPLATB_MASK VX_SPE2_SPLATB(0x3f, 0x7ff, 0x3)
3717
3718#define VX_SPE2_OCTET(op, xop, bits16_17) \
3719 (OP (op) \
0f873fd5
PB
3720 | (((uint64_t)(bits16_17) & 0x3) << 14) \
3721 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3722#define VX_SPE2_OCTET_MASK VX_SPE2_OCTET(0x3f, 0x7ff, 0x7)
3723
3724#define VX_SPE2_DDHH(op, xop, bit16) \
3725 (OP (op) \
0f873fd5
PB
3726 | (((uint64_t)(bit16) & 0x1) << 15) \
3727 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3728#define VX_SPE2_DDHH_MASK VX_SPE2_DDHH(0x3f, 0x7ff, 0x1)
3729
3730#define VX_SPE2_HH(op, xop, bit16, bits19_20) \
3731 (OP (op) \
0f873fd5
PB
3732 | (((uint64_t)(bit16) & 0x1) << 15) \
3733 | (((uint64_t)(bits19_20) & 0x3) << 11) \
3734 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3735#define VX_SPE2_HH_MASK VX_SPE2_HH(0x3f, 0x7ff, 0x1, 0x3)
3736
3737#define VX_SPE2_EVMAR(op, xop) \
3738 (OP (op) \
0f873fd5
PB
3739 | ((uint64_t)(0x1) << 11) \
3740 | (((uint64_t)(xop)) & 0x7ff))
74081948
AF
3741#define VX_SPE2_EVMAR_MASK \
3742 (VX_SPE2_EVMAR(0x3f, 0x7ff) \
0f873fd5 3743 | ((uint64_t)(0x1) << 11))
74081948 3744
fb048c26
PB
3745/* A VX_MASK with the VA field fixed. */
3746#define VXVA_MASK (VX_MASK | (0x1f << 16))
3747
3748/* A VX_MASK with the VB field fixed. */
3749#define VXVB_MASK (VX_MASK | (0x1f << 11))
3750
3751/* A VX_MASK with the VA and VB fields fixed. */
3752#define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11))
3753
3754/* A VX_MASK with the VD and VA fields fixed. */
3755#define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16))
3756
3757/* A VX_MASK with a UIMM4 field. */
3758#define VXUIMM4_MASK (VX_MASK | (0x1 << 20))
3759
3760/* A VX_MASK with a UIMM3 field. */
3761#define VXUIMM3_MASK (VX_MASK | (0x3 << 19))
3762
3763/* A VX_MASK with a UIMM2 field. */
3764#define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
3765
c0637f3a
PB
3766/* A VX_MASK with a PS field. */
3767#define VXPS_MASK (VX_MASK & ~(0x1 << 9))
3768
a680de9a 3769/* A VX_MASK with the VA field fixed with a PS field. */
fdefed7c
AM
3770#define VXVAPS_MASK (VXVA_MASK & ~(0x1 << 9))
3771
3772/* A VX_MASK with the VA field fixed with a MP field. */
3773#define VXVAM_MASK (VXVA_MASK & ~(0x1 << 16))
a680de9a 3774
c7d7aea2
AM
3775/* A VX_MASK for instructions using a BF field. */
3776#define VXBF_MASK (VX_MASK | (3 << 21))
3777
6edbfd3b
AM
3778/* A VX_MASK for instructions with an RC field. */
3779#define VXRC_MASK (VX_MASK & ~(0x1f << 6))
3780
3781/* A VX_MASK for instructions with a SH field. */
3782#define VXSH_MASK (VX_MASK & ~(0x7 << 6))
3783
b9c361e0 3784/* A VA form instruction. */
0f873fd5 3785#define VXA(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x03f))
786e2c0f 3786
112290ab 3787/* The mask for an VA form instruction. */
2613489e 3788#define VXA_MASK VXA(0x3f, 0x3f)
786e2c0f 3789
382c72e9
PB
3790/* A VXA_MASK with a SHB field. */
3791#define VXASHB_MASK (VXA_MASK | (1 << 10))
3792
b9c361e0 3793/* A VXR form instruction. */
b80c7270
AM
3794#define VXR(op, xop, rc) \
3795 (OP (op) \
0f873fd5
PB
3796 | (((uint64_t)(rc) & 1) << 10) \
3797 | (((uint64_t)(xop)) & 0x3ff))
786e2c0f 3798
112290ab 3799/* The mask for a VXR form instruction. */
786e2c0f
C
3800#define VXR_MASK VXR(0x3f, 0x3ff, 1)
3801
a680de9a
PB
3802/* A VX form instruction with a VA tertiary opcode. */
3803#define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16))
3804
0f873fd5 3805#define VXASH(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
6fd3a02d
PB
3806#define VXASH_MASK VXASH (0x3f, 0x1f)
3807
252b5132 3808/* An X form instruction. */
0f873fd5 3809#define X(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
252b5132 3810
a680de9a
PB
3811/* A X form instruction for Quad-Precision FP Instructions. */
3812#define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16))
3813
b9c361e0 3814/* An EX form instruction. */
0f873fd5 3815#define EX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
b9c361e0
JL
3816
3817/* The mask for an EX form instruction. */
3818#define EX_MASK EX (0x3f, 0x7ff)
3819
066be9f7 3820/* An XX2 form instruction. */
0f873fd5 3821#define XX2(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 2))
066be9f7 3822
a680de9a
PB
3823/* A XX2 form instruction with the VA bits specified. */
3824#define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16))
3825
9b4e5766 3826/* An XX3 form instruction. */
0f873fd5 3827#define XX3(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0xff) << 3))
9b4e5766 3828
066be9f7 3829/* An XX3 form instruction with the RC bit specified. */
b80c7270
AM
3830#define XX3RC(op, xop, rc) \
3831 (OP (op) \
0f873fd5
PB
3832 | (((uint64_t)(rc) & 1) << 10) \
3833 | ((((uint64_t)(xop)) & 0x7f) << 3))
066be9f7
PB
3834
3835/* An XX4 form instruction. */
0f873fd5 3836#define XX4(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3) << 4))
9b4e5766 3837
702f0fb4 3838/* A Z form instruction. */
0f873fd5 3839#define Z(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 1))
702f0fb4 3840
252b5132
RH
3841/* An X form instruction with the RC bit specified. */
3842#define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1))
3843
a680de9a
PB
3844/* A X form instruction for Quad-Precision FP Instructions with RC bit. */
3845#define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1))
3846
6fd3a02d 3847/* An X form instruction with the RA bits specified as two ops. */
b80c7270
AM
3848#define XMMF(op, xop, mop0, mop1) \
3849 (X ((op), (xop)) \
3850 | ((mop0) & 3) << 19 \
3851 | ((mop1) & 7) << 16)
6fd3a02d 3852
702f0fb4
PB
3853/* A Z form instruction with the RC bit specified. */
3854#define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1))
3855
252b5132
RH
3856/* The mask for an X form instruction. */
3857#define X_MASK XRC (0x3f, 0x3ff, 1)
3858
a680de9a
PB
3859/* The mask for an X form instruction with the BF bits specified. */
3860#define XBF_MASK (X_MASK | (3 << 21))
3861
aae7fcb8
PB
3862/* An X form instruction without the RC field specified. */
3863#define XRC_MASK XRC (0x3f, 0x3ff, 0)
3864
b80c7270
AM
3865/* An X form wait instruction with everything filled in except the WC
3866 field. */
e0d602ec
BE
3867#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
3868
3d205eb4
PB
3869/* An X form wait instruction with everything filled in except the WC
3870 and PL fields. */
3871#define XWCPL_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | (3 << 18) | RB_MASK)
3872
9b4e5766
PB
3873/* The mask for an XX1 form instruction. */
3874#define XX1_MASK X (0x3f, 0x3ff)
3875
c0637f3a
PB
3876/* An XX1_MASK with the RB field fixed. */
3877#define XX1RB_MASK (XX1_MASK | RB_MASK)
3878
066be9f7
PB
3879/* The mask for an XX2 form instruction. */
3880#define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
3881
3882/* The mask for an XX2 form instruction with the UIM bits specified. */
3883#define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18))
3884
a680de9a
PB
3885/* The mask for an XX2 form instruction with the 4 UIM bits specified. */
3886#define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20))
3887
066be9f7
PB
3888/* The mask for an XX2 form instruction with the BF bits specified. */
3889#define XX2BF_MASK (XX2_MASK | (3 << 21) | (1))
3890
b80c7270
AM
3891/* The mask for an XX2 form instruction with the BF and DCMX bits
3892 specified. */
a680de9a
PB
3893#define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1)
3894
b80c7270
AM
3895/* The mask for an XX2 form instruction with a split DCMX bits
3896 specified. */
a680de9a
PB
3897#define XX2DCMXS_MASK XX2 (0x3f, 0x1ee)
3898
9b4e5766
PB
3899/* The mask for an XX3 form instruction. */
3900#define XX3_MASK XX3 (0x3f, 0xff)
3901
066be9f7
PB
3902/* The mask for an XX3 form instruction with the BF bits specified. */
3903#define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1))
3904
b80c7270
AM
3905/* The mask for an XX3 form instruction with the DM or SHW bits
3906 specified. */
9b4e5766 3907#define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10))
066be9f7
PB
3908#define XX3SHW_MASK XX3DM_MASK
3909
3910/* The mask for an XX4 form instruction. */
3911#define XX4_MASK XX4 (0x3f, 0x3)
3912
b80c7270
AM
3913/* An X form wait instruction with everything filled in except the WC
3914 field. */
066be9f7 3915#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
9b4e5766 3916
6fd3a02d
PB
3917/* The mask for an XMMF form instruction. */
3918#define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1))
3919
702f0fb4
PB
3920/* The mask for a Z form instruction. */
3921#define Z_MASK ZRC (0x3f, 0x1ff, 1)
0bbdef92 3922#define Z2_MASK ZRC (0x3f, 0xff, 1)
702f0fb4 3923
a680de9a 3924/* An X_MASK with the RA/VA field fixed. */
252b5132 3925#define XRA_MASK (X_MASK | RA_MASK)
a680de9a 3926#define XVA_MASK XRA_MASK
252b5132 3927
a680de9a 3928/* An XRA_MASK with the A_L/W field clear. */
0f873fd5 3929#define XWRA_MASK (XRA_MASK & ~((uint64_t) 1 << 16))
a680de9a 3930#define XRLA_MASK XWRA_MASK
ea192fa3 3931
252b5132
RH
3932/* An X_MASK with the RB field fixed. */
3933#define XRB_MASK (X_MASK | RB_MASK)
3934
3935/* An X_MASK with the RT field fixed. */
3936#define XRT_MASK (X_MASK | RT_MASK)
3937
3d205eb4 3938/* An XRT_MASK mask with the 2 L bits clear. */
0f873fd5 3939#define XLRT_MASK (XRT_MASK & ~((uint64_t) 0x3 << 21))
702f0fb4 3940
3d205eb4
PB
3941/* An XRT_MASK mask with the 3 L bits clear. */
3942#define XL3RT_MASK (XRT_MASK & ~((uint64_t) 0x7 << 21))
3943
252b5132
RH
3944/* An X_MASK with the RA and RB fields fixed. */
3945#define XRARB_MASK (X_MASK | RA_MASK | RB_MASK)
3946
a680de9a
PB
3947/* An XBF_MASK with the RA and RB fields fixed. */
3948#define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK)
3949
112290ab 3950/* An XRARB_MASK, but with the L bit clear. */
0f873fd5 3951#define XRLARB_MASK (XRARB_MASK & ~((uint64_t) 1 << 16))
5ae2e65e 3952
a680de9a 3953/* An XRARB_MASK, but with the L bits in a darn instruction clear. */
0f873fd5 3954#define XLRAND_MASK (XRARB_MASK & ~((uint64_t) 3 << 16))
a680de9a 3955
252b5132
RH
3956/* An X_MASK with the RT and RA fields fixed. */
3957#define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK)
3958
5817ffd1
PB
3959/* An X_MASK with the RT and RB fields fixed. */
3960#define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK)
3961
98acc1c5 3962/* An XRTRA_MASK, but with L bit clear. */
0f873fd5 3963#define XRTLRA_MASK (XRTRA_MASK & ~((uint64_t) 1 << 21))
98acc1c5 3964
5817ffd1
PB
3965/* An X_MASK with the RT, RA and RB fields fixed. */
3966#define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK)
3967
3968/* An XRTRARB_MASK, but with L bit clear. */
0f873fd5 3969#define XRTLRARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 21))
5817ffd1
PB
3970
3971/* An XRTRARB_MASK, but with A bit clear. */
0f873fd5 3972#define XRTARARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 25))
5817ffd1
PB
3973
3974/* An XRTRARB_MASK, but with BF bits clear. */
0f873fd5 3975#define XRTBFRARB_MASK (XRTRARB_MASK & ~((uint64_t) 7 << 23))
5817ffd1 3976
f3806e43 3977/* An X form instruction with the L bit specified. */
b80c7270
AM
3978#define XOPL(op, xop, l) \
3979 (X ((op), (xop)) \
0f873fd5 3980 | ((((uint64_t)(l)) & 1) << 21))
252b5132 3981
3d205eb4 3982/* An X form instruction with the 2 L bits specified. */
b80c7270
AM
3983#define XOPL2(op, xop, l) \
3984 (X ((op), (xop)) \
0f873fd5 3985 | ((((uint64_t)(l)) & 3) << 21))
e0d602ec 3986
3d205eb4
PB
3987/* An X form instruction with the 3 L bits specified. */
3988#define XOPL3(op, xop, l) \
3989 (X ((op), (xop)) \
3990 | ((((uint64_t)(l)) & 7) << 21))
3991
3992/* An X form instruction with the WC and PL bits specified. */
3993#define XWCPL(op, xop, wc, pl) \
3994 (XOPL3 ((op), (xop), (wc)) \
3995 | ((((uint64_t)(pl)) & 3) << 16))
3996
5817ffd1 3997/* An X form instruction with the L bit and RC bit specified. */
b80c7270
AM
3998#define XRCL(op, xop, l, rc) \
3999 (XRC ((op), (xop), (rc)) \
0f873fd5 4000 | ((((uint64_t)(l)) & 1) << 21))
5817ffd1 4001
19a6653c 4002/* An X form instruction with RT fields specified */
b80c7270
AM
4003#define XRT(op, xop, rt) \
4004 (X ((op), (xop)) \
0f873fd5 4005 | ((((uint64_t)(rt)) & 0x1f) << 21))
19a6653c
AM
4006
4007/* An X form instruction with RT and RA fields specified */
b80c7270
AM
4008#define XRTRA(op, xop, rt, ra) \
4009 (X ((op), (xop)) \
0f873fd5
PB
4010 | ((((uint64_t)(rt)) & 0x1f) << 21) \
4011 | ((((uint64_t)(ra)) & 0x1f) << 16))
19a6653c 4012
252b5132 4013/* The mask for an X form comparison instruction. */
0f873fd5 4014#define XCMP_MASK (X_MASK | (((uint64_t)1) << 22))
252b5132 4015
520ceea4
BE
4016/* The mask for an X form comparison instruction with the L field
4017 fixed. */
0f873fd5 4018#define XCMPL_MASK (XCMP_MASK | (((uint64_t)1) << 21))
252b5132
RH
4019
4020/* An X form trap instruction with the TO field specified. */
b80c7270
AM
4021#define XTO(op, xop, to) \
4022 (X ((op), (xop)) \
0f873fd5 4023 | ((((uint64_t)(to)) & 0x1f) << 21))
252b5132
RH
4024#define XTO_MASK (X_MASK | TO_MASK)
4025
e0c21649 4026/* An X form tlb instruction with the SH field specified. */
b80c7270
AM
4027#define XTLB(op, xop, sh) \
4028 (X ((op), (xop)) \
0f873fd5 4029 | ((((uint64_t)(sh)) & 0x1f) << 11))
e0c21649
GK
4030#define XTLB_MASK (X_MASK | SH_MASK)
4031
6ba045b1 4032/* An X form sync instruction. */
b80c7270
AM
4033#define XSYNC(op, xop, l) \
4034 (X ((op), (xop)) \
0f873fd5 4035 | ((((uint64_t)(l)) & 3) << 21))
6ba045b1 4036
b80c7270
AM
4037/* An X form sync instruction with everything filled in except the LS
4038 field. */
6ba045b1
AM
4039#define XSYNC_MASK (0xff9fffff)
4040
b80c7270
AM
4041/* An X form sync instruction with everything filled in except the L
4042 and E fields. */
aea77599
AM
4043#define XSYNCLE_MASK (0xff90ffff)
4044
3d205eb4
PB
4045/* An X form sync instruction. */
4046#define XSYNCLS(op, xop, l, s) \
4047 (X ((op), (xop)) \
4048 | ((((uint64_t)(l)) & 7) << 21) \
4049 | ((((uint64_t)(s)) & 3) << 16))
4050
4051/* An X form sync instruction with everything filled in except the
4052 L and SC fields. */
4053#define XSYNCLS_MASK (0xff1cffff)
4054
702f0fb4 4055/* An X_MASK, but with the EH bit clear. */
0f873fd5 4056#define XEH_MASK (X_MASK & ~((uint64_t )1))
702f0fb4 4057
f5c120c5 4058/* An X form AltiVec dss instruction. */
0f873fd5 4059#define XDSS(op, xop, a) (X ((op), (xop)) | ((((uint64_t)(a)) & 1) << 25))
f5c120c5
MG
4060#define XDSS_MASK XDSS(0x3f, 0x3ff, 1)
4061
252b5132 4062/* An XFL form instruction. */
b80c7270
AM
4063#define XFL(op, xop, rc) \
4064 (OP (op) \
0f873fd5
PB
4065 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
4066 | (((uint64_t)(rc)) & 1))
ea192fa3 4067#define XFL_MASK XFL (0x3f, 0x3ff, 1)
252b5132 4068
23976049 4069/* An X form isel instruction. */
0f873fd5 4070#define XISEL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
de866fcc 4071#define XISEL_MASK XISEL(0x3f, 0x1f)
23976049 4072
252b5132 4073/* An XL form instruction with the LK field set to 0. */
0f873fd5 4074#define XL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
252b5132
RH
4075
4076/* An XL form instruction which uses the LK field. */
4077#define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1))
4078
4079/* The mask for an XL form instruction. */
4080#define XL_MASK XLLK (0x3f, 0x3ff, 1)
4081
c0637f3a
PB
4082/* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear. */
4083#define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11))
4084
252b5132
RH
4085/* An XL form instruction which explicitly sets the BO field. */
4086#define XLO(op, bo, xop, lk) \
0f873fd5 4087 (XLLK ((op), (xop), (lk)) | ((((uint64_t)(bo)) & 0x1f) << 21))
252b5132
RH
4088#define XLO_MASK (XL_MASK | BO_MASK)
4089
252b5132
RH
4090/* An XL form instruction which sets the BO field and the condition
4091 bits of the BI field. */
4092#define XLOCB(op, bo, cb, xop, lk) \
0f873fd5 4093 (XLO ((op), (bo), (xop), (lk)) | ((((uint64_t)(cb)) & 3) << 16))
252b5132 4094
5a403766 4095/* An XL_MASK with the BB field fixed. */
252b5132 4096#define XLBB_MASK (XL_MASK | BB_MASK)
252b5132 4097
d0618d1c 4098/* A mask for branch instructions using the BH field. */
66e85460 4099#define XLBH_MASK (XL_MASK | (BB_MASK & ~(3 << 11)))
d0618d1c 4100
5a403766
AM
4101/* An XLBH_MASK with the BO field fixed. */
4102#define XLBOBB_MASK (XLBH_MASK | BO_MASK)
252b5132 4103
5a403766
AM
4104/* An XLBH_MASK with the BO and BI fields fixed. */
4105#define XLBOBIBB_MASK (XLBOBB_MASK | BI_MASK)
4106
4107/* An XLBH_MASK with the BO and condition bits of the BI fields fixed. */
4108#define XLBOCBBB_MASK (XLBOBB_MASK | (3 << 16))
252b5132 4109
e01d869a 4110/* An X form mbar instruction with MO field. */
b80c7270
AM
4111#define XMBAR(op, xop, mo) \
4112 (X ((op), (xop)) \
0f873fd5 4113 | ((((uint64_t)(mo)) & 1) << 21))
e01d869a 4114
252b5132 4115/* An XO form instruction. */
b80c7270
AM
4116#define XO(op, xop, oe, rc) \
4117 (OP (op) \
0f873fd5
PB
4118 | ((((uint64_t)(xop)) & 0x1ff) << 1) \
4119 | ((((uint64_t)(oe)) & 1) << 10) \
b80c7270 4120 | (((unsigned long)(rc)) & 1))
252b5132
RH
4121#define XO_MASK XO (0x3f, 0x1ff, 1, 1)
4122
4123/* An XO_MASK with the RB field fixed. */
4124#define XORB_MASK (XO_MASK | RB_MASK)
4125
c3d65c1c 4126/* An XOPS form instruction for paired singles. */
b80c7270
AM
4127#define XOPS(op, xop, rc) \
4128 (OP (op) \
0f873fd5
PB
4129 | ((((uint64_t)(xop)) & 0x3ff) << 1) \
4130 | (((uint64_t)(rc)) & 1))
c3d65c1c
BE
4131#define XOPS_MASK XOPS (0x3f, 0x3ff, 1)
4132
4133
252b5132 4134/* An XS form instruction. */
b80c7270
AM
4135#define XS(op, xop, rc) \
4136 (OP (op) \
0f873fd5
PB
4137 | ((((uint64_t)(xop)) & 0x1ff) << 2) \
4138 | (((uint64_t)(rc)) & 1))
252b5132
RH
4139#define XS_MASK XS (0x3f, 0x1ff, 1)
4140
4141/* A mask for the FXM version of an XFX form instruction. */
98e69875 4142#define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20))
252b5132
RH
4143
4144/* An XFX form instruction with the FXM field filled in. */
b80c7270
AM
4145#define XFXM(op, xop, fxm, p4) \
4146 (X ((op), (xop)) \
0f873fd5
PB
4147 | ((((uint64_t)(fxm)) & 0xff) << 12) \
4148 | ((uint64_t)(p4) << 20))
252b5132
RH
4149
4150/* An XFX form instruction with the SPR field filled in. */
b80c7270
AM
4151#define XSPR(op, xop, spr) \
4152 (X ((op), (xop)) \
0f873fd5
PB
4153 | ((((uint64_t)(spr)) & 0x1f) << 16) \
4154 | ((((uint64_t)(spr)) & 0x3e0) << 6))
252b5132
RH
4155#define XSPR_MASK (X_MASK | SPR_MASK)
4156
4157/* An XFX form instruction with the SPR field filled in except for the
4158 SPRBAT field. */
4159#define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK)
4160
fa758a70
AC
4161/* An XFX form instruction with the SPR field filled in except for the
4162 SPRGQR field. */
4163#define XSPRGQR_MASK (XSPR_MASK &~ SPRGQR_MASK)
4164
252b5132
RH
4165/* An XFX form instruction with the SPR field filled in except for the
4166 SPRG field. */
b84bf58a 4167#define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16))
252b5132
RH
4168
4169/* An X form instruction with everything filled in except the E field. */
4170#define XE_MASK (0xffff7fff)
4171
23976049 4172/* An X form user context instruction. */
0f873fd5 4173#define XUC(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f))
23976049
EZ
4174#define XUC_MASK XUC(0x3f, 0x1f)
4175
c3d65c1c 4176/* An XW form instruction. */
b80c7270
AM
4177#define XW(op, xop, rc) \
4178 (OP (op) \
0f873fd5 4179 | ((((uint64_t)(xop)) & 0x3f) << 1) \
b80c7270 4180 | ((rc) & 1))
c3d65c1c
BE
4181/* The mask for a G form instruction. rc not supported at present. */
4182#define XW_MASK XW (0x3f, 0x3f, 0)
4183
081ba1b3 4184/* An APU form instruction. */
b80c7270
AM
4185#define APU(op, xop, rc) \
4186 (OP (op) \
0f873fd5 4187 | (((uint64_t)(xop)) & 0x3ff) << 1 \
b80c7270 4188 | ((rc) & 1))
081ba1b3
AM
4189
4190/* The mask for an APU form instruction. */
4191#define APU_MASK APU (0x3f, 0x3ff, 1)
4192#define APU_RT_MASK (APU_MASK | RT_MASK)
4193#define APU_RA_MASK (APU_MASK | RA_MASK)
4194
252b5132
RH
4195/* The BO encodings used in extended conditional branch mnemonics. */
4196#define BODNZF (0x0)
4197#define BODNZFP (0x1)
4198#define BODZF (0x2)
4199#define BODZFP (0x3)
252b5132
RH
4200#define BODNZT (0x8)
4201#define BODNZTP (0x9)
4202#define BODZT (0xa)
4203#define BODZTP (0xb)
802a735e
AM
4204
4205#define BOF (0x4)
4206#define BOFP (0x5)
94efba12
AM
4207#define BOFM4 (0x6)
4208#define BOFP4 (0x7)
252b5132
RH
4209#define BOT (0xc)
4210#define BOTP (0xd)
94efba12
AM
4211#define BOTM4 (0xe)
4212#define BOTP4 (0xf)
802a735e 4213
252b5132
RH
4214#define BODNZ (0x10)
4215#define BODNZP (0x11)
4216#define BODZ (0x12)
4217#define BODZP (0x13)
94efba12
AM
4218#define BODNZM4 (0x18)
4219#define BODNZP4 (0x19)
4220#define BODZM4 (0x1a)
4221#define BODZP4 (0x1b)
802a735e 4222
252b5132
RH
4223#define BOU (0x14)
4224
b9c361e0
JL
4225/* The BO16 encodings used in extended VLE conditional branch mnemonics. */
4226#define BO16F (0x0)
4227#define BO16T (0x1)
4228
4229/* The BO32 encodings used in extended VLE conditional branch mnemonics. */
4230#define BO32F (0x0)
4231#define BO32T (0x1)
4232#define BO32DNZ (0x2)
4233#define BO32DZ (0x3)
4234
252b5132
RH
4235/* The BI condition bit encodings used in extended conditional branch
4236 mnemonics. */
4237#define CBLT (0)
4238#define CBGT (1)
4239#define CBEQ (2)
4240#define CBSO (3)
4241
4242/* The TO encodings used in extended trap mnemonics. */
4243#define TOLGT (0x1)
4244#define TOLLT (0x2)
4245#define TOEQ (0x4)
4246#define TOLGE (0x5)
4247#define TOLNL (0x5)
4248#define TOLLE (0x6)
4249#define TOLNG (0x6)
4250#define TOGT (0x8)
4251#define TOGE (0xc)
4252#define TONL (0xc)
4253#define TOLT (0x10)
4254#define TOLE (0x14)
4255#define TONG (0x14)
4256#define TONE (0x18)
4257#define TOU (0x1f)
4258\f
4259/* Smaller names for the flags so each entry in the opcodes table will
4260 fit on a single line. */
4261#undef PPC
de866fcc 4262#define PPC PPC_OPCODE_PPC
661bd698 4263#define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON
661bd698 4264#define POWER4 PPC_OPCODE_POWER4
1ed8e1e4 4265#define POWER5 PPC_OPCODE_POWER5
702f0fb4 4266#define POWER6 PPC_OPCODE_POWER6
066be9f7 4267#define POWER7 PPC_OPCODE_POWER7
5817ffd1 4268#define POWER8 PPC_OPCODE_POWER8
a680de9a 4269#define POWER9 PPC_OPCODE_POWER9
7c1f4227 4270#define POWER10 PPC_OPCODE_POWER10
ede602d7 4271#define CELL PPC_OPCODE_CELL
bdc70b4a 4272#define PPC64 PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE
6b069ee7 4273#define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 \
bdc70b4a 4274 | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
418c1742 4275#define PPC403 PPC_OPCODE_403
081ba1b3 4276#define PPC405 PPC_OPCODE_405
7d5b217e 4277#define PPC440 PPC_OPCODE_440
c8187e15 4278#define PPC464 PPC440
9fe54b1c 4279#define PPC476 PPC_OPCODE_476
ef5a96d5 4280#define PPC750 PPC_OPCODE_750
fa758a70
AC
4281#define GEKKO PPC_OPCODE_750
4282#define BROADWAY PPC_OPCODE_750
ef5a96d5
AM
4283#define PPC7450 PPC_OPCODE_7450
4284#define PPC860 PPC_OPCODE_860
c3d65c1c 4285#define PPCPS PPC_OPCODE_PPCPS
a404d431 4286#define PPCVEC PPC_OPCODE_ALTIVEC
9a85b496
AM
4287#define PPCVEC2 (PPC_OPCODE_POWER8 | PPC_OPCODE_E6500)
4288#define PPCVEC3 PPC_OPCODE_POWER9
9b4e5766 4289#define PPCVSX PPC_OPCODE_VSX
9570835e
AM
4290#define PPCVSX2 PPC_OPCODE_POWER8
4291#define PPCVSX3 PPC_OPCODE_POWER9
aa3c112f 4292#define PPCVSX4 PPC_OPCODE_POWER10
de866fcc
AM
4293#define POWER PPC_OPCODE_POWER
4294#define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2
81a0b7e2 4295#define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
b80c7270
AM
4296#define PPCPWR2 (PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 \
4297 | PPC_OPCODE_COMMON)
de866fcc 4298#define COM PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON
de866fcc 4299#define M601 PPC_OPCODE_POWER | PPC_OPCODE_601
661bd698 4300#define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON
de866fcc 4301#define MFDEC1 PPC_OPCODE_POWER
b80c7270
AM
4302#define MFDEC2 (PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
4303 | PPC_OPCODE_TITAN)
418c1742 4304#define BOOKE PPC_OPCODE_BOOKE
14b57c7c 4305#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
36ae0db3 4306#define PPCE300 PPC_OPCODE_E300
14b57c7c 4307#define PPCSPE PPC_OPCODE_SPE
74081948 4308#define PPCSPE2 PPC_OPCODE_SPE2
14b57c7c
AM
4309#define PPCISEL PPC_OPCODE_ISEL
4310#define PPCEFS PPC_OPCODE_EFS
74081948 4311#define PPCEFS2 PPC_OPCODE_EFS2
de866fcc 4312#define PPCBRLK PPC_OPCODE_BRLOCK
23976049 4313#define PPCPMR PPC_OPCODE_PMR
aea77599 4314#define PPCTMR PPC_OPCODE_TMR
de866fcc 4315#define PPCCHLK PPC_OPCODE_CACHELCK
fa758a70 4316#define PPCRFMCI PPC_OPCODE_RFMCI
19a6653c 4317#define E500MC PPC_OPCODE_E500MC
634b50f2 4318#define PPCA2 PPC_OPCODE_A2
43e65147 4319#define TITAN PPC_OPCODE_TITAN
62adc510 4320#define MULHW PPC_OPCODE_405 | PPC_OPCODE_440 | PPC_OPCODE_476 | TITAN
e01d869a 4321#define E500 PPC_OPCODE_E500
aea77599 4322#define E6500 PPC_OPCODE_E6500
b9c361e0 4323#define PPCVLE PPC_OPCODE_VLE
ef85eab0 4324#define PPCHTM PPC_OPCODE_POWER8
dfdaec14 4325#define E200Z4 PPC_OPCODE_E200Z4
e3c2f928 4326#define PPCLSP PPC_OPCODE_LSP
252b5132
RH
4327\f
4328/* The opcode table.
4329
4330 The format of the opcode table is:
4331
8ebac3aa 4332 NAME OPCODE MASK FLAGS ANTI {OPERANDS}
252b5132
RH
4333
4334 NAME is the name of the instruction.
4335 OPCODE is the instruction opcode.
4336 MASK is the opcode mask; this is used to tell the disassembler
4337 which bits in the actual opcode must match OPCODE.
8ebac3aa
AM
4338 FLAGS are flags indicating which processors support the instruction.
4339 ANTI indicates which processors don't support the instruction.
252b5132
RH
4340 OPERANDS is the list of operands.
4341
4342 The disassembler reads the table in order and prints the first
4343 instruction which matches, so this table is sorted to put more
de866fcc
AM
4344 specific instructions before more general instructions.
4345
4346 This table must be sorted by major opcode. Please try to keep it
4347 vaguely sorted within major opcode too, except of course where
4348 constrained otherwise by disassembler operation. */
252b5132
RH
4349
4350const struct powerpc_opcode powerpc_opcodes[] = {
14b57c7c
AM
4351{"attn", X(0,256), X_MASK, POWER4|PPCA2, PPC476|PPCVLE, {0}},
4352{"tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4353{"tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4354{"tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4355{"tdlgei", OPTO(2,TOLGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4356{"tdlnli", OPTO(2,TOLNL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4357{"tdllei", OPTO(2,TOLLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4358{"tdlngi", OPTO(2,TOLNG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4359{"tdgti", OPTO(2,TOGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4360{"tdgei", OPTO(2,TOGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4361{"tdnli", OPTO(2,TONL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4362{"tdlti", OPTO(2,TOLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4363{"tdlei", OPTO(2,TOLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4364{"tdngi", OPTO(2,TONG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4365{"tdnei", OPTO(2,TONE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4366{"tdui", OPTO(2,TOU), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
4367{"tdi", OP(2), OP_MASK, PPC64, PPCVLE, {TO, RA, SI}},
4368
4369{"twlgti", OPTO(3,TOLGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4370{"tlgti", OPTO(3,TOLGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4371{"twllti", OPTO(3,TOLLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4372{"tllti", OPTO(3,TOLLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4373{"tweqi", OPTO(3,TOEQ), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4374{"teqi", OPTO(3,TOEQ), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4375{"twlgei", OPTO(3,TOLGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4376{"tlgei", OPTO(3,TOLGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4377{"twlnli", OPTO(3,TOLNL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4378{"tlnli", OPTO(3,TOLNL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4379{"twllei", OPTO(3,TOLLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4380{"tllei", OPTO(3,TOLLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4381{"twlngi", OPTO(3,TOLNG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4382{"tlngi", OPTO(3,TOLNG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4383{"twgti", OPTO(3,TOGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4384{"tgti", OPTO(3,TOGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4385{"twgei", OPTO(3,TOGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4386{"tgei", OPTO(3,TOGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4387{"twnli", OPTO(3,TONL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4388{"tnli", OPTO(3,TONL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4389{"twlti", OPTO(3,TOLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4390{"tlti", OPTO(3,TOLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4391{"twlei", OPTO(3,TOLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4392{"tlei", OPTO(3,TOLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4393{"twngi", OPTO(3,TONG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4394{"tngi", OPTO(3,TONG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4395{"twnei", OPTO(3,TONE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4396{"tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4397{"twui", OPTO(3,TOU), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
4398{"tui", OPTO(3,TOU), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
4399{"twi", OP(3), OP_MASK, PPCCOM, PPCVLE, {TO, RA, SI}},
4400{"ti", OP(3), OP_MASK, PWRCOM, PPCVLE, {TO, RA, SI}},
4401
4402{"ps_cmpu0", X (4, 0), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
4403{"vaddubm", VX (4, 0), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4404{"vmul10cuq", VX (4, 1), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
4405{"vmaxub", VX (4, 2), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4406{"vrlb", VX (4, 4), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 4407{"vrlq", VX (4, 5), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4408{"vcmpequb", VXR(4, 6,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4409{"vcmpneb", VXR(4, 7,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4410{"vmuloub", VX (4, 8), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4411{"vaddfp", VX (4, 10), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 4412{"vdivuq", VX (4, 11), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4413{"psq_lx", XW (4, 6,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
4414{"vmrghb", VX (4, 12), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
66ef5847
AM
4415{"vstribl", VXVA(4,13,0), VXVA_MASK, POWER10, 0, {VD, VB}},
4416{"vstribr", VXVA(4,13,1), VXVA_MASK, POWER10, 0, {VD, VB}},
4417{"vstrihl", VXVA(4,13,2), VXVA_MASK, POWER10, 0, {VD, VB}},
4418{"vstrihr", VXVA(4,13,3), VXVA_MASK, POWER10, 0, {VD, VB}},
14b57c7c
AM
4419{"psq_stx", XW (4, 7,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
4420{"vpkuhum", VX (4, 14), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 4421{"vinsbvlx", VX (4, 15), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
4422{"mulhhwu", XRC(4, 8,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4423{"mulhhwu.", XRC(4, 8,1), X_MASK, MULHW, 0, {RT, RA, RB}},
fdefed7c 4424{"mtvsrbmi", DX (4,10), DX_MASK, POWER10, 0, {VD, DXD}},
14b57c7c
AM
4425{"ps_sum0", A (4, 10,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4426{"ps_sum0.", A (4, 10,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 4427{"vsldbi", VX (4, 22), VXSH_MASK, POWER10, 0, {VD, VA, VB, SH3}},
14b57c7c
AM
4428{"ps_sum1", A (4, 11,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4429{"ps_sum1.", A (4, 11,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 4430{"vextdubvlx", VX (4, 24), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c
AM
4431{"ps_muls0", A (4, 12,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4432{"machhwu", XO (4, 12,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
6edbfd3b 4433{"vextdubvrx", VX (4, 25), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c
AM
4434{"ps_muls0.", A (4, 12,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4435{"machhwu.", XO (4, 12,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
6edbfd3b 4436{"vextduhvlx", VX (4, 26), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 4437{"ps_muls1", A (4, 13,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
6edbfd3b 4438{"vextduhvrx", VX (4, 27), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 4439{"ps_muls1.", A (4, 13,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
6edbfd3b 4440{"vextduwvlx", VX (4, 28), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 4441{"ps_madds0", A (4, 14,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 4442{"vextduwvrx", VX (4, 29), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 4443{"ps_madds0.", A (4, 14,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 4444{"vextddvlx", VX (4, 30), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c 4445{"ps_madds1", A (4, 15,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
6edbfd3b 4446{"vextddvrx", VX (4, 31), VXRC_MASK, POWER10, 0, {VD, VA, VB, RC}},
14b57c7c
AM
4447{"ps_madds1.", A (4, 15,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4448{"vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4449{"vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4450{"vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4451{"vmsumudm", VXA(4, 35), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
4452{"ps_div", A (4, 18,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
c7d7aea2 4453{"vmsumcud", VXA(4, 23), VXA_MASK, POWER10, 0, {VD, VA, VB, VC}},
14b57c7c
AM
4454{"vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4455{"ps_div.", A (4, 18,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4456{"vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4457{"vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4458{"vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4459{"ps_sub", A (4, 20,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4460{"vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4461{"ps_sub.", A (4, 20,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4462{"vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4463{"ps_add", A (4, 21,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4464{"vsel", VXA(4, 42), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4465{"ps_add.", A (4, 21,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4466{"vperm", VXA(4, 43), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
4467{"vsldoi", VXA(4, 44), VXASHB_MASK, PPCVEC, 0, {VD, VA, VB, SHB}},
4468{"vpermxor", VXA(4, 45), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4469{"ps_sel", A (4, 23,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4470{"vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
4471{"ps_sel.", A (4, 23,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4472{"vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
4473{"ps_res", A (4, 24,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
4474{"maddhd", VXA(4, 48), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
4475{"ps_res.", A (4, 24,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
4476{"maddhdu", VXA(4, 49), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
4477{"ps_mul", A (4, 25,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4478{"ps_mul.", A (4, 25,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
4479{"maddld", VXA(4, 51), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
4480{"ps_rsqrte", A (4, 26,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
4481{"ps_rsqrte.", A (4, 26,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
4482{"ps_msub", A (4, 28,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4483{"ps_msub.", A (4, 28,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4484{"ps_madd", A (4, 29,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4485{"ps_madd.", A (4, 29,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4486{"vpermr", VXA(4, 59), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
4487{"ps_nmsub", A (4, 30,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4488{"vaddeuqm", VXA(4, 60), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4489{"ps_nmsub.", A (4, 30,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4490{"vaddecuq", VXA(4, 61), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4491{"ps_nmadd", A (4, 31,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4492{"vsubeuqm", VXA(4, 62), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4493{"ps_nmadd.", A (4, 31,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
4494{"vsubecuq", VXA(4, 63), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
4495{"ps_cmpo0", X (4, 32), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
4496{"vadduhm", VX (4, 64), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4497{"vmul10ecuq", VX (4, 65), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4498{"vmaxuh", VX (4, 66), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4499{"vrlh", VX (4, 68), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 4500{"vrlqmi", VX (4, 69), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4501{"vcmpequh", VXR(4, 70,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4502{"vcmpneh", VXR(4, 71,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4503{"vmulouh", VX (4, 72), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4504{"vsubfp", VX (4, 74), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4505{"psq_lux", XW (4, 38,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
4506{"vmrghh", VX (4, 76), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4507{"psq_stux", XW (4, 39,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
4508{"vpkuwum", VX (4, 78), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 4509{"vinshvlx", VX (4, 79), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
4510{"ps_neg", XRC(4, 40,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4511{"mulhhw", XRC(4, 40,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4512{"ps_neg.", XRC(4, 40,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4513{"mulhhw.", XRC(4, 40,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4514{"machhw", XO (4, 44,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4515{"machhw.", XO (4, 44,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4516{"nmachhw", XO (4, 46,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4517{"nmachhw.", XO (4, 46,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4518{"ps_cmpu1", X (4, 64), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
4519{"vadduwm", VX (4, 128), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4520{"vmaxuw", VX (4, 130), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4521{"vrlw", VX (4, 132), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4522{"vrlwmi", VX (4, 133), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4523{"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4524{"vcmpnew", VXR(4, 135,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4525{"vmulouw", VX (4, 136), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4526{"vmuluwm", VX (4, 137), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
f4791f1a 4527{"vdivuw", VX (4, 139), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4528{"vmrghw", VX (4, 140), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4529{"vpkuhus", VX (4, 142), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 4530{"vinswvlx", VX (4, 143), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
4531{"ps_mr", XRC(4, 72,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4532{"ps_mr.", XRC(4, 72,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4533{"machhwsu", XO (4, 76,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4534{"machhwsu.", XO (4, 76,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4535{"ps_cmpo1", X (4, 96), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
4536{"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4537{"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4538{"vrld", VX (4, 196), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4539{"vrldmi", VX (4, 197), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4540{"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4541{"vcmpequd", VXR(4, 199,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
c7d7aea2 4542{"vmuloud", VX (4, 200), VX_MASK, POWER10, 0, {VD, VA, VB}},
f4791f1a 4543{"vdivud", VX (4, 203), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 4544{"vpkuwus", VX (4, 206), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 4545{"vinsw", VX (4, 207), VXUIMM4_MASK, POWER10, 0, {VD, RB, UIMM4}},
14b57c7c
AM
4546{"machhws", XO (4, 108,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4547{"machhws.", XO (4, 108,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4548{"nmachhws", XO (4, 110,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4549{"nmachhws.", XO (4, 110,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4550{"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
18a8a00e 4551{"vcmpuq", VX (4, 257), VXBF_MASK, POWER10, 0, {BF, VA, VB}},
14b57c7c
AM
4552{"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4553{"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 4554{"vslq", VX (4, 261), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4555{"vcmpnezb", VXR(4, 263,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4556{"vmulosb", VX (4, 264), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4557{"vrefp", VX (4, 266), VXVA_MASK, PPCVEC, 0, {VD, VB}},
c7d7aea2 4558{"vdivsq", VX (4, 267), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4559{"vmrglb", VX (4, 268), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4560{"vpkshus", VX (4, 270), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 4561{"vinsbvrx", VX (4, 271), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
4562{"ps_nabs", XRC(4, 136,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4563{"mulchwu", XRC(4, 136,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4564{"ps_nabs.", XRC(4, 136,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4565{"mulchwu.", XRC(4, 136,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4566{"macchwu", XO (4, 140,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4567{"macchwu.", XO (4, 140,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4568{"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
18a8a00e 4569{"vcmpsq", VX (4, 321), VXBF_MASK, POWER10, 0, {BF, VA, VB}},
14b57c7c
AM
4570{"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4571{"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 4572{"vrlqnm", VX (4, 325), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4573{"vcmpnezh", VXR(4, 327,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4574{"vmulosh", VX (4, 328), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4575{"vrsqrtefp", VX (4, 330), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4576{"vmrglh", VX (4, 332), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4577{"vpkswus", VX (4, 334), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 4578{"vinshvrx", VX (4, 335), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
4579{"mulchw", XRC(4, 168,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4580{"mulchw.", XRC(4, 168,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4581{"macchw", XO (4, 172,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4582{"macchw.", XO (4, 172,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4583{"nmacchw", XO (4, 174,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4584{"nmacchw.", XO (4, 174,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4585{"vaddcuw", VX (4, 384), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4586{"vmaxsw", VX (4, 386), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4587{"vslw", VX (4, 388), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4588{"vrlwnm", VX (4, 389), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4589{"vcmpnezw", VXR(4, 391,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4590{"vmulosw", VX (4, 392), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4591{"vexptefp", VX (4, 394), VXVA_MASK, PPCVEC, 0, {VD, VB}},
f4791f1a 4592{"vdivsw", VX (4, 395), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 4593{"vmrglw", VX (4, 396), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
66ef5847 4594{"vclrlb", VX (4, 397), VX_MASK, POWER10, 0, {VD, VA, RB}},
14b57c7c 4595{"vpkshss", VX (4, 398), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 4596{"vinswvrx", VX (4, 399), VX_MASK, POWER10, 0, {VD, RA, VB}},
14b57c7c
AM
4597{"macchwsu", XO (4, 204,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4598{"macchwsu.", XO (4, 204,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4599{"vmaxsd", VX (4, 450), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4600{"vsl", VX (4, 452), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4601{"vrldnm", VX (4, 453), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4602{"vcmpgefp", VXR(4, 454,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2
AM
4603{"vcmpequq", VXR(4, 455,0), VXR_MASK, POWER10, 0, {VD, VA, VB}},
4604{"vmulosd", VX (4, 456), VX_MASK, POWER10, 0, {VD, VA, VB}},
f4791f1a 4605{"vmulld", VX (4, 457), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 4606{"vlogefp", VX (4, 458), VXVA_MASK, PPCVEC, 0, {VD, VB}},
f4791f1a 4607{"vdivsd", VX (4, 459), VX_MASK, POWER10, 0, {VD, VA, VB}},
66ef5847 4608{"vclrrb", VX (4, 461), VX_MASK, POWER10, 0, {VD, VA, RB}},
14b57c7c 4609{"vpkswss", VX (4, 462), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 4610{"vinsd", VX (4, 463), VXUIMM4_MASK, POWER10, 0, {VD, RB, UIMM4}},
14b57c7c
AM
4611{"macchws", XO (4, 236,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4612{"macchws.", XO (4, 236,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4613{"nmacchws", XO (4, 238,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4614{"nmacchws.", XO (4, 238,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4615{"evaddw", VX (4, 512), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4616{"vaddubs", VX (4, 512), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4617{"vmul10uq", VX (4, 513), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
4618{"evaddiw", VX (4, 514), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
4619{"vminub", VX (4, 514), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4620{"evsubfw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4621{"evsubw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RB, RA}},
4622{"vsrb", VX (4, 516), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 4623{"vsrq", VX (4, 517), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4624{"evsubifw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, UIMM, RB}},
4625{"evsubiw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
4626{"vcmpgtub", VXR(4, 518,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4627{"evabs", VX (4, 520), VX_MASK, PPCSPE, 0, {RS, RA}},
4628{"vmuleub", VX (4, 520), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4629{"evneg", VX (4, 521), VX_MASK, PPCSPE, 0, {RS, RA}},
4630{"evextsb", VX (4, 522), VX_MASK, PPCSPE, 0, {RS, RA}},
4631{"vrfin", VX (4, 522), VXVA_MASK, PPCVEC, 0, {VD, VB}},
c7d7aea2 4632{"vdiveuq", VX (4, 523), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4633{"evextsh", VX (4, 523), VX_MASK, PPCSPE, 0, {RS, RA}},
4634{"evrndw", VX (4, 524), VX_MASK, PPCSPE, 0, {RS, RA}},
4635{"vspltb", VX (4, 524), VXUIMM4_MASK, PPCVEC, 0, {VD, VB, UIMM4}},
4636{"vextractub", VX (4, 525), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4637{"evcntlzw", VX (4, 525), VX_MASK, PPCSPE, 0, {RS, RA}},
4638{"evcntlsw", VX (4, 526), VX_MASK, PPCSPE, 0, {RS, RA}},
4639{"vupkhsb", VX (4, 526), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 4640{"vinsblx", VX (4, 527), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
4641{"brinc", VX (4, 527), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4642{"ps_abs", XRC(4, 264,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4643{"ps_abs.", XRC(4, 264,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
4644{"evand", VX (4, 529), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4645{"evandc", VX (4, 530), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
6edbfd3b 4646{"vsrdbi", VX (4, 534), VXSH_MASK, POWER10, 0, {VD, VA, VB, SH3}},
14b57c7c 4647{"evxor", VX (4, 534), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
98553ad3 4648{"evmr", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RAB}},
14b57c7c 4649{"evor", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
98553ad3 4650{"evnot", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RAB}},
14b57c7c 4651{"evnor", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
4652{"get", APU(4, 268,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4653{"eveqv", VX (4, 537), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4654{"evorc", VX (4, 539), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4655{"evnand", VX (4, 542), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4656{"evsrwu", VX (4, 544), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4657{"evsrws", VX (4, 545), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4658{"evsrwiu", VX (4, 546), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4659{"evsrwis", VX (4, 547), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4660{"evslw", VX (4, 548), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4661{"evslwi", VX (4, 550), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4662{"evrlw", VX (4, 552), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4663{"evsplati", VX (4, 553), VX_MASK, PPCSPE, 0, {RS, SIMM}},
4664{"evrlwi", VX (4, 554), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
4665{"evsplatfi", VX (4, 555), VX_MASK, PPCSPE, 0, {RS, SIMM}},
4666{"evmergehi", VX (4, 556), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4667{"evmergelo", VX (4, 557), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4668{"evmergehilo", VX (4, 558), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4669{"evmergelohi", VX (4, 559), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4670{"evcmpgtu", VX (4, 560), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4671{"evcmpgts", VX (4, 561), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4672{"evcmpltu", VX (4, 562), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4673{"evcmplts", VX (4, 563), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4674{"evcmpeq", VX (4, 564), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4675{"cget", APU(4, 284,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4676{"vadduhs", VX (4, 576), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4677{"vmul10euq", VX (4, 577), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4678{"vminuh", VX (4, 578), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4679{"vsrh", VX (4, 580), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4680{"vcmpgtuh", VXR(4, 582,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4681{"vmuleuh", VX (4, 584), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4682{"vrfiz", VX (4, 586), VXVA_MASK, PPCVEC, 0, {VD, VB}},
4683{"vsplth", VX (4, 588), VXUIMM3_MASK, PPCVEC, 0, {VD, VB, UIMM3}},
4684{"vextractuh", VX (4, 589), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4685{"vupkhsh", VX (4, 590), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 4686{"vinshlx", VX (4, 591), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
4687{"nget", APU(4, 300,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4688{"evsel", EVSEL(4,79), EVSEL_MASK, PPCSPE, 0, {RS, RA, RB, CRFS}},
4689{"ncget", APU(4, 316,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
4690{"evfsadd", VX (4, 640), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4691{"vadduws", VX (4, 640), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4692{"evfssub", VX (4, 641), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 4693{"evfsmadd", VX (4, 642), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c 4694{"vminuw", VX (4, 642), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4695{"evfsmsub", VX (4, 643), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
4696{"evfsabs", VX (4, 644), VX_MASK, PPCSPE, 0, {RS, RA}},
4697{"vsrw", VX (4, 644), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4698{"evfsnabs", VX (4, 645), VX_MASK, PPCSPE, 0, {RS, RA}},
4699{"evfsneg", VX (4, 646), VX_MASK, PPCSPE, 0, {RS, RA}},
4700{"vcmpgtuw", VXR(4, 646,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 4701{"vcmpgtuq", VXR(4, 647,0), VXR_MASK, POWER10, 0, {VD, VA, VB}},
74081948 4702{"evfssqrt", VX_RB_CONST(4, 647, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
4703{"vmuleuw", VX (4, 648), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4704{"evfsmul", VX (4, 648), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
f4791f1a 4705{"vmulhuw", VX (4, 649), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 4706{"evfsdiv", VX (4, 649), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 4707{"evfsnmadd", VX (4, 650), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c 4708{"vrfip", VX (4, 650), VXVA_MASK, PPCVEC, 0, {VD, VB}},
f4791f1a 4709{"vdiveuw", VX (4, 651), VX_MASK, POWER10, 0, {VD, VA, VB}},
74081948 4710{"evfsnmsub", VX (4, 651), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
14b57c7c
AM
4711{"evfscmpgt", VX (4, 652), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4712{"vspltw", VX (4, 652), VXUIMM2_MASK, PPCVEC, 0, {VD, VB, UIMM2}},
4713{"vextractuw", VX (4, 653), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4714{"evfscmplt", VX (4, 653), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4715{"evfscmpeq", VX (4, 654), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4716{"vupklsb", VX (4, 654), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 4717{"vinswlx", VX (4, 655), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c 4718{"evfscfui", VX (4, 656), VX_MASK, PPCSPE, 0, {RS, RB}},
74081948 4719{"evfscfh", VX_RA_CONST(4, 657, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4720{"evfscfsi", VX (4, 657), VX_MASK, PPCSPE, 0, {RS, RB}},
4721{"evfscfuf", VX (4, 658), VX_MASK, PPCSPE, 0, {RS, RB}},
4722{"evfscfsf", VX (4, 659), VX_MASK, PPCSPE, 0, {RS, RB}},
4723{"evfsctui", VX (4, 660), VX_MASK, PPCSPE, 0, {RS, RB}},
74081948 4724{"evfscth", VX_RA_CONST(4, 661, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4725{"evfsctsi", VX (4, 661), VX_MASK, PPCSPE, 0, {RS, RB}},
4726{"evfsctuf", VX (4, 662), VX_MASK, PPCSPE, 0, {RS, RB}},
4727{"evfsctsf", VX (4, 663), VX_MASK, PPCSPE, 0, {RS, RB}},
4728{"evfsctuiz", VX (4, 664), VX_MASK, PPCSPE, 0, {RS, RB}},
4729{"put", APU(4, 332,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
4730{"evfsctsiz", VX (4, 666), VX_MASK, PPCSPE, 0, {RS, RB}},
4731{"evfststgt", VX (4, 668), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4732{"evfststlt", VX (4, 669), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
4733{"evfststeq", VX (4, 670), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
74081948
AF
4734{"evfsmax", VX (4, 672), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4735{"evfsmin", VX (4, 673), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4736{"evfsaddsub", VX (4, 674), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4737{"evfssubadd", VX (4, 675), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4738{"evfssum", VX (4, 676), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4739{"evfsdiff", VX (4, 677), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4740{"evfssumdiff", VX (4, 678), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4741{"evfsdiffsum", VX (4, 679), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4742{"evfsaddx", VX (4, 680), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4743{"evfssubx", VX (4, 681), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4744{"evfsaddsubx", VX (4, 682), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4745{"evfssubaddx", VX (4, 683), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4746{"evfsmulx", VX (4, 684), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4747{"evfsmule", VX (4, 686), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4748{"evfsmulo", VX (4, 687), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4749{"efsmax", VX (4, 688), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4750{"efsmin", VX (4, 689), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
4751{"efdmax", VX (4, 696), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
14b57c7c 4752{"cput", APU(4, 348,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
74081948 4753{"efdmin", VX (4, 697), VX_MASK, PPCEFS2, 0, {RD, RA, RB}},
14b57c7c
AM
4754{"efsadd", VX (4, 704), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4755{"efssub", VX (4, 705), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948 4756{"efsmadd", VX (4, 706), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 4757{"vminud", VX (4, 706), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 4758{"efsmsub", VX (4, 707), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c
AM
4759{"efsabs", VX (4, 708), VX_MASK, PPCEFS, 0, {RS, RA}},
4760{"vsr", VX (4, 708), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4761{"efsnabs", VX (4, 709), VX_MASK, PPCEFS, 0, {RS, RA}},
4762{"efsneg", VX (4, 710), VX_MASK, PPCEFS, 0, {RS, RA}},
4763{"vcmpgtfp", VXR(4, 710,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4764{"efssqrt", VX_RB_CONST(4, 711, 0), VX_RB_CONST_MASK,PPCEFS2, 0, {RD, RA}},
14b57c7c 4765{"vcmpgtud", VXR(4, 711,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
c7d7aea2 4766{"vmuleud", VX (4, 712), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 4767{"efsmul", VX (4, 712), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
f4791f1a 4768{"vmulhud", VX (4, 713), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 4769{"efsdiv", VX (4, 713), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948 4770{"efsnmadd", VX (4, 714), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c 4771{"vrfim", VX (4, 714), VXVA_MASK, PPCVEC, 0, {VD, VB}},
f4791f1a 4772{"vdiveud", VX (4, 715), VX_MASK, POWER10, 0, {VD, VA, VB}},
74081948 4773{"efsnmsub", VX (4, 715), VX_MASK, PPCEFS2, 0, {RS, RA, RB}},
14b57c7c
AM
4774{"efscmpgt", VX (4, 716), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4775{"vextractd", VX (4, 717), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4776{"efscmplt", VX (4, 717), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4777{"efscmpeq", VX (4, 718), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4778{"vupklsh", VX (4, 718), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 4779{"vinsdlx", VX (4, 719), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
4780{"efscfd", VX (4, 719), VX_MASK, PPCEFS, 0, {RS, RB}},
4781{"efscfui", VX (4, 720), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 4782{"efscfh", VX_RA_CONST(4, 721, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4783{"efscfsi", VX (4, 721), VX_MASK, PPCEFS, 0, {RS, RB}},
4784{"efscfuf", VX (4, 722), VX_MASK, PPCEFS, 0, {RS, RB}},
4785{"efscfsf", VX (4, 723), VX_MASK, PPCEFS, 0, {RS, RB}},
4786{"efsctui", VX (4, 724), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 4787{"efscth", VX_RA_CONST(4, 725, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4788{"efsctsi", VX (4, 725), VX_MASK, PPCEFS, 0, {RS, RB}},
4789{"efsctuf", VX (4, 726), VX_MASK, PPCEFS, 0, {RS, RB}},
4790{"efsctsf", VX (4, 727), VX_MASK, PPCEFS, 0, {RS, RB}},
4791{"efsctuiz", VX (4, 728), VX_MASK, PPCEFS, 0, {RS, RB}},
4792{"nput", APU(4, 364,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
4793{"efsctsiz", VX (4, 730), VX_MASK, PPCEFS, 0, {RS, RB}},
4794{"efststgt", VX (4, 732), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4795{"efststlt", VX (4, 733), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4796{"efststeq", VX (4, 734), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4797{"efdadd", VX (4, 736), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4798{"efdsub", VX (4, 737), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948
AF
4799{"efdmadd", VX (4, 738), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4800{"efdcfuid", VX (4, 738), VX_MASK, E500|E500MC,0, {RS, RB}},
4801{"efdmsub", VX (4, 739), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4802{"efdcfsid", VX (4, 739), VX_MASK, E500|E500MC,0, {RS, RB}},
14b57c7c
AM
4803{"efdabs", VX (4, 740), VX_MASK, PPCEFS, 0, {RS, RA}},
4804{"efdnabs", VX (4, 741), VX_MASK, PPCEFS, 0, {RS, RA}},
4805{"efdneg", VX (4, 742), VX_MASK, PPCEFS, 0, {RS, RA}},
74081948 4806{"efdsqrt", VX_RB_CONST(4, 743, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}},
14b57c7c
AM
4807{"efdmul", VX (4, 744), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
4808{"efddiv", VX (4, 745), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
74081948
AF
4809{"efdnmadd", VX (4, 746), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4810{"efdctuidz", VX (4, 746), VX_MASK, E500|E500MC,0, {RS, RB}},
4811{"efdnmsub", VX (4, 747), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}},
4812{"efdctsidz", VX (4, 747), VX_MASK, E500|E500MC,0, {RS, RB}},
14b57c7c
AM
4813{"efdcmpgt", VX (4, 748), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4814{"efdcmplt", VX (4, 749), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4815{"efdcmpeq", VX (4, 750), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4816{"efdcfs", VX (4, 751), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948
AF
4817{"efdcfui", VX_RA_CONST(4, 752, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4818{"efdcfuid", VX_RA_CONST(4, 752, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4819{"efdcfsi", VX_RA_CONST(4, 753, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4820{"efdcfsid", VX_RA_CONST(4, 753, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
4821{"efdcfh", VX_RA_CONST(4, 753, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4822{"efdcfuf", VX (4, 754), VX_MASK, PPCEFS, 0, {RS, RB}},
4823{"efdcfsf", VX (4, 755), VX_MASK, PPCEFS, 0, {RS, RB}},
4824{"efdctui", VX (4, 756), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948 4825{"efdcth", VX_RA_CONST(4, 757, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}},
14b57c7c
AM
4826{"efdctsi", VX (4, 757), VX_MASK, PPCEFS, 0, {RS, RB}},
4827{"efdctuf", VX (4, 758), VX_MASK, PPCEFS, 0, {RS, RB}},
4828{"efdctsf", VX (4, 759), VX_MASK, PPCEFS, 0, {RS, RB}},
74081948
AF
4829{"efdctuiz", VX_RA_CONST(4, 760, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4830{"efdctuidz", VX_RA_CONST(4, 760, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
14b57c7c 4831{"ncput", APU(4, 380,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
74081948
AF
4832{"efdctsiz", VX_RA_CONST(4, 762, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}},
4833{"efdctsidz", VX_RA_CONST(4, 762, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}},
14b57c7c
AM
4834{"efdtstgt", VX (4, 764), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4835{"efdtstlt", VX (4, 765), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4836{"efdtsteq", VX (4, 766), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
4837{"evlddx", VX (4, 768), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4838{"vaddsbs", VX (4, 768), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4839{"evldd", VX (4, 769), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4840{"evldwx", VX (4, 770), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4841{"vminsb", VX (4, 770), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4842{"evldw", VX (4, 771), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4843{"evldhx", VX (4, 772), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4844{"vsrab", VX (4, 772), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 4845{"vsraq", VX (4, 773), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4846{"evldh", VX (4, 773), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4847{"vcmpgtsb", VXR(4, 774,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4848{"evlhhesplatx",VX (4, 776), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4849{"vmulesb", VX (4, 776), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4850{"evlhhesplat", VX (4, 777), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4851{"vcfux", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4852{"vcuxwfp", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
c7d7aea2 4853{"vdivesq", VX (4, 779), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4854{"evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4855{"vspltisb", VX (4, 780), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4856{"vinsertb", VX (4, 781), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4857{"evlhhousplat",VX (4, 781), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4858{"evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4859{"vpkpx", VX (4, 782), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
6edbfd3b 4860{"vinsbrx", VX (4, 783), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
4861{"evlhhossplat",VX (4, 783), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
4862{"mullhwu", XRC(4, 392,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4863{"evlwhex", VX (4, 784), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4864{"mullhwu.", XRC(4, 392,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4865{"evlwhe", VX (4, 785), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4866{"evlwhoux", VX (4, 788), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4867{"evlwhou", VX (4, 789), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4868{"evlwhosx", VX (4, 790), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4869{"evlwhos", VX (4, 791), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4870{"maclhwu", XO (4, 396,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4871{"evlwwsplatx", VX (4, 792), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4872{"maclhwu.", XO (4, 396,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4873{"evlwwsplat", VX (4, 793), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4874{"evlwhsplatx", VX (4, 796), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4875{"evlwhsplat", VX (4, 797), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4876{"evstddx", VX (4, 800), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4877{"evstdd", VX (4, 801), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4878{"evstdwx", VX (4, 802), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4879{"evstdw", VX (4, 803), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4880{"evstdhx", VX (4, 804), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4881{"evstdh", VX (4, 805), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
4882{"evstwhex", VX (4, 816), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4883{"evstwhe", VX (4, 817), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4884{"evstwhox", VX (4, 820), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4885{"evstwho", VX (4, 821), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4886{"evstwwex", VX (4, 824), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4887{"evstwwe", VX (4, 825), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4888{"evstwwox", VX (4, 828), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4889{"evstwwo", VX (4, 829), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
4890{"vaddshs", VX (4, 832), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4891{"bcdcpsgn.", VX (4, 833), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
4892{"vminsh", VX (4, 834), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4893{"vsrah", VX (4, 836), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4894{"vcmpgtsh", VXR(4, 838,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4895{"vmulesh", VX (4, 840), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4896{"vcfsx", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4897{"vcsxwfp", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4898{"vspltish", VX (4, 844), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4899{"vinserth", VX (4, 845), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4900{"vupkhpx", VX (4, 846), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 4901{"vinshrx", VX (4, 847), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
4902{"mullhw", XRC(4, 424,0), X_MASK, MULHW, 0, {RT, RA, RB}},
4903{"mullhw.", XRC(4, 424,1), X_MASK, MULHW, 0, {RT, RA, RB}},
4904{"maclhw", XO (4, 428,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4905{"maclhw.", XO (4, 428,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4906{"nmaclhw", XO (4, 430,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
4907{"nmaclhw.", XO (4, 430,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
4908{"vaddsws", VX (4, 896), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4909{"vminsw", VX (4, 898), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4910{"vsraw", VX (4, 900), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4911{"vcmpgtsw", VXR(4, 902,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 4912{"vcmpgtsq", VXR(4, 903,0), VXR_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 4913{"vmulesw", VX (4, 904), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
f4791f1a 4914{"vmulhsw", VX (4, 905), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4915{"vctuxs", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4916{"vcfpuxws", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
f4791f1a 4917{"vdivesw", VX (4, 907), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4918{"vspltisw", VX (4, 908), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
4919{"vinsertw", VX (4, 909), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
6edbfd3b 4920{"vinswrx", VX (4, 911), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
4921{"maclhwsu", XO (4, 460,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4922{"maclhwsu.", XO (4, 460,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4923{"vminsd", VX (4, 962), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4924{"vsrad", VX (4, 964), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4925{"vcmpbfp", VXR(4, 966,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4926{"vcmpgtsd", VXR(4, 967,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
c7d7aea2 4927{"vmulesd", VX (4, 968), VX_MASK, POWER10, 0, {VD, VA, VB}},
f4791f1a 4928{"vmulhsd", VX (4, 969), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4929{"vctsxs", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
4930{"vcfpsxws", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
f4791f1a 4931{"vdivesd", VX (4, 971), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
4932{"vinsertd", VX (4, 973), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
4933{"vupklpx", VX (4, 974), VXVA_MASK, PPCVEC, 0, {VD, VB}},
6edbfd3b 4934{"vinsdrx", VX (4, 975), VX_MASK, POWER10, 0, {VD, RA, RB}},
14b57c7c
AM
4935{"maclhws", XO (4, 492,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4936{"maclhws.", XO (4, 492,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4937{"nmaclhws", XO (4, 494,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4938{"nmaclhws.", XO (4, 494,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4939{"vsububm", VX (4,1024), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4940{"bcdadd.", VX (4,1025), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
4941{"vavgub", VX (4,1026), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4942{"vabsdub", VX (4,1027), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4943{"evmhessf", VX (4,1027), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4944{"vand", VX (4,1028), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4945{"vcmpequb.", VXR(4, 6,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
4946{"vcmpneb.", VXR(4, 7,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
62adc510
AM
4947{"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4948{"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4949{"evmhossf", VX (4,1031), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4950{"vpmsumb", VX (4,1032), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4951{"evmheumi", VX (4,1032), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4952{"evmhesmi", VX (4,1033), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4953{"vmaxfp", VX (4,1034), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4954{"evmhesmf", VX (4,1035), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4955{"evmhoumi", VX (4,1036), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4956{"vslo", VX (4,1036), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
66ef5847
AM
4957{"vstribl.", VXVA(4,1037,0), VXVA_MASK, POWER10, 0, {VD, VB}},
4958{"vstribr.", VXVA(4,1037,1), VXVA_MASK, POWER10, 0, {VD, VB}},
4959{"vstrihl.", VXVA(4,1037,2), VXVA_MASK, POWER10, 0, {VD, VB}},
4960{"vstrihr.", VXVA(4,1037,3), VXVA_MASK, POWER10, 0, {VD, VB}},
14b57c7c
AM
4961{"evmhosmi", VX (4,1037), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4962{"evmhosmf", VX (4,1039), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4963{"machhwuo", XO (4, 12,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4964{"machhwuo.", XO (4, 12,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4965{"ps_merge00", XOPS(4,528,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4966{"ps_merge00.", XOPS(4,528,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
4967{"evmhessfa", VX (4,1059), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4968{"evmhossfa", VX (4,1063), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4969{"evmheumia", VX (4,1064), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4970{"evmhesmia", VX (4,1065), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4971{"evmhesmfa", VX (4,1067), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4972{"evmhoumia", VX (4,1068), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4973{"evmhosmia", VX (4,1069), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4974{"evmhosmfa", VX (4,1071), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4975{"vsubuhm", VX (4,1088), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4976{"bcdsub.", VX (4,1089), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
4977{"vavguh", VX (4,1090), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4978{"evmwlssf", VX (4,1091), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4979{"vabsduh", VX (4,1091), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4980{"vandc", VX (4,1092), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4981{"vcmpequh.", VXR(4, 70,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
4982{"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
4983{"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
4984{"vcmpneh.", VXR(4, 71,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
4985{"evmwhssf", VX (4,1095), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4986{"vpmsumh", VX (4,1096), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4987{"evmwlumi", VX (4,1096), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4988{"vminfp", VX (4,1098), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948 4989{"evmwlsmf", VX (4,1099), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
4990{"evmwhumi", VX (4,1100), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4991{"vsro", VX (4,1100), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
4992{"evmwhsmi", VX (4,1101), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4993{"vpkudum", VX (4,1102), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
4994{"evmwhsmf", VX (4,1103), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4995{"evmwssf", VX (4,1107), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4996{"machhwo", XO (4, 44,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
4997{"evmwumi", VX (4,1112), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
4998{"machhwo.", XO (4, 44,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
4999{"evmwsmi", VX (4,1113), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5000{"evmwsmf", VX (4,1115), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5001{"nmachhwo", XO (4, 46,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5002{"nmachhwo.", XO (4, 46,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5003{"ps_merge01", XOPS(4,560,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5004{"ps_merge01.", XOPS(4,560,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
74081948 5005{"evmwlssfa", VX (4,1123), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5006{"evmwhssfa", VX (4,1127), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5007{"evmwlumia", VX (4,1128), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948 5008{"evmwlsmfa", VX (4,1131), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5009{"evmwhumia", VX (4,1132), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5010{"evmwhsmia", VX (4,1133), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5011{"evmwhsmfa", VX (4,1135), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5012{"evmwssfa", VX (4,1139), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5013{"evmwumia", VX (4,1144), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5014{"evmwsmia", VX (4,1145), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5015{"evmwsmfa", VX (4,1147), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5016{"vsubuwm", VX (4,1152), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5017{"bcdus.", VX (4,1153), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5018{"vavguw", VX (4,1154), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5019{"vabsduw", VX (4,1155), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
98553ad3 5020{"vmr", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VAB}},
14b57c7c
AM
5021{"vor", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5022{"vcmpnew.", VXR(4, 135,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5023{"vpmsumw", VX (4,1160), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5024{"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5025{"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5026{"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5027{"machhwsuo", XO (4, 76,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5028{"machhwsuo.", XO (4, 76,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5029{"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5030{"ps_merge10.", XOPS(4,592,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5031{"vsubudm", VX (4,1216), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5032{"evaddusiaaw", VX (4,1216), VX_MASK, PPCSPE, 0, {RS, RA}},
5033{"bcds.", VX (4,1217), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
5034{"evaddssiaaw", VX (4,1217), VX_MASK, PPCSPE, 0, {RS, RA}},
5035{"evsubfusiaaw",VX (4,1218), VX_MASK, PPCSPE, 0, {RS, RA}},
5036{"evsubfssiaaw",VX (4,1219), VX_MASK, PPCSPE, 0, {RS, RA}},
5037{"evmra", VX (4,1220), VX_MASK, PPCSPE, 0, {RS, RA}},
5038{"vxor", VX (4,1220), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5039{"evdivws", VX (4,1222), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5040{"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 5041{"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c 5042{"vcmpequd.", VXR(4, 199,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 5043{"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5044{"evdivwu", VX (4,1223), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5045{"vpmsumd", VX (4,1224), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5046{"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE, 0, {RS, RA}},
5047{"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE, 0, {RS, RA}},
5048{"evsubfumiaaw",VX (4,1226), VX_MASK, PPCSPE, 0, {RS, RA}},
5049{"evsubfsmiaaw",VX (4,1227), VX_MASK, PPCSPE, 0, {RS, RA}},
ec40e91c 5050{"vgnb", VX (4,1228), VX_MASK, POWER10, 0, {RT, VB, UIMM3}},
14b57c7c
AM
5051{"vpkudus", VX (4,1230), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5052{"machhwso", XO (4, 108,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5053{"machhwso.", XO (4, 108,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5054{"nmachhwso", XO (4, 110,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5055{"nmachhwso.", XO (4, 110,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5056{"ps_merge11", XOPS(4,624,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5057{"ps_merge11.", XOPS(4,624,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
5058{"vsubuqm", VX (4,1280), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5059{"evmheusiaaw", VX (4,1280), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5060{"bcdtrunc.", VX (4,1281), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
5061{"evmhessiaaw", VX (4,1281), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5062{"vavgsb", VX (4,1282), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5063{"evmhessfaaw", VX (4,1283), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5064{"evmhousiaaw", VX (4,1284), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
98553ad3 5065{"vnot", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VAB}},
14b57c7c
AM
5066{"vnor", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5067{"evmhossiaaw", VX (4,1285), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
62adc510
AM
5068{"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5069{"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5070{"vcmpnezb.", VXR(4, 263,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5071{"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5072{"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5073{"vcipher", VX (4,1288), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5074{"vcipherlast", VX (4,1289), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5075{"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5076{"evmhesmfaaw", VX (4,1291), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5077{"vgbbd", VX (4,1292), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5078{"evmhoumiaaw", VX (4,1292), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5079{"evmhosmiaaw", VX (4,1293), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5080{"evmhosmfaaw", VX (4,1295), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5081{"macchwuo", XO (4, 140,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5082{"macchwuo.", XO (4, 140,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5083{"evmhegumiaa", VX (4,1320), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5084{"evmhegsmiaa", VX (4,1321), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5085{"evmhegsmfaa", VX (4,1323), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5086{"evmhogumiaa", VX (4,1324), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5087{"evmhogsmiaa", VX (4,1325), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5088{"evmhogsmfaa", VX (4,1327), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5089{"vsubcuq", VX (4,1344), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5090{"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5091{"bcdutrunc.", VX (4,1345), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5092{"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5093{"vavgsh", VX (4,1346), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
74081948
AF
5094{"evmwlssfaaw", VX (4,1347), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5095{"evmwhusiaa", VX (4,1348), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5096{"vorc", VX (4,1348), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 5097{"evmwhssmaa", VX (4,1349), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
62adc510
AM
5098{"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5099{"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c 5100{"vcmpnezh.", VXR(4, 327,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
74081948 5101{"evmwhssfaa", VX (4,1351), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5102{"vncipher", VX (4,1352), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5103{"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5104{"vncipherlast",VX (4,1353), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5105{"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
5106{"evmwlsmfaaw", VX (4,1355), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5107{"evmwhumiaa", VX (4,1356), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5108{"vbpermq", VX (4,1356), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
ec40e91c 5109{"vcfuged", VX (4,1357), VX_MASK, POWER10, 0, {VD, VA, VB}},
74081948 5110{"evmwhsmiaa", VX (4,1357), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5111{"vpksdus", VX (4,1358), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 5112{"evmwhsmfaa", VX (4,1359), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5113{"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5114{"macchwo", XO (4, 172,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5115{"evmwumiaa", VX (4,1368), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5116{"macchwo.", XO (4, 172,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5117{"evmwsmiaa", VX (4,1369), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5118{"evmwsmfaa", VX (4,1371), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5119{"nmacchwo", XO (4, 174,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5120{"nmacchwo.", XO (4, 174,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
74081948
AF
5121{"evmwhgumiaa", VX (4,1380), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5122{"evmwhgsmiaa", VX (4,1381), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5123{"evmwhgssfaa", VX (4,1383), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5124{"evmwhgsmfaa", VX (4,1391), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5125{"evmheusianw", VX (4,1408), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5126{"vsubcuw", VX (4,1408), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5127{"evmhessianw", VX (4,1409), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5128{"bcdctsq.", VXVA(4,1409,0), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5129{"bcdcfsq.", VXVA(4,1409,2), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5130{"bcdctz.", VXVA(4,1409,4), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5131{"bcdctn.", VXVA(4,1409,5), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5132{"bcdcfz.", VXVA(4,1409,6), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5133{"bcdcfn.", VXVA(4,1409,7), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5134{"bcdsetsgn.", VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
5135{"vavgsw", VX (4,1410), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5136{"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5137{"vnand", VX (4,1412), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5138{"evmhousianw", VX (4,1412), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5139{"evmhossianw", VX (4,1413), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
62adc510
AM
5140{"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5141{"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5142{"vcmpnezw.", VXR(4, 391,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
5143{"evmhossfanw", VX (4,1415), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5144{"evmheumianw", VX (4,1416), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5145{"evmhesmianw", VX (4,1417), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5146{"evmhesmfanw", VX (4,1419), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5147{"evmhoumianw", VX (4,1420), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
ec40e91c 5148{"vpextd", VX (4,1421), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5149{"evmhosmianw", VX (4,1421), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5150{"evmhosmfanw", VX (4,1423), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5151{"macchwsuo", XO (4, 204,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5152{"macchwsuo.", XO (4, 204,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5153{"evmhegumian", VX (4,1448), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5154{"evmhegsmian", VX (4,1449), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5155{"evmhegsmfan", VX (4,1451), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5156{"evmhogumian", VX (4,1452), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5157{"evmhogsmian", VX (4,1453), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5158{"evmhogsmfan", VX (4,1455), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5159{"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5160{"bcdsr.", VX (4,1473), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
5161{"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
5162{"evmwlssfanw", VX (4,1475), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5163{"evmwhusian", VX (4,1476), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5164{"vsld", VX (4,1476), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 5165{"evmwhssian", VX (4,1477), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5166{"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5167{"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
5168{"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}},
c7d7aea2 5169{"vcmpequq.", VXR(4, 455,1), VXR_MASK, POWER10, 0, {VD, VA, VB}},
74081948 5170{"evmwhssfan", VX (4,1479), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5171{"vsbox", VX (4,1480), VXVB_MASK, PPCVEC2, 0, {VD, VA}},
5172{"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5173{"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
5174{"evmwlsmfanw", VX (4,1483), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5175{"evmwhumian", VX (4,1484), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5176{"vbpermd", VX (4,1484), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
ec40e91c 5177{"vpdepd", VX (4,1485), VX_MASK, POWER10, 0, {VD, VA, VB}},
74081948 5178{"evmwhsmian", VX (4,1485), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c 5179{"vpksdss", VX (4,1486), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
74081948 5180{"evmwhsmfan", VX (4,1487), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5181{"evmwssfan", VX (4,1491), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5182{"macchwso", XO (4, 236,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5183{"evmwumian", VX (4,1496), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5184{"macchwso.", XO (4, 236,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5185{"evmwsmian", VX (4,1497), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
5186{"evmwsmfan", VX (4,1499), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
74081948
AF
5187{"evmwhgumian", VX (4,1508), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5188{"evmwhgsmian", VX (4,1509), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5189{"evmwhgssfan", VX (4,1511), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
5190{"evmwhgsmfan", VX (4,1519), VX_MASK, PPCSPE, 0, {RD, RA, RB}},
14b57c7c
AM
5191{"nmacchwso", XO (4, 238,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5192{"nmacchwso.", XO (4, 238,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5193{"vsububs", VX (4,1536), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5194{"vclzlsbb", VXVA(4,1538,0), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
5195{"vctzlsbb", VXVA(4,1538,1), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
5196{"vnegw", VXVA(4,1538,6), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5197{"vnegd", VXVA(4,1538,7), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5198{"vprtybw", VXVA(4,1538,8), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5199{"vprtybd", VXVA(4,1538,9), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5200{"vprtybq", VXVA(4,1538,10), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5201{"vextsb2w", VXVA(4,1538,16), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5202{"vextsh2w", VXVA(4,1538,17), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5203{"vextsb2d", VXVA(4,1538,24), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5204{"vextsh2d", VXVA(4,1538,25), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5205{"vextsw2d", VXVA(4,1538,26), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
c7d7aea2 5206{"vextsd2q", VXVA(4,1538,27), VXVA_MASK, POWER10, 0, {VD, VB}},
14b57c7c
AM
5207{"vctzb", VXVA(4,1538,28), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5208{"vctzh", VXVA(4,1538,29), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5209{"vctzw", VXVA(4,1538,30), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5210{"vctzd", VXVA(4,1538,31), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
5211{"mfvscr", VX (4,1540), VXVAVB_MASK, PPCVEC, 0, {VD}},
5212{"vcmpgtub.", VXR(4, 518,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5213{"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
5214{"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5215{"vsum4ubs", VX (4,1544), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5216{"vmoduq", VX (4,1547), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5217{"vextublx", VX (4,1549), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
5218{"vsubuhs", VX (4,1600), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
fdefed7c
AM
5219
5220{"vexpandbm", VXVA(4,1602,0), VXVA_MASK, POWER10, 0, {VD, VB}},
5221{"vexpandhm", VXVA(4,1602,1), VXVA_MASK, POWER10, 0, {VD, VB}},
5222{"vexpandwm", VXVA(4,1602,2), VXVA_MASK, POWER10, 0, {VD, VB}},
5223{"vexpanddm", VXVA(4,1602,3), VXVA_MASK, POWER10, 0, {VD, VB}},
5224{"vexpandqm", VXVA(4,1602,4), VXVA_MASK, POWER10, 0, {VD, VB}},
5225{"vextractbm", VXVA(4,1602,8), VXVA_MASK, POWER10, 0, {RT, VB}},
5226{"vextracthm", VXVA(4,1602,9), VXVA_MASK, POWER10, 0, {RT, VB}},
5227{"vextractwm", VXVA(4,1602,10), VXVA_MASK, POWER10, 0, {RT, VB}},
5228{"vextractdm", VXVA(4,1602,11), VXVA_MASK, POWER10, 0, {RT, VB}},
5229{"vextractqm", VXVA(4,1602,12), VXVA_MASK, POWER10, 0, {RT, VB}},
5230{"mtvsrbm", VXVA(4,1602,16), VXVA_MASK, POWER10, 0, {VD, RB}},
5231{"mtvsrhm", VXVA(4,1602,17), VXVA_MASK, POWER10, 0, {VD, RB}},
5232{"mtvsrwm", VXVA(4,1602,18), VXVA_MASK, POWER10, 0, {VD, RB}},
5233{"mtvsrdm", VXVA(4,1602,19), VXVA_MASK, POWER10, 0, {VD, RB}},
5234{"mtvsrqm", VXVA(4,1602,20), VXVA_MASK, POWER10, 0, {VD, RB}},
5235{"vcntmbb", VXVA(4,1602,24), VXVAM_MASK, POWER10, 0, {RT, VB, MP}},
5236{"vcntmbh", VXVA(4,1602,26), VXVAM_MASK, POWER10, 0, {RT, VB, MP}},
5237{"vcntmbw", VXVA(4,1602,28), VXVAM_MASK, POWER10, 0, {RT, VB, MP}},
5238{"vcntmbd", VXVA(4,1602,30), VXVAM_MASK, POWER10, 0, {RT, VB, MP}},
5239
14b57c7c
AM
5240{"mtvscr", VX (4,1604), VXVDVA_MASK, PPCVEC, 0, {VB}},
5241{"vcmpgtuh.", VXR(4, 582,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5242{"vsum4shs", VX (4,1608), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5243{"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
5244{"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5245{"vextuhlx", VX (4,1613), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
5246{"vupkhsw", VX (4,1614), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5247{"vsubuws", VX (4,1664), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5248{"vshasigmaw", VX (4,1666), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
5249{"veqv", VX (4,1668), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5250{"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 5251{"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
c7d7aea2 5252{"vcmpgtuq.", VXR(4, 647,1), VXR_MASK, POWER10, 0, {VD, VA, VB}},
62adc510 5253{"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5254{"vsum2sws", VX (4,1672), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
f4791f1a 5255{"vmoduw", VX (4,1675), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5256{"vmrgow", VX (4,1676), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5257{"vextuwlx", VX (4,1677), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
5258{"vshasigmad", VX (4,1730), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
5259{"vsrd", VX (4,1732), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5260{"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 5261{"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5262{"vcmpgtud.", VXR(4, 711,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 5263{"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
f4791f1a 5264{"vmodud", VX (4,1739), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5265{"vupklsw", VX (4,1742), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5266{"vsubsbs", VX (4,1792), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5267{"vclzb", VX (4,1794), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5268{"vpopcntb", VX (4,1795), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5269{"vsrv", VX (4,1796), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5270{"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510
AM
5271{"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
5272{"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5273{"vsum4sbs", VX (4,1800), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
c7d7aea2 5274{"vmodsq", VX (4,1803), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5275{"vextubrx", VX (4,1805), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
5276{"maclhwuo", XO (4, 396,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5277{"maclhwuo.", XO (4, 396,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5278{"vsubshs", VX (4,1856), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5279{"vclzh", VX (4,1858), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5280{"vpopcnth", VX (4,1859), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5281{"vslv", VX (4,1860), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
5282{"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
5283{"vextuhrx", VX (4,1869), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
62adc510
AM
5284{"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
5285{"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c
AM
5286{"maclhwo", XO (4, 428,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5287{"maclhwo.", XO (4, 428,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5288{"nmaclhwo", XO (4, 430,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5289{"nmaclhwo.", XO (4, 430,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5290{"vsubsws", VX (4,1920), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
5291{"vclzw", VX (4,1922), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5292{"vpopcntw", VX (4,1923), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
ec40e91c 5293{"vclzdm", VX (4,1924), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5294{"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 5295{"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
c7d7aea2 5296{"vcmpgtsq.", VXR(4, 903,1), VXR_MASK, POWER10, 0, {VD, VA, VB}},
62adc510 5297{"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5298{"vsumsws", VX (4,1928), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
f4791f1a 5299{"vmodsw", VX (4,1931), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5300{"vmrgew", VX (4,1932), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
5301{"vextuwrx", VX (4,1933), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
5302{"maclhwsuo", XO (4, 460,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5303{"maclhwsuo.", XO (4, 460,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5304{"vclzd", VX (4,1986), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
5305{"vpopcntd", VX (4,1987), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
ec40e91c 5306{"vctzdm", VX (4,1988), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c 5307{"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
62adc510 5308{"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, 0, {URT, URA, URB}},
14b57c7c 5309{"vcmpgtsd.", VXR(4, 967,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
62adc510 5310{"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, 0, {URT, URA, URB}},
f4791f1a 5311{"vmodsd", VX (4,1995), VX_MASK, POWER10, 0, {VD, VA, VB}},
14b57c7c
AM
5312{"maclhwso", XO (4, 492,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5313{"maclhwso.", XO (4, 492,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5314{"nmaclhwso", XO (4, 494,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
5315{"nmaclhwso.", XO (4, 494,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
5316{"dcbz_l", X (4,1014), XRT_MASK, PPCPS, 0, {RA, RB}},
5317
94ba9882
AM
5318{"lxvp", DQXP(6,0), DQXP_MASK, POWER10, PPCVLE, {XTP, DQ, RA0}},
5319{"stxvp", DQXP(6,1), DQXP_MASK, POWER10, PPCVLE, {XTP, DQ, RA0}},
5320
14b57c7c
AM
5321{"mulli", OP(7), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
5322{"muli", OP(7), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
5323
5324{"subfic", OP(8), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
5325{"sfi", OP(8), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
5326
5327{"dozi", OP(9), OP_MASK, M601, PPCVLE, {RT, RA, SI}},
5328
5329{"cmplwi", OPL(10,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, UISIGNOPT}},
5330{"cmpldi", OPL(10,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, UISIGNOPT}},
a5721ba2 5331{"cmpli", OP(10), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, UISIGNOPT}},
14b57c7c
AM
5332{"cmpli", OP(10), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, UISIGNOPT}},
5333
5334{"cmpwi", OPL(11,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, SI}},
5335{"cmpdi", OPL(11,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, SI}},
a5721ba2 5336{"cmpi", OP(11), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, SI}},
14b57c7c
AM
5337{"cmpi", OP(11), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, SI}},
5338
5339{"addic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
5340{"ai", OP(12), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
5341{"subic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
5342
5343{"addic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
5344{"ai.", OP(13), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
5345{"subic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
5346
5347{"li", OP(14), DRA_MASK, PPCCOM, PPCVLE, {RT, SI}},
5348{"lil", OP(14), DRA_MASK, PWRCOM, PPCVLE, {RT, SI}},
5349{"addi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SI}},
5350{"cal", OP(14), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
5351{"subi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSI}},
5352{"la", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
5353
5354{"lis", OP(15), DRA_MASK, PPCCOM, PPCVLE, {RT, SISIGNOPT}},
5355{"liu", OP(15), DRA_MASK, PWRCOM, PPCVLE, {RT, SISIGNOPT}},
5356{"addis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
5357{"cau", OP(15), OP_MASK, PWRCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
5358{"subis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSISIGNOPT}},
5359
5360{"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
5361{"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
5362{"bdnz", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
5363{"bdn", BBO(16,BODNZ,0,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
5364{"bdnzl-", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
5365{"bdnzl+", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
5366{"bdnzl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
5367{"bdnl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
5368{"bdnza-", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
5369{"bdnza+", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
5370{"bdnza", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
5371{"bdna", BBO(16,BODNZ,1,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
5372{"bdnzla-", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
5373{"bdnzla+", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
5374{"bdnzla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
5375{"bdnla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
5376{"bdz-", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
5377{"bdz+", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
5378{"bdz", BBO(16,BODZ,0,0), BBOATBI_MASK, COM, PPCVLE, {BD}},
5379{"bdzl-", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
5380{"bdzl+", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
5381{"bdzl", BBO(16,BODZ,0,1), BBOATBI_MASK, COM, PPCVLE, {BD}},
5382{"bdza-", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
5383{"bdza+", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
5384{"bdza", BBO(16,BODZ,1,0), BBOATBI_MASK, COM, PPCVLE, {BDA}},
5385{"bdzla-", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
5386{"bdzla+", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
5387{"bdzla", BBO(16,BODZ,1,1), BBOATBI_MASK, COM, PPCVLE, {BDA}},
5388
5389{"bge-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5390{"bge+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5391{"bge", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5392{"bnl-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5393{"bnl+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5394{"bnl", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5395{"bgel-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5396{"bgel+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5397{"bgel", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5398{"bnll-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5399{"bnll+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5400{"bnll", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5401{"bgea-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5402{"bgea+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5403{"bgea", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5404{"bnla-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5405{"bnla+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5406{"bnla", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5407{"bgela-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5408{"bgela+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5409{"bgela", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5410{"bnlla-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5411{"bnlla+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5412{"bnlla", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5413{"ble-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5414{"ble+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5415{"ble", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5416{"bng-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5417{"bng+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5418{"bng", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5419{"blel-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5420{"blel+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5421{"blel", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5422{"bngl-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5423{"bngl+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5424{"bngl", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5425{"blea-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5426{"blea+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5427{"blea", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5428{"bnga-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5429{"bnga+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5430{"bnga", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5431{"blela-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5432{"blela+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5433{"blela", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5434{"bngla-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5435{"bngla+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5436{"bngla", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5437{"bne-", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5438{"bne+", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5439{"bne", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5440{"bnel-", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5441{"bnel+", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5442{"bnel", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5443{"bnea-", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5444{"bnea+", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5445{"bnea", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5446{"bnela-", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5447{"bnela+", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5448{"bnela", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5449{"bns-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5450{"bns+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5451{"bns", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5452{"bnu-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5453{"bnu+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5454{"bnu", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
5455{"bnsl-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5456{"bnsl+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5457{"bnsl", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5458{"bnul-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5459{"bnul+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5460{"bnul", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
5461{"bnsa-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5462{"bnsa+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5463{"bnsa", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5464{"bnua-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5465{"bnua+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5466{"bnua", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
5467{"bnsla-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5468{"bnsla+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5469{"bnsla", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5470{"bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5471{"bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5472{"bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
5473
5474{"blt-", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5475{"blt+", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5476{"blt", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5477{"bltl-", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5478{"bltl+", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5479{"bltl", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5480{"blta-", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5481{"blta+", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5482{"blta", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5483{"bltla-", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5484{"bltla+", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5485{"bltla", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5486{"bgt-", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5487{"bgt+", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5488{"bgt", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5489{"bgtl-", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5490{"bgtl+", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5491{"bgtl", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5492{"bgta-", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5493{"bgta+", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5494{"bgta", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5495{"bgtla-", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5496{"bgtla+", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5497{"bgtla", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5498{"beq-", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5499{"beq+", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5500{"beq", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5501{"beql-", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5502{"beql+", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5503{"beql", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5504{"beqa-", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5505{"beqa+", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5506{"beqa", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5507{"beqla-", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5508{"beqla+", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5509{"beqla", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5510{"bso-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5511{"bso+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5512{"bso", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5513{"bun-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5514{"bun+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5515{"bun", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
5516{"bsol-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5517{"bsol+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5518{"bsol", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
5519{"bunl-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
5520{"bunl+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
5521{"bunl", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
5522{"bsoa-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5523{"bsoa+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5524{"bsoa", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5525{"buna-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5526{"buna+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5527{"buna", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
5528{"bsola-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5529{"bsola+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5530{"bsola", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
5531{"bunla-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
5532{"bunla+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
5533{"bunla", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
5534
5535{"bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5536{"bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5537{"bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5538{"bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5539{"bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5540{"bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5541{"bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5542{"bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5543{"bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5544{"bdnzfla-", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5545{"bdnzfla+", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5546{"bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5547{"bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5548{"bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5549{"bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5550{"bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5551{"bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5552{"bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5553{"bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5554{"bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5555{"bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5556{"bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5557{"bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5558{"bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5559
5560{"bf-", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
5561{"bf+", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
5562{"bf", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
5563{"bbf", BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
5564{"bfl-", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
5565{"bfl+", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
5566{"bfl", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
5567{"bbfl", BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
5568{"bfa-", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
5569{"bfa+", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
5570{"bfa", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5571{"bbfa", BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
5572{"bfla-", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
5573{"bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
5574{"bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5575{"bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
5576
5577{"bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5578{"bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5579{"bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5580{"bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5581{"bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5582{"bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5583{"bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5584{"bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5585{"bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5586{"bdnztla-", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5587{"bdnztla+", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5588{"bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5589{"bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5590{"bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5591{"bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5592{"bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
5593{"bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
5594{"bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
5595{"bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5596{"bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5597{"bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5598{"bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
5599{"bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
5600{"bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5601
5602{"bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
5603{"bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
5604{"bt", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
5605{"bbt", BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
5606{"btl-", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
5607{"btl+", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
5608{"btl", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
5609{"bbtl", BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
5610{"bta-", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
5611{"bta+", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
5612{"bta", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5613{"bbta", BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
5614{"btla-", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
5615{"btla+", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
5616{"btla", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
5617{"bbtla", BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
5618
aae9718e
PB
5619{"bc-", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDM}},
5620{"bc+", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDP}},
14b57c7c 5621{"bc", B(16,0,0), B_MASK, COM, PPCVLE, {BO, BI, BD}},
aae9718e
PB
5622{"bcl-", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDM}},
5623{"bcl+", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDP}},
14b57c7c 5624{"bcl", B(16,0,1), B_MASK, COM, PPCVLE, {BO, BI, BD}},
aae9718e
PB
5625{"bca-", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDMA}},
5626{"bca+", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDPA}},
14b57c7c 5627{"bca", B(16,1,0), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
aae9718e
PB
5628{"bcla-", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOM, BI, BDMA}},
5629{"bcla+", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOP, BI, BDPA}},
14b57c7c
AM
5630{"bcla", B(16,1,1), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
5631
5632{"svc", SC(17,0,0), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
dce75bf9 5633{"scv", SC(17,0,1), SC_MASK, POWER9, PPCVLE, {SVC_LEV}},
14b57c7c
AM
5634{"svcl", SC(17,0,1), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
5635{"sc", SC(17,1,0), SC_MASK, PPC, PPCVLE, {LEV}},
5636{"svca", SC(17,1,0), SC_MASK, PWRCOM, PPCVLE, {SV}},
5637{"svcla", SC(17,1,1), SC_MASK, POWER, PPCVLE, {SV}},
5638
5639{"b", B(18,0,0), B_MASK, COM, PPCVLE, {LI}},
5640{"bl", B(18,0,1), B_MASK, COM, PPCVLE, {LI}},
5641{"ba", B(18,1,0), B_MASK, COM, PPCVLE, {LIA}},
5642{"bla", B(18,1,1), B_MASK, COM, PPCVLE, {LIA}},
5643
5644{"mcrf", XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
5645
1437d063 5646{"lnia", DX(19,2), NODX_MASK, POWER9, PPCVLE, {RT}},
14b57c7c
AM
5647{"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}},
5648{"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, NDXD}},
5649
5a403766
AM
5650{"bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BH}},
5651{"bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BH}},
5652{"bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {BH}},
5653{"bdnzlrl-", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BH}},
5654{"bdnzlrl+", XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BH}},
5655{"bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {BH}},
5656{"bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BH}},
5657{"bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BH}},
5658{"bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {BH}},
5659{"bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BH}},
5660{"bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BH}},
5661{"bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {BH}},
5662{"blr", XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {BH}},
5663{"br", XLO(19,BOU,16,0), XLBOBIBB_MASK, PWRCOM, PPCVLE, {BH}},
5664{"blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {BH}},
5665{"brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, PPCVLE, {BH}},
5666{"bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {BH}},
5667{"bdnzlrl-", XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {BH}},
5668{"bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {BH}},
5669{"bdnzlrl+", XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {BH}},
5670{"bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {BH}},
5671{"bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {BH}},
5672{"bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {BH}},
5673{"bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {BH}},
5674
5675{"bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5676{"bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5677{"bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5678{"bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5679{"bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5680{"bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5681{"bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5682{"bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5683{"bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5684{"bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5685{"bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5686{"bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5687{"bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5688{"bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5689{"bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5690{"bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5691{"blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5692{"blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5693{"blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5694{"bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5695{"bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5696{"bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5697{"bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5698{"bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5699{"blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5700{"blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5701{"blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5702{"blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5703{"bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5704{"bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5705{"bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5706{"bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5707{"bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5708{"bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5709{"bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5710{"bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5711{"bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5712{"bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5713{"bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5714{"bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5715{"bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5716{"bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5717{"bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5718{"bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5719{"bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5720{"bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5721{"bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5722{"bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5723{"bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5724{"bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5725{"bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5726{"bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5727{"bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5728{"bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5729{"bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5730{"bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5731{"bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5732{"bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5733{"blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5734{"bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5735{"blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5736{"bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5737{"bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5738{"bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5739{"bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5740{"bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5741{"bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5742{"bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5743{"bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5744{"bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5745{"bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5746{"bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5747{"blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5748{"bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5749{"blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5750{"bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5751{"bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5752{"bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5753{"bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5754{"bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5755{"bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5756{"bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5757{"bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5758{"bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5759{"bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5760{"bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5761{"bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5762{"bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5763{"bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5764{"bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5765{"bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5766{"bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5767{"bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5768{"bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5769{"bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5770{"bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5771{"bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5772{"bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5773{"beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5774{"beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5775{"beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5776{"beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5777{"beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5778{"beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5779{"beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5780{"beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5781{"bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5782{"bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5783{"bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5784{"bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5785{"bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5786{"bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5787{"bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5788{"bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5789{"bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5790{"bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5791{"bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR, BH}},
5792{"bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5793{"bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5794{"bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5795{"bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5796{"bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5797{"bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5798{"bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5799{"beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5800{"beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5801{"bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5802{"bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5803{"bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5804{"bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5805{"bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5806{"bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5807{"bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5808{"bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5809{"beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5810{"beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5811{"bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5812{"bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5813{"bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5814{"bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5815
5816{"bdnzflr-", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5817{"bdnzflr+", XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5818{"bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5819{"bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5820{"bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5821{"bdnzflrl", XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5822{"bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5823{"bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5824{"bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5825{"bdzflrl-", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5826{"bdzflrl+", XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5827{"bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5828{"bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5829{"bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5830{"bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5831{"bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI, BH}},
5832{"bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5833{"bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5834{"bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5835{"bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI, BH}},
5836{"bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
5837{"bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
5838{"bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
5839{"bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
5840{"bdnztlr-", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5841{"bdnztlr+", XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5842{"bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5843{"bdnztlrl-", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5844{"bdnztlrl+", XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5845{"bdnztlrl", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5846{"bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5847{"bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5848{"bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5849{"bdztlrl-", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5850{"bdztlrl+", XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5851{"bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5852{"btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5853{"btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5854{"btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5855{"bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI, BH}},
5856{"btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5857{"btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
5858{"btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
5859{"bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI, BH}},
5860{"btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
5861{"btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
5862{"btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
5863{"btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
14b57c7c 5864
66e85460
AM
5865{"bclr-", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5866{"bclr+", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5867{"bclr", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460
AM
5868{"bcr", XLLK(19,16,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
5869{"bclrl-", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
5870{"bclrl+", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 5871{"bclrl", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 5872{"bcrl", XLLK(19,16,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
14b57c7c
AM
5873
5874{"rfid", XL(19,18), 0xffffffff, PPC64, PPCVLE, {0}},
5875
98553ad3 5876{"crnot", XL(19,33), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}},
14b57c7c
AM
5877{"crnor", XL(19,33), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5878{"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE, {0}},
5879
5880{"rfdi", XL(19,39), 0xffffffff, E500MC, PPCVLE, {0}},
5881{"rfi", XL(19,50), 0xffffffff, COM, PPCVLE, {0}},
5882{"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}},
5883
dce75bf9 5884{"rfscv", XL(19,82), 0xffffffff, POWER9, PPCVLE, {0}},
14b57c7c
AM
5885{"rfsvc", XL(19,82), 0xffffffff, POWER, PPCVLE, {0}},
5886
5887{"rfgi", XL(19,102), 0xffffffff, E500MC|PPCA2, PPCVLE, {0}},
5888
5889{"crandc", XL(19,129), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5890
5891{"rfebb", XL(19,146), XLS_MASK, POWER8, PPCVLE, {SXL}},
5892
5893{"isync", XL(19,150), 0xffffffff, PPCCOM, PPCVLE, {0}},
5894{"ics", XL(19,150), 0xffffffff, PWRCOM, PPCVLE, {0}},
5895
98553ad3 5896{"crclr", XL(19,193), XL_MASK, PPCCOM, PPCVLE, {BTAB}},
14b57c7c
AM
5897{"crxor", XL(19,193), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5898
5899{"dnh", X(19,198), X_MASK, E500MC, PPCVLE, {DUI, DUIS}},
5900
5901{"crnand", XL(19,225), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5902
5903{"crand", XL(19,257), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5904
5905{"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPC476|PPCVLE, {0}},
5906
98553ad3 5907{"crset", XL(19,289), XL_MASK, PPCCOM, PPCVLE, {BTAB}},
14b57c7c
AM
5908{"creqv", XL(19,289), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5909
5910{"urfid", XL(19,306), 0xffffffff, POWER9, PPCVLE, {0}},
5911{"stop", XL(19,370), 0xffffffff, POWER9, PPCVLE, {0}},
5912
5913{"doze", XL(19,402), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5914
5915{"crorc", XL(19,417), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5916
5917{"nap", XL(19,434), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5918
98553ad3 5919{"crmove", XL(19,449), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}},
14b57c7c
AM
5920{"cror", XL(19,449), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
5921
5922{"sleep", XL(19,466), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5923{"rvwinkle", XL(19,498), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
5924
5a403766
AM
5925{"bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, PPCVLE, {BH}},
5926{"bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, PPCVLE, {BH}},
5927
5928{"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5929{"bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5930{"bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5931{"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5932{"bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5933{"bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5934{"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5935{"bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5936{"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5937{"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5938{"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5939{"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5940{"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5941{"blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5942{"blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5943{"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5944{"bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5945{"bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5946{"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5947{"blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5948{"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5949{"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5950{"bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5951{"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5952{"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5953{"bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5954{"bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5955{"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5956{"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5957{"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5958{"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5959{"bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5960{"bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5961{"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5962{"bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5963{"bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5964{"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5965{"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5966{"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5967{"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5968{"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5969{"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
5970{"bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5971{"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5972{"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5973{"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5974{"blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5975{"bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5976{"blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5977{"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5978{"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5979{"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5980{"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5981{"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5982{"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5983{"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5984{"bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5985{"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5986{"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5987{"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5988{"blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5989{"bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5990{"blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5991{"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5992{"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5993{"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5994{"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5995{"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5996{"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5997{"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
5998{"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
5999{"bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6000{"bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6001{"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6002{"bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6003{"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6004{"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6005{"bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6006{"bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6007{"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6008{"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6009{"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6010{"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6011{"beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6012{"beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6013{"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6014{"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6015{"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6016{"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6017{"bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6018{"bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6019{"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6020{"bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6021{"bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6022{"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6023{"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6024{"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6025{"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6026{"bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR, BH}},
6027{"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR, BH}},
6028{"bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6029{"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6030{"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6031{"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6032{"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6033{"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6034{"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6035{"bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6036{"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6037{"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6038{"bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6039{"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6040{"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6041{"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6042{"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6043{"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6044{"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6045{"bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6046{"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6047{"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR, BH}},
6048
6049{"bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
6050{"bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
6051{"bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
6052{"bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
6053{"bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
6054{"bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
6055{"bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
6056{"bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
6057{"bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
6058{"bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
6059{"btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
6060{"btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
6061{"btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
6062{"btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
6063{"btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BH}},
6064{"btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI, BH}},
6065{"btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
6066{"btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
6067{"btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
6068{"btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI, BH}},
14b57c7c 6069
66e85460
AM
6070{"bcctr-", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
6071{"bcctr+", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 6072{"bcctr", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460
AM
6073{"bcc", XLLK(19,528,0), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
6074{"bcctrl-", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BOM, BI, BH}},
6075{"bcctrl+", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BOP, BI, BH}},
14b57c7c 6076{"bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
66e85460 6077{"bccl", XLLK(19,528,1), XLBH_MASK, PWRCOM, PPCVLE, {BO, BI, BH}},
14b57c7c 6078
5a403766
AM
6079{"bdnztar", XLO(19,BODNZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6080{"bdnztarl", XLO(19,BODNZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6081{"bdztar", XLO(19,BODZ,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6082{"bdztarl", XLO(19,BODZ,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6083{"btar", XLO(19,BOU,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6084{"btarl", XLO(19,BOU,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6085{"bdnztar-", XLO(19,BODNZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6086{"bdnztarl-", XLO(19,BODNZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6087{"bdnztar+", XLO(19,BODNZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6088{"bdnztarl+", XLO(19,BODNZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6089{"bdztar-", XLO(19,BODZM4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6090{"bdztarl-", XLO(19,BODZM4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6091{"bdztar+", XLO(19,BODZP4,560,0), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6092{"bdztarl+", XLO(19,BODZP4,560,1), XLBOBIBB_MASK, POWER8, PPCVLE, {BH}},
6093
6094{"bgetar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6095{"bnltar", XLOCB(19,BOF,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6096{"bgetarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6097{"bnltarl", XLOCB(19,BOF,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6098{"bletar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6099{"bngtar", XLOCB(19,BOF,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6100{"bletarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6101{"bngtarl", XLOCB(19,BOF,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6102{"bnetar", XLOCB(19,BOF,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6103{"bnetarl", XLOCB(19,BOF,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6104{"bnstar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6105{"bnutar", XLOCB(19,BOF,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6106{"bnstarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6107{"bnutarl", XLOCB(19,BOF,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6108{"bgetar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6109{"bnltar-", XLOCB(19,BOFM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6110{"bgetarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6111{"bnltarl-",XLOCB(19,BOFM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6112{"bletar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6113{"bngtar-", XLOCB(19,BOFM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6114{"bletarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6115{"bngtarl-",XLOCB(19,BOFM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6116{"bnetar-", XLOCB(19,BOFM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6117{"bnetarl-",XLOCB(19,BOFM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6118{"bnstar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6119{"bnutar-", XLOCB(19,BOFM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6120{"bnstarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6121{"bnutarl-",XLOCB(19,BOFM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6122{"bgetar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6123{"bnltar+", XLOCB(19,BOFP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6124{"bgetarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6125{"bnltarl+",XLOCB(19,BOFP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6126{"bletar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6127{"bngtar+", XLOCB(19,BOFP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6128{"bletarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6129{"bngtarl+",XLOCB(19,BOFP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6130{"bnetar+", XLOCB(19,BOFP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6131{"bnetarl+",XLOCB(19,BOFP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6132{"bnstar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6133{"bnutar+", XLOCB(19,BOFP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6134{"bnstarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6135{"bnutarl+",XLOCB(19,BOFP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6136{"blttar", XLOCB(19,BOT,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6137{"blttarl", XLOCB(19,BOT,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6138{"bgttar", XLOCB(19,BOT,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6139{"bgttarl", XLOCB(19,BOT,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6140{"beqtar", XLOCB(19,BOT,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6141{"beqtarl", XLOCB(19,BOT,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6142{"bsotar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6143{"buntar", XLOCB(19,BOT,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6144{"bsotarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6145{"buntarl", XLOCB(19,BOT,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6146{"blttar-", XLOCB(19,BOTM4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6147{"blttarl-",XLOCB(19,BOTM4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6148{"bgttar-", XLOCB(19,BOTM4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6149{"bgttarl-",XLOCB(19,BOTM4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6150{"beqtar-", XLOCB(19,BOTM4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6151{"beqtarl-",XLOCB(19,BOTM4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6152{"bsotar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6153{"buntar-", XLOCB(19,BOTM4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6154{"bsotarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6155{"buntarl-",XLOCB(19,BOTM4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6156{"blttar+", XLOCB(19,BOTP4,CBLT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6157{"blttarl+",XLOCB(19,BOTP4,CBLT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6158{"bgttar+", XLOCB(19,BOTP4,CBGT,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6159{"bgttarl+",XLOCB(19,BOTP4,CBGT,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6160{"beqtar+", XLOCB(19,BOTP4,CBEQ,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6161{"beqtarl+",XLOCB(19,BOTP4,CBEQ,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6162{"bsotar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6163{"buntar+", XLOCB(19,BOTP4,CBSO,560,0), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6164{"bsotarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6165{"buntarl+",XLOCB(19,BOTP4,CBSO,560,1), XLBOCBBB_MASK, POWER8, PPCVLE, {CR, BH}},
6166
6167{"bdnzftar", XLO(19,BODNZF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6168{"bdnzftarl", XLO(19,BODNZF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6169{"bdzftar", XLO(19,BODZF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6170{"bdzftarl", XLO(19,BODZF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6171
6172{"bftar", XLO(19,BOF,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6173{"bftarl", XLO(19,BOF,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6174{"bftar-", XLO(19,BOFM4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6175{"bftarl-", XLO(19,BOFM4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6176{"bftar+", XLO(19,BOFP4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6177{"bftarl+", XLO(19,BOFP4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6178
6179{"bdnzttar", XLO(19,BODNZT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6180{"bdnzttarl", XLO(19,BODNZT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6181{"bdzttar", XLO(19,BODZT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6182{"bdzttarl", XLO(19,BODZT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6183
6184{"bttar", XLO(19,BOT,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6185{"bttarl", XLO(19,BOT,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6186{"bttar-", XLO(19,BOTM4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6187{"bttarl-", XLO(19,BOTM4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6188{"bttar+", XLO(19,BOTP4,560,0), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
6189{"bttarl+", XLO(19,BOTP4,560,1), XLBOBB_MASK, POWER8, PPCVLE, {BI, BH}},
aae9718e 6190
66e85460
AM
6191{"bctar-", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BOM, BI, BH}},
6192{"bctar+", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BOP, BI, BH}},
14b57c7c 6193{"bctar", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
66e85460
AM
6194{"bctarl-", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BOM, BI, BH}},
6195{"bctarl+", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BOP, BI, BH}},
14b57c7c
AM
6196{"bctarl", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
6197
6198{"rlwimi", M(20,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6199{"rlimi", M(20,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6200
6201{"rlwimi.", M(20,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6202{"rlimi.", M(20,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6203
6204{"rotlwi", MME(21,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
6205{"clrlwi", MME(21,31,0), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
6206{"rlwinm", M(21,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6207{"rlinm", M(21,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6208{"rotlwi.", MME(21,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
6209{"clrlwi.", MME(21,31,1), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
6210{"rlwinm.", M(21,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6211{"rlinm.", M(21,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
6212
6213{"rlmi", M(22,0), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
6214{"rlmi.", M(22,1), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
6215
6216{"rotlw", MME(23,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
6217{"rlwnm", M(23,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
6218{"rlnm", M(23,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
6219{"rotlw.", MME(23,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
6220{"rlwnm.", M(23,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
6221{"rlnm.", M(23,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
6222
6223{"nop", OP(24), 0xffffffff, PPCCOM, PPCVLE, {0}},
8b2742a1 6224{"exser", 0x63ff0000, 0xffffffff, POWER9, PPCVLE, {0}},
14b57c7c
AM
6225{"ori", OP(24), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6226{"oril", OP(24), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6227
6228{"oris", OP(25), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6229{"oriu", OP(25), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6230
6231{"xnop", OP(26), 0xffffffff, PPCCOM, PPCVLE, {0}},
6232{"xori", OP(26), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6233{"xoril", OP(26), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6234
6235{"xoris", OP(27), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6236{"xoriu", OP(27), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6237
6238{"andi.", OP(28), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6239{"andil.", OP(28), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6240
6241{"andis.", OP(29), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
6242{"andiu.", OP(29), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
6243
6244{"rotldi", MD(30,0,0), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
6245{"clrldi", MD(30,0,0), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
6246{"rldicl", MD(30,0,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
6247{"rotldi.", MD(30,0,1), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
6248{"clrldi.", MD(30,0,1), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
6249{"rldicl.", MD(30,0,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
6250
6251{"rldicr", MD(30,1,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
6252{"rldicr.", MD(30,1,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
6253
6254{"rldic", MD(30,2,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
6255{"rldic.", MD(30,2,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
6256
6257{"rldimi", MD(30,3,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
6258{"rldimi.", MD(30,3,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
6259
6260{"rotld", MDS(30,8,0), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
6261{"rldcl", MDS(30,8,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
6262{"rotld.", MDS(30,8,1), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
6263{"rldcl.", MDS(30,8,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
6264
6265{"rldcr", MDS(30,9,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
6266{"rldcr.", MDS(30,9,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
6267
6268{"cmpw", XOPL(31,0,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
6269{"cmpd", XOPL(31,0,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
a5721ba2 6270{"cmp", X(31,0), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
bdc70b4a 6271{"cmp", X(31,0), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
1cb0a767 6272
14b57c7c
AM
6273{"twlgt", XTO(31,4,TOLGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
6274{"tlgt", XTO(31,4,TOLGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
6275{"twllt", XTO(31,4,TOLLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
6276{"tllt", XTO(31,4,TOLLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
6277{"tweq", XTO(31,4,TOEQ), XTO_MASK, PPCCOM, 0, {RA, RB}},
6278{"teq", XTO(31,4,TOEQ), XTO_MASK, PWRCOM, 0, {RA, RB}},
6279{"twlge", XTO(31,4,TOLGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
6280{"tlge", XTO(31,4,TOLGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
6281{"twlnl", XTO(31,4,TOLNL), XTO_MASK, PPCCOM, 0, {RA, RB}},
6282{"tlnl", XTO(31,4,TOLNL), XTO_MASK, PWRCOM, 0, {RA, RB}},
6283{"twlle", XTO(31,4,TOLLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
6284{"tlle", XTO(31,4,TOLLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
6285{"twlng", XTO(31,4,TOLNG), XTO_MASK, PPCCOM, 0, {RA, RB}},
6286{"tlng", XTO(31,4,TOLNG), XTO_MASK, PWRCOM, 0, {RA, RB}},
6287{"twgt", XTO(31,4,TOGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
6288{"tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
6289{"twge", XTO(31,4,TOGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
6290{"tge", XTO(31,4,TOGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
6291{"twnl", XTO(31,4,TONL), XTO_MASK, PPCCOM, 0, {RA, RB}},
6292{"tnl", XTO(31,4,TONL), XTO_MASK, PWRCOM, 0, {RA, RB}},
6293{"twlt", XTO(31,4,TOLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
6294{"tlt", XTO(31,4,TOLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
6295{"twle", XTO(31,4,TOLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
6296{"tle", XTO(31,4,TOLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
6297{"twng", XTO(31,4,TONG), XTO_MASK, PPCCOM, 0, {RA, RB}},
6298{"tng", XTO(31,4,TONG), XTO_MASK, PWRCOM, 0, {RA, RB}},
6299{"twne", XTO(31,4,TONE), XTO_MASK, PPCCOM, 0, {RA, RB}},
6300{"tne", XTO(31,4,TONE), XTO_MASK, PWRCOM, 0, {RA, RB}},
6301{"trap", XTO(31,4,TOU), 0xffffffff, PPCCOM, 0, {0}},
6302{"twu", XTO(31,4,TOU), XTO_MASK, PPCCOM, 0, {RA, RB}},
6303{"tu", XTO(31,4,TOU), XTO_MASK, PWRCOM, 0, {RA, RB}},
6304{"tw", X(31,4), X_MASK, PPCCOM, 0, {TO, RA, RB}},
6305{"t", X(31,4), X_MASK, PWRCOM, 0, {TO, RA, RB}},
6306
6307{"lvsl", X(31,6), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
6308{"lvebx", X(31,7), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
6309{"lbfcmx", APU(31,7,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6310
6311{"subfc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6312{"sf", XO(31,8,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6313{"subc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
6314{"subfc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6315{"sf.", XO(31,8,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6316{"subc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
6317
6318{"mulhdu", XO(31,9,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6319{"mulhdu.", XO(31,9,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
6320
6321{"addc", XO(31,10,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6322{"a", XO(31,10,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6323{"addc.", XO(31,10,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6324{"a.", XO(31,10,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6325
6326{"mulhwu", XO(31,11,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6327{"mulhwu.", XO(31,11,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6328
6329{"lxsiwzx", X(31,12), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
6330
9cc4ce88
AM
6331{"lxvrbx", X(31,13), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
6332
14b57c7c
AM
6333{"isellt", X(31,15), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
6334
6335{"tlbilxlpid", XTO(31,18,0), XTO_MASK, E500MC|PPCA2, 0, {0}},
6336{"tlbilxpid", XTO(31,18,1), XTO_MASK, E500MC|PPCA2, 0, {0}},
6337{"tlbilxva", XTO(31,18,3), XTO_MASK, E500MC|PPCA2, 0, {RA0, RB}},
6338{"tlbilx", X(31,18), X_MASK, E500MC|PPCA2, 0, {T, RA0, RB}},
6339
6340{"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, COM, 0, {RT, FXM4}},
6341{"mfocrf", XFXM(31,19,0,1), XFXFXM_MASK, COM, 0, {RT, FXM}},
6342
6343{"lwarx", X(31,20), XEH_MASK, PPC, 0, {RT, RA0, RB, EH}},
6344
6345{"ldx", X(31,21), X_MASK, PPC64, 0, {RT, RA0, RB}},
6346
8b2742a1 6347{"icbt", X(31,22), X_MASK, POWER5|BOOKE|PPCE300, 0, {CT, RA0, RB}},
14b57c7c
AM
6348
6349{"lwzx", X(31,23), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
6350{"lx", X(31,23), X_MASK, PWRCOM, 0, {RT, RA, RB}},
6351
6352{"slw", XRC(31,24,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6353{"sl", XRC(31,24,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
6354{"slw.", XRC(31,24,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
6355{"sl.", XRC(31,24,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
6356
6357{"cntlzw", XRC(31,26,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
6358{"cntlz", XRC(31,26,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
6359{"cntlzw.", XRC(31,26,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
6360{"cntlz.", XRC(31,26,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
6361
6362{"sld", XRC(31,27,0), X_MASK, PPC64, 0, {RA, RS, RB}},
6363{"sld.", XRC(31,27,1), X_MASK, PPC64, 0, {RA, RS, RB}},
6364
6365{"and", XRC(31,28,0), X_MASK, COM, 0, {RA, RS, RB}},
6366{"and.", XRC(31,28,1), X_MASK, COM, 0, {RA, RS, RB}},
6367
6368{"maskg", XRC(31,29,0), X_MASK, M601, PPCA2, {RA, RS, RB}},
6369{"maskg.", XRC(31,29,1), X_MASK, M601, PPCA2, {RA, RS, RB}},
6370
6371{"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
6372
6373{"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
3d205eb4
PB
6374{"waitrsv", XWCPL(31,30,1,0),0xffffffff, POWER10, 0, {0}},
6375{"pause_short", XWCPL(31,30,2,0),0xffffffff, POWER10, 0, {0}},
6376{"wait", X(31,30), XWCPL_MASK, POWER10, 0, {WC, PL}},
6377{"wait", X(31,30), XWC_MASK, POWER9, POWER10, {WC}},
14b57c7c
AM
6378
6379{"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
6380
6381{"cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
6382{"cmpld", XOPL(31,32,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
a5721ba2 6383{"cmpl", X(31,32), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
bdc70b4a 6384{"cmpl", X(31,32), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
de866fcc 6385
14b57c7c
AM
6386{"lvsr", X(31,38), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
6387{"lvehx", X(31,39), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
6388{"lhfcmx", APU(31,39,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 6389
9cc4ce88
AM
6390{"lxvrhx", X(31,45), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
6391
ac8f0f72 6392{"mviwsplt", X(31,46), X_MASK, E6500, 0, {VD, RA, RB}},
e67ed0e8 6393
14b57c7c 6394{"iselgt", X(31,47), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
de866fcc 6395
14b57c7c 6396{"lvewx", X(31,71), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
de866fcc 6397
14b57c7c 6398{"addg6s", XO(31,74,0,0), XO_MASK, POWER6, 0, {RT, RA, RB}},
066be9f7 6399
14b57c7c 6400{"lxsiwax", X(31,76), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
c0637f3a 6401
9cc4ce88
AM
6402{"lxvrwx", X(31,77), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
6403
14b57c7c 6404{"iseleq", X(31,79), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
de866fcc 6405
14b57c7c 6406{"isel", XISEL(31,15), XISEL_MASK, PPCISEL|TITAN, 0, {RT, RA0, RB, CRB}},
de866fcc 6407
14b57c7c
AM
6408{"subf", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6409{"sub", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RB, RA}},
6410{"subf.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
6411{"sub.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RB, RA}},
de866fcc 6412
14b57c7c
AM
6413{"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
6414{"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
5fbec329 6415{"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
14b57c7c 6416{"eratilx", X(31,51), X_MASK, PPCA2, 0, {ERAT_T, RA, RB}},
e0d602ec 6417
14b57c7c 6418{"lbarx", X(31,52), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
066be9f7 6419
14b57c7c 6420{"ldux", X(31,53), X_MASK, PPC64, 0, {RT, RAL, RB}},
43e65147 6421
14b57c7c 6422{"dcbst", X(31,54), XRT_MASK, PPC, 0, {RA0, RB}},
43e65147 6423
14b57c7c
AM
6424{"lwzux", X(31,55), X_MASK, PPCCOM, 0, {RT, RAL, RB}},
6425{"lux", X(31,55), X_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 6426
14b57c7c
AM
6427{"cntlzd", XRC(31,58,0), XRB_MASK, PPC64, 0, {RA, RS}},
6428{"cntlzd.", XRC(31,58,1), XRB_MASK, PPC64, 0, {RA, RS}},
de866fcc 6429
ec40e91c
AM
6430{"cntlzdm", X(31,59), X_MASK, POWER10, 0, {RA, RS, RB}},
6431
14b57c7c
AM
6432{"andc", XRC(31,60,0), X_MASK, COM, 0, {RA, RS, RB}},
6433{"andc.", XRC(31,60,1), X_MASK, COM, 0, {RA, RS, RB}},
de866fcc 6434
14b57c7c
AM
6435{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
6436{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
6437{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
43e65147 6438
14b57c7c 6439{"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
19a6653c 6440
14b57c7c
AM
6441{"tdlgt", XTO(31,68,TOLGT), XTO_MASK, PPC64, 0, {RA, RB}},
6442{"tdllt", XTO(31,68,TOLLT), XTO_MASK, PPC64, 0, {RA, RB}},
6443{"tdeq", XTO(31,68,TOEQ), XTO_MASK, PPC64, 0, {RA, RB}},
6444{"tdlge", XTO(31,68,TOLGE), XTO_MASK, PPC64, 0, {RA, RB}},
6445{"tdlnl", XTO(31,68,TOLNL), XTO_MASK, PPC64, 0, {RA, RB}},
6446{"tdlle", XTO(31,68,TOLLE), XTO_MASK, PPC64, 0, {RA, RB}},
6447{"tdlng", XTO(31,68,TOLNG), XTO_MASK, PPC64, 0, {RA, RB}},
6448{"tdgt", XTO(31,68,TOGT), XTO_MASK, PPC64, 0, {RA, RB}},
6449{"tdge", XTO(31,68,TOGE), XTO_MASK, PPC64, 0, {RA, RB}},
6450{"tdnl", XTO(31,68,TONL), XTO_MASK, PPC64, 0, {RA, RB}},
6451{"tdlt", XTO(31,68,TOLT), XTO_MASK, PPC64, 0, {RA, RB}},
6452{"tdle", XTO(31,68,TOLE), XTO_MASK, PPC64, 0, {RA, RB}},
6453{"tdng", XTO(31,68,TONG), XTO_MASK, PPC64, 0, {RA, RB}},
6454{"tdne", XTO(31,68,TONE), XTO_MASK, PPC64, 0, {RA, RB}},
6455{"tdu", XTO(31,68,TOU), XTO_MASK, PPC64, 0, {RA, RB}},
6456{"td", X(31,68), X_MASK, PPC64, 0, {TO, RA, RB}},
de866fcc 6457
14b57c7c
AM
6458{"lwfcmx", APU(31,71,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6459{"mulhd", XO(31,73,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6460{"mulhd.", XO(31,73,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 6461
14b57c7c
AM
6462{"mulhw", XO(31,75,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
6463{"mulhw.", XO(31,75,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
de866fcc 6464
8b2742a1 6465{"msgsndu", XRTRA(31,78,0,0), XRTRA_MASK, POWER9, 0, {RB}},
62adc510
AM
6466{"dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
6467{"dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
de866fcc 6468
14b57c7c 6469{"mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, 0, {SR, RS}},
de866fcc 6470
14b57c7c 6471{"mfmsr", X(31,83), XRARB_MASK, COM, 0, {RT}},
43e65147 6472
14b57c7c 6473{"ldarx", X(31,84), XEH_MASK, PPC64, 0, {RT, RA0, RB, EH}},
de866fcc 6474
c7a8dbf9 6475{"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPC476, {RA0, RB}},
3d205eb4
PB
6476{"dcbflp", XOPL2(31,86,3), XRT_MASK, POWER9, PPC476, {RA0, RB}},
6477{"dcbfps", XOPL3(31,86,4), XRT_MASK, POWER10, PPC476, {RA0, RB}},
6478{"dcbstps", XOPL3(31,86,6), XRT_MASK, POWER10, PPC476, {RA0, RB}},
6479{"dcbf", X(31,86), XL3RT_MASK, POWER10, PPC476, {RA0, RB, L3OPT}},
6480{"dcbf", X(31,86), XLRT_MASK, PPC, POWER10, {RA0, RB, L2OPT}},
de866fcc 6481
14b57c7c 6482{"lbzx", X(31,87), X_MASK, COM, 0, {RT, RA0, RB}},
43e65147 6483
14b57c7c 6484{"lbepx", X(31,95), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
de866fcc 6485
14b57c7c 6486{"dni", XRC(31,97,1), XRB_MASK, E6500, 0, {DUI, DCTL}},
aea77599 6487
14b57c7c
AM
6488{"lvx", X(31,103), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
6489{"lqfcmx", APU(31,103,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 6490
14b57c7c
AM
6491{"neg", XO(31,104,0,0), XORB_MASK, COM, 0, {RT, RA}},
6492{"neg.", XO(31,104,0,1), XORB_MASK, COM, 0, {RT, RA}},
de866fcc 6493
14b57c7c
AM
6494{"mul", XO(31,107,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6495{"mul.", XO(31,107,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
de866fcc 6496
9cc4ce88
AM
6497{"lxvrdx", X(31,109), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
6498
8b2742a1 6499{"msgclru", XRTRA(31,110,0,0), XRTRA_MASK, POWER9, 0, {RB}},
ac8f0f72 6500{"mvidsplt", X(31,110), X_MASK, E6500, 0, {VD, RA, RB}},
aea77599 6501
14b57c7c 6502{"mtsrdin", X(31,114), XRA_MASK, PPC64, 0, {RS, RB}},
de866fcc 6503
14b57c7c
AM
6504{"mffprwz", X(31,115), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
6505{"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
6506{"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
c0637f3a 6507
14b57c7c 6508{"lharx", X(31,116), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
066be9f7 6509
14b57c7c 6510{"clf", X(31,118), XTO_MASK, POWER, 0, {RA, RB}},
de866fcc 6511
14b57c7c 6512{"lbzux", X(31,119), X_MASK, COM, 0, {RT, RAL, RB}},
43e65147 6513
14b57c7c 6514{"popcntb", X(31,122), XRB_MASK, POWER5, 0, {RA, RS}},
de866fcc 6515
98553ad3 6516{"not", XRC(31,124,0), X_MASK, COM, 0, {RA, RSB}},
14b57c7c 6517{"nor", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RB}},
98553ad3 6518{"not.", XRC(31,124,1), X_MASK, COM, 0, {RA, RSB}},
14b57c7c 6519{"nor.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RB}},
19a6653c 6520
14b57c7c 6521{"dcbfep", XRT(31,127,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
43e65147 6522
fd486b63 6523{"setb", X(31,128), XRB_MASK|(3<<16), POWER9, 0, {RT, BFA}},
a680de9a 6524
14b57c7c 6525{"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RS}},
43e65147 6526
14b57c7c 6527{"dcbtstls", X(31,134), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
de866fcc 6528
14b57c7c
AM
6529{"stvebx", X(31,135), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6530{"stbfcmx", APU(31,135,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 6531
14b57c7c
AM
6532{"subfe", XO(31,136,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6533{"sfe", XO(31,136,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6534{"subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6535{"sfe.", XO(31,136,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 6536
14b57c7c
AM
6537{"adde", XO(31,138,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6538{"ae", XO(31,138,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6539{"adde.", XO(31,138,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6540{"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
de866fcc 6541
14b57c7c 6542{"stxsiwx", X(31,140), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
c0637f3a 6543
9cc4ce88
AM
6544{"stxvrbx", X(31,141), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
6545
14b57c7c
AM
6546{"msgsndp", XRTRA(31,142,0,0), XRTRA_MASK, POWER8, 0, {RB}},
6547{"dcbtstlse", X(31,142), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
de866fcc 6548
14b57c7c
AM
6549{"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, 0, {RS}},
6550{"mtcrf", XFXM(31,144,0,0), XFXFXM_MASK, COM, 0, {FXM, RS}},
6551{"mtocrf", XFXM(31,144,0,1), XFXFXM_MASK, COM, 0, {FXM, RS}},
de866fcc 6552
14b57c7c 6553{"mtmsr", X(31,146), XRLARB_MASK, COM, 0, {RS, A_L}},
de866fcc 6554
14b57c7c 6555{"mtsle", X(31,147), XRTLRARB_MASK, POWER8, 0, {L}},
c0637f3a 6556
14b57c7c
AM
6557{"eratsx", XRC(31,147,0), X_MASK, PPCA2, 0, {RT, RA0, RB}},
6558{"eratsx.", XRC(31,147,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
e0d602ec 6559
14b57c7c 6560{"stdx", X(31,149), X_MASK, PPC64, 0, {RS, RA0, RB}},
43e65147 6561
14b57c7c 6562{"stwcx.", XRC(31,150,1), X_MASK, PPC, 0, {RS, RA0, RB}},
43e65147 6563
14b57c7c
AM
6564{"stwx", X(31,151), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
6565{"stx", X(31,151), X_MASK, PWRCOM, 0, {RS, RA, RB}},
de866fcc 6566
14b57c7c
AM
6567{"slq", XRC(31,152,0), X_MASK, M601, 0, {RA, RS, RB}},
6568{"slq.", XRC(31,152,1), X_MASK, M601, 0, {RA, RS, RB}},
de866fcc 6569
14b57c7c
AM
6570{"sle", XRC(31,153,0), X_MASK, M601, 0, {RA, RS, RB}},
6571{"sle.", XRC(31,153,1), X_MASK, M601, 0, {RA, RS, RB}},
de866fcc 6572
14b57c7c 6573{"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS}},
de866fcc 6574
3ff0a5ba 6575{"brw", X(31,155), XRB_MASK, POWER10, 0, {RA, RS}},
ec40e91c 6576{"pdepd", X(31,156), X_MASK, POWER10, 0, {RA, RS, RB}},
3ff0a5ba 6577
14b57c7c 6578{"stdepx", X(31,157), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 6579
14b57c7c 6580{"stwepx", X(31,159), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 6581
14b57c7c 6582{"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {E}},
43e65147 6583
14b57c7c 6584{"dcbtls", X(31,166), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
de866fcc 6585
14b57c7c
AM
6586{"stvehx", X(31,167), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6587{"sthfcmx", APU(31,167,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
de866fcc 6588
14b57c7c 6589{"addex", ZRC(31,170,0), Z2_MASK, POWER9, 0, {RT, RA, RB, CY}},
19dfcc89 6590
9cc4ce88
AM
6591{"stxvrhx", X(31,173), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
6592
14b57c7c
AM
6593{"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, 0, {RB}},
6594{"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
de866fcc 6595
aa3c112f
AM
6596{"xxmfacc", XVA(31,177,0), XRARB_MASK|3<<21, POWER10, 0, {ACC}},
6597{"xxmtacc", XVA(31,177,1), XRARB_MASK|3<<21, POWER10, 0, {ACC}},
6598{"xxsetaccz", XVA(31,177,3), XRARB_MASK|3<<21, POWER10, 0, {ACC}},
6599
14b57c7c 6600{"mtmsrd", X(31,178), XRLARB_MASK, PPC64, 0, {RS, A_L}},
de866fcc 6601
14b57c7c
AM
6602{"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
6603{"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
5fbec329 6604{"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
14b57c7c 6605{"eratre", X(31,179), X_MASK, PPCA2, 0, {RT, RA, WS}},
e0d602ec 6606
14b57c7c 6607{"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}},
de866fcc 6608
73f07bff 6609{"stqcx.", XRC(31,182,1), X_MASK|Q_MASK, POWER8, 0, {RSQ, RA0, RB}},
14b57c7c 6610{"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}},
e0d602ec 6611
14b57c7c
AM
6612{"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}},
6613{"stux", X(31,183), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
de866fcc 6614
14b57c7c
AM
6615{"sliq", XRC(31,184,0), X_MASK, M601, 0, {RA, RS, SH}},
6616{"sliq.", XRC(31,184,1), X_MASK, M601, 0, {RA, RS, SH}},
de866fcc 6617
14b57c7c 6618{"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, 0, {RA, RS}},
252b5132 6619
3ff0a5ba 6620{"brd", X(31,187), XRB_MASK, POWER10, 0, {RA, RS}},
ec40e91c 6621{"pextd", X(31,188), X_MASK, POWER10, 0, {RA, RS, RB}},
3ff0a5ba 6622
14b57c7c 6623{"cmprb", X(31,192), XCMP_MASK, POWER9, 0, {BF, L, RA, RB}},
a680de9a 6624
14b57c7c 6625{"icblq.", XRC(31,198,1), X_MASK, E6500, 0, {CT, RA0, RB}},
aea77599 6626
14b57c7c
AM
6627{"stvewx", X(31,199), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6628{"stwfcmx", APU(31,199,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 6629
14b57c7c
AM
6630{"subfze", XO(31,200,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6631{"sfze", XO(31,200,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6632{"subfze.", XO(31,200,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6633{"sfze.", XO(31,200,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 6634
14b57c7c
AM
6635{"addze", XO(31,202,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6636{"aze", XO(31,202,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6637{"addze.", XO(31,202,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6638{"aze.", XO(31,202,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 6639
9cc4ce88
AM
6640{"stxvrwx", X(31,205), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
6641
14b57c7c 6642{"msgsnd", XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
19a6653c 6643
14b57c7c 6644{"mtsr", X(31,210), XRB_MASK|(1<<20), COM, NON32, {SR, RS}},
418c1742 6645
14b57c7c
AM
6646{"mtfprwa", X(31,211), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
6647{"mtvrwa", X(31,211)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
6648{"mtvsrwa", X(31,211), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
6649{"eratwe", X(31,211), X_MASK, PPCA2, 0, {RS, RA, WS}},
e0d602ec 6650
14b57c7c 6651{"ldawx.", XRC(31,212,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
e0d602ec 6652
14b57c7c 6653{"stdcx.", XRC(31,214,1), X_MASK, PPC64, 0, {RS, RA0, RB}},
43e65147 6654
14b57c7c 6655{"stbx", X(31,215), X_MASK, COM, 0, {RS, RA0, RB}},
252b5132 6656
14b57c7c
AM
6657{"sllq", XRC(31,216,0), X_MASK, M601, 0, {RA, RS, RB}},
6658{"sllq.", XRC(31,216,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6659
14b57c7c
AM
6660{"sleq", XRC(31,217,0), X_MASK, M601, 0, {RA, RS, RB}},
6661{"sleq.", XRC(31,217,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 6662
3ff0a5ba 6663{"brh", X(31,219), XRB_MASK, POWER10, 0, {RA, RS}},
ec40e91c 6664{"cfuged", X(31,220), X_MASK, POWER10, 0, {RA, RS, RB}},
3ff0a5ba 6665
14b57c7c 6666{"stbepx", X(31,223), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
43e65147 6667
14b57c7c 6668{"cmpeqb", X(31,224), XCMPL_MASK, POWER9, 0, {BF, RA, RB}},
a680de9a 6669
14b57c7c 6670{"icblc", X(31,230), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
7d5b217e 6671
14b57c7c
AM
6672{"stvx", X(31,231), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
6673{"stqfcmx", APU(31,231,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
f509565f 6674
14b57c7c
AM
6675{"subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6676{"sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6677{"subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6678{"sfme.", XO(31,232,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 6679
14b57c7c
AM
6680{"mulld", XO(31,233,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
6681{"mulld.", XO(31,233,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 6682
14b57c7c
AM
6683{"addme", XO(31,234,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
6684{"ame", XO(31,234,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
6685{"addme.", XO(31,234,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
6686{"ame.", XO(31,234,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 6687
14b57c7c
AM
6688{"mullw", XO(31,235,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6689{"muls", XO(31,235,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6690{"mullw.", XO(31,235,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6691{"muls.", XO(31,235,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 6692
9cc4ce88
AM
6693{"stxvrdx", X(31,237), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
6694
14b57c7c
AM
6695{"icblce", X(31,238), X_MASK, PPCCHLK, E500MC|PPCA2, {CT, RA, RB}},
6696{"msgclr", XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
6697{"mtsrin", X(31,242), XRA_MASK, PPC, NON32, {RS, RB}},
bdc70b4a 6698{"mtsri", X(31,242), XRA_MASK, POWER, NON32, {RS, RB}},
418c1742 6699
14b57c7c
AM
6700{"mtfprwz", X(31,243), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
6701{"mtvrwz", X(31,243)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
6702{"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
c0637f3a 6703
14b57c7c 6704{"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
97bf40d8
AM
6705{"dcbtstct", X(31,246), X_MASK, POWER4, 0, {RA0, RB, THCT}},
6706{"dcbtstds", X(31,246), X_MASK, POWER4, 0, {RA0, RB, THDS}},
14b57c7c
AM
6707{"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
6708{"dcbtst", X(31,246), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
6709{"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
4fff86c5 6710
14b57c7c 6711{"stbux", X(31,247), X_MASK, COM, 0, {RS, RAS, RB}},
252b5132 6712
14b57c7c
AM
6713{"slliq", XRC(31,248,0), X_MASK, M601, 0, {RA, RS, SH}},
6714{"slliq.", XRC(31,248,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 6715
14b57c7c 6716{"bpermd", X(31,252), X_MASK, POWER7|PPCA2, 0, {RA, RS, RB}},
066be9f7 6717
14b57c7c 6718{"dcbtstep", XRT(31,255,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
19a6653c 6719
14b57c7c
AM
6720{"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RS, RA}},
6721{"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, 0, {RS, RA}},
252b5132 6722
ac8f0f72 6723{"lvexbx", X(31,261), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6724
14b57c7c 6725{"icbt", X(31,262), XRT_MASK, PPC403, 0, {RA, RB}},
1ed8e1e4 6726
ac8f0f72 6727{"lvepxl", X(31,263), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6728
14b57c7c
AM
6729{"ldfcmx", APU(31,263,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
6730{"doz", XO(31,264,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6731{"doz.", XO(31,264,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 6732
14b57c7c 6733{"modud", X(31,265), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 6734
14b57c7c
AM
6735{"add", XO(31,266,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6736{"cax", XO(31,266,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
6737{"add.", XO(31,266,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
6738{"cax.", XO(31,266,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
418c1742 6739
14b57c7c 6740{"moduw", X(31,267), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 6741
14b57c7c
AM
6742{"lxvx", X(31,268), XX1_MASK|1<<6, PPCVSX3, 0, {XT6, RA0, RB}},
6743{"lxvl", X(31,269), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 6744
14b57c7c 6745{"ehpriv", X(31,270), 0xffffffff, E500MC|PPCA2, 0, {0}},
19a6653c 6746
62adc510 6747{"tlbiel", X(31,274), X_MASK|1<<20,POWER9, 0, {RB, RSO, RIC, PRS, X_R}},
a5721ba2 6748{"tlbiel", X(31,274), XRTLRA_MASK, POWER4, POWER9|PPC476, {RB, LOPT}},
418c1742 6749
14b57c7c 6750{"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}},
1cb0a767 6751
73f07bff 6752{"lqarx", X(31,276), XEH_MASK|Q_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
c0637f3a 6753
14b57c7c
AM
6754{"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}},
6755{"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}},
1cb0a767 6756
14b57c7c 6757{"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
97bf40d8
AM
6758{"dcbna", XRT(31,278,0x11), XRT_MASK, POWER10, 0, {RA0, RB}},
6759{"dcbtct", X(31,278), X_MASK, POWER4, 0, {RA0, RB, THCT}},
6760{"dcbtds", X(31,278), X_MASK, POWER4, 0, {RA0, RB, THDS}},
14b57c7c
AM
6761{"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
6762{"dcbt", X(31,278), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
6763{"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
4fff86c5 6764
14b57c7c 6765{"lhzx", X(31,279), X_MASK, COM, 0, {RT, RA0, RB}},
1cb0a767 6766
14b57c7c 6767{"cdtbcd", X(31,282), XRB_MASK, POWER6, 0, {RA, RS}},
066be9f7 6768
14b57c7c
AM
6769{"eqv", XRC(31,284,0), X_MASK, COM, 0, {RA, RS, RB}},
6770{"eqv.", XRC(31,284,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 6771
14b57c7c 6772{"lhepx", X(31,287), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
1cb0a767 6773
62adc510 6774{"mfdcrux", X(31,291), X_MASK, PPC464|PPC476, 0, {RS, RA}},
1cb0a767 6775
ac8f0f72
AM
6776{"lvexhx", X(31,293), X_MASK, E6500, 0, {VD, RA0, RB}},
6777{"lvepx", X(31,295), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6778
14b57c7c 6779{"lxvll", X(31,301), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 6780
14b57c7c 6781{"mfbhrbe", X(31,302), X_MASK, POWER8, 0, {RT, BHRBE}},
c0637f3a 6782
14b57c7c
AM
6783{"tlbie", X(31,306), X_MASK|1<<20,POWER9, TITAN, {RB, RS, RIC, PRS, X_R}},
6784{"tlbie", X(31,306), XRA_MASK, POWER7, POWER9|TITAN, {RB, RS}},
a5721ba2 6785{"tlbie", X(31,306), XRTLRA_MASK, PPC, E500|POWER7|TITAN, {RB, LOPT}},
14b57c7c 6786{"tlbi", X(31,306), XRT_MASK, POWER, 0, {RA0, RB}},
1cb0a767 6787
14b57c7c 6788{"mfvsrld", X(31,307), XX1RB_MASK, PPCVSX3, 0, {RA, XS6}},
a680de9a 6789
14b57c7c 6790{"eciwx", X(31,310), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
1cb0a767 6791
14b57c7c 6792{"lhzux", X(31,311), X_MASK, COM, 0, {RT, RAL, RB}},
1cb0a767 6793
14b57c7c 6794{"cbcdtd", X(31,314), XRB_MASK, POWER6, 0, {RA, RS}},
066be9f7 6795
14b57c7c
AM
6796{"xor", XRC(31,316,0), X_MASK, COM, 0, {RA, RS, RB}},
6797{"xor.", XRC(31,316,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 6798
14b57c7c 6799{"dcbtep", XRT(31,319,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
1cb0a767 6800
14b57c7c
AM
6801{"mfexisr", XSPR(31,323, 64), XSPR_MASK, PPC403, 0, {RT}},
6802{"mfexier", XSPR(31,323, 66), XSPR_MASK, PPC403, 0, {RT}},
6803{"mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, 0, {RT}},
6804{"mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, 0, {RT}},
6805{"mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, 0, {RT}},
6806{"mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, 0, {RT}},
6807{"mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, 0, {RT}},
6808{"mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, 0, {RT}},
6809{"mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, 0, {RT}},
6810{"mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, 0, {RT}},
6811{"mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, 0, {RT}},
6812{"mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, 0, {RT}},
6813{"mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, 0, {RT}},
6814{"mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, 0, {RT}},
6815{"mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, 0, {RT}},
6816{"mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, 0, {RT}},
6817{"mfdmasa0", XSPR(31,323,195), XSPR_MASK, PPC403, 0, {RT}},
6818{"mfdmacc0", XSPR(31,323,196), XSPR_MASK, PPC403, 0, {RT}},
6819{"mfdmacr1", XSPR(31,323,200), XSPR_MASK, PPC403, 0, {RT}},
6820{"mfdmact1", XSPR(31,323,201), XSPR_MASK, PPC403, 0, {RT}},
6821{"mfdmada1", XSPR(31,323,202), XSPR_MASK, PPC403, 0, {RT}},
6822{"mfdmasa1", XSPR(31,323,203), XSPR_MASK, PPC403, 0, {RT}},
6823{"mfdmacc1", XSPR(31,323,204), XSPR_MASK, PPC403, 0, {RT}},
6824{"mfdmacr2", XSPR(31,323,208), XSPR_MASK, PPC403, 0, {RT}},
6825{"mfdmact2", XSPR(31,323,209), XSPR_MASK, PPC403, 0, {RT}},
6826{"mfdmada2", XSPR(31,323,210), XSPR_MASK, PPC403, 0, {RT}},
6827{"mfdmasa2", XSPR(31,323,211), XSPR_MASK, PPC403, 0, {RT}},
6828{"mfdmacc2", XSPR(31,323,212), XSPR_MASK, PPC403, 0, {RT}},
6829{"mfdmacr3", XSPR(31,323,216), XSPR_MASK, PPC403, 0, {RT}},
6830{"mfdmact3", XSPR(31,323,217), XSPR_MASK, PPC403, 0, {RT}},
6831{"mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, 0, {RT}},
6832{"mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, 0, {RT}},
6833{"mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, 0, {RT}},
6834{"mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, 0, {RT}},
6835{"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}},
6836{"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, 0, {RT, SPR}},
1cb0a767 6837
ac8f0f72 6838{"lvexwx", X(31,325), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 6839
14b57c7c 6840{"dcread", X(31,326), X_MASK, PPC476|TITAN, 0, {RT, RA0, RB}},
9fe54b1c 6841
14b57c7c
AM
6842{"div", XO(31,331,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
6843{"div.", XO(31,331,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
1cb0a767 6844
14b57c7c 6845{"lxvdsx", X(31,332), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
066be9f7 6846
94ba9882
AM
6847{"lxvpx", X(31,333), XX1_MASK, POWER10, 0, {XTP, RA0, RB}},
6848
14b57c7c 6849{"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, 0, {RT, PMR}},
c03dc33b 6850{"mftmr", X(31,366), X_MASK, PPCTMR, 0, {RT, TMR}},
1cb0a767 6851
14b57c7c
AM
6852{"slbsync", X(31,338), 0xffffffff, POWER9, 0, {0}},
6853
6854{"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, 0, {RT}},
6855{"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, 0, {RT}},
3eb65174 6856{"mfudscr", XSPR(31,339, 3), XSPR_MASK, POWER9, 0, {RS}},
14b57c7c
AM
6857{"mfrtcu", XSPR(31,339, 4), XSPR_MASK, COM, TITAN, {RT}},
6858{"mfrtcl", XSPR(31,339, 5), XSPR_MASK, COM, TITAN, {RT}},
6859{"mfdec", XSPR(31,339, 6), XSPR_MASK, MFDEC1, 0, {RT}},
6860{"mflr", XSPR(31,339, 8), XSPR_MASK, COM, 0, {RT}},
6861{"mfctr", XSPR(31,339, 9), XSPR_MASK, COM, 0, {RT}},
3eb65174 6862{"mfuamr", XSPR(31,339, 13), XSPR_MASK, POWER9, 0, {RS}},
14b57c7c
AM
6863{"mfdscr", XSPR(31,339, 17), XSPR_MASK, POWER6, 0, {RT}},
6864{"mftid", XSPR(31,339, 17), XSPR_MASK, POWER, 0, {RT}},
6865{"mfdsisr", XSPR(31,339, 18), XSPR_MASK, COM, TITAN, {RT}},
6866{"mfdar", XSPR(31,339, 19), XSPR_MASK, COM, TITAN, {RT}},
bdc70b4a 6867{"mfdec", XSPR(31,339, 22), XSPR_MASK, MFDEC2, MFDEC1, {RT}},
14b57c7c
AM
6868{"mfsdr0", XSPR(31,339, 24), XSPR_MASK, POWER, 0, {RT}},
6869{"mfsdr1", XSPR(31,339, 25), XSPR_MASK, COM, TITAN, {RT}},
6870{"mfsrr0", XSPR(31,339, 26), XSPR_MASK, COM, 0, {RT}},
6871{"mfsrr1", XSPR(31,339, 27), XSPR_MASK, COM, 0, {RT}},
6872{"mfcfar", XSPR(31,339, 28), XSPR_MASK, POWER6, 0, {RT}},
3eb65174
AM
6873{"mfamr", XSPR(31,339, 29), XSPR_MASK, POWER7, 0, {RS}},
6874{"mfpidr", XSPR(31,339, 48), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
6875{"mfpid", XSPR(31,339, 48), XSPR_MASK, BOOKE, 0, {RT}},
6876{"mfcsrr0", XSPR(31,339, 58), XSPR_MASK, BOOKE, 0, {RT}},
6877{"mfcsrr1", XSPR(31,339, 59), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6878{"mfiamr", XSPR(31,339, 61), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
6879{"mfdear", XSPR(31,339, 61), XSPR_MASK, BOOKE, 0, {RT}},
6880{"mfesr", XSPR(31,339, 62), XSPR_MASK, BOOKE, 0, {RT}},
6881{"mfivpr", XSPR(31,339, 63), XSPR_MASK, BOOKE, 0, {RT}},
6882{"mfctrl", XSPR(31,339,136), XSPR_MASK, POWER4, 0, {RT}},
6883{"mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, 0, {RT}},
6884{"mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, 0, {RT}},
6885{"mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, 0, {RT}},
6886{"mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, 0, {RT}},
6887{"mficr", XSPR(31,339,148), XSPR_MASK, PPC860, 0, {RT}},
6888{"mfder", XSPR(31,339,149), XSPR_MASK, PPC860, 0, {RT}},
6889{"mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, 0, {RT}},
6890{"mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, 0, {RT}},
6891{"mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, 0, {RT}},
3eb65174 6892{"mffscr", XSPR(31,339,153), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
6893{"mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, 0, {RT}},
6894{"mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, 0, {RT}},
6895{"mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, 0, {RT}},
6896{"mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, 0, {RT}},
3eb65174 6897{"mfuamor", XSPR(31,339,157), XSPR_MASK, POWER7, 0, {RS}},
14b57c7c
AM
6898{"mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, 0, {RT}},
6899{"mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, 0, {RT}},
3eb65174 6900{"mfpspb", XSPR(31,339,159), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 6901{"mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, 0, {RT}},
3eb65174
AM
6902{"mfdpdes", XSPR(31,339,176), XSPR_MASK, POWER10, 0, {RS}},
6903{"mfdawr0", XSPR(31,339,180), XSPR_MASK, POWER10, 0, {RS}},
6904{"mfdawr1", XSPR(31,339,181), XSPR_MASK, POWER10, 0, {RS}},
6905{"mfrpr", XSPR(31,339,186), XSPR_MASK, POWER10, 0, {RS}},
6906{"mfciabr", XSPR(31,339,187), XSPR_MASK, POWER10, 0, {RS}},
6907{"mfdawrx0", XSPR(31,339,188), XSPR_MASK, POWER10, 0, {RS}},
6908{"mfdawrx1", XSPR(31,339,189), XSPR_MASK, POWER10, 0, {RS}},
6909{"mfhfscr", XSPR(31,339,190), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
6910{"mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, 0, {RT}},
6911{"mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, 0, {RT}},
6912{"mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, 0, {RT, SPRG}},
3eb65174 6913{"mfusprg3", XSPR(31,339,259), XSPR_MASK, POWER10, 0, {RT}},
14b57c7c
AM
6914{"mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6915{"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6916{"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6917{"mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
6918{"mftbu", XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
6919{"mftb", X(31,339), X_MASK, POWER4|BOOKE, 0, {RT, TBR}},
6920{"mftbl", XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
6921{"mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, 0, {RT}},
6922{"mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, 0, {RT}},
6923{"mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, 0, {RT}},
6924{"mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, 0, {RT}},
6925{"mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, 0, {RT}},
6926{"mfear", XSPR(31,339,282), XSPR_MASK, PPC, TITAN, {RT}},
6927{"mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, 0, {RT}},
6928{"mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, 0, {RT}},
3eb65174 6929{"mfhsprg0", XSPR(31,339,304), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 6930{"mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174
AM
6931{"mfhsprg1", XSPR(31,339,305), XSPR_MASK, POWER10, 0, {RS}},
6932{"mfhdisr", XSPR(31,339,306), XSPR_MASK, POWER10, 0, {RS}},
6933{"mfhdar", XSPR(31,339,307), XSPR_MASK, POWER10, 0, {RS}},
6934{"mfspurr", XSPR(31,339,308), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 6935{"mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6936{"mfpurr", XSPR(31,339,309), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 6937{"mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6938{"mfhdec", XSPR(31,339,310), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
6939{"mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, 0, {RT}},
6940{"mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6941{"mfhrmor", XSPR(31,339,313), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 6942{"mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6943{"mfhsrr0", XSPR(31,339,314), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 6944{"mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6945{"mfhsrr1", XSPR(31,339,315), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
6946{"mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, 0, {RT}},
6947{"mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, 0, {RT}},
6948{"mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6949{"mflpcr", XSPR(31,339,318), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 6950{"mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6951{"mflpidr", XSPR(31,339,319), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 6952{"mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6953{"mfhmer", XSPR(31,339,336), XSPR_MASK, POWER7, 0, {RS}},
14b57c7c 6954{"mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174
AM
6955{"mfhmeer", XSPR(31,339,337), XSPR_MASK, POWER7, 0, {RS}},
6956{"mfpcr", XSPR(31,339,338), XSPR_MASK, POWER10, 0, {RS}},
6957{"mfheir", XSPR(31,339,339), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 6958{"mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174 6959{"mfamor", XSPR(31,339,349), XSPR_MASK, POWER7, 0, {RS}},
14b57c7c
AM
6960{"mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, 0, {RT}},
6961{"mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, 0, {RT}},
6962{"mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, 0, {RT}},
6963{"mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, 0, {RT}},
6964{"mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, 0, {RT}},
6965{"mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, 0, {RT}},
6966{"mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, 0, {RT}},
6967{"mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, 0, {RT}},
6968{"mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, 0, {RT}},
6969{"mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, 0, {RT}},
6970{"mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, 0, {RT}},
6971{"mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, 0, {RT}},
6972{"mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, 0, {RT}},
6973{"mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, 0, {RT}},
6974{"mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, 0, {RT}},
6975{"mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, 0, {RT}},
3eb65174
AM
6976{"mftir", XSPR(31,339,446), XSPR_MASK, POWER10, 0, {RS}},
6977{"mfptcr", XSPR(31,339,464), XSPR_MASK, POWER10, 0, {RS}},
ce7d813a
AM
6978{"mfusprg0", XSPR(31,339,496), XSPR_MASK, POWER10, 0, {RS}},
6979{"mfusprg1", XSPR(31,339,497), XSPR_MASK, POWER10, 0, {RS}},
3eb65174
AM
6980{"mfurmor", XSPR(31,339,505), XSPR_MASK, POWER10, 0, {RS}},
6981{"mfusrr0", XSPR(31,339,506), XSPR_MASK, POWER10, 0, {RS}},
6982{"mfusrr1", XSPR(31,339,507), XSPR_MASK, POWER10, 0, {RS}},
6983{"mfsmfctrl", XSPR(31,339,511), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
6984{"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, 0, {RT}},
6985{"mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, 0, {RT}},
6986{"mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, 0, {RT}},
4b94dd2d
AM
6987{"mfivor32", XSPR(31,339,528), XSPR_MASK, PPCSPE|E6500, 0, {RT}},
6988{"mfivor33", XSPR(31,339,529), XSPR_MASK, PPCSPE|E6500, 0, {RT}},
14b57c7c
AM
6989{"mfivor34", XSPR(31,339,530), XSPR_MASK, PPCSPE, 0, {RT}},
6990{"mfivor35", XSPR(31,339,531), XSPR_MASK, PPCPMR, 0, {RT}},
4b94dd2d
AM
6991{"mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6992{"mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
14b57c7c
AM
6993{"mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6994{"mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
6995{"mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, 0, {RT}},
6996{"mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, 0, {RT}},
6997{"mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, 0, {RT}},
6998{"mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, 0, {RT}},
6999{"mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, 0, {RT}},
7000{"mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, 0, {RT}},
7001{"mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, 0, {RT}},
7002{"mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, 0, {RT}},
7003{"mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, 0, {RT}},
7004{"mfmcar", XSPR(31,339,573), XSPR_MASK, PPCRFMCI, TITAN, {RT}},
7005{"mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, 0, {RT}},
7006{"mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, 0, {RT}},
7007{"mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, 0, {RT}},
3eb65174
AM
7008{"mfusier2", XSPR(31,339,736), XSPR_MASK, POWER10, 0, {RT}},
7009{"mfsier2", XSPR(31,339,736), XSPR_MASK, POWER10, 0, {RT}},
7010{"mfusier3", XSPR(31,339,737), XSPR_MASK, POWER10, 0, {RT}},
7011{"mfsier3", XSPR(31,339,737), XSPR_MASK, POWER10, 0, {RT}},
7012{"mfummcr3", XSPR(31,339,738), XSPR_MASK, POWER10, 0, {RT}},
7013{"mfmmcr3", XSPR(31,339,738), XSPR_MASK, POWER10, 0, {RT}},
7014{"mfusier", XSPR(31,339,768), XSPR_MASK, POWER10, 0, {RT}},
7015{"mfsier", XSPR(31,339,768), XSPR_MASK, POWER10, 0, {RT}},
1cb108e4
AM
7016{"mfummcr2", XSPR(31,339,769), XSPR_MASK, POWER9, 0, {RT}},
7017{"mfmmcr2", XSPR(31,339,769), XSPR_MASK, POWER9, 0, {RT}},
3eb65174
AM
7018{"mfummcra", XSPR(31,339,770), XSPR_MASK, POWER9, 0, {RS}},
7019{"mfmmcra", XSPR(31,339,770), XSPR_MASK, POWER7, 0, {RS}},
bb71536f 7020{"mfupmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}},
3eb65174 7021{"mfpmc1", XSPR(31,339,771), XSPR_MASK, POWER7, 0, {RT}},
bb71536f 7022{"mfupmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}},
3eb65174 7023{"mfpmc2", XSPR(31,339,772), XSPR_MASK, POWER7, 0, {RT}},
bb71536f 7024{"mfupmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}},
3eb65174 7025{"mfpmc3", XSPR(31,339,773), XSPR_MASK, POWER7, 0, {RT}},
bb71536f 7026{"mfupmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}},
3eb65174 7027{"mfpmc4", XSPR(31,339,774), XSPR_MASK, POWER7, 0, {RT}},
bb71536f 7028{"mfupmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}},
3eb65174 7029{"mfpmc5", XSPR(31,339,775), XSPR_MASK, POWER7, 0, {RT}},
bb71536f 7030{"mfupmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}},
3eb65174
AM
7031{"mfpmc6", XSPR(31,339,776), XSPR_MASK, POWER7, 0, {RT}},
7032{"mfummcr0", XSPR(31,339,779), XSPR_MASK, POWER9, 0, {RS}},
7033{"mfmmcr0", XSPR(31,339,779), XSPR_MASK, POWER7, 0, {RS}},
7034{"mfusiar", XSPR(31,339,780), XSPR_MASK, POWER9, 0, {RS}},
7035{"mfsiar", XSPR(31,339,780), XSPR_MASK, POWER9, 0, {RS}},
7036{"mfusdar", XSPR(31,339,781), XSPR_MASK, POWER9, 0, {RS}},
7037{"mfsdar", XSPR(31,339,781), XSPR_MASK, POWER9, 0, {RS}},
7038{"mfummcr1", XSPR(31,339,782), XSPR_MASK, POWER9, 0, {RS}},
7039{"mfmmcr1", XSPR(31,339,782), XSPR_MASK, POWER7, 0, {RS}},
14b57c7c
AM
7040{"mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, 0, {RT}},
7041{"mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, 0, {RT}},
7042{"mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, 0, {RT}},
7043{"mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, 0, {RT}},
7044{"mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, 0, {RT}},
7045{"mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, 0, {RT}},
7046{"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, 0, {RT}},
7047{"mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, 0, {RT}},
7048{"mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, 0, {RT}},
7049{"mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, 0, {RT}},
7050{"mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, 0, {RT}},
7051{"mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, 0, {RT}},
7052{"mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, 0, {RT}},
3eb65174
AM
7053{"mfbescrs", XSPR(31,339,800), XSPR_MASK, POWER9, 0, {RS}},
7054{"mfbescrsu", XSPR(31,339,801), XSPR_MASK, POWER9, 0, {RS}},
7055{"mfbescrr", XSPR(31,339,802), XSPR_MASK, POWER9, 0, {RS}},
7056{"mfbescrru", XSPR(31,339,803), XSPR_MASK, POWER9, 0, {RS}},
7057{"mfebbhr", XSPR(31,339,804), XSPR_MASK, POWER9, 0, {RS}},
7058{"mfebbrr", XSPR(31,339,805), XSPR_MASK, POWER9, 0, {RS}},
7059{"mfbescr", XSPR(31,339,806), XSPR_MASK, POWER9, 0, {RS}},
7060{"mftar", XSPR(31,339,815), XSPR_MASK, POWER9, 0, {RS}},
7061{"mfasdr", XSPR(31,339,816), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7062{"mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, 0, {RT}},
7063{"mfmi_dbram0", XSPR(31,339,817), XSPR_MASK, PPC860, 0, {RT}},
7064{"mfmi_dbram1", XSPR(31,339,818), XSPR_MASK, PPC860, 0, {RT}},
3eb65174 7065{"mfpsscr", XSPR(31,339,823), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7066{"mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, 0, {RT}},
7067{"mfmd_dbram0", XSPR(31,339,825), XSPR_MASK, PPC860, 0, {RT}},
7068{"mfmd_dbram1", XSPR(31,339,826), XSPR_MASK, PPC860, 0, {RT}},
3eb65174
AM
7069{"mfic", XSPR(31,339,848), XSPR_MASK, POWER8, 0, {RS}},
7070{"mfvtb", XSPR(31,339,849), XSPR_MASK, POWER8, 0, {RS}},
7071{"mfhpsscr", XSPR(31,339,855), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7072{"mfivndx", XSPR(31,339,880), XSPR_MASK, TITAN, 0, {RT}},
7073{"mfdvndx", XSPR(31,339,881), XSPR_MASK, TITAN, 0, {RT}},
7074{"mfivlim", XSPR(31,339,882), XSPR_MASK, TITAN, 0, {RT}},
7075{"mfdvlim", XSPR(31,339,883), XSPR_MASK, TITAN, 0, {RT}},
7076{"mfclcsr", XSPR(31,339,884), XSPR_MASK, TITAN, 0, {RT}},
7077{"mfccr1", XSPR(31,339,888), XSPR_MASK, TITAN, 0, {RT}},
7078{"mfppr", XSPR(31,339,896), XSPR_MASK, POWER7, 0, {RT}},
7079{"mfppr32", XSPR(31,339,898), XSPR_MASK, POWER7, 0, {RT}},
fa758a70
AC
7080{"mfgqr", XSPR(31,339,912), XSPRGQR_MASK, PPCPS, 0, {RT, SPRGQR}},
7081{"mfhid2", XSPR(31,339,920), XSPR_MASK, GEKKO, 0, {RT}},
7082{"mfwpar", XSPR(31,339,921), XSPR_MASK, GEKKO, 0, {RT}},
7083{"mfdmau", XSPR(31,339,922), XSPR_MASK, GEKKO, 0, {RT}},
7084{"mfdmal", XSPR(31,339,923), XSPR_MASK, GEKKO, 0, {RT}},
14b57c7c
AM
7085{"mfrstcfg", XSPR(31,339,923), XSPR_MASK, TITAN, 0, {RT}},
7086{"mfdcdbtrl", XSPR(31,339,924), XSPR_MASK, TITAN, 0, {RT}},
7087{"mfdcdbtrh", XSPR(31,339,925), XSPR_MASK, TITAN, 0, {RT}},
7088{"mficdbtr", XSPR(31,339,927), XSPR_MASK, TITAN, 0, {RT}},
7089{"mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, 0, {RT}},
7090{"mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, 0, {RT}},
7091{"mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, 0, {RT}},
7092{"mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, 0, {RT}},
7093{"mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, 0, {RT}},
7094{"mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, 0, {RT}},
7095{"mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, 0, {RT}},
7096{"mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, 0, {RT}},
7097{"mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, 0, {RT}},
7098{"mfmmucr", XSPR(31,339,946), XSPR_MASK, TITAN, 0, {RT}},
7099{"mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, 0, {RT}},
7100{"mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, 0, {RT}},
7101{"mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, 0, {RT}},
7102{"mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, 0, {RT}},
7103{"mfdvc2", XSPR(31,339,951), XSPR_MASK, PPC405, 0, {RT}},
7104{"mfmmcr0", XSPR(31,339,952), XSPR_MASK, PPC750, 0, {RT}},
7105{"mfpmc1", XSPR(31,339,953), XSPR_MASK, PPC750, 0, {RT}},
7106{"mfsgr", XSPR(31,339,953), XSPR_MASK, PPC403, 0, {RT}},
7107{"mfdcwr", XSPR(31,339,954), XSPR_MASK, PPC403, 0, {RT}},
7108{"mfpmc2", XSPR(31,339,954), XSPR_MASK, PPC750, 0, {RT}},
7109{"mfsia", XSPR(31,339,955), XSPR_MASK, PPC750, 0, {RT}},
7110{"mfsler", XSPR(31,339,955), XSPR_MASK, PPC405, 0, {RT}},
7111{"mfmmcr1", XSPR(31,339,956), XSPR_MASK, PPC750, 0, {RT}},
7112{"mfsu0r", XSPR(31,339,956), XSPR_MASK, PPC405, 0, {RT}},
7113{"mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, 0, {RT}},
7114{"mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, 0, {RT}},
7115{"mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, 0, {RT}},
7116{"mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, 0, {RT}},
7117{"mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, 0, {RT}},
7118{"mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, 0, {RT}},
7119{"mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, 0, {RT}},
7120{"mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, 0, {RT}},
7121{"mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, 0, {RT}},
7122{"mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, 0, {RT}},
7123{"mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, 0, {RT}},
7124{"mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, 0, {RT}},
7125{"mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, 0, {RT}},
7126{"mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, 0, {RT}},
7127{"mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, 0, {RT}},
7128{"mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, 0, {RT}},
fa758a70
AC
7129{"mfhid0", XSPR(31,339,1008), XSPR_MASK, GEKKO, 0, {RT}},
7130{"mfhid1", XSPR(31,339,1009), XSPR_MASK, GEKKO, 0, {RT}},
14b57c7c 7131{"mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, 0, {RT}},
fa758a70
AC
7132{"mfiabr", XSPR(31,339,1010), XSPR_MASK, GEKKO, 0, {RT}},
7133{"mfhid4", XSPR(31,339,1011), XSPR_MASK, BROADWAY, 0, {RT}},
14b57c7c
AM
7134{"mfdbdr", XSPR(31,339,1011), XSPR_MASK, TITAN, 0, {RS}},
7135{"mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, 0, {RT}},
7136{"mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, 0, {RT}},
fa758a70 7137{"mfdabr", XSPR(31,339,1013), XSPR_MASK, PPC750, 0, {RT}},
14b57c7c
AM
7138{"mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, 0, {RT}},
7139{"mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, 0, {RT}},
7140{"mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, 0, {RT}},
7141{"mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, 0, {RT}},
7142{"mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, 0, {RT}},
7143{"mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, 0, {RT}},
7144{"mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, 0, {RT}},
7145{"mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, 0, {RT}},
7146{"mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, 0, {RT}},
7147{"mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, 0, {RT}},
7148{"mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, 0, {RT}},
7149{"mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, 0, {RT}},
ce7d813a 7150{"mfpir", XSPR(31,339,1023), XSPR_MASK, POWER10, 0, {RT}},
14b57c7c
AM
7151{"mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, 0, {RT}},
7152{"mfspr", X(31,339), X_MASK, COM, 0, {RT, SPR}},
7153
7154{"lwax", X(31,341), X_MASK, PPC64, 0, {RT, RA0, RB}},
7155
7156{"dst", XDSS(31,342,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
7157
7158{"lhax", X(31,343), X_MASK, COM, 0, {RT, RA0, RB}},
7159
7160{"lvxl", X(31,359), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
7161
7162{"abs", XO(31,360,0,0), XORB_MASK, M601, 0, {RT, RA}},
7163{"abs.", XO(31,360,0,1), XORB_MASK, M601, 0, {RT, RA}},
7164
7165{"divs", XO(31,363,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
7166{"divs.", XO(31,363,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
7167
7168{"lxvwsx", X(31,364), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
7169
7170{"tlbia", X(31,370), 0xffffffff, PPC, E500|TITAN, {0}},
1cb0a767 7171
db76a700 7172{"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371|POWER4, {RT}},
14b57c7c 7173{"mftb", X(31,371), X_MASK, PPC, NO371|POWER4, {RT, TBR}},
db76a700 7174{"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371|POWER4, {RT}},
1cb0a767 7175
14b57c7c 7176{"lwaux", X(31,373), X_MASK, PPC64, 0, {RT, RAL, RB}},
1cb0a767 7177
14b57c7c 7178{"dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
1cb0a767 7179
14b57c7c 7180{"lhaux", X(31,375), X_MASK, COM, 0, {RT, RAL, RB}},
1cb0a767 7181
14b57c7c 7182{"popcntw", X(31,378), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
066be9f7 7183
4f3e9537
PB
7184{"setbc", X(31,384), XRB_MASK, POWER10, 0, {RT, BI}},
7185
14b57c7c
AM
7186{"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RA, RS}},
7187{"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, 0, {RA, RS}},
1cb0a767 7188
ac8f0f72 7189{"stvexbx", X(31,389), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7190
14b57c7c
AM
7191{"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
7192{"stdfcmx", APU(31,391,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
1cb0a767 7193
14b57c7c
AM
7194{"divdeu", XO(31,393,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7195{"divdeu.", XO(31,393,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7196{"divweu", XO(31,395,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7197{"divweu.", XO(31,395,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 7198
14b57c7c
AM
7199{"stxvx", X(31,396), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
7200{"stxvl", X(31,397), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 7201
14b57c7c 7202{"dcblce", X(31,398), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
1cb0a767 7203
14b57c7c 7204{"slbmte", X(31,402), XRA_MASK, PPC64, 0, {RS, RB}},
1cb0a767 7205
14b57c7c 7206{"mtvsrws", X(31,403), XX1RB_MASK, PPCVSX3, 0, {XT6, RA}},
a680de9a 7207
14b57c7c 7208{"pbt.", XRC(31,404,1), X_MASK, POWER8, 0, {RS, RA0, RB}},
c0637f3a 7209
14b57c7c
AM
7210{"icswx", XRC(31,406,0), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
7211{"icswx.", XRC(31,406,1), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
e0d602ec 7212
14b57c7c 7213{"sthx", X(31,407), X_MASK, COM, 0, {RS, RA0, RB}},
1cb0a767 7214
14b57c7c
AM
7215{"orc", XRC(31,412,0), X_MASK, COM, 0, {RA, RS, RB}},
7216{"orc.", XRC(31,412,1), X_MASK, COM, 0, {RA, RS, RB}},
1cb0a767 7217
14b57c7c 7218{"sthepx", X(31,415), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
1cb0a767 7219
4f3e9537
PB
7220{"setbcr", X(31,416), XRB_MASK, POWER10, 0, {RT, BI}},
7221
62adc510 7222{"mtdcrux", X(31,419), X_MASK, PPC464|PPC476, 0, {RA, RS}},
1cb0a767 7223
ac8f0f72 7224{"stvexhx", X(31,421), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7225
14b57c7c 7226{"dcblq.", XRC(31,422,1), X_MASK, E6500, 0, {CT, RA0, RB}},
aea77599 7227
14b57c7c
AM
7228{"divde", XO(31,425,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7229{"divde.", XO(31,425,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7230{"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
7231{"divwe.", XO(31,427,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 7232
14b57c7c 7233{"stxvll", X(31,429), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 7234
14b57c7c 7235{"clrbhrb", X(31,430), 0xffffffff, POWER8, 0, {0}},
c0637f3a 7236
14b57c7c 7237{"slbie", X(31,434), XRTRA_MASK, PPC64, 0, {RB}},
1cb0a767 7238
14b57c7c 7239{"mtvsrdd", X(31,435), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 7240
14b57c7c 7241{"ecowx", X(31,438), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
1cb0a767 7242
14b57c7c 7243{"sthux", X(31,439), X_MASK, COM, 0, {RS, RAS, RB}},
1cb0a767 7244
08770ec2
AM
7245/* or 1,1,1 */
7246{"cctpl", 0x7c210b78, 0xffffffff, CELL, 0, {0}},
7247/* or 2,2,2 */
7248{"cctpm", 0x7c421378, 0xffffffff, CELL, 0, {0}},
7249/* or 3,3,3 */
7250{"cctph", 0x7c631b78, 0xffffffff, CELL, 0, {0}},
8b2742a1
AM
7251/* or 26,26,26 */
7252{"miso", 0x7f5ad378, 0xffffffff, POWER8|E6500, 0, {0}},
7253/* or 27,27,27 */
14b57c7c 7254{"yield", 0x7f7bdb78, 0xffffffff, POWER7, 0, {0}},
8b2742a1
AM
7255/* or 28,28,28 */
7256{"mdors", 0x7f9ce378, 0xffffffff, E500MC, 0, {0}},
7257/* or 29,29,29 */
14b57c7c 7258{"mdoio", 0x7fbdeb78, 0xffffffff, POWER7, 0, {0}},
8b2742a1 7259/* or 30,30,30 */
14b57c7c 7260{"mdoom", 0x7fdef378, 0xffffffff, POWER7, 0, {0}},
08770ec2 7261
98553ad3 7262{"mr", XRC(31,444,0), X_MASK, COM, 0, {RA, RSB}},
14b57c7c 7263{"or", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RB}},
98553ad3 7264{"mr.", XRC(31,444,1), X_MASK, COM, 0, {RA, RSB}},
14b57c7c
AM
7265{"or.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RB}},
7266
4f3e9537
PB
7267{"setnbc", X(31,448), XRB_MASK, POWER10, 0, {RT, BI}},
7268
14b57c7c
AM
7269{"mtexisr", XSPR(31,451, 64), XSPR_MASK, PPC403, 0, {RS}},
7270{"mtexier", XSPR(31,451, 66), XSPR_MASK, PPC403, 0, {RS}},
7271{"mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, 0, {RS}},
7272{"mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, 0, {RS}},
7273{"mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, 0, {RS}},
7274{"mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, 0, {RS}},
7275{"mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, 0, {RS}},
7276{"mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, 0, {RS}},
7277{"mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, 0, {RS}},
7278{"mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, 0, {RS}},
7279{"mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, 0, {RS}},
7280{"mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, 0, {RS}},
7281{"mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, 0, {RS}},
7282{"mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, 0, {RS}},
7283{"mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, 0, {RS}},
7284{"mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, 0, {RS}},
7285{"mtdmasa0", XSPR(31,451,195), XSPR_MASK, PPC403, 0, {RS}},
7286{"mtdmacc0", XSPR(31,451,196), XSPR_MASK, PPC403, 0, {RS}},
7287{"mtdmacr1", XSPR(31,451,200), XSPR_MASK, PPC403, 0, {RS}},
7288{"mtdmact1", XSPR(31,451,201), XSPR_MASK, PPC403, 0, {RS}},
7289{"mtdmada1", XSPR(31,451,202), XSPR_MASK, PPC403, 0, {RS}},
7290{"mtdmasa1", XSPR(31,451,203), XSPR_MASK, PPC403, 0, {RS}},
7291{"mtdmacc1", XSPR(31,451,204), XSPR_MASK, PPC403, 0, {RS}},
7292{"mtdmacr2", XSPR(31,451,208), XSPR_MASK, PPC403, 0, {RS}},
7293{"mtdmact2", XSPR(31,451,209), XSPR_MASK, PPC403, 0, {RS}},
7294{"mtdmada2", XSPR(31,451,210), XSPR_MASK, PPC403, 0, {RS}},
7295{"mtdmasa2", XSPR(31,451,211), XSPR_MASK, PPC403, 0, {RS}},
7296{"mtdmacc2", XSPR(31,451,212), XSPR_MASK, PPC403, 0, {RS}},
7297{"mtdmacr3", XSPR(31,451,216), XSPR_MASK, PPC403, 0, {RS}},
7298{"mtdmact3", XSPR(31,451,217), XSPR_MASK, PPC403, 0, {RS}},
7299{"mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, 0, {RS}},
7300{"mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, 0, {RS}},
7301{"mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, 0, {RS}},
7302{"mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, 0, {RS}},
7303{"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}},
7304{"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, 0, {SPR, RS}},
7305
ac8f0f72 7306{"stvexwx", X(31,453), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c 7307
62adc510 7308{"dccci", X(31,454), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
14b57c7c
AM
7309{"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
7310
7311{"divdu", XO(31,457,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7312{"divdu.", XO(31,457,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
7313
7314{"divwu", XO(31,459,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7315{"divwu.", XO(31,459,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
7316
94ba9882
AM
7317{"stxvpx", X(31,461), XX1_MASK, POWER10, 0, {XTP, RA0, RB}},
7318
14b57c7c 7319{"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, 0, {PMR, RS}},
c03dc33b 7320{"mttmr", X(31,494), X_MASK, PPCTMR, 0, {TMR, RS}},
14b57c7c
AM
7321
7322{"slbieg", X(31,466), XRA_MASK, POWER9, 0, {RS, RB}},
7323
7324{"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, 0, {RS}},
7325{"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, 0, {RS}},
3eb65174 7326{"mtudscr", XSPR(31,467, 3), XSPR_MASK, POWER9, 0, {RS}},
14b57c7c
AM
7327{"mtlr", XSPR(31,467, 8), XSPR_MASK, COM, 0, {RS}},
7328{"mtctr", XSPR(31,467, 9), XSPR_MASK, COM, 0, {RS}},
3eb65174 7329{"mtuamr", XSPR(31,467, 13), XSPR_MASK, POWER9, 0, {RS}},
14b57c7c
AM
7330{"mtdscr", XSPR(31,467, 17), XSPR_MASK, POWER6, 0, {RS}},
7331{"mttid", XSPR(31,467, 17), XSPR_MASK, POWER, 0, {RS}},
7332{"mtdsisr", XSPR(31,467, 18), XSPR_MASK, COM, TITAN, {RS}},
7333{"mtdar", XSPR(31,467, 19), XSPR_MASK, COM, TITAN, {RS}},
7334{"mtrtcu", XSPR(31,467, 20), XSPR_MASK, COM, TITAN, {RS}},
7335{"mtrtcl", XSPR(31,467, 21), XSPR_MASK, COM, TITAN, {RS}},
7336{"mtdec", XSPR(31,467, 22), XSPR_MASK, COM, 0, {RS}},
7337{"mtsdr0", XSPR(31,467, 24), XSPR_MASK, POWER, 0, {RS}},
7338{"mtsdr1", XSPR(31,467, 25), XSPR_MASK, COM, TITAN, {RS}},
7339{"mtsrr0", XSPR(31,467, 26), XSPR_MASK, COM, 0, {RS}},
7340{"mtsrr1", XSPR(31,467, 27), XSPR_MASK, COM, 0, {RS}},
7341{"mtcfar", XSPR(31,467, 28), XSPR_MASK, POWER6, 0, {RS}},
3eb65174
AM
7342{"mtamr", XSPR(31,467, 29), XSPR_MASK, POWER7, 0, {RS}},
7343{"mtpidr", XSPR(31,467, 48), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7344{"mtpid", XSPR(31,467, 48), XSPR_MASK, BOOKE, 0, {RS}},
7345{"mtdecar", XSPR(31,467, 54), XSPR_MASK, BOOKE, 0, {RS}},
7346{"mtcsrr0", XSPR(31,467, 58), XSPR_MASK, BOOKE, 0, {RS}},
7347{"mtcsrr1", XSPR(31,467, 59), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7348{"mtiamr", XSPR(31,467, 61), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7349{"mtdear", XSPR(31,467, 61), XSPR_MASK, BOOKE, 0, {RS}},
7350{"mtesr", XSPR(31,467, 62), XSPR_MASK, BOOKE, 0, {RS}},
7351{"mtivpr", XSPR(31,467, 63), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174
AM
7352{"mttfhar", XSPR(31,467,128), XSPR_MASK, POWER9, 0, {RS}},
7353{"mttfiar", XSPR(31,467,129), XSPR_MASK, POWER9, 0, {RS}},
7354{"mttexasr", XSPR(31,467,130), XSPR_MASK, POWER9, 0, {RS}},
7355{"mttexasru", XSPR(31,467,131), XSPR_MASK, POWER9, 0, {RS}},
14b57c7c
AM
7356{"mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, 0, {RS}},
7357{"mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, 0, {RS}},
7358{"mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, 0, {RS}},
7359{"mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, 0, {RS}},
7360{"mticr", XSPR(31,467,148), XSPR_MASK, PPC860, 0, {RS}},
7361{"mtder", XSPR(31,467,149), XSPR_MASK, PPC860, 0, {RS}},
7362{"mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, 0, {RS}},
7363{"mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, 0, {RS}},
7364{"mtctrl", XSPR(31,467,152), XSPR_MASK, POWER4, 0, {RS}},
7365{"mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, 0, {RS}},
3eb65174 7366{"mtfscr", XSPR(31,467,153), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7367{"mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, 0, {RS}},
7368{"mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, 0, {RS}},
7369{"mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, 0, {RS}},
7370{"mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, 0, {RS}},
3eb65174 7371{"mtuamor", XSPR(31,467,157), XSPR_MASK, POWER7, 0, {RS}},
14b57c7c
AM
7372{"mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, 0, {RS}},
7373{"mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, 0, {RS}},
3eb65174 7374{"mtpspb", XSPR(31,467,159), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 7375{"mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, 0, {RS}},
3eb65174
AM
7376{"mtdpdes", XSPR(31,467,176), XSPR_MASK, POWER10, 0, {RS}},
7377{"mtdawr0", XSPR(31,467,180), XSPR_MASK, POWER10, 0, {RS}},
7378{"mtdawr1", XSPR(31,467,181), XSPR_MASK, POWER10, 0, {RS}},
7379{"mtrpr", XSPR(31,467,186), XSPR_MASK, POWER10, 0, {RS}},
7380{"mtciabr", XSPR(31,467,187), XSPR_MASK, POWER10, 0, {RS}},
7381{"mtdawrx0", XSPR(31,467,188), XSPR_MASK, POWER10, 0, {RS}},
7382{"mtdawrx1", XSPR(31,467,189), XSPR_MASK, POWER10, 0, {RS}},
7383{"mthfscr", XSPR(31,467,190), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7384{"mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, 0, {RS}},
7385{"mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, 0, {RS}},
7386{"mtsprg", XSPR(31,467,256), XSPRG_MASK, PPC, 0, {SPRG, RS}},
7387{"mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, 0, {RS}},
7388{"mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, 0, {RS}},
7389{"mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, 0, {RS}},
7390{"mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, 0, {RS}},
7391{"mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
7392{"mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
7393{"mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
7394{"mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
7395{"mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, 0, {RS}},
7396{"mtear", XSPR(31,467,282), XSPR_MASK, PPC, TITAN, {RS}},
7397{"mttbl", XSPR(31,467,284), XSPR_MASK, PPC, 0, {RS}},
7398{"mttbu", XSPR(31,467,285), XSPR_MASK, PPC, 0, {RS}},
3eb65174
AM
7399{"mttbu40", XSPR(31,467,286), XSPR_MASK, POWER10, 0, {RS}},
7400{"mthsprg0", XSPR(31,467,304), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 7401{"mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174
AM
7402{"mthsprg1", XSPR(31,467,305), XSPR_MASK, POWER10, 0, {RS}},
7403{"mthdisr", XSPR(31,467,306), XSPR_MASK, POWER10, 0, {RS}},
7404{"mthdar", XSPR(31,467,307), XSPR_MASK, POWER10, 0, {RS}},
7405{"mtspurr", XSPR(31,467,308), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 7406{"mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7407{"mtpurr", XSPR(31,467,309), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 7408{"mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7409{"mthdec", XSPR(31,467,310), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7410{"mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, 0, {RS}},
7411{"mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7412{"mthrmor", XSPR(31,467,313), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 7413{"mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7414{"mthsrr0", XSPR(31,467,314), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 7415{"mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7416{"mthsrr1", XSPR(31,467,315), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7417{"mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, 0, {RS}},
7418{"mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, 0, {RS}},
7419{"mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7420{"mtlpcr", XSPR(31,467,318), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 7421{"mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7422{"mtlpidr", XSPR(31,467,319), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 7423{"mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7424{"mthmer", XSPR(31,467,336), XSPR_MASK, POWER7, 0, {RS}},
14b57c7c 7425{"mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174
AM
7426{"mthmeer", XSPR(31,467,337), XSPR_MASK, POWER7, 0, {RS}},
7427{"mtpcr", XSPR(31,467,338), XSPR_MASK, POWER10, 0, {RS}},
7428{"mtheir", XSPR(31,467,339), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c 7429{"mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7430{"mtamor", XSPR(31,467,349), XSPR_MASK, POWER7, 0, {RS}},
14b57c7c
AM
7431{"mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, 0, {RS}},
7432{"mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, 0, {RS}},
7433{"mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, 0, {RS}},
7434{"mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, 0, {RS}},
7435{"mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, 0, {RS}},
7436{"mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, 0, {RS}},
7437{"mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, 0, {RS}},
7438{"mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, 0, {RS}},
7439{"mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, 0, {RS}},
7440{"mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, 0, {RS}},
7441{"mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, 0, {RS}},
7442{"mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, 0, {RS}},
7443{"mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, 0, {RS}},
7444{"mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, 0, {RS}},
7445{"mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, 0, {RS}},
7446{"mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, 0, {RS}},
3eb65174 7447{"mtptcr", XSPR(31,467,464), XSPR_MASK, POWER10, 0, {RS}},
ce7d813a
AM
7448{"mtusprg0", XSPR(31,467,496), XSPR_MASK, POWER10, 0, {RS}},
7449{"mtusprg1", XSPR(31,467,497), XSPR_MASK, POWER10, 0, {RS}},
3eb65174
AM
7450{"mturmor", XSPR(31,467,505), XSPR_MASK, POWER10, 0, {RS}},
7451{"mtusrr0", XSPR(31,467,506), XSPR_MASK, POWER10, 0, {RS}},
7452{"mtusrr1", XSPR(31,467,507), XSPR_MASK, POWER10, 0, {RS}},
7453{"mtsmfctrl", XSPR(31,467,511), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7454{"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, 0, {RS}},
7455{"mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, 0, {RS}},
7456{"mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, 0, {RS}},
4b94dd2d
AM
7457{"mtivor32", XSPR(31,467,528), XSPR_MASK, PPCSPE|E6500, 0, {RS}},
7458{"mtivor33", XSPR(31,467,529), XSPR_MASK, PPCSPE|E6500, 0, {RS}},
14b57c7c
AM
7459{"mtivor34", XSPR(31,467,530), XSPR_MASK, PPCSPE, 0, {RS}},
7460{"mtivor35", XSPR(31,467,531), XSPR_MASK, PPCPMR, 0, {RS}},
4b94dd2d
AM
7461{"mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
7462{"mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
14b57c7c
AM
7463{"mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
7464{"mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
7465{"mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, 0, {RS}},
7466{"mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, 0, {RS}},
7467{"mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, 0, {RS}},
3eb65174
AM
7468{"mtsier2", XSPR(31,467,752), XSPR_MASK, POWER10, 0, {RS}},
7469{"mtsier3", XSPR(31,467,753), XSPR_MASK, POWER10, 0, {RS}},
7470{"mtmmcr3", XSPR(31,467,754), XSPR_MASK, POWER10, 0, {RS}},
7471{"mtummcr2", XSPR(31,467,769), XSPR_MASK, POWER9, 0, {RS}},
7472{"mtmmcr2", XSPR(31,467,769), XSPR_MASK, POWER9, 0, {RS}},
7473{"mtummcra", XSPR(31,467,770), XSPR_MASK, POWER9, 0, {RS}},
bb71536f
AM
7474{"mtupmc1", XSPR(31,467,771), XSPR_MASK, POWER9, 0, {RS}},
7475{"mtupmc2", XSPR(31,467,772), XSPR_MASK, POWER9, 0, {RS}},
7476{"mtupmc3", XSPR(31,467,773), XSPR_MASK, POWER9, 0, {RS}},
7477{"mtupmc4", XSPR(31,467,774), XSPR_MASK, POWER9, 0, {RS}},
7478{"mtupmc5", XSPR(31,467,775), XSPR_MASK, POWER9, 0, {RS}},
7479{"mtupmc6", XSPR(31,467,776), XSPR_MASK, POWER9, 0, {RS}},
3eb65174
AM
7480{"mtummcr0", XSPR(31,467,779), XSPR_MASK, POWER9, 0, {RS}},
7481{"mtsier", XSPR(31,467,784), XSPR_MASK, POWER10, 0, {RS}},
7482{"mtmmcra", XSPR(31,467,786), XSPR_MASK, POWER7, 0, {RS}},
7483{"mtpmc1", XSPR(31,467,787), XSPR_MASK, POWER7, 0, {RS}},
7484{"mtpmc2", XSPR(31,467,788), XSPR_MASK, POWER7, 0, {RS}},
7485{"mtpmc3", XSPR(31,467,789), XSPR_MASK, POWER7, 0, {RS}},
7486{"mtpmc4", XSPR(31,467,790), XSPR_MASK, POWER7, 0, {RS}},
7487{"mtpmc5", XSPR(31,467,791), XSPR_MASK, POWER7, 0, {RS}},
7488{"mtpmc6", XSPR(31,467,792), XSPR_MASK, POWER7, 0, {RS}},
7489{"mtmmcr0", XSPR(31,467,795), XSPR_MASK, POWER7, 0, {RS}},
7490{"mtsiar", XSPR(31,467,796), XSPR_MASK, POWER10, 0, {RS}},
7491{"mtsdar", XSPR(31,467,797), XSPR_MASK, POWER10, 0, {RS}},
7492{"mtmmcr1", XSPR(31,467,798), XSPR_MASK, POWER7, 0, {RS}},
7493{"mtbescrs", XSPR(31,467,800), XSPR_MASK, POWER9, 0, {RS}},
7494{"mtbescrsu", XSPR(31,467,801), XSPR_MASK, POWER9, 0, {RS}},
7495{"mtbescrr", XSPR(31,467,802), XSPR_MASK, POWER9, 0, {RS}},
7496{"mtbescrru", XSPR(31,467,803), XSPR_MASK, POWER9, 0, {RS}},
7497{"mtebbhr", XSPR(31,467,804), XSPR_MASK, POWER9, 0, {RS}},
7498{"mtebbrr", XSPR(31,467,805), XSPR_MASK, POWER9, 0, {RS}},
7499{"mtbescr", XSPR(31,467,806), XSPR_MASK, POWER9, 0, {RS}},
7500{"mttar", XSPR(31,467,815), XSPR_MASK, POWER9, 0, {RS}},
7501{"mtasdr", XSPR(31,467,816), XSPR_MASK, POWER10, 0, {RS}},
7502{"mtpsscr", XSPR(31,467,823), XSPR_MASK, POWER10, 0, {RS}},
7503{"mtic", XSPR(31,467,848), XSPR_MASK, POWER8, 0, {RS}},
7504{"mtvtb", XSPR(31,467,849), XSPR_MASK, POWER8, 0, {RS}},
7505{"mthpsscr", XSPR(31,467,855), XSPR_MASK, POWER10, 0, {RS}},
14b57c7c
AM
7506{"mtivndx", XSPR(31,467,880), XSPR_MASK, TITAN, 0, {RS}},
7507{"mtdvndx", XSPR(31,467,881), XSPR_MASK, TITAN, 0, {RS}},
7508{"mtivlim", XSPR(31,467,882), XSPR_MASK, TITAN, 0, {RS}},
7509{"mtdvlim", XSPR(31,467,883), XSPR_MASK, TITAN, 0, {RS}},
7510{"mtclcsr", XSPR(31,467,884), XSPR_MASK, TITAN, 0, {RS}},
7511{"mtccr1", XSPR(31,467,888), XSPR_MASK, TITAN, 0, {RS}},
7512{"mtppr", XSPR(31,467,896), XSPR_MASK, POWER7, 0, {RS}},
7513{"mtppr32", XSPR(31,467,898), XSPR_MASK, POWER7, 0, {RS}},
fa758a70
AC
7514{"mtgqr", XSPR(31,467,912), XSPRGQR_MASK, PPCPS, 0, {SPRGQR, RS}},
7515{"mthid2", XSPR(31,467,920), XSPR_MASK, GEKKO, 0, {RS}},
7516{"mtwpar", XSPR(31,467,921), XSPR_MASK, GEKKO, 0, {RS}},
7517{"mtdmau", XSPR(31,467,922), XSPR_MASK, GEKKO, 0, {RS}},
7518{"mtdmal", XSPR(31,467,923), XSPR_MASK, GEKKO, 0, {RS}},
14b57c7c
AM
7519{"mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, 0, {RS}},
7520{"mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, 0, {RS}},
7521{"mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, 0, {RS}},
7522{"mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, 0, {RS}},
7523{"mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, 0, {RS}},
7524{"mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, 0, {RS}},
7525{"mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, 0, {RS}},
7526{"mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, 0, {RS}},
7527{"mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, 0, {RS}},
7528{"mtrmmucr", XSPR(31,467,946), XSPR_MASK, TITAN, 0, {RS}},
7529{"mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, 0, {RS}},
7530{"mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, 0, {RS}},
7531{"mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, 0, {RS}},
7532{"mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, 0, {RS}},
7533{"mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, 0, {RS}},
7534{"mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, 0, {RS}},
7535{"mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, 0, {RS}},
7536{"mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, 0, {RS}},
7537{"mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, 0, {RS}},
7538{"mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, 0, {RS}},
7539{"mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, 0, {RS}},
7540{"mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, 0, {RS}},
7541{"mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, 0, {RS}},
7542{"mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, 0, {RS}},
7543{"mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, 0, {RS}},
7544{"mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, 0, {RS}},
7545{"mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, 0, {RS}},
7546{"mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, 0, {RS}},
7547{"mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, 0, {RS}},
7548{"mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, 0, {RS}},
7549{"mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, 0, {RS}},
7550{"mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, 0, {RS}},
7551{"mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, 0, {RS}},
7552{"mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, 0, {RS}},
7553{"mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, 0, {RS}},
7554{"mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, 0, {RS}},
7555{"mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, 0, {RS}},
7556{"mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, 0, {RS}},
7557{"mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, 0, {RS}},
7558{"mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, 0, {RS}},
fa758a70
AC
7559{"mthid0", XSPR(31,467,1008), XSPR_MASK, GEKKO, 0, {RS}},
7560{"mthid1", XSPR(31,467,1009), XSPR_MASK, GEKKO, 0, {RS}},
14b57c7c 7561{"mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, 0, {RS}},
fa758a70
AC
7562{"mtiabr", XSPR(31,467,1010), XSPR_MASK, GEKKO, 0, {RS}},
7563{"mthid4", XSPR(31,467,1011), XSPR_MASK, BROADWAY, 0, {RS}},
7564{"mtdbdr", XSPR(31,467,1011), XSPR_MASK, TITAN, 0, {RS}},
14b57c7c
AM
7565{"mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, 0, {RS}},
7566{"mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, 0, {RS}},
fa758a70 7567{"mtdabr", XSPR(31,467,1013), XSPR_MASK, PPC750, 0, {RS}},
14b57c7c
AM
7568{"mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, 0, {RS}},
7569{"mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, 0, {RS}},
7570{"mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, 0, {RS}},
7571{"mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, 0, {RS}},
7572{"mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, 0, {RS}},
7573{"mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, 0, {RS}},
7574{"mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, 0, {RS}},
7575{"mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, 0, {RS}},
7576{"mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, 0, {RS}},
7577{"mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, 0, {RS}},
7578{"mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, 0, {RS}},
7579{"mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, 0, {RS}},
7580{"mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, 0, {RS}},
7581{"mtspr", X(31,467), X_MASK, COM, 0, {SPR, RS}},
7582
7583{"dcbi", X(31,470), XRT_MASK, PPC, 0, {RA0, RB}},
7584
7585{"nand", XRC(31,476,0), X_MASK, COM, 0, {RA, RS, RB}},
7586{"nand.", XRC(31,476,1), X_MASK, COM, 0, {RA, RS, RB}},
7587
4f3e9537
PB
7588{"setnbcr", X(31,480), XRB_MASK, POWER10, 0, {RT, BI}},
7589
14b57c7c
AM
7590{"dsn", X(31,483), XRT_MASK, E500MC, 0, {RA, RB}},
7591
62adc510 7592{"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2, {RT, RA0, RB}},
14b57c7c
AM
7593
7594{"icbtls", X(31,486), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
7595
7596{"stvxl", X(31,487), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
7597
7598{"nabs", XO(31,488,0,0), XORB_MASK, M601, 0, {RT, RA}},
7599{"nabs.", XO(31,488,0,1), XORB_MASK, M601, 0, {RT, RA}},
7600
7601{"divd", XO(31,489,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7602{"divd.", XO(31,489,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
7603
7604{"divw", XO(31,491,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7605{"divw.", XO(31,491,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
7606
7607{"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
7608
7609{"slbia", X(31,498), 0xff1fffff, POWER6, 0, {IH}},
4bc0608a 7610{"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}},
1cb0a767 7611
14b57c7c 7612{"cli", X(31,502), XRB_MASK, POWER, 0, {RT, RA}},
1cb0a767 7613
14b57c7c 7614{"popcntd", X(31,506), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
066be9f7 7615
14b57c7c 7616{"cmpb", X(31,508), X_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS, RB}},
1cb0a767 7617
14b57c7c 7618{"mcrxr", X(31,512), XBFRARB_MASK, COM, POWER7, {BF}},
252b5132 7619
dfdaec14 7620{"lbdcbx", X(31,514), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 7621{"lbdx", X(31,515), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 7622
14b57c7c 7623{"bblels", X(31,518), X_MASK, PPCBRLK, 0, {0}},
252b5132 7624
14b57c7c
AM
7625{"lvlx", X(31,519), X_MASK, CELL, 0, {VD, RA0, RB}},
7626{"lbfcmux", APU(31,519,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 7627
14b57c7c
AM
7628{"subfco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7629{"sfo", XO(31,8,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7630{"subco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
7631{"subfco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7632{"sfo.", XO(31,8,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7633{"subco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
43e65147 7634
14b57c7c
AM
7635{"addco", XO(31,10,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7636{"ao", XO(31,10,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7637{"addco.", XO(31,10,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7638{"ao.", XO(31,10,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 7639
14b57c7c 7640{"lxsspx", X(31,524), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
c0637f3a 7641
14b57c7c 7642{"clcs", X(31,531), XRB_MASK, M601, 0, {RT, RA}},
418c1742 7643
14b57c7c 7644{"ldbrx", X(31,532), X_MASK, CELL|POWER7|PPCA2, 0, {RT, RA0, RB}},
418c1742 7645
14b57c7c
AM
7646{"lswx", X(31,533), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, RBX}},
7647{"lsx", X(31,533), X_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 7648
14b57c7c
AM
7649{"lwbrx", X(31,534), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
7650{"lbrx", X(31,534), X_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 7651
14b57c7c 7652{"lfsx", X(31,535), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
702f0fb4 7653
14b57c7c
AM
7654{"srw", XRC(31,536,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7655{"sr", XRC(31,536,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
7656{"srw.", XRC(31,536,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7657{"sr.", XRC(31,536,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
252b5132 7658
14b57c7c
AM
7659{"rrib", XRC(31,537,0), X_MASK, M601, 0, {RA, RS, RB}},
7660{"rrib.", XRC(31,537,1), X_MASK, M601, 0, {RA, RS, RB}},
23976049 7661
14b57c7c
AM
7662{"cnttzw", XRC(31,538,0), XRB_MASK, POWER9, 0, {RA, RS}},
7663{"cnttzw.", XRC(31,538,1), XRB_MASK, POWER9, 0, {RA, RS}},
a680de9a 7664
14b57c7c
AM
7665{"srd", XRC(31,539,0), X_MASK, PPC64, 0, {RA, RS, RB}},
7666{"srd.", XRC(31,539,1), X_MASK, PPC64, 0, {RA, RS, RB}},
f509565f 7667
14b57c7c
AM
7668{"maskir", XRC(31,541,0), X_MASK, M601, 0, {RA, RS, RB}},
7669{"maskir.", XRC(31,541,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 7670
dfdaec14 7671{"lhdcbx", X(31,546), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 7672{"lhdx", X(31,547), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 7673
ac8f0f72 7674{"lvtrx", X(31,549), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7675
14b57c7c 7676{"bbelr", X(31,550), X_MASK, PPCBRLK, 0, {0}},
418c1742 7677
14b57c7c
AM
7678{"lvrx", X(31,551), X_MASK, CELL, 0, {VD, RA0, RB}},
7679{"lhfcmux", APU(31,551,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 7680
14b57c7c
AM
7681{"subfo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
7682{"subo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RB, RA}},
7683{"subfo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
7684{"subo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RB, RA}},
252b5132 7685
14b57c7c 7686{"tlbsync", X(31,566), 0xffffffff, PPC, 0, {0}},
252b5132 7687
14b57c7c 7688{"lfsux", X(31,567), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
252b5132 7689
14b57c7c
AM
7690{"cnttzd", XRC(31,570,0), XRB_MASK, POWER9, 0, {RA, RS}},
7691{"cnttzd.", XRC(31,570,1), XRB_MASK, POWER9, 0, {RA, RS}},
a680de9a 7692
ec40e91c
AM
7693{"cnttzdm", X(31,571), X_MASK, POWER10, 0, {RA, RS, RB}},
7694
14b57c7c 7695{"mcrxrx", X(31,576), XBFRARB_MASK, POWER9, 0, {BF}},
a680de9a 7696
dfdaec14 7697{"lwdcbx", X(31,578), X_MASK, E200Z4, 0, {RT, RA, RB}},
a8cc8a54 7698{"lwdx", X(31,579), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}},
19a6653c 7699
ac8f0f72 7700{"lvtlx", X(31,581), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7701
14b57c7c 7702{"lwat", X(31,582), X_MASK, POWER9, 0, {RT, RA0, FC}},
a680de9a 7703
14b57c7c 7704{"lwfcmux", APU(31,583,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 7705
14b57c7c 7706{"lxsdx", X(31,588), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
066be9f7 7707
14b57c7c 7708{"mfsr", X(31,595), XRB_MASK|(1<<20), COM, NON32, {RT, SR}},
252b5132 7709
14b57c7c
AM
7710{"lswi", X(31,597), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, NBI}},
7711{"lsi", X(31,597), X_MASK, PWRCOM, 0, {RT, RA0, NB}},
252b5132 7712
dc302c00 7713{"hwsync", XSYNC(31,598,0), 0xffffffff, POWER4, BOOKE|PPC476, {0}},
e01d869a 7714{"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, E500, {0}},
14b57c7c 7715{"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, 0, {0}},
3d205eb4
PB
7716{"phwsync", XSYNCLS(31,598,4,0), 0xffffffff, POWER10, 0, {0}},
7717{"plwsync", XSYNCLS(31,598,5,0), 0xffffffff, POWER10, 0, {0}},
7718{"stncisync", XSYNCLS(31,598,1,1), 0xffffffff, POWER10, 0, {0}},
7719{"stcisync", XSYNCLS(31,598,0,2), 0xffffffff, POWER10, 0, {0}},
7720{"stsync", XSYNCLS(31,598,0,3), 0xffffffff, POWER10, 0, {0}},
7721{"sync", X(31,598), XSYNCLS_MASK, POWER10, BOOKE|PPC476, {LS3, SC2}},
fd486b63 7722{"sync", X(31,598), XSYNCLE_MASK, E6500, 0, {LS, ESYNC}},
3d205eb4 7723{"sync", X(31,598), XSYNC_MASK, PPCCOM, POWER10|BOOKE|PPC476, {LS}},
14b57c7c
AM
7724{"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, 0, {0}},
7725{"sync", X(31,598), 0xffffffff, BOOKE|PPC476, E6500, {0}},
7726{"lwsync", X(31,598), 0xffffffff, E500, 0, {0}},
7727{"dcs", X(31,598), 0xffffffff, PWRCOM, 0, {0}},
418c1742 7728
14b57c7c 7729{"lfdx", X(31,599), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
23976049 7730
066be9f7 7731{"mffgpr", XRC(31,607,0), XRA_MASK, POWER6, POWER7, {FRT, RB}},
14b57c7c 7732{"lfdepx", X(31,607), X_MASK, E500MC|PPCA2, 0, {FRT, RA0, RB}},
252b5132 7733
14b57c7c 7734{"lddx", X(31,611), X_MASK, E500MC, 0, {RT, RA, RB}},
19a6653c 7735
ac8f0f72 7736{"lvswx", X(31,613), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7737
14b57c7c 7738{"ldat", X(31,614), X_MASK, POWER9, 0, {RT, RA0, FC}},
a680de9a 7739
14b57c7c 7740{"lqfcmux", APU(31,615,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 7741
14b57c7c
AM
7742{"nego", XO(31,104,1,0), XORB_MASK, COM, 0, {RT, RA}},
7743{"nego.", XO(31,104,1,1), XORB_MASK, COM, 0, {RT, RA}},
252b5132 7744
14b57c7c
AM
7745{"mulo", XO(31,107,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7746{"mulo.", XO(31,107,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 7747
14b57c7c 7748{"mfsri", X(31,627), X_MASK, M601, 0, {RT, RA, RB}},
252b5132 7749
14b57c7c 7750{"dclst", X(31,630), XRB_MASK, M601, 0, {RS, RA}},
252b5132 7751
14b57c7c 7752{"lfdux", X(31,631), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
252b5132 7753
dfdaec14 7754{"stbdcbx", X(31,642), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 7755{"stbdx", X(31,643), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 7756
14b57c7c
AM
7757{"stvlx", X(31,647), X_MASK, CELL, 0, {VS, RA0, RB}},
7758{"stbfcmux", APU(31,647,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
23976049 7759
14b57c7c 7760{"stxsspx", X(31,652), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
c0637f3a 7761
14b57c7c 7762{"tbegin.", XRC(31,654,1), XRTLRARB_MASK, PPCHTM, 0, {HTM_R}},
5817ffd1 7763
14b57c7c
AM
7764{"subfeo", XO(31,136,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7765{"sfeo", XO(31,136,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7766{"subfeo.", XO(31,136,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7767{"sfeo.", XO(31,136,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 7768
14b57c7c
AM
7769{"addeo", XO(31,138,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7770{"aeo", XO(31,138,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7771{"addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7772{"aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 7773
aae7fcb8
PB
7774{"hashstp", X(31,658), XRC_MASK, POWER8, 0, {RB, DW, RA0}},
7775
14b57c7c 7776{"mfsrin", X(31,659), XRA_MASK, PPC, NON32, {RT, RB}},
418c1742 7777
14b57c7c 7778{"stdbrx", X(31,660), X_MASK, CELL|POWER7|PPCA2, 0, {RS, RA0, RB}},
252b5132 7779
14b57c7c
AM
7780{"stswx", X(31,661), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, RB}},
7781{"stsx", X(31,661), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
418c1742 7782
14b57c7c
AM
7783{"stwbrx", X(31,662), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
7784{"stbrx", X(31,662), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
252b5132 7785
14b57c7c 7786{"stfsx", X(31,663), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
ede602d7 7787
14b57c7c
AM
7788{"srq", XRC(31,664,0), X_MASK, M601, 0, {RA, RS, RB}},
7789{"srq.", XRC(31,664,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 7790
14b57c7c
AM
7791{"sre", XRC(31,665,0), X_MASK, M601, 0, {RA, RS, RB}},
7792{"sre.", XRC(31,665,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 7793
dfdaec14 7794{"sthdcbx", X(31,674), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 7795{"sthdx", X(31,675), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 7796
ac8f0f72 7797{"stvfrx", X(31,677), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7798
14b57c7c
AM
7799{"stvrx", X(31,679), X_MASK, CELL, 0, {VS, RA0, RB}},
7800{"sthfcmux", APU(31,679,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 7801
14b57c7c
AM
7802{"tendall.", XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0, {0}},
7803{"tend.", XRC(31,686,1), XRTARARB_MASK, PPCHTM, 0, {HTM_A}},
5817ffd1 7804
aae7fcb8
PB
7805{"hashchkp", X(31,690), XRC_MASK, POWER8, 0, {RB, DW, RA0}},
7806
14b57c7c 7807{"stbcx.", XRC(31,694,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
066be9f7 7808
14b57c7c 7809{"stfsux", X(31,695), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
252b5132 7810
14b57c7c
AM
7811{"sriq", XRC(31,696,0), X_MASK, M601, 0, {RA, RS, SH}},
7812{"sriq.", XRC(31,696,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 7813
dfdaec14 7814{"stwdcbx", X(31,706), X_MASK, E200Z4, 0, {RS, RA, RB}},
a8cc8a54 7815{"stwdx", X(31,707), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}},
19a6653c 7816
ac8f0f72 7817{"stvflx", X(31,709), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7818
14b57c7c 7819{"stwat", X(31,710), X_MASK, POWER9, 0, {RS, RA0, FC}},
a680de9a 7820
14b57c7c 7821{"stwfcmux", APU(31,711,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 7822
14b57c7c 7823{"stxsdx", X(31,716), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
066be9f7 7824
14b57c7c 7825{"tcheck", X(31,718), XRTBFRARB_MASK, PPCHTM, 0, {BF}},
5817ffd1 7826
14b57c7c
AM
7827{"subfzeo", XO(31,200,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7828{"sfzeo", XO(31,200,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7829{"subfzeo.", XO(31,200,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7830{"sfzeo.", XO(31,200,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 7831
14b57c7c
AM
7832{"addzeo", XO(31,202,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7833{"azeo", XO(31,202,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7834{"addzeo.", XO(31,202,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7835{"azeo.", XO(31,202,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
fdd12ef3 7836
aae7fcb8
PB
7837{"hashst", X(31,722), XRC_MASK, POWER8, 0, {RB, DW, RA0}},
7838
14b57c7c
AM
7839{"stswi", X(31,725), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, NB}},
7840{"stsi", X(31,725), X_MASK, PWRCOM, 0, {RS, RA0, NB}},
252b5132 7841
14b57c7c 7842{"sthcx.", XRC(31,726,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
066be9f7 7843
14b57c7c 7844{"stfdx", X(31,727), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
252b5132 7845
14b57c7c
AM
7846{"srlq", XRC(31,728,0), X_MASK, M601, 0, {RA, RS, RB}},
7847{"srlq.", XRC(31,728,1), X_MASK, M601, 0, {RA, RS, RB}},
418c1742 7848
14b57c7c
AM
7849{"sreq", XRC(31,729,0), X_MASK, M601, 0, {RA, RS, RB}},
7850{"sreq.", XRC(31,729,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 7851
066be9f7 7852{"mftgpr", XRC(31,735,0), XRA_MASK, POWER6, POWER7, {RT, FRB}},
14b57c7c 7853{"stfdepx", X(31,735), X_MASK, E500MC|PPCA2, 0, {FRS, RA0, RB}},
252b5132 7854
14b57c7c 7855{"stddx", X(31,739), X_MASK, E500MC, 0, {RS, RA, RB}},
19a6653c 7856
ac8f0f72 7857{"stvswx", X(31,741), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 7858
14b57c7c 7859{"stdat", X(31,742), X_MASK, POWER9, 0, {RS, RA0, FC}},
a680de9a 7860
14b57c7c 7861{"stqfcmux", APU(31,743,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
081ba1b3 7862
14b57c7c
AM
7863{"subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7864{"sfmeo", XO(31,232,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7865{"subfmeo.", XO(31,232,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7866{"sfmeo.", XO(31,232,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
252b5132 7867
14b57c7c
AM
7868{"mulldo", XO(31,233,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
7869{"mulldo.", XO(31,233,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
252b5132 7870
14b57c7c
AM
7871{"addmeo", XO(31,234,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
7872{"ameo", XO(31,234,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
7873{"addmeo.", XO(31,234,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
7874{"ameo.", XO(31,234,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
418c1742 7875
14b57c7c
AM
7876{"mullwo", XO(31,235,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7877{"mulso", XO(31,235,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7878{"mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7879{"mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
702f0fb4 7880
14b57c7c
AM
7881{"tsuspend.", XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM, 0, {0}},
7882{"tresume.", XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM, 0, {0}},
7883{"tsr.", XRC(31,750,1), XRTLRARB_MASK,PPCHTM, 0, {L}},
5817ffd1 7884
aae7fcb8
PB
7885{"hashchk", X(31,754), XRC_MASK, POWER8, 0, {RB, DW, RA0}},
7886
14b57c7c 7887{"darn", X(31,755), XLRAND_MASK, POWER9, 0, {RT, LRAND}},
a680de9a 7888
14b57c7c
AM
7889{"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
7890{"dcbal", XOPL(31,758,1), XRT_MASK, E500MC, 0, {RA0, RB}},
252b5132 7891
14b57c7c 7892{"stfdux", X(31,759), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
252b5132 7893
14b57c7c
AM
7894{"srliq", XRC(31,760,0), X_MASK, M601, 0, {RA, RS, SH}},
7895{"srliq.", XRC(31,760,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 7896
ac8f0f72 7897{"lvsm", X(31,773), X_MASK, E6500, 0, {VD, RA0, RB}},
a680de9a 7898
fd486b63 7899{"copy", XOPL(31,774,1), XRT_MASK, POWER9, 0, {RA0, RB}},
a680de9a 7900
ac8f0f72 7901{"stvepxl", X(31,775), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c
AM
7902{"lvlxl", X(31,775), X_MASK, CELL, 0, {VD, RA0, RB}},
7903{"ldfcmux", APU(31,775,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
ede602d7 7904
14b57c7c
AM
7905{"dozo", XO(31,264,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7906{"dozo.", XO(31,264,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 7907
14b57c7c
AM
7908{"addo", XO(31,266,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7909{"caxo", XO(31,266,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
7910{"addo.", XO(31,266,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
7911{"caxo.", XO(31,266,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
252b5132 7912
14b57c7c
AM
7913{"modsd", X(31,777), X_MASK, POWER9, 0, {RT, RA, RB}},
7914{"modsw", X(31,779), X_MASK, POWER9, 0, {RT, RA, RB}},
a680de9a 7915
14b57c7c
AM
7916{"lxvw4x", X(31,780), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
7917{"lxsibzx", X(31,781), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
066be9f7 7918
14b57c7c 7919{"tabortwc.", XRC(31,782,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
5817ffd1 7920
14b57c7c 7921{"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
252b5132 7922
14b57c7c 7923{"lwzcix", X(31,789), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 7924
14b57c7c 7925{"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}},
252b5132 7926
73f07bff 7927{"lfdpx", X(31,791), X_MASK|Q_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
14b57c7c 7928{"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}},
418c1742 7929
14b57c7c
AM
7930{"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7931{"sra", XRC(31,792,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
7932{"sraw.", XRC(31,792,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
7933{"sra.", XRC(31,792,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
fdd12ef3 7934
14b57c7c
AM
7935{"srad", XRC(31,794,0), X_MASK, PPC64, 0, {RA, RS, RB}},
7936{"srad.", XRC(31,794,1), X_MASK, PPC64, 0, {RA, RS, RB}},
252b5132 7937
74081948 7938{"evlddepx", VX (31, 1598), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
14b57c7c 7939{"lfddx", X(31,803), X_MASK, E500MC, 0, {FRT, RA, RB}},
19a6653c 7940
ac8f0f72
AM
7941{"lvtrxl", X(31,805), X_MASK, E6500, 0, {VD, RA0, RB}},
7942{"stvepx", X(31,807), X_MASK, E6500, 0, {VS, RA0, RB}},
14b57c7c 7943{"lvrxl", X(31,807), X_MASK, CELL, 0, {VD, RA0, RB}},
252b5132 7944
14b57c7c
AM
7945{"lxvh8x", X(31,812), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
7946{"lxsihzx", X(31,813), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 7947
14b57c7c 7948{"tabortdc.", XRC(31,814,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
5817ffd1 7949
14b57c7c 7950{"rac", X(31,818), X_MASK, M601, 0, {RT, RA, RB}},
252b5132 7951
14b57c7c 7952{"erativax", X(31,819), X_MASK, PPCA2, 0, {RS, RA0, RB}},
e0d602ec 7953
14b57c7c 7954{"lhzcix", X(31,821), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 7955
14b57c7c 7956{"dss", XDSS(31,822,0), XDSS_MASK, PPCVEC, 0, {STRM}},
252b5132 7957
14b57c7c 7958{"lfqux", X(31,823), X_MASK, POWER2, 0, {FRT, RA, RB}},
fdd12ef3 7959
14b57c7c
AM
7960{"srawi", XRC(31,824,0), X_MASK, PPCCOM, 0, {RA, RS, SH}},
7961{"srai", XRC(31,824,0), X_MASK, PWRCOM, 0, {RA, RS, SH}},
7962{"srawi.", XRC(31,824,1), X_MASK, PPCCOM, 0, {RA, RS, SH}},
7963{"srai.", XRC(31,824,1), X_MASK, PWRCOM, 0, {RA, RS, SH}},
702f0fb4 7964
14b57c7c
AM
7965{"sradi", XS(31,413,0), XS_MASK, PPC64, 0, {RA, RS, SH6}},
7966{"sradi.", XS(31,413,1), XS_MASK, PPC64, 0, {RA, RS, SH6}},
e0c21649 7967
ac8f0f72 7968{"lvtlxl", X(31,837), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7969
fd486b63 7970{"cpabort", X(31,838), XRTRARB_MASK,POWER9, 0, {0}},
a680de9a 7971
14b57c7c
AM
7972{"divo", XO(31,331,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
7973{"divo.", XO(31,331,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 7974
14b57c7c 7975{"lxvd2x", X(31,844), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
a680de9a 7976{"lxvx", X(31,844), XX1_MASK, POWER8, POWER9|PPCVSX3, {XT6, RA0, RB}},
9b4e5766 7977
14b57c7c 7978{"tabortwci.", XRC(31,846,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
5817ffd1 7979
14b57c7c 7980{"tlbsrx.", XRC(31,850,1), XRT_MASK, PPCA2, 0, {RA0, RB}},
e0d602ec 7981
1224c05d
PB
7982{"slbiag", X(31,850), XRLARB_MASK, POWER10, 0, {RS, A_L}},
7983{"slbiag", X(31,850), XRARB_MASK, POWER9, POWER10, {RS}},
7984
14b57c7c 7985{"slbmfev", X(31,851), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
a680de9a 7986{"slbmfev", X(31,851), XRA_MASK, PPC64, POWER9, {RT, RB}},
252b5132 7987
14b57c7c 7988{"lbzcix", X(31,853), X_MASK, POWER6, 0, {RT, RA0, RB}},
418c1742 7989
9fe54b1c 7990{"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2|PPC476, {0}},
14b57c7c
AM
7991{"mbar", X(31,854), X_MASK, BOOKE|PPCA2|PPC476, 0, {MO}},
7992{"eieio", XMBAR(31,854,1),0xffffffff, E500, 0, {0}},
7993{"eieio", X(31,854), 0xffffffff, PPCA2|PPC476, 0, {0}},
418c1742 7994
14b57c7c 7995{"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, 0, {FRT, RA0, RB}},
418c1742 7996
ac8f0f72 7997{"lvswxl", X(31,869), X_MASK, E6500, 0, {VD, RA0, RB}},
aea77599 7998
14b57c7c
AM
7999{"abso", XO(31,360,1,0), XORB_MASK, M601, 0, {RT, RA}},
8000{"abso.", XO(31,360,1,1), XORB_MASK, M601, 0, {RT, RA}},
702f0fb4 8001
14b57c7c
AM
8002{"divso", XO(31,363,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
8003{"divso.", XO(31,363,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
252b5132 8004
14b57c7c 8005{"lxvb16x", X(31,876), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
a680de9a 8006
14b57c7c 8007{"tabortdci.", XRC(31,878,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
5817ffd1 8008
14b57c7c 8009{"rmieg", X(31,882), XRTRA_MASK, POWER9, 0, {RB}},
a680de9a 8010
14b57c7c 8011{"ldcix", X(31,885), X_MASK, POWER6, 0, {RT, RA0, RB}},
252b5132 8012
14b57c7c 8013{"msgsync", X(31,886), 0xffffffff, POWER9, 0, {0}},
a680de9a 8014
14b57c7c 8015{"lfiwzx", X(31,887), X_MASK, POWER7|PPCA2, 0, {FRT, RA0, RB}},
066be9f7 8016
14b57c7c
AM
8017{"extswsli", XS(31,445,0), XS_MASK, POWER9, 0, {RA, RS, SH6}},
8018{"extswsli.", XS(31,445,1), XS_MASK, POWER9, 0, {RA, RS, SH6}},
a680de9a 8019
afef4fe9
PB
8020{"paste.", XRC(31,902,1), XLRT_MASK, POWER10, 0, {RA0, RB, L1OPT}},
8021{"paste.", XRCL(31,902,1,1),XRT_MASK, POWER9, POWER10, {RA0, RB}},
a680de9a 8022
14b57c7c
AM
8023{"stvlxl", X(31,903), X_MASK, CELL, 0, {VS, RA0, RB}},
8024{"stdfcmux", APU(31,903,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
252b5132 8025
14b57c7c
AM
8026{"divdeuo", XO(31,393,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8027{"divdeuo.", XO(31,393,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8028{"divweuo", XO(31,395,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8029{"divweuo.", XO(31,395,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 8030
14b57c7c
AM
8031{"stxvw4x", X(31,908), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
8032{"stxsibx", X(31,909), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
066be9f7 8033
14b57c7c 8034{"tabort.", XRC(31,910,1), XRTRB_MASK, PPCHTM, 0, {RA}},
5817ffd1 8035
14b57c7c
AM
8036{"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
8037{"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
252b5132 8038
14b57c7c 8039{"slbmfee", X(31,915), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
a680de9a 8040{"slbmfee", X(31,915), XRA_MASK, PPC64, POWER9, {RT, RB}},
702f0fb4 8041
14b57c7c 8042{"stwcix", X(31,917), X_MASK, POWER6, 0, {RS, RA0, RB}},
f5c120c5 8043
14b57c7c 8044{"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}},
252b5132 8045
73f07bff 8046{"stfdpx", X(31,919), X_MASK|Q_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
14b57c7c 8047{"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}},
6ba045b1 8048
14b57c7c
AM
8049{"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}},
8050{"sraq.", XRC(31,920,1), X_MASK, M601, 0, {RA, RS, RB}},
702f0fb4 8051
14b57c7c
AM
8052{"srea", XRC(31,921,0), X_MASK, M601, 0, {RA, RS, RB}},
8053{"srea.", XRC(31,921,1), X_MASK, M601, 0, {RA, RS, RB}},
252b5132 8054
14b57c7c
AM
8055{"extsh", XRC(31,922,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
8056{"exts", XRC(31,922,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
8057{"extsh.", XRC(31,922,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
8058{"exts.", XRC(31,922,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
702f0fb4 8059
74081948 8060{"evstddepx", VX (31, 1854), VX_MASK, PPCSPE, 0, {RT, RA, RB}},
14b57c7c 8061{"stfddx", X(31,931), X_MASK, E500MC, 0, {FRS, RA, RB}},
19a6653c 8062
ac8f0f72 8063{"stvfrxl", X(31,933), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 8064
14b57c7c 8065{"wclrone", XOPL2(31,934,2),XRT_MASK, PPCA2, 0, {RA0, RB}},
a5721ba2
AM
8066{"wclrall", X(31,934), XRARB_MASK, PPCA2, 0, {L2}},
8067{"wclr", X(31,934), X_MASK, PPCA2, 0, {L2, RA0, RB}},
85d4ac0b 8068
14b57c7c 8069{"stvrxl", X(31,935), X_MASK, CELL, 0, {VS, RA0, RB}},
6ba045b1 8070
14b57c7c
AM
8071{"divdeo", XO(31,425,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8072{"divdeo.", XO(31,425,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8073{"divweo", XO(31,427,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
8074{"divweo.", XO(31,427,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
066be9f7 8075
14b57c7c
AM
8076{"stxvh8x", X(31,940), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
8077{"stxsihx", X(31,941), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 8078
14b57c7c 8079{"treclaim.", XRC(31,942,1), XRTRB_MASK, PPCHTM, 0, {RA}},
5817ffd1 8080
e0d602ec
BE
8081{"tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
8082{"tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
14b57c7c 8083{"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
702f0fb4 8084
14b57c7c 8085{"sthcix", X(31,949), X_MASK, POWER6, 0, {RS, RA0, RB}},
252b5132 8086
14b57c7c
AM
8087{"icswepx", XRC(31,950,0), X_MASK, PPCA2, 0, {RS, RA, RB}},
8088{"icswepx.", XRC(31,950,1), X_MASK, PPCA2, 0, {RS, RA, RB}},
51b5d4a8 8089
14b57c7c 8090{"stfqux", X(31,951), X_MASK, POWER2, 0, {FRS, RA, RB}},
252b5132 8091
14b57c7c
AM
8092{"sraiq", XRC(31,952,0), X_MASK, M601, 0, {RA, RS, SH}},
8093{"sraiq.", XRC(31,952,1), X_MASK, M601, 0, {RA, RS, SH}},
252b5132 8094
14b57c7c
AM
8095{"extsb", XRC(31,954,0), XRB_MASK, PPC, 0, {RA, RS}},
8096{"extsb.", XRC(31,954,1), XRB_MASK, PPC, 0, {RA, RS}},
252b5132 8097
ac8f0f72 8098{"stvflxl", X(31,965), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 8099
62adc510 8100{"iccci", X(31,966), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
14b57c7c 8101{"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
43e65147 8102
14b57c7c
AM
8103{"divduo", XO(31,457,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
8104{"divduo.", XO(31,457,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 8105
14b57c7c
AM
8106{"divwuo", XO(31,459,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
8107{"divwuo.", XO(31,459,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
252b5132 8108
14b57c7c 8109{"stxvd2x", X(31,972), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
a680de9a 8110{"stxvx", X(31,972), XX1_MASK, POWER8, POWER9|PPCVSX3, {XS6, RA0, RB}},
9b4e5766 8111
9fe54b1c 8112{"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
14b57c7c
AM
8113{"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, 0, {RT, RA}},
8114{"tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, 0, {RT, RA}},
8115{"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
418c1742 8116
14b57c7c 8117{"slbfee.", XRC(31,979,1), XRA_MASK, POWER6, 0, {RT, RB}},
c4e676f1 8118
14b57c7c 8119{"stbcix", X(31,981), X_MASK, POWER6, 0, {RS, RA0, RB}},
252b5132 8120
14b57c7c 8121{"icbi", X(31,982), XRT_MASK, PPC, 0, {RA0, RB}},
252b5132 8122
14b57c7c 8123{"stfiwx", X(31,983), X_MASK, PPC, PPCEFS, {FRS, RA0, RB}},
702f0fb4 8124
14b57c7c
AM
8125{"extsw", XRC(31,986,0), XRB_MASK, PPC64, 0, {RA, RS}},
8126{"extsw.", XRC(31,986,1), XRB_MASK, PPC64, 0, {RA, RS}},
252b5132 8127
14b57c7c 8128{"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
19a6653c 8129
ac8f0f72 8130{"stvswxl", X(31,997), X_MASK, E6500, 0, {VS, RA0, RB}},
aea77599 8131
14b57c7c 8132{"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA0, RB}},
252b5132 8133
14b57c7c
AM
8134{"nabso", XO(31,488,1,0), XORB_MASK, M601, 0, {RT, RA}},
8135{"nabso.", XO(31,488,1,1), XORB_MASK, M601, 0, {RT, RA}},
252b5132 8136
14b57c7c
AM
8137{"divdo", XO(31,489,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
8138{"divdo.", XO(31,489,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
43e65147 8139
14b57c7c
AM
8140{"divwo", XO(31,491,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
8141{"divwo.", XO(31,491,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
418c1742 8142
14b57c7c 8143{"stxvb16x", X(31,1004), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
a680de9a 8144
14b57c7c 8145{"trechkpt.", XRC(31,1006,1), XRTRARB_MASK,PPCHTM, 0, {0}},
702f0fb4 8146
14b57c7c 8147{"tlbli", X(31,1010), XRTRA_MASK, PPC, TITAN, {RB}},
252b5132 8148
14b57c7c 8149{"stdcix", X(31,1013), X_MASK, POWER6, 0, {RS, RA0, RB}},
418c1742 8150
14b57c7c
AM
8151{"dcbz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
8152{"dclz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
786e2c0f 8153
14b57c7c 8154{"dcbzep", XRT(31,1023,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
ede602d7 8155
14b57c7c 8156{"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPC476, {RA0, RB}},
252b5132 8157
14b57c7c
AM
8158{"dstt", XDSS(31,342,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
8159{"dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
8160{"dssall", XDSS(31,822,1), XDSS_MASK, PPCVEC, 0, {0}},
252b5132 8161
14b57c7c
AM
8162{"db8cyc", 0x7f9ce378, 0xffffffff, CELL, 0, {0}},
8163{"db10cyc", 0x7fbdeb78, 0xffffffff, CELL, 0, {0}},
8164{"db12cyc", 0x7fdef378, 0xffffffff, CELL, 0, {0}},
8165{"db16cyc", 0x7ffffb78, 0xffffffff, CELL, 0, {0}},
252b5132 8166
14b57c7c
AM
8167{"lwz", OP(32), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
8168{"l", OP(32), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 8169
14b57c7c
AM
8170{"lwzu", OP(33), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAL}},
8171{"lu", OP(33), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 8172
14b57c7c 8173{"lbz", OP(34), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 8174
14b57c7c 8175{"lbzu", OP(35), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 8176
14b57c7c
AM
8177{"stw", OP(36), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
8178{"st", OP(36), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 8179
14b57c7c
AM
8180{"stwu", OP(37), OP_MASK, PPCCOM, PPCVLE, {RS, D, RAS}},
8181{"stu", OP(37), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 8182
14b57c7c 8183{"stb", OP(38), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
252b5132 8184
14b57c7c 8185{"stbu", OP(39), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
252b5132 8186
14b57c7c 8187{"lhz", OP(40), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 8188
14b57c7c 8189{"lhzu", OP(41), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 8190
14b57c7c 8191{"lha", OP(42), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
252b5132 8192
14b57c7c 8193{"lhau", OP(43), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
252b5132 8194
14b57c7c 8195{"sth", OP(44), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
252b5132 8196
14b57c7c 8197{"sthu", OP(45), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
252b5132 8198
14b57c7c
AM
8199{"lmw", OP(46), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAM}},
8200{"lm", OP(46), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
252b5132 8201
14b57c7c
AM
8202{"stmw", OP(47), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
8203{"stm", OP(47), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
252b5132 8204
14b57c7c 8205{"lfs", OP(48), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
252b5132 8206
14b57c7c 8207{"lfsu", OP(49), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
252b5132 8208
14b57c7c 8209{"lfd", OP(50), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
252b5132 8210
14b57c7c 8211{"lfdu", OP(51), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
252b5132 8212
14b57c7c 8213{"stfs", OP(52), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
adadcc0c 8214
14b57c7c 8215{"stfsu", OP(53), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
252b5132 8216
14b57c7c 8217{"stfd", OP(54), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
c3d65c1c 8218
14b57c7c 8219{"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
252b5132 8220
73f07bff 8221{"lq", OP(56), OP_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
14b57c7c
AM
8222{"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
8223{"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
418c1742 8224
14b57c7c
AM
8225{"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
8226{"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
73f07bff 8227{"lfdp", OP(57), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
14b57c7c
AM
8228{"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
8229{"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
802a735e 8230
14b57c7c
AM
8231{"ld", DSO(58,0), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
8232{"ldu", DSO(58,1), DS_MASK, PPC64, PPCVLE, {RT, DS, RAL}},
8233{"lwa", DSO(58,2), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
702f0fb4 8234
14b57c7c
AM
8235{"dadd", XRC(59,2,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
8236{"dadd.", XRC(59,2,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
252b5132 8237
14b57c7c
AM
8238{"dqua", ZRC(59,3,0), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
8239{"dqua.", ZRC(59,3,1), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
252b5132 8240
aa3c112f
AM
8241{"xvi8ger4pp", XX3(59,2), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8242{"xvi8ger4", XX3(59,3), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8243
14b57c7c
AM
8244{"fdivs", A(59,18,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
8245{"fdivs.", A(59,18,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 8246
14b57c7c
AM
8247{"fsubs", A(59,20,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
8248{"fsubs.", A(59,20,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 8249
14b57c7c
AM
8250{"fadds", A(59,21,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
8251{"fadds.", A(59,21,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
252b5132 8252
14b57c7c
AM
8253{"fsqrts", A(59,22,0), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
8254{"fsqrts.", A(59,22,1), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
252b5132 8255
14b57c7c
AM
8256{"fres", A(59,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
8257{"fres", A(59,24,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
8258{"fres.", A(59,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
8259{"fres.", A(59,24,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
1ed8e1e4 8260
14b57c7c
AM
8261{"fmuls", A(59,25,0), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
8262{"fmuls.", A(59,25,1), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
252b5132 8263
14b57c7c
AM
8264{"frsqrtes", A(59,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
8265{"frsqrtes", A(59,26,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
8266{"frsqrtes.", A(59,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
8267{"frsqrtes.", A(59,26,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
252b5132 8268
14b57c7c
AM
8269{"fmsubs", A(59,28,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8270{"fmsubs.", A(59,28,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 8271
14b57c7c
AM
8272{"fmadds", A(59,29,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8273{"fmadds.", A(59,29,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 8274
14b57c7c
AM
8275{"fnmsubs", A(59,30,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8276{"fnmsubs.", A(59,30,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
702f0fb4 8277
14b57c7c
AM
8278{"fnmadds", A(59,31,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8279{"fnmadds.", A(59,31,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
702f0fb4 8280
14b57c7c
AM
8281{"dmul", XRC(59,34,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
8282{"dmul.", XRC(59,34,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
702f0fb4 8283
14b57c7c
AM
8284{"drrnd", ZRC(59,35,0), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
8285{"drrnd.", ZRC(59,35,1), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
702f0fb4 8286
14b57c7c
AM
8287{"dscli", ZRC(59,66,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
8288{"dscli.", ZRC(59,66,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
702f0fb4 8289
14b57c7c
AM
8290{"dquai", ZRC(59,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
8291{"dquai.", ZRC(59,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
702f0fb4 8292
aa3c112f
AM
8293{"xvf16ger2pp", XX3(59,18), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8294{"xvf16ger2", XX3(59,19), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8295
14b57c7c
AM
8296{"dscri", ZRC(59,98,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
8297{"dscri.", ZRC(59,98,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
702f0fb4 8298
14b57c7c
AM
8299{"drintx", ZRC(59,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
8300{"drintx.", ZRC(59,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
702f0fb4 8301
aa3c112f
AM
8302{"xvf32gerpp", XX3(59,26), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8303{"xvf32ger", XX3(59,27), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8304
14b57c7c 8305{"dcmpo", X(59,130), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
702f0fb4 8306
aa3c112f
AM
8307{"xvi4ger8pp", XX3(59,34), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8308{"xvi4ger8", XX3(59,35), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8309
14b57c7c 8310{"dtstex", X(59,162), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
aa3c112f
AM
8311
8312{"xvi16ger2spp", XX3(59,42), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8313{"xvi16ger2s", XX3(59,43), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8314
14b57c7c 8315{"dtstdc", Z(59,194), Z_MASK, POWER6, PPCVLE, {BF, FRA, DCM}},
aa3c112f
AM
8316
8317{"xvbf16ger2pp",XX3(59,50), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8318{"xvbf16ger2", XX3(59,51), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8319
14b57c7c
AM
8320{"dtstdg", Z(59,226), Z_MASK, POWER6, PPCVLE, {BF, FRA, DGM}},
8321
8322{"drintn", ZRC(59,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
8323{"drintn.", ZRC(59,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
8324
aa3c112f
AM
8325{"xvf64gerpp", XX3(59,58), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
8326{"xvf64ger", XX3(59,59), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
8327
14b57c7c
AM
8328{"dctdp", XRC(59,258,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
8329{"dctdp.", XRC(59,258,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
8330
8331{"dctfix", XRC(59,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
8332{"dctfix.", XRC(59,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
8333
8334{"ddedpd", XRC(59,322,0), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
8335{"ddedpd.", XRC(59,322,1), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
8336
aa3c112f
AM
8337{"xvi16ger2", XX3(59,75), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8338
8339{"xvf16ger2np", XX3(59,82), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8340
14b57c7c
AM
8341{"dxex", XRC(59,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
8342{"dxex.", XRC(59,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
8343
aa3c112f
AM
8344{"xvf32gernp", XX3(59,90), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8345
8346{"xvi8ger4spp", XX3(59,99), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8347
8348{"xvi16ger2pp", XX3(59,107), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8349
8350{"xvbf16ger2np",XX3(59,114), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8351
8352{"xvf64gernp", XX3(59,122), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
8353
14b57c7c
AM
8354{"dsub", XRC(59,514,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
8355{"dsub.", XRC(59,514,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
8356
8357{"ddiv", XRC(59,546,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
8358{"ddiv.", XRC(59,546,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
8359
aa3c112f
AM
8360{"xvf16ger2pn", XX3(59,146), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8361
8362{"xvf32gerpn", XX3(59,154), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8363
14b57c7c
AM
8364{"dcmpu", X(59,642), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
8365
8366{"dtstsf", X(59,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
8367{"dtstsfi", X(59,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRB}},
8368
aa3c112f
AM
8369{"xvbf16ger2pn",XX3(59,178), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8370
8371{"xvf64gerpn", XX3(59,186), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
8372
14b57c7c
AM
8373{"drsp", XRC(59,770,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
8374{"drsp.", XRC(59,770,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
8375
8376{"dcffix", XRC(59,802,0), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
8377{"dcffix.", XRC(59,802,1), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
8378
8379{"denbcd", XRC(59,834,0), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
8380{"denbcd.", XRC(59,834,1), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
8381
aa3c112f
AM
8382{"xvf16ger2nn", XX3(59,210), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8383
14b57c7c
AM
8384{"fcfids", XRC(59,846,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8385{"fcfids.", XRC(59,846,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8386
8387{"diex", XRC(59,866,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
8388{"diex.", XRC(59,866,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
8389
aa3c112f
AM
8390{"xvf32gernn", XX3(59,218), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8391
8392{"xvbf16ger2nn",XX3(59,242), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6a, XB6a}},
8393
14b57c7c
AM
8394{"fcfidus", XRC(59,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8395{"fcfidus.", XRC(59,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8396
aa3c112f
AM
8397{"xvf64gernn", XX3(59,250), XX3_MASK|3<<21, POWER10, PPCVLE, {ACC, XA6ap, XB6a}},
8398
14b57c7c
AM
8399{"xsaddsp", XX3(60,0), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8400{"xsmaddasp", XX3(60,1), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8401{"xxsldwi", XX3(60,2), XX3SHW_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, SHW}},
8402{"xscmpeqdp", XX3(60,3), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8403{"xsrsqrtesp", XX2(60,10), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
8404{"xssqrtsp", XX2(60,11), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
8405{"xxsel", XX4(60,3), XX4_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, XC6}},
8406{"xssubsp", XX3(60,8), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8407{"xsmaddmsp", XX3(60,9), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
98553ad3 8408{"xxspltd", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XAB6, DMEX}},
14b57c7c 8409{"xxmrghd", XX3(60,10), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
98553ad3 8410{"xxswapd", XX3(60,10)|(2<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
14b57c7c
AM
8411{"xxmrgld", XX3(60,10)|(3<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8412{"xxpermdi", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, DM}},
8413{"xscmpgtdp", XX3(60,11), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8414{"xsresp", XX2(60,26), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
8415{"xsmulsp", XX3(60,16), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8416{"xsmsubasp", XX3(60,17), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8417{"xxmrghw", XX3(60,18), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8418{"xscmpgedp", XX3(60,19), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8419{"xsdivsp", XX3(60,24), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8420{"xsmsubmsp", XX3(60,25), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8421{"xxperm", XX3(60,26), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8422{"xsadddp", XX3(60,32), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8423{"xsmaddadp", XX3(60,33), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8424{"xscmpudp", XX3(60,35), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
8425{"xscvdpuxws", XX2(60,72), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8426{"xsrdpi", XX2(60,73), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8427{"xsrsqrtedp", XX2(60,74), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8428{"xssqrtdp", XX2(60,75), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8429{"xssubdp", XX3(60,40), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8430{"xsmaddmdp", XX3(60,41), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8431{"xscmpodp", XX3(60,43), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
8432{"xscvdpsxws", XX2(60,88), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8433{"xsrdpiz", XX2(60,89), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8434{"xsredp", XX2(60,90), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8435{"xsmuldp", XX3(60,48), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8436{"xsmsubadp", XX3(60,49), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8437{"xxmrglw", XX3(60,50), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8438{"xsrdpip", XX2(60,105), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8439{"xstsqrtdp", XX2(60,106), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
8440{"xsrdpic", XX2(60,107), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8441{"xsdivdp", XX3(60,56), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8442{"xsmsubmdp", XX3(60,57), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8443{"xxpermr", XX3(60,58), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8444{"xscmpexpdp", XX3(60,59), XX3BF_MASK, PPCVSX3, PPCVLE, {BF, XA6, XB6}},
8445{"xsrdpim", XX2(60,121), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8446{"xstdivdp", XX3(60,61), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
8447{"xvaddsp", XX3(60,64), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8448{"xvmaddasp", XX3(60,65), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8449{"xvcmpeqsp", XX3RC(60,67,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8450{"xvcmpeqsp.", XX3RC(60,67,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8451{"xvcvspuxws", XX2(60,136), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8452{"xvrspi", XX2(60,137), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8453{"xvrsqrtesp", XX2(60,138), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8454{"xvsqrtsp", XX2(60,139), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8455{"xvsubsp", XX3(60,72), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8456{"xvmaddmsp", XX3(60,73), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8457{"xvcmpgtsp", XX3RC(60,75,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8458{"xvcmpgtsp.", XX3RC(60,75,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8459{"xvcvspsxws", XX2(60,152), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8460{"xvrspiz", XX2(60,153), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8461{"xvresp", XX2(60,154), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8462{"xvmulsp", XX3(60,80), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8463{"xvmsubasp", XX3(60,81), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8464{"xxspltw", XX2(60,164), XX2UIM_MASK, PPCVSX, PPCVLE, {XT6, XB6, UIM}},
8465{"xxextractuw", XX2(60,165), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
8466{"xvcmpgesp", XX3RC(60,83,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8467{"xvcmpgesp.", XX3RC(60,83,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8468{"xvcvuxwsp", XX2(60,168), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8469{"xvrspip", XX2(60,169), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8470{"xvtsqrtsp", XX2(60,170), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
8471{"xvrspic", XX2(60,171), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8472{"xvdivsp", XX3(60,88), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8473{"xvmsubmsp", XX3(60,89), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8474{"xxspltib", X(60,360), XX1_MASK|3<<19, PPCVSX3, PPCVLE, {XT6, IMM8}},
6edbfd3b 8475{"lxvkq", XVA(60,360,31), XVA_MASK&~1, POWER10, PPCVLE, {XT6, UIM5}},
14b57c7c
AM
8476{"xxinsertw", XX2(60,181), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
8477{"xvcvsxwsp", XX2(60,184), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8478{"xvrspim", XX2(60,185), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8479{"xvtdivsp", XX3(60,93), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
8480{"xvadddp", XX3(60,96), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8481{"xvmaddadp", XX3(60,97), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8482{"xvcmpeqdp", XX3RC(60,99,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8483{"xvcmpeqdp.", XX3RC(60,99,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8484{"xvcvdpuxws", XX2(60,200), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8485{"xvrdpi", XX2(60,201), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8486{"xvrsqrtedp", XX2(60,202), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8487{"xvsqrtdp", XX2(60,203), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8488{"xvsubdp", XX3(60,104), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8489{"xvmaddmdp", XX3(60,105), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8490{"xvcmpgtdp", XX3RC(60,107,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8491{"xvcmpgtdp.", XX3RC(60,107,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8492{"xvcvdpsxws", XX2(60,216), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8493{"xvrdpiz", XX2(60,217), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8494{"xvredp", XX2(60,218), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8495{"xvmuldp", XX3(60,112), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8496{"xvmsubadp", XX3(60,113), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8497{"xvcmpgedp", XX3RC(60,115,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8498{"xvcmpgedp.", XX3RC(60,115,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8499{"xvcvuxwdp", XX2(60,232), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8500{"xvrdpip", XX2(60,233), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8501{"xvtsqrtdp", XX2(60,234), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
8502{"xvrdpic", XX2(60,235), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8503{"xvdivdp", XX3(60,120), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8504{"xvmsubmdp", XX3(60,121), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8505{"xvcvsxwdp", XX2(60,248), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8506{"xvrdpim", XX2(60,249), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8507{"xvtdivdp", XX3(60,125), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
8508{"xsmaxcdp", XX3(60,128), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8509{"xsnmaddasp", XX3(60,129), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8510{"xxland", XX3(60,130), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8511{"xscvdpsp", XX2(60,265), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8512{"xscvdpspn", XX2(60,267), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
8513{"xsmincdp", XX3(60,136), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8514{"xsnmaddmsp", XX3(60,137), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8515{"xxlandc", XX3(60,138), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8516{"xsrsp", XX2(60,281), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
8517{"xsmaxjdp", XX3(60,144), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8518{"xsnmsubasp", XX3(60,145), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8519{"xxlor", XX3(60,146), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8520{"xscvuxdsp", XX2(60,296), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
8521{"xststdcsp", XX2(60,298), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
8522{"xsminjdp", XX3(60,152), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8523{"xsnmsubmsp", XX3(60,153), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8524{"xxlxor", XX3(60,154), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8525{"xscvsxdsp", XX2(60,312), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
8526{"xsmaxdp", XX3(60,160), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8527{"xsnmaddadp", XX3(60,161), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8528{"xxlnor", XX3(60,162), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8529{"xscvdpuxds", XX2(60,328), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8530{"xscvspdp", XX2(60,329), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8531{"xscvspdpn", XX2(60,331), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
8532{"xsmindp", XX3(60,168), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8533{"xsnmaddmdp", XX3(60,169), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8534{"xxlorc", XX3(60,170), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8535{"xscvdpsxds", XX2(60,344), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8536{"xsabsdp", XX2(60,345), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8537{"xsxexpdp", XX2VA(60,347,0),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
8538{"xsxsigdp", XX2VA(60,347,1),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
8539{"xscvhpdp", XX2VA(60,347,16),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
8540{"xscvdphp", XX2VA(60,347,17),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
8541{"xscpsgndp", XX3(60,176), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8542{"xsnmsubadp", XX3(60,177), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8543{"xxlnand", XX3(60,178), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8544{"xscvuxddp", XX2(60,360), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8545{"xsnabsdp", XX2(60,361), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8546{"xststdcdp", XX2(60,362), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
8547{"xsnmsubmdp", XX3(60,185), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8548{"xxleqv", XX3(60,186), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
8549{"xscvsxddp", XX2(60,376), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8550{"xsnegdp", XX2(60,377), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8551{"xvmaxsp", XX3(60,192), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8552{"xvnmaddasp", XX3(60,193), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8553{"xvcvspuxds", XX2(60,392), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8554{"xvcvdpsp", XX2(60,393), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8555{"xvminsp", XX3(60,200), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8556{"xvnmaddmsp", XX3(60,201), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8557{"xvcvspsxds", XX2(60,408), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8558{"xvabssp", XX2(60,409), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
98553ad3 8559{"xvmovsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
14b57c7c
AM
8560{"xvcpsgnsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8561{"xvnmsubasp", XX3(60,209), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8562{"xvcvuxdsp", XX2(60,424), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8563{"xvnabssp", XX2(60,425), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8564{"xvtstdcsp", XX2(60,426), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
8565{"xviexpsp", XX3(60,216), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8566{"xvnmsubmsp", XX3(60,217), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8567{"xvcvsxdsp", XX2(60,440), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8568{"xvnegsp", XX2(60,441), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8569{"xvmaxdp", XX3(60,224), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8570{"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8571{"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8572{"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
d7e97a76
AM
8573{"xxgenpcvbm", X(60,916), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
8574{"xxgenpcvhm", X(60,917), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
14b57c7c
AM
8575{"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}},
8576{"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8577{"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8578{"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8579{"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
d7e97a76
AM
8580{"xxgenpcvwm", X(60,948), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
8581{"xxgenpcvdm", X(60,949), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
14b57c7c
AM
8582{"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
8583{"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
18a8a00e 8584{"xvtlsbb", XX2VA(60,475,2),XX2BF_MASK, POWER10, PPCVLE, {BF, XB6}},
14b57c7c
AM
8585{"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
8586{"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
8587{"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
8588{"xxbrw", XX2VA(60,475,15),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
f5fc30d0 8589{"xvcvbf16spn", XX2VA(60,475,16),XX2_MASK, PPCVSX4, PPCVLE, {XT6, XB6}},
aa3c112f 8590{"xvcvspbf16", XX2VA(60,475,17),XX2_MASK, PPCVSX4, PPCVLE, {XT6, XB6}},
14b57c7c
AM
8591{"xxbrd", XX2VA(60,475,23),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
8592{"xvcvhpsp", XX2VA(60,475,24),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
8593{"xvcvsphp", XX2VA(60,475,25),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
8594{"xxbrq", XX2VA(60,475,31),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
98553ad3 8595{"xvmovdp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}},
14b57c7c
AM
8596{"xvcpsgndp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8597{"xvnmsubadp", XX3(60,241), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8598{"xvcvuxddp", XX2(60,488), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8599{"xvnabsdp", XX2(60,489), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8600{"xvtstdcdp", XX2(60,490), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
8601{"xviexpdp", XX3(60,248), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
8602{"xvnmsubmdp", XX3(60,249), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
8603{"xvcvsxddp", XX2(60,504), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8604{"xvnegdp", XX2(60,505), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
8605
8606{"psq_st", OP(60), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
8607{"stfq", OP(60), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
8608
8609{"lxv", DQX(61,1), DQX_MASK, PPCVSX3, PPCVLE, {XTQ6, DQ, RA0}},
8610{"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}},
8611{"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
8612{"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
73f07bff 8613{"stfdp", OP(61), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
14b57c7c
AM
8614{"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
8615{"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
8616
8617{"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}},
8618{"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}},
73f07bff 8619{"stq", DSO(62,2), DS_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
14b57c7c
AM
8620
8621{"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
8622
73f07bff
AM
8623{"daddq", XRC(63,2,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
8624{"daddq.", XRC(63,2,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
14b57c7c 8625
73f07bff
AM
8626{"dquaq", ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
8627{"dquaq.", ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
14b57c7c
AM
8628
8629{"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8630{"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8631
8632{"xsrqpi", ZRC(63,5,0), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
8633{"xsrqpix", ZRC(63,5,1), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
8634
8635{"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
8636{"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
8637
8638{"frsp", XRC(63,12,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8639{"frsp.", XRC(63,12,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8640
8641{"fctiw", XRC(63,14,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
8642{"fcir", XRC(63,14,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
8643{"fctiw.", XRC(63,14,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
8644{"fcir.", XRC(63,14,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
8645
8646{"fctiwz", XRC(63,15,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
8647{"fcirz", XRC(63,15,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
8648{"fctiwz.", XRC(63,15,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
8649{"fcirz.", XRC(63,15,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
8650
8651{"fdiv", A(63,18,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
8652{"fd", A(63,18,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
8653{"fdiv.", A(63,18,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
8654{"fd.", A(63,18,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
8655
8656{"fsub", A(63,20,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
8657{"fs", A(63,20,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
8658{"fsub.", A(63,20,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
8659{"fs.", A(63,20,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
8660
8661{"fadd", A(63,21,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
8662{"fa", A(63,21,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
8663{"fadd.", A(63,21,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
8664{"fa.", A(63,21,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
8665
8666{"fsqrt", A(63,22,0), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
8667{"fsqrt.", A(63,22,1), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
8668
8669{"fsel", A(63,23,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8670{"fsel.", A(63,23,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8671
8672{"fre", A(63,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
8673{"fre", A(63,24,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
8674{"fre.", A(63,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
8675{"fre.", A(63,24,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
1ed8e1e4 8676
14b57c7c
AM
8677{"fmul", A(63,25,0), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
8678{"fm", A(63,25,0), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
8679{"fmul.", A(63,25,1), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
8680{"fm.", A(63,25,1), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
252b5132 8681
14b57c7c
AM
8682{"frsqrte", A(63,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
8683{"frsqrte", A(63,26,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
8684{"frsqrte.", A(63,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
8685{"frsqrte.", A(63,26,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
252b5132 8686
14b57c7c
AM
8687{"fmsub", A(63,28,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8688{"fms", A(63,28,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
8689{"fmsub.", A(63,28,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8690{"fms.", A(63,28,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 8691
14b57c7c
AM
8692{"fmadd", A(63,29,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8693{"fma", A(63,29,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
8694{"fmadd.", A(63,29,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8695{"fma.", A(63,29,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 8696
14b57c7c
AM
8697{"fnmsub", A(63,30,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8698{"fnms", A(63,30,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
8699{"fnmsub.", A(63,30,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8700{"fnms.", A(63,30,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 8701
14b57c7c
AM
8702{"fnmadd", A(63,31,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8703{"fnma", A(63,31,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
8704{"fnmadd.", A(63,31,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
8705{"fnma.", A(63,31,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
252b5132 8706
14b57c7c 8707{"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
252b5132 8708
73f07bff
AM
8709{"dmulq", XRC(63,34,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
8710{"dmulq.", XRC(63,34,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 8711
73f07bff
AM
8712{"drrndq", ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
8713{"drrndq.", ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
702f0fb4 8714
14b57c7c
AM
8715{"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8716{"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 8717
14b57c7c 8718{"xsrqpxp", Z(63,37), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
a680de9a 8719
96a86c01
AM
8720{"mtfsb1", XRC(63,38,0), XRARB_MASK, COM, PPCVLE, {BTF}},
8721{"mtfsb1.", XRC(63,38,1), XRARB_MASK, COM, PPCVLE, {BTF}},
252b5132 8722
14b57c7c
AM
8723{"fneg", XRC(63,40,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8724{"fneg.", XRC(63,40,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 8725
14b57c7c 8726{"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
252b5132 8727
73f07bff
AM
8728{"dscliq", ZRC(63,66,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
8729{"dscliq.", ZRC(63,66,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
702f0fb4 8730
73f07bff
AM
8731{"dquaiq", ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
8732{"dquaiq.", ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
702f0fb4 8733
3b646889
AM
8734{"xscmpeqqp", X(63,68), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
8735
96a86c01
AM
8736{"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BTF}},
8737{"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BTF}},
252b5132 8738
14b57c7c
AM
8739{"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8740{"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 8741
73f07bff
AM
8742{"dscriq", ZRC(63,98,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
8743{"dscriq.", ZRC(63,98,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
702f0fb4 8744
73f07bff
AM
8745{"drintxq", ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
8746{"drintxq.", ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
702f0fb4 8747
14b57c7c 8748{"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 8749
14b57c7c 8750{"ftdiv", X(63,128), XBF_MASK, POWER7, PPCVLE, {BF, FRA, FRB}},
066be9f7 8751
14b57c7c 8752{"dcmpoq", X(63,130), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
702f0fb4 8753
14b57c7c 8754{"xscmpoqp", X(63,132), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 8755
14b57c7c
AM
8756{"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
8757{"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
8758{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
8759{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
252b5132 8760
14b57c7c
AM
8761{"fnabs", XRC(63,136,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8762{"fnabs.", XRC(63,136,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 8763
14b57c7c
AM
8764{"fctiwu", XRC(63,142,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
8765{"fctiwu.", XRC(63,142,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
8766{"fctiwuz", XRC(63,143,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
8767{"fctiwuz.", XRC(63,143,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
066be9f7 8768
14b57c7c 8769{"ftsqrt", X(63,160), XBF_MASK|FRA_MASK, POWER7, PPCVLE, {BF, FRB}},
066be9f7 8770
14b57c7c 8771{"dtstexq", X(63,162), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
a680de9a 8772
14b57c7c 8773{"xscmpexpqp", X(63,164), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 8774
14b57c7c 8775{"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}},
3b646889
AM
8776
8777{"xscmpgeqp", X(63,196), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
8778
14b57c7c 8779{"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}},
702f0fb4 8780
73f07bff
AM
8781{"drintnq", ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
8782{"drintnq.", ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
702f0fb4 8783
3b646889
AM
8784{"xscmpgtqp", X(63,228), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
8785
73f07bff
AM
8786{"dctqpq", XRC(63,258,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
8787{"dctqpq.", XRC(63,258,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
702f0fb4 8788
14b57c7c
AM
8789{"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
8790{"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
252b5132 8791
14b57c7c
AM
8792{"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
8793{"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
702f0fb4 8794
73f07bff
AM
8795{"ddedpdq", XRC(63,322,0), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
8796{"ddedpdq.", XRC(63,322,1), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
702f0fb4 8797
14b57c7c
AM
8798{"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
8799{"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
702f0fb4 8800
14b57c7c
AM
8801{"xsmaddqp", XRC(63,388,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8802{"xsmaddqpo", XRC(63,388,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 8803
14b57c7c
AM
8804{"frin", XRC(63,392,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8805{"frin.", XRC(63,392,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 8806
14b57c7c
AM
8807{"xsmsubqp", XRC(63,420,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8808{"xsmsubqpo", XRC(63,420,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 8809
14b57c7c
AM
8810{"friz", XRC(63,424,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8811{"friz.", XRC(63,424,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 8812
14b57c7c
AM
8813{"xsnmaddqp", XRC(63,452,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8814{"xsnmaddqpo", XRC(63,452,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 8815
14b57c7c
AM
8816{"frip", XRC(63,456,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8817{"frip.", XRC(63,456,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
a680de9a 8818
14b57c7c
AM
8819{"xsnmsubqp", XRC(63,484,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8820{"xsnmsubqpo", XRC(63,484,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 8821
14b57c7c
AM
8822{"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
8823{"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
ce7a772b 8824
73f07bff
AM
8825{"dsubq", XRC(63,514,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
8826{"dsubq.", XRC(63,514,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 8827
14b57c7c
AM
8828{"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8829{"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 8830
73f07bff
AM
8831{"ddivq", XRC(63,546,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
8832{"ddivq.", XRC(63,546,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
702f0fb4 8833
14b57c7c
AM
8834{"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
8835{"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 8836
14b57c7c
AM
8837{"mffs", XRC(63,583,0), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
8838{"mffs.", XRC(63,583,1), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
252b5132 8839
6fd3a02d
PB
8840{"mffsce", XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
8841{"mffscdrn", XMMF(63,583,2,4), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
8842{"mffscdrni", XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE, {FRT, DRM}},
8843{"mffscrn", XMMF(63,583,2,6), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
8844{"mffscrni", XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE, {FRT, RM}},
8845{"mffsl", XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
8846
14b57c7c 8847{"dcmpuq", X(63,642), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
702f0fb4 8848
14b57c7c 8849{"xscmpuqp", X(63,644), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
a680de9a 8850
14b57c7c
AM
8851{"dtstsfq", X(63,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRBp}},
8852{"dtstsfiq", X(63,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRBp}},
a680de9a 8853
3b646889
AM
8854{"xsmaxcqp", X(63,676), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
8855
14b57c7c 8856{"xststdcqp", X(63,708), X_MASK, PPCVSX3, PPCVLE, {BF, VB, DCMX}},
702f0fb4 8857
14b57c7c
AM
8858{"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
8859{"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
8860{"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
8861{"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
252b5132 8862
3b646889
AM
8863{"xsmincqp", X(63,740), X_MASK, POWER10, PPCVLE, {VD, VA, VB}},
8864
73f07bff
AM
8865{"drdpq", XRC(63,770,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
8866{"drdpq.", XRC(63,770,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
702f0fb4 8867
73f07bff
AM
8868{"dcffixq", XRC(63,802,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
8869{"dcffixq.", XRC(63,802,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
702f0fb4 8870
14b57c7c
AM
8871{"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8872{"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8873{"xsnabsqp", XVA(63,804,8), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8874{"xsnegqp", XVA(63,804,16), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8875{"xsxsigqp", XVA(63,804,18), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8876{"xssqrtqp", XVARC(63,804,27,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8877{"xssqrtqpo", XVARC(63,804,27,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
a680de9a 8878
14b57c7c
AM
8879{"fctid", XRC(63,814,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8880{"fctid", XRC(63,814,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
8881{"fctid.", XRC(63,814,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8882{"fctid.", XRC(63,814,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 8883
14b57c7c
AM
8884{"fctidz", XRC(63,815,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8885{"fctidz", XRC(63,815,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
8886{"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8887{"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 8888
73f07bff
AM
8889{"denbcdq", XRC(63,834,0), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
8890{"denbcdq.", XRC(63,834,1), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
702f0fb4 8891
c7d7aea2 8892{"xscvqpuqz", XVA(63,836,0), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
14b57c7c
AM
8893{"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8894{"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
c7d7aea2
AM
8895{"xscvuqqp", XVA(63,836,3), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
8896{"xscvqpsqz", XVA(63,836,8), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
14b57c7c
AM
8897{"xscvqpswz", XVA(63,836,9), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8898{"xscvsdqp", XVA(63,836,10), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
c7d7aea2 8899{"xscvsqqp", XVA(63,836,11), XVA_MASK, POWER10, PPCVLE, {VD, VB}},
14b57c7c
AM
8900{"xscvqpudz", XVA(63,836,17), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8901{"xscvqpdp", XVARC(63,836,20,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8902{"xscvqpdpo", XVARC(63,836,20,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8903{"xscvdpqp", XVA(63,836,22), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
8904{"xscvqpsdz", XVA(63,836,25), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
a680de9a 8905
14b57c7c 8906{"fmrgow", X(63,838), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
c0637f3a 8907
14b57c7c
AM
8908{"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8909{"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
8910{"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
8911{"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
252b5132 8912
73f07bff
AM
8913{"diexq", XRC(63,866,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
8914{"diexq.", XRC(63,866,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
702f0fb4 8915
14b57c7c 8916{"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
a680de9a 8917
14b57c7c
AM
8918{"fctidu", XRC(63,942,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8919{"fctidu.", XRC(63,942,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
066be9f7 8920
14b57c7c
AM
8921{"fctiduz", XRC(63,943,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8922{"fctiduz.", XRC(63,943,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
066be9f7 8923
14b57c7c 8924{"fmrgew", X(63,966), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
c0637f3a 8925
14b57c7c
AM
8926{"fcfidu", XRC(63,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
8927{"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
c7d7aea2
AM
8928
8929{"dcffixqq", XVA(63,994,0), XVA_MASK, POWER10, PPCVLE, {FRTp, VB}},
8930{"dctfixqq", XVA(63,994,1), XVA_MASK, POWER10, PPCVLE, {VD, FRBp}},
252b5132
RH
8931};
8932
2ceb7719 8933const unsigned int powerpc_num_opcodes =
252b5132
RH
8934 sizeof (powerpc_opcodes) / sizeof (powerpc_opcodes[0]);
8935\f
dd7efa79
PB
8936/* The opcode table for 8-byte prefix instructions.
8937
8938 The format of this opcode table is the same as the main opcode table. */
8939
8940const struct powerpc_opcode prefix_opcodes[] = {
7c1f4227
AM
8941{"pnop", PMRR, PREFIX_MASK, POWER10, 0, {0}},
8942{"pli", PMLS|OP(14), P_DRAPCREL_MASK, POWER10, 0, {RT, SI34}},
8943{"paddi", PMLS|OP(14), P_D_MASK, POWER10, 0, {RT, RA0, SI34, PCREL0}},
8944{"psubi", PMLS|OP(14), P_D_MASK, POWER10, 0, {RT, RA0, NSI34, PCREL0}},
8945{"pla", PMLS|OP(14), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
6edbfd3b
AM
8946{"xxsplti32dx", P8RR|VSOP(32,0), P_VSI_MASK, POWER10, 0, {XTS, IX, IMM32}},
8947{"xxspltidp", P8RR|VSOP(32,2), P_VS_MASK, POWER10, 0, {XTS, IMM32}},
8948{"xxspltiw", P8RR|VSOP(32,3), P_VS_MASK, POWER10, 0, {XTS, IMM32}},
7c1f4227 8949{"plwz", PMLS|OP(32), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
6edbfd3b
AM
8950{"xxblendvb", P8RR|XX4(33,0), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
8951{"xxblendvh", P8RR|XX4(33,1), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
8952{"xxblendvw", P8RR|XX4(33,2), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
8953{"xxblendvd", P8RR|XX4(33,3), P_XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6}},
8954{"xxpermx", P8RR|XX4(34,0), P_UXX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6, UIM3}},
ec40e91c 8955{"xxeval", P8RR|XX4(34,1), P_U8XX4_MASK, POWER10, 0, {XT6, XA6, XB6, XC6, UIM8}},
7c1f4227
AM
8956{"plbz", PMLS|OP(34), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8957{"pstw", PMLS|OP(36), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
8958{"pstb", PMLS|OP(38), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
8959{"plhz", PMLS|OP(40), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8960{"plwa", P8LS|OP(41), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8961{"plxsd", P8LS|OP(42), P_D_MASK, POWER10, 0, {VD, D34, PRA0, PCREL}},
8962{"plha", PMLS|OP(42), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
8963{"plxssp", P8LS|OP(43), P_D_MASK, POWER10, 0, {VD, D34, PRA0, PCREL}},
8964{"psth", PMLS|OP(44), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
8965{"pstxsd", P8LS|OP(46), P_D_MASK, POWER10, 0, {VS, D34, PRA0, PCREL}},
8966{"pstxssp", P8LS|OP(47), P_D_MASK, POWER10, 0, {VS, D34, PRA0, PCREL}},
8967{"plfs", PMLS|OP(48), P_D_MASK, POWER10, 0, {FRT, D34, PRA0, PCREL}},
8968{"plxv", P8LS|OP(50), P_D_MASK&~OP(1), POWER10, 0, {XTOP, D34, PRA0, PCREL}},
8969{"plfd", PMLS|OP(50), P_D_MASK, POWER10, 0, {FRT, D34, PRA0, PCREL}},
8970{"pstfs", PMLS|OP(52), P_D_MASK, POWER10, 0, {FRS, D34, PRA0, PCREL}},
8971{"pstxv", P8LS|OP(54), P_D_MASK&~OP(1), POWER10, 0, {XTOP, D34, PRA0, PCREL}},
8972{"pstfd", PMLS|OP(54), P_D_MASK, POWER10, 0, {FRS, D34, PRA0, PCREL}},
8973{"plq", P8LS|OP(56), P_D_MASK, POWER10, 0, {RTQ, D34, PRAQ, PCREL}},
8974{"pld", P8LS|OP(57), P_D_MASK, POWER10, 0, {RT, D34, PRA0, PCREL}},
94ba9882 8975{"plxvp", P8LS|OP(58), P_D_MASK, POWER10, 0, {XTP, D34, PRA0, PCREL}},
aa3c112f
AM
8976{"pmxvi8ger4pp", PMMIRR|XX3(59,2), P_GER4_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
8977{"pmxvi8ger4", PMMIRR|XX3(59,3), P_GER4_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
8978{"pmxvf16ger2pp", PMMIRR|XX3(59,18), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8979{"pmxvf16ger2", PMMIRR|XX3(59,19), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8980{"pmxvf32gerpp", PMMIRR|XX3(59,26), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
8981{"pmxvf32ger", PMMIRR|XX3(59,27), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
8982{"pmxvi4ger8pp", PMMIRR|XX3(59,34), P_GER8_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
8983{"pmxvi4ger8", PMMIRR|XX3(59,35), P_GER8_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
8984{"pmxvi16ger2spp",PMMIRR|XX3(59,42), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8985{"pmxvi16ger2s", PMMIRR|XX3(59,43), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8986{"pmxvbf16ger2pp",PMMIRR|XX3(59,50), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8987{"pmxvbf16ger2", PMMIRR|XX3(59,51), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8988{"pmxvf64gerpp", PMMIRR|XX3(59,58), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
8989{"pmxvf64ger", PMMIRR|XX3(59,59), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
8990{"pmxvi16ger2", PMMIRR|XX3(59,75), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8991{"pmxvf16ger2np", PMMIRR|XX3(59,82), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8992{"pmxvf32gernp", PMMIRR|XX3(59,90), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
8993{"pmxvi8ger4spp", PMMIRR|XX3(59,99), P_GER4_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
8994{"pmxvi16ger2pp", PMMIRR|XX3(59,107), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8995{"pmxvbf16ger2np",PMMIRR|XX3(59,114), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8996{"pmxvf64gernp", PMMIRR|XX3(59,122), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
8997{"pmxvf16ger2pn", PMMIRR|XX3(59,146), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
8998{"pmxvf32gerpn", PMMIRR|XX3(59,154), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
8999{"pmxvbf16ger2pn",PMMIRR|XX3(59,178), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
9000{"pmxvf64gerpn", PMMIRR|XX3(59,186), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
9001{"pmxvf16ger2nn", PMMIRR|XX3(59,210), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
9002{"pmxvf32gernn", PMMIRR|XX3(59,218), P_GER_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK}},
9003{"pmxvbf16ger2nn",PMMIRR|XX3(59,242), P_GER2_MASK, POWER10, 0, {ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
9004{"pmxvf64gernn", PMMIRR|XX3(59,250), P_GER64_MASK, POWER10, 0, {ACC, XA6ap, XB6a, XMSK, YMSK2}},
7c1f4227
AM
9005{"pstq", P8LS|OP(60), P_D_MASK, POWER10, 0, {RSQ, D34, PRA0, PCREL}},
9006{"pstd", P8LS|OP(61), P_D_MASK, POWER10, 0, {RS, D34, PRA0, PCREL}},
94ba9882 9007{"pstxvp", P8LS|OP(62), P_D_MASK, POWER10, 0, {XTP, D34, PRA0, PCREL}},
dd7efa79
PB
9008};
9009
9010const unsigned int prefix_num_opcodes =
9011 sizeof (prefix_opcodes) / sizeof (prefix_opcodes[0]);
9012\f
b9c361e0
JL
9013/* The VLE opcode table.
9014
9015 The format of this opcode table is the same as the main opcode table. */
9016
9017const struct powerpc_opcode vle_opcodes[] = {
14b57c7c
AM
9018{"se_illegal", C(0), C_MASK, PPCVLE, 0, {}},
9019{"se_isync", C(1), C_MASK, PPCVLE, 0, {}},
9020{"se_sc", C(2), C_MASK, PPCVLE, 0, {}},
9021{"se_blr", C_LK(2,0), C_LK_MASK, PPCVLE, 0, {}},
9022{"se_blrl", C_LK(2,1), C_LK_MASK, PPCVLE, 0, {}},
9023{"se_bctr", C_LK(3,0), C_LK_MASK, PPCVLE, 0, {}},
9024{"se_bctrl", C_LK(3,1), C_LK_MASK, PPCVLE, 0, {}},
9025{"se_rfi", C(8), C_MASK, PPCVLE, 0, {}},
9026{"se_rfci", C(9), C_MASK, PPCVLE, 0, {}},
9027{"se_rfdi", C(10), C_MASK, PPCVLE, 0, {}},
9028{"se_rfmci", C(11), C_MASK, PPCRFMCI|PPCVLE, 0, {}},
a8cc8a54 9029{"se_rfgi", C(12), C_MASK, PPCVLE, 0, {}},
14b57c7c
AM
9030{"se_not", SE_R(0,2), SE_R_MASK, PPCVLE, 0, {RX}},
9031{"se_neg", SE_R(0,3), SE_R_MASK, PPCVLE, 0, {RX}},
9032{"se_mflr", SE_R(0,8), SE_R_MASK, PPCVLE, 0, {RX}},
9033{"se_mtlr", SE_R(0,9), SE_R_MASK, PPCVLE, 0, {RX}},
9034{"se_mfctr", SE_R(0,10), SE_R_MASK, PPCVLE, 0, {RX}},
9035{"se_mtctr", SE_R(0,11), SE_R_MASK, PPCVLE, 0, {RX}},
9036{"se_extzb", SE_R(0,12), SE_R_MASK, PPCVLE, 0, {RX}},
9037{"se_extsb", SE_R(0,13), SE_R_MASK, PPCVLE, 0, {RX}},
9038{"se_extzh", SE_R(0,14), SE_R_MASK, PPCVLE, 0, {RX}},
9039{"se_extsh", SE_R(0,15), SE_R_MASK, PPCVLE, 0, {RX}},
9040{"se_mr", SE_RR(0,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9041{"se_mtar", SE_RR(0,2), SE_RR_MASK, PPCVLE, 0, {ARX, RY}},
9042{"se_mfar", SE_RR(0,3), SE_RR_MASK, PPCVLE, 0, {RX, ARY}},
9043{"se_add", SE_RR(1,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9044{"se_mullw", SE_RR(1,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9045{"se_sub", SE_RR(1,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9046{"se_subf", SE_RR(1,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9047{"se_cmp", SE_RR(3,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9048{"se_cmpl", SE_RR(3,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9049{"se_cmph", SE_RR(3,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9050{"se_cmphl", SE_RR(3,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9051
e3c2f928
AF
9052/* by major opcode */
9053{"zvaddih", VX(4, 0x200), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
9054{"zvsubifh", VX(4, 0x201), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
9055{"zvaddh", VX(4, 0x204), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9056{"zvsubfh", VX(4, 0x205), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9057{"zvaddsubfh", VX(4, 0x206), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9058{"zvsubfaddh", VX(4, 0x207), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9059{"zvaddhx", VX(4, 0x20C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9060{"zvsubfhx", VX(4, 0x20D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9061{"zvaddsubfhx", VX(4, 0x20E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9062{"zvsubfaddhx", VX(4, 0x20F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9063{"zaddwus", VX(4, 0x210), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9064{"zsubfwus", VX(4, 0x211), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9065{"zaddwss", VX(4, 0x212), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9066{"zsubfwss", VX(4, 0x213), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9067{"zvaddhus", VX(4, 0x214), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9068{"zvsubfhus", VX(4, 0x215), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9069{"zvaddhss", VX(4, 0x216), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9070{"zvsubfhss", VX(4, 0x217), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9071{"zvaddsubfhss", VX(4, 0x21A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9072{"zvsubfaddhss", VX(4, 0x21B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9073{"zvaddhxss", VX(4, 0x21C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9074{"zvsubfhxss", VX(4, 0x21D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9075{"zvaddsubfhxss", VX(4, 0x21E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9076{"zvsubfaddhxss", VX(4, 0x21F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9077{"zaddheuw", VX(4, 0x220), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9078{"zsubfheuw", VX(4, 0x221), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9079{"zaddhesw", VX(4, 0x222), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9080{"zsubfhesw", VX(4, 0x223), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9081{"zaddhouw", VX(4, 0x224), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9082{"zsubfhouw", VX(4, 0x225), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9083{"zaddhosw", VX(4, 0x226), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9084{"zsubfhosw", VX(4, 0x227), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9085{"zvmergehih", VX(4, 0x22C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9086{"zvmergeloh", VX(4, 0x22D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9087{"zvmergehiloh", VX(4, 0x22E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9088{"zvmergelohih", VX(4, 0x22F), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9089{"zvcmpgthu", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
9090{"zvcmpgths", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
9091{"zvcmplthu", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
9092{"zvcmplths", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
9093{"zvcmpeqh", VX(4, 0x232), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}},
9094{"zpkswgshfrs", VX(4, 0x238), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9095{"zpkswgswfrs", VX(4, 0x239), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9096{"zvpkshgwshfrs", VX(4, 0x23A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9097{"zvpkswshfrs", VX(4, 0x23B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9098{"zvpkswuhs", VX(4, 0x23C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9099{"zvpkswshs", VX(4, 0x23D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9100{"zvpkuwuhs", VX(4, 0x23E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9101{"zvsplatih", VX_LSP(4, 0x23F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
9102{"zvsplatfih", VX_LSP(4, 0xA3F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}},
9103{"zcntlsw", VX_LSP(4, 0x2A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9104{"zvcntlzh", VX_LSP(4, 0x323F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9105{"zvcntlsh", VX_LSP(4, 0x3A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9106{"znegws", VX_LSP(4, 0x4A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9107{"zvnegh", VX_LSP(4, 0x523F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9108{"zvneghs", VX_LSP(4, 0x5A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9109{"zvnegho", VX_LSP(4, 0x623F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9110{"zvneghos", VX_LSP(4, 0x6A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9111{"zrndwh", VX_LSP(4, 0x823F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9112{"zrndwhss", VX_LSP(4, 0x8A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9113{"zvabsh", VX_LSP(4, 0xA23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9114{"zvabshs", VX_LSP(4, 0xAA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9115{"zabsw", VX_LSP(4, 0xB23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9116{"zabsws", VX_LSP(4, 0xBA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9117{"zsatswuw", VX_LSP(4, 0xC23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9118{"zsatuwsw", VX_LSP(4, 0xCA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9119{"zsatswuh", VX_LSP(4, 0xD23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9120{"zsatswsh", VX_LSP(4, 0xDA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9121{"zvsatshuh", VX_LSP(4, 0xE23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9122{"zvsatuhsh", VX_LSP(4, 0xEA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9123{"zsatuwuh", VX_LSP(4, 0xF23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9124{"zsatuwsh", VX_LSP(4, 0xFA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}},
9125{"zsatsduw", VX(4, 0x260), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9126{"zsatsdsw", VX(4, 0x261), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9127{"zsatuduw", VX(4, 0x262), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9128{"zvselh", VX(4, 0x264), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9129{"zxtrw", VX(4, 0x264), VX_LSP_OFF_MASK, PPCLSP, 0, {RD, RA, RB, VX_OFF}},
9130{"zbrminc", VX(4, 0x268), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9131{"zcircinc", VX(4, 0x269), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9132{"zdivwsf", VX(4, 0x26B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9133{"zvsrhu", VX(4, 0x270), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9134{"zvsrhs", VX(4, 0x271), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9135{"zvsrhiu", VX(4, 0x272), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
9136{"zvsrhis", VX(4, 0x273), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
9137{"zvslh", VX(4, 0x274), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9138{"zvrlh", VX(4, 0x275), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9139{"zvslhi", VX(4, 0x276), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
9140{"zvrlhi", VX(4, 0x277), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
9141{"zvslhus", VX(4, 0x278), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9142{"zvslhss", VX(4, 0x279), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9143{"zvslhius", VX(4, 0x27A), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
9144{"zvslhiss", VX(4, 0x27B), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}},
9145{"zslwus", VX(4, 0x27C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9146{"zslwss", VX(4, 0x27D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9147{"zslwius", VX(4, 0x27E), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
9148{"zslwiss", VX(4, 0x27F), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}},
9149{"zaddwgui", VX(4, 0x460), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9150{"zsubfwgui", VX(4, 0x461), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9151{"zaddd", VX(4, 0x462), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9152{"zsubfd", VX(4, 0x463), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9153{"zvaddsubfw", VX(4, 0x464), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9154{"zvsubfaddw", VX(4, 0x465), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9155{"zvaddw", VX(4, 0x466), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9156{"zvsubfw", VX(4, 0x467), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9157{"zaddwgsi", VX(4, 0x468), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9158{"zsubfwgsi", VX(4, 0x469), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9159{"zadddss", VX(4, 0x46A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9160{"zsubfdss", VX(4, 0x46B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9161{"zvaddsubfwss", VX(4, 0x46C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9162{"zvsubfaddwss", VX(4, 0x46D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9163{"zvaddwss", VX(4, 0x46E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9164{"zvsubfwss", VX(4, 0x46F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9165{"zaddwgsf", VX(4, 0x470), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9166{"zsubfwgsf", VX(4, 0x471), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9167{"zadddus", VX(4, 0x472), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9168{"zsubfdus", VX(4, 0x473), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9169{"zvaddwus", VX(4, 0x476), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9170{"zvsubfwus", VX(4, 0x477), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9171{"zvunpkhgwsf", VX_LSP(4, 0x478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
9172{"zvunpkhsf", VX_LSP(4, 0xC78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
9173{"zvunpkhui", VX_LSP(4, 0x1478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
9174{"zvunpkhsi", VX_LSP(4, 0x1C78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
9175{"zunpkwgsf", VX_LSP(4, 0x2478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}},
9176{"zvdotphgwasmf", VX(4, 0x488), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9177{"zvdotphgwasmfr", VX(4, 0x489), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9178{"zvdotphgwasmfaa", VX(4, 0x48A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9179{"zvdotphgwasmfraa", VX(4, 0x48B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9180{"zvdotphgwasmfan", VX(4, 0x48C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9181{"zvdotphgwasmfran", VX(4, 0x48D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9182{"zvmhulgwsmf", VX(4, 0x490), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9183{"zvmhulgwsmfr", VX(4, 0x491), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9184{"zvmhulgwsmfaa", VX(4, 0x492), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9185{"zvmhulgwsmfraa", VX(4, 0x493), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9186{"zvmhulgwsmfan", VX(4, 0x494), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9187{"zvmhulgwsmfran", VX(4, 0x495), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9188{"zvmhulgwsmfanp", VX(4, 0x496), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9189{"zvmhulgwsmfranp", VX(4, 0x497), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9190{"zmhegwsmf", VX(4, 0x498), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9191{"zmhegwsmfr", VX(4, 0x499), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9192{"zmhegwsmfaa", VX(4, 0x49A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9193{"zmhegwsmfraa", VX(4, 0x49B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9194{"zmhegwsmfan", VX(4, 0x49C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9195{"zmhegwsmfran", VX(4, 0x49D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9196{"zvdotphxgwasmf", VX(4, 0x4A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9197{"zvdotphxgwasmfr", VX(4, 0x4A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9198{"zvdotphxgwasmfaa", VX(4, 0x4AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9199{"zvdotphxgwasmfraa", VX(4, 0x4AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9200{"zvdotphxgwasmfan", VX(4, 0x4AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9201{"zvdotphxgwasmfran", VX(4, 0x4AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9202{"zvmhllgwsmf", VX(4, 0x4B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9203{"zvmhllgwsmfr", VX(4, 0x4B1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9204{"zvmhllgwsmfaa", VX(4, 0x4B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9205{"zvmhllgwsmfraa", VX(4, 0x4B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9206{"zvmhllgwsmfan", VX(4, 0x4B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9207{"zvmhllgwsmfran", VX(4, 0x4B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9208{"zvmhllgwsmfanp", VX(4, 0x4B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9209{"zvmhllgwsmfranp", VX(4, 0x4B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9210{"zmheogwsmf", VX(4, 0x4B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9211{"zmheogwsmfr", VX(4, 0x4B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9212{"zmheogwsmfaa", VX(4, 0x4BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9213{"zmheogwsmfraa", VX(4, 0x4BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9214{"zmheogwsmfan", VX(4, 0x4BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9215{"zmheogwsmfran", VX(4, 0x4BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9216{"zvdotphgwssmf", VX(4, 0x4C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9217{"zvdotphgwssmfr", VX(4, 0x4C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9218{"zvdotphgwssmfaa", VX(4, 0x4CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9219{"zvdotphgwssmfraa", VX(4, 0x4CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9220{"zvdotphgwssmfan", VX(4, 0x4CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9221{"zvdotphgwssmfran", VX(4, 0x4CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9222{"zvmhuugwsmf", VX(4, 0x4D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9223{"zvmhuugwsmfr", VX(4, 0x4D1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9224{"zvmhuugwsmfaa", VX(4, 0x4D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9225{"zvmhuugwsmfraa", VX(4, 0x4D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9226{"zvmhuugwsmfan", VX(4, 0x4D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9227{"zvmhuugwsmfran", VX(4, 0x4D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9228{"zvmhuugwsmfanp", VX(4, 0x4D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9229{"zvmhuugwsmfranp", VX(4, 0x4D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9230{"zmhogwsmf", VX(4, 0x4D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9231{"zmhogwsmfr", VX(4, 0x4D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9232{"zmhogwsmfaa", VX(4, 0x4DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9233{"zmhogwsmfraa", VX(4, 0x4DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9234{"zmhogwsmfan", VX(4, 0x4DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9235{"zmhogwsmfran", VX(4, 0x4DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9236{"zvmhxlgwsmf", VX(4, 0x4F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9237{"zvmhxlgwsmfr", VX(4, 0x4F1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9238{"zvmhxlgwsmfaa", VX(4, 0x4F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9239{"zvmhxlgwsmfraa", VX(4, 0x4F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9240{"zvmhxlgwsmfan", VX(4, 0x4F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9241{"zvmhxlgwsmfran", VX(4, 0x4F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9242{"zvmhxlgwsmfanp", VX(4, 0x4F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9243{"zvmhxlgwsmfranp", VX(4, 0x4F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9244{"zmhegui", VX(4, 0x500), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9245{"zvdotphgaui", VX(4, 0x501), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9246{"zmheguiaa", VX(4, 0x502), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9247{"zvdotphgauiaa", VX(4, 0x503), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9248{"zmheguian", VX(4, 0x504), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9249{"zvdotphgauian", VX(4, 0x505), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9250{"zmhegsi", VX(4, 0x508), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9251{"zvdotphgasi", VX(4, 0x509), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9252{"zmhegsiaa", VX(4, 0x50A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9253{"zvdotphgasiaa", VX(4, 0x50B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9254{"zmhegsian", VX(4, 0x50C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9255{"zvdotphgasian", VX(4, 0x50D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9256{"zmhegsui", VX(4, 0x510), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9257{"zvdotphgasui", VX(4, 0x511), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9258{"zmhegsuiaa", VX(4, 0x512), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9259{"zvdotphgasuiaa", VX(4, 0x513), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9260{"zmhegsuian", VX(4, 0x514), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9261{"zvdotphgasuian", VX(4, 0x515), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9262{"zmhegsmf", VX(4, 0x518), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9263{"zvdotphgasmf", VX(4, 0x519), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9264{"zmhegsmfaa", VX(4, 0x51A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9265{"zvdotphgasmfaa", VX(4, 0x51B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9266{"zmhegsmfan", VX(4, 0x51C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9267{"zvdotphgasmfan", VX(4, 0x51D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9268{"zmheogui", VX(4, 0x520), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9269{"zvdotphxgaui", VX(4, 0x521), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9270{"zmheoguiaa", VX(4, 0x522), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9271{"zvdotphxgauiaa", VX(4, 0x523), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9272{"zmheoguian", VX(4, 0x524), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9273{"zvdotphxgauian", VX(4, 0x525), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9274{"zmheogsi", VX(4, 0x528), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9275{"zvdotphxgasi", VX(4, 0x529), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9276{"zmheogsiaa", VX(4, 0x52A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9277{"zvdotphxgasiaa", VX(4, 0x52B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9278{"zmheogsian", VX(4, 0x52C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9279{"zvdotphxgasian", VX(4, 0x52D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9280{"zmheogsui", VX(4, 0x530), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9281{"zvdotphxgasui", VX(4, 0x531), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9282{"zmheogsuiaa", VX(4, 0x532), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9283{"zvdotphxgasuiaa", VX(4, 0x533), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9284{"zmheogsuian", VX(4, 0x534), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9285{"zvdotphxgasuian", VX(4, 0x535), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9286{"zmheogsmf", VX(4, 0x538), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9287{"zvdotphxgasmf", VX(4, 0x539), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9288{"zmheogsmfaa", VX(4, 0x53A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9289{"zvdotphxgasmfaa", VX(4, 0x53B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9290{"zmheogsmfan", VX(4, 0x53C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9291{"zvdotphxgasmfan", VX(4, 0x53D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9292{"zmhogui", VX(4, 0x540), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9293{"zvdotphgsui", VX(4, 0x541), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9294{"zmhoguiaa", VX(4, 0x542), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9295{"zvdotphgsuiaa", VX(4, 0x543), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9296{"zmhoguian", VX(4, 0x544), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9297{"zvdotphgsuian", VX(4, 0x545), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9298{"zmhogsi", VX(4, 0x548), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9299{"zvdotphgssi", VX(4, 0x549), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9300{"zmhogsiaa", VX(4, 0x54A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9301{"zvdotphgssiaa", VX(4, 0x54B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9302{"zmhogsian", VX(4, 0x54C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9303{"zvdotphgssian", VX(4, 0x54D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9304{"zmhogsui", VX(4, 0x550), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9305{"zvdotphgssui", VX(4, 0x551), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9306{"zmhogsuiaa", VX(4, 0x552), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9307{"zvdotphgssuiaa", VX(4, 0x553), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9308{"zmhogsuian", VX(4, 0x554), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9309{"zvdotphgssuian", VX(4, 0x555), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9310{"zmhogsmf", VX(4, 0x558), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9311{"zvdotphgssmf", VX(4, 0x559), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9312{"zmhogsmfaa", VX(4, 0x55A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9313{"zvdotphgssmfaa", VX(4, 0x55B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9314{"zmhogsmfan", VX(4, 0x55C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9315{"zvdotphgssmfan", VX(4, 0x55D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9316{"zmwgui", VX(4, 0x560), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9317{"zmwguiaa", VX(4, 0x562), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9318{"zmwguiaas", VX(4, 0x563), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9319{"zmwguian", VX(4, 0x564), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9320{"zmwguians", VX(4, 0x565), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9321{"zmwgsi", VX(4, 0x568), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9322{"zmwgsiaa", VX(4, 0x56A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9323{"zmwgsiaas", VX(4, 0x56B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9324{"zmwgsian", VX(4, 0x56C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9325{"zmwgsians", VX(4, 0x56D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9326{"zmwgsui", VX(4, 0x570), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9327{"zmwgsuiaa", VX(4, 0x572), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9328{"zmwgsuiaas", VX(4, 0x573), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9329{"zmwgsuian", VX(4, 0x574), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9330{"zmwgsuians", VX(4, 0x575), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9331{"zmwgsmf", VX(4, 0x578), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9332{"zmwgsmfr", VX(4, 0x579), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9333{"zmwgsmfaa", VX(4, 0x57A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9334{"zmwgsmfraa", VX(4, 0x57B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9335{"zmwgsmfan", VX(4, 0x57C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9336{"zmwgsmfran", VX(4, 0x57D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9337{"zvmhului", VX(4, 0x580), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9338{"zvmhuluiaa", VX(4, 0x582), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9339{"zvmhuluiaas", VX(4, 0x583), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9340{"zvmhuluian", VX(4, 0x584), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9341{"zvmhuluians", VX(4, 0x585), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9342{"zvmhuluianp", VX(4, 0x586), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9343{"zvmhuluianps", VX(4, 0x587), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9344{"zvmhulsi", VX(4, 0x588), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9345{"zvmhulsiaa", VX(4, 0x58A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9346{"zvmhulsiaas", VX(4, 0x58B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9347{"zvmhulsian", VX(4, 0x58C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9348{"zvmhulsians", VX(4, 0x58D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9349{"zvmhulsianp", VX(4, 0x58E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9350{"zvmhulsianps", VX(4, 0x58F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9351{"zvmhulsui", VX(4, 0x590), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9352{"zvmhulsuiaa", VX(4, 0x592), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9353{"zvmhulsuiaas", VX(4, 0x593), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9354{"zvmhulsuian", VX(4, 0x594), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9355{"zvmhulsuians", VX(4, 0x595), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9356{"zvmhulsuianp", VX(4, 0x596), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9357{"zvmhulsuianps", VX(4, 0x597), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9358{"zvmhulsf", VX(4, 0x598), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9359{"zvmhulsfr", VX(4, 0x599), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9360{"zvmhulsfaas", VX(4, 0x59A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9361{"zvmhulsfraas", VX(4, 0x59B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9362{"zvmhulsfans", VX(4, 0x59C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9363{"zvmhulsfrans", VX(4, 0x59D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9364{"zvmhulsfanps", VX(4, 0x59E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9365{"zvmhulsfranps", VX(4, 0x59F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9366{"zvmhllui", VX(4, 0x5A0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9367{"zvmhlluiaa", VX(4, 0x5A2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9368{"zvmhlluiaas", VX(4, 0x5A3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9369{"zvmhlluian", VX(4, 0x5A4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9370{"zvmhlluians", VX(4, 0x5A5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9371{"zvmhlluianp", VX(4, 0x5A6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9372{"zvmhlluianps", VX(4, 0x5A7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9373{"zvmhllsi", VX(4, 0x5A8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9374{"zvmhllsiaa", VX(4, 0x5AA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9375{"zvmhllsiaas", VX(4, 0x5AB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9376{"zvmhllsian", VX(4, 0x5AC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9377{"zvmhllsians", VX(4, 0x5AD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9378{"zvmhllsianp", VX(4, 0x5AE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9379{"zvmhllsianps", VX(4, 0x5AF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9380{"zvmhllsui", VX(4, 0x5B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9381{"zvmhllsuiaa", VX(4, 0x5B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9382{"zvmhllsuiaas", VX(4, 0x5B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9383{"zvmhllsuian", VX(4, 0x5B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9384{"zvmhllsuians", VX(4, 0x5B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9385{"zvmhllsuianp", VX(4, 0x5B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9386{"zvmhllsuianps", VX(4, 0x5B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9387{"zvmhllsf", VX(4, 0x5B8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9388{"zvmhllsfr", VX(4, 0x5B9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9389{"zvmhllsfaas", VX(4, 0x5BA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9390{"zvmhllsfraas", VX(4, 0x5BB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9391{"zvmhllsfans", VX(4, 0x5BC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9392{"zvmhllsfrans", VX(4, 0x5BD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9393{"zvmhllsfanps", VX(4, 0x5BE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9394{"zvmhllsfranps", VX(4, 0x5BF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9395{"zvmhuuui", VX(4, 0x5C0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9396{"zvmhuuuiaa", VX(4, 0x5C2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9397{"zvmhuuuiaas", VX(4, 0x5C3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9398{"zvmhuuuian", VX(4, 0x5C4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9399{"zvmhuuuians", VX(4, 0x5C5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9400{"zvmhuuuianp", VX(4, 0x5C6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9401{"zvmhuuuianps", VX(4, 0x5C7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9402{"zvmhuusi", VX(4, 0x5C8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9403{"zvmhuusiaa", VX(4, 0x5CA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9404{"zvmhuusiaas", VX(4, 0x5CB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9405{"zvmhuusian", VX(4, 0x5CC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9406{"zvmhuusians", VX(4, 0x5CD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9407{"zvmhuusianp", VX(4, 0x5CE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9408{"zvmhuusianps", VX(4, 0x5CF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9409{"zvmhuusui", VX(4, 0x5D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9410{"zvmhuusuiaa", VX(4, 0x5D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9411{"zvmhuusuiaas", VX(4, 0x5D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9412{"zvmhuusuian", VX(4, 0x5D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9413{"zvmhuusuians", VX(4, 0x5D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9414{"zvmhuusuianp", VX(4, 0x5D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9415{"zvmhuusuianps", VX(4, 0x5D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9416{"zvmhuusf", VX(4, 0x5D8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9417{"zvmhuusfr", VX(4, 0x5D9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9418{"zvmhuusfaas", VX(4, 0x5DA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9419{"zvmhuusfraas", VX(4, 0x5DB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9420{"zvmhuusfans", VX(4, 0x5DC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9421{"zvmhuusfrans", VX(4, 0x5DD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9422{"zvmhuusfanps", VX(4, 0x5DE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9423{"zvmhuusfranps", VX(4, 0x5DF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9424{"zvmhxlui", VX(4, 0x5E0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9425{"zvmhxluiaa", VX(4, 0x5E2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9426{"zvmhxluiaas", VX(4, 0x5E3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9427{"zvmhxluian", VX(4, 0x5E4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9428{"zvmhxluians", VX(4, 0x5E5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9429{"zvmhxluianp", VX(4, 0x5E6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9430{"zvmhxluianps", VX(4, 0x5E7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9431{"zvmhxlsi", VX(4, 0x5E8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9432{"zvmhxlsiaa", VX(4, 0x5EA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9433{"zvmhxlsiaas", VX(4, 0x5EB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9434{"zvmhxlsian", VX(4, 0x5EC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9435{"zvmhxlsians", VX(4, 0x5ED), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9436{"zvmhxlsianp", VX(4, 0x5EE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9437{"zvmhxlsianps", VX(4, 0x5EF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9438{"zvmhxlsui", VX(4, 0x5F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9439{"zvmhxlsuiaa", VX(4, 0x5F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9440{"zvmhxlsuiaas", VX(4, 0x5F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9441{"zvmhxlsuian", VX(4, 0x5F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9442{"zvmhxlsuians", VX(4, 0x5F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9443{"zvmhxlsuianp", VX(4, 0x5F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9444{"zvmhxlsuianps", VX(4, 0x5F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9445{"zvmhxlsf", VX(4, 0x5F8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9446{"zvmhxlsfr", VX(4, 0x5F9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9447{"zvmhxlsfaas", VX(4, 0x5FA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9448{"zvmhxlsfraas", VX(4, 0x5FB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9449{"zvmhxlsfans", VX(4, 0x5FC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9450{"zvmhxlsfrans", VX(4, 0x5FD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9451{"zvmhxlsfanps", VX(4, 0x5FE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9452{"zvmhxlsfranps", VX(4, 0x5FF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9453{"zmheui", VX(4, 0x600), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9454{"zmheuiaa", VX(4, 0x602), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9455{"zmheuiaas", VX(4, 0x603), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9456{"zmheuian", VX(4, 0x604), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9457{"zmheuians", VX(4, 0x605), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9458{"zmhesi", VX(4, 0x608), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9459{"zmhesiaa", VX(4, 0x60A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9460{"zmhesiaas", VX(4, 0x60B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9461{"zmhesian", VX(4, 0x60C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9462{"zmhesians", VX(4, 0x60D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9463{"zmhesui", VX(4, 0x610), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9464{"zmhesuiaa", VX(4, 0x612), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9465{"zmhesuiaas", VX(4, 0x613), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9466{"zmhesuian", VX(4, 0x614), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9467{"zmhesuians", VX(4, 0x615), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9468{"zmhesf", VX(4, 0x618), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9469{"zmhesfr", VX(4, 0x619), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9470{"zmhesfaas", VX(4, 0x61A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9471{"zmhesfraas", VX(4, 0x61B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9472{"zmhesfans", VX(4, 0x61C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9473{"zmhesfrans", VX(4, 0x61D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9474{"zmheoui", VX(4, 0x620), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9475{"zmheouiaa", VX(4, 0x622), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9476{"zmheouiaas", VX(4, 0x623), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9477{"zmheouian", VX(4, 0x624), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9478{"zmheouians", VX(4, 0x625), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9479{"zmheosi", VX(4, 0x628), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9480{"zmheosiaa", VX(4, 0x62A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9481{"zmheosiaas", VX(4, 0x62B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9482{"zmheosian", VX(4, 0x62C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9483{"zmheosians", VX(4, 0x62D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9484{"zmheosui", VX(4, 0x630), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9485{"zmheosuiaa", VX(4, 0x632), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9486{"zmheosuiaas", VX(4, 0x633), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9487{"zmheosuian", VX(4, 0x634), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9488{"zmheosuians", VX(4, 0x635), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9489{"zmheosf", VX(4, 0x638), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9490{"zmheosfr", VX(4, 0x639), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9491{"zmheosfaas", VX(4, 0x63A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9492{"zmheosfraas", VX(4, 0x63B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9493{"zmheosfans", VX(4, 0x63C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9494{"zmheosfrans", VX(4, 0x63D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9495{"zmhoui", VX(4, 0x640), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9496{"zmhouiaa", VX(4, 0x642), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9497{"zmhouiaas", VX(4, 0x643), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9498{"zmhouian", VX(4, 0x644), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9499{"zmhouians", VX(4, 0x645), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9500{"zmhosi", VX(4, 0x648), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9501{"zmhosiaa", VX(4, 0x64A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9502{"zmhosiaas", VX(4, 0x64B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9503{"zmhosian", VX(4, 0x64C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9504{"zmhosians", VX(4, 0x64D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9505{"zmhosui", VX(4, 0x650), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9506{"zmhosuiaa", VX(4, 0x652), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9507{"zmhosuiaas", VX(4, 0x653), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9508{"zmhosuian", VX(4, 0x654), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9509{"zmhosuians", VX(4, 0x655), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9510{"zmhosf", VX(4, 0x658), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9511{"zmhosfr", VX(4, 0x659), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9512{"zmhosfaas", VX(4, 0x65A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9513{"zmhosfraas", VX(4, 0x65B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9514{"zmhosfans", VX(4, 0x65C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9515{"zmhosfrans", VX(4, 0x65D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9516{"zvmhuih", VX(4, 0x660), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9517{"zvmhuihs", VX(4, 0x661), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9518{"zvmhuiaah", VX(4, 0x662), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9519{"zvmhuiaahs", VX(4, 0x663), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9520{"zvmhuianh", VX(4, 0x664), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9521{"zvmhuianhs", VX(4, 0x665), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9522{"zvmhsihs", VX(4, 0x669), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9523{"zvmhsiaahs", VX(4, 0x66B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9524{"zvmhsianhs", VX(4, 0x66D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9525{"zvmhsuihs", VX(4, 0x671), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9526{"zvmhsuiaahs", VX(4, 0x673), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9527{"zvmhsuianhs", VX(4, 0x675), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9528{"zvmhsfh", VX(4, 0x678), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9529{"zvmhsfrh", VX(4, 0x679), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9530{"zvmhsfaahs", VX(4, 0x67A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9531{"zvmhsfraahs", VX(4, 0x67B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9532{"zvmhsfanhs", VX(4, 0x67C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9533{"zvmhsfranhs", VX(4, 0x67D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9534{"zvdotphaui", VX(4, 0x680), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9535{"zvdotphauis", VX(4, 0x681), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9536{"zvdotphauiaa", VX(4, 0x682), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9537{"zvdotphauiaas", VX(4, 0x683), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9538{"zvdotphauian", VX(4, 0x684), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9539{"zvdotphauians", VX(4, 0x685), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9540{"zvdotphasi", VX(4, 0x688), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9541{"zvdotphasis", VX(4, 0x689), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9542{"zvdotphasiaa", VX(4, 0x68A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9543{"zvdotphasiaas", VX(4, 0x68B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9544{"zvdotphasian", VX(4, 0x68C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9545{"zvdotphasians", VX(4, 0x68D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9546{"zvdotphasui", VX(4, 0x690), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9547{"zvdotphasuis", VX(4, 0x691), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9548{"zvdotphasuiaa", VX(4, 0x692), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9549{"zvdotphasuiaas", VX(4, 0x693), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9550{"zvdotphasuian", VX(4, 0x694), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9551{"zvdotphasuians", VX(4, 0x695), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9552{"zvdotphasfs", VX(4, 0x698), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9553{"zvdotphasfrs", VX(4, 0x699), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9554{"zvdotphasfaas", VX(4, 0x69A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9555{"zvdotphasfraas", VX(4, 0x69B), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9556{"zvdotphasfans", VX(4, 0x69C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9557{"zvdotphasfrans", VX(4, 0x69D), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9558{"zvdotphxaui", VX(4, 0x6A0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9559{"zvdotphxauis", VX(4, 0x6A1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9560{"zvdotphxauiaa", VX(4, 0x6A2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9561{"zvdotphxauiaas", VX(4, 0x6A3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9562{"zvdotphxauian", VX(4, 0x6A4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9563{"zvdotphxauians", VX(4, 0x6A5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9564{"zvdotphxasi", VX(4, 0x6A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9565{"zvdotphxasis", VX(4, 0x6A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9566{"zvdotphxasiaa", VX(4, 0x6AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9567{"zvdotphxasiaas", VX(4, 0x6AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9568{"zvdotphxasian", VX(4, 0x6AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9569{"zvdotphxasians", VX(4, 0x6AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9570{"zvdotphxasui", VX(4, 0x6B0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9571{"zvdotphxasuis", VX(4, 0x6B1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9572{"zvdotphxasuiaa", VX(4, 0x6B2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9573{"zvdotphxasuiaas", VX(4, 0x6B3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9574{"zvdotphxasuian", VX(4, 0x6B4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9575{"zvdotphxasuians", VX(4, 0x6B5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9576{"zvdotphxasfs", VX(4, 0x6B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9577{"zvdotphxasfrs", VX(4, 0x6B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9578{"zvdotphxasfaas", VX(4, 0x6BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9579{"zvdotphxasfraas", VX(4, 0x6BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9580{"zvdotphxasfans", VX(4, 0x6BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9581{"zvdotphxasfrans", VX(4, 0x6BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9582{"zvdotphsui", VX(4, 0x6C0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9583{"zvdotphsuis", VX(4, 0x6C1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9584{"zvdotphsuiaa", VX(4, 0x6C2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9585{"zvdotphsuiaas", VX(4, 0x6C3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9586{"zvdotphsuian", VX(4, 0x6C4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9587{"zvdotphsuians", VX(4, 0x6C5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9588{"zvdotphssi", VX(4, 0x6C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9589{"zvdotphssis", VX(4, 0x6C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9590{"zvdotphssiaa", VX(4, 0x6CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9591{"zvdotphssiaas", VX(4, 0x6CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9592{"zvdotphssian", VX(4, 0x6CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9593{"zvdotphssians", VX(4, 0x6CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9594{"zvdotphssui", VX(4, 0x6D0), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9595{"zvdotphssuis", VX(4, 0x6D1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9596{"zvdotphssuiaa", VX(4, 0x6D2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9597{"zvdotphssuiaas", VX(4, 0x6D3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9598{"zvdotphssuian", VX(4, 0x6D4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9599{"zvdotphssuians", VX(4, 0x6D5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9600{"zvdotphssfs", VX(4, 0x6D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9601{"zvdotphssfrs", VX(4, 0x6D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9602{"zvdotphssfaas", VX(4, 0x6DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9603{"zvdotphssfraas", VX(4, 0x6DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9604{"zvdotphssfans", VX(4, 0x6DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9605{"zvdotphssfrans", VX(4, 0x6DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9606{"zmwluis", VX(4, 0x6E1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9607{"zmwluiaa", VX(4, 0x6E2), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9608{"zmwluiaas", VX(4, 0x6E3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9609{"zmwluian", VX(4, 0x6E4), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9610{"zmwluians", VX(4, 0x6E5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9611{"zmwlsis", VX(4, 0x6E9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9612{"zmwlsiaas", VX(4, 0x6EB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9613{"zmwlsians", VX(4, 0x6ED), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9614{"zmwlsuis", VX(4, 0x6F1), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9615{"zmwlsuiaas", VX(4, 0x6F3), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9616{"zmwlsuians", VX(4, 0x6F5), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9617{"zmwsf", VX(4, 0x6F8), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9618{"zmwsfr", VX(4, 0x6F9), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9619{"zmwsfaas", VX(4, 0x6FA), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9620{"zmwsfraas", VX(4, 0x6FB), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9621{"zmwsfans", VX(4, 0x6FC), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9622{"zmwsfrans", VX(4, 0x6FD), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9623{"zlddx", VX(4, 0x300), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9624{"zldd", VX(4, 0x301), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
9625{"zldwx", VX(4, 0x302), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9626{"zldw", VX(4, 0x303), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
9627{"zldhx", VX(4, 0x304), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9628{"zldh", VX(4, 0x305), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}},
9629{"zlwgsfdx", VX(4, 0x308), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9630{"zlwgsfd", VX(4, 0x309), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
9631{"zlwwosdx", VX(4, 0x30A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9632{"zlwwosd", VX(4, 0x30B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
9633{"zlwhsplatwdx", VX(4, 0x30C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9634{"zlwhsplatwd", VX(4, 0x30D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
9635{"zlwhsplatdx", VX(4, 0x30E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9636{"zlwhsplatd", VX(4, 0x30F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
9637{"zlwhgwsfdx", VX(4, 0x310), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9638{"zlwhgwsfd", VX(4, 0x311), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
9639{"zlwhedx", VX(4, 0x312), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9640{"zlwhed", VX(4, 0x313), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
9641{"zlwhosdx", VX(4, 0x314), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9642{"zlwhosd", VX(4, 0x315), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
9643{"zlwhoudx", VX(4, 0x316), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9644{"zlwhoud", VX(4, 0x317), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}},
9645{"zlwhx", VX(4, 0x318), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9646{"zlwh", VX(4, 0x319), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
9647{"zlwwx", VX(4, 0x31A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9648{"zlww", VX(4, 0x31B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}},
9649{"zlhgwsfx", VX(4, 0x31C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9650{"zlhgwsf", VX(4, 0x31D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
9651{"zlhhsplatx", VX(4, 0x31E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9652{"zlhhsplat", VX(4, 0x31F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
9653{"zstddx", VX(4, 0x320), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9654{"zstdd", VX(4, 0x321), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
9655{"zstdwx", VX(4, 0x322), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9656{"zstdw", VX(4, 0x323), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
9657{"zstdhx", VX(4, 0x324), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9658{"zstdh", VX(4, 0x325), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}},
9659{"zstwhedx", VX(4, 0x328), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9660{"zstwhed", VX(4, 0x329), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
9661{"zstwhodx", VX(4, 0x32A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9662{"zstwhod", VX(4, 0x32B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}},
9663{"zlhhex", VX(4, 0x330), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9664{"zlhhe", VX(4, 0x331), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
9665{"zlhhosx", VX(4, 0x332), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9666{"zlhhos", VX(4, 0x333), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
9667{"zlhhoux", VX(4, 0x334), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9668{"zlhhou", VX(4, 0x335), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}},
9669{"zsthex", VX(4, 0x338), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
9670{"zsthe", VX(4, 0x339), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
9671{"zsthox", VX(4, 0x33A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
9672{"zstho", VX(4, 0x33B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}},
9673{"zstwhx", VX(4, 0x33C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
9674{"zstwh", VX(4, 0x33D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
9675{"zstwwx", VX(4, 0x33E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
9676{"zstww", VX(4, 0x33F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}},
9677{"zlddmx", VX(4, 0x340), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9678{"zlddu", VX(4, 0x341), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
9679{"zldwmx", VX(4, 0x342), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9680{"zldwu", VX(4, 0x343), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
9681{"zldhmx", VX(4, 0x344), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9682{"zldhu", VX(4, 0x345), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}},
9683{"zlwgsfdmx", VX(4, 0x348), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9684{"zlwgsfdu", VX(4, 0x349), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
9685{"zlwwosdmx", VX(4, 0x34A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9686{"zlwwosdu", VX(4, 0x34B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
9687{"zlwhsplatwdmx", VX(4, 0x34C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9688{"zlwhsplatwdu", VX(4, 0x34D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
9689{"zlwhsplatdmx", VX(4, 0x34E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9690{"zlwhsplatdu", VX(4, 0x34F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
9691{"zlwhgwsfdmx", VX(4, 0x350), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9692{"zlwhgwsfdu", VX(4, 0x351), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
9693{"zlwhedmx", VX(4, 0x352), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9694{"zlwhedu", VX(4, 0x353), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
9695{"zlwhosdmx", VX(4, 0x354), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9696{"zlwhosdu", VX(4, 0x355), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
9697{"zlwhoudmx", VX(4, 0x356), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}},
9698{"zlwhoudu", VX(4, 0x357), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}},
9699{"zlwhmx", VX(4, 0x358), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9700{"zlwhu", VX(4, 0x359), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
9701{"zlwwmx", VX(4, 0x35A), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9702{"zlwwu", VX(4, 0x35B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}},
9703{"zlhgwsfmx", VX(4, 0x35C), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9704{"zlhgwsfu", VX(4, 0x35D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
9705{"zlhhsplatmx", VX(4, 0x35E), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9706{"zlhhsplatu", VX(4, 0x35F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
9707{"zstddmx", VX(4, 0x360), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9708{"zstddu", VX(4, 0x361), VX_MASK, PPCLSP, 0, {RS, EVUIMM_8_EX0, RA}},
9709{"zstdwmx", VX(4, 0x362), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9710{"zstdwu", VX(4, 0x363), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
9711{"zstdhmx", VX(4, 0x364), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9712{"zstdhu", VX(4, 0x365), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}},
9713{"zstwhedmx", VX(4, 0x368), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9714{"zstwhedu", VX(4, 0x369), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
9715{"zstwhodmx", VX(4, 0x36A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}},
9716{"zstwhodu", VX(4, 0x36B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}},
9717{"zlhhemx", VX(4, 0x370), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9718{"zlhheu", VX(4, 0x371), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
9719{"zlhhosmx", VX(4, 0x372), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9720{"zlhhosu", VX(4, 0x373), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
9721{"zlhhoumx", VX(4, 0x374), VX_MASK, PPCLSP, 0, {RD, RA, RB}},
9722{"zlhhouu", VX(4, 0x375), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}},
9723{"zsthemx", VX(4, 0x378), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
9724{"zstheu", VX(4, 0x379), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
9725{"zsthomx", VX(4, 0x37A), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
9726{"zsthou", VX(4, 0x37B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}},
9727{"zstwhmx", VX(4, 0x37C), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
9728{"zstwhu", VX(4, 0x37D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
9729{"zstwwmx", VX(4, 0x37E), VX_MASK, PPCLSP, 0, {RS, RA, RB}},
9730{"zstwwu", VX(4, 0x37F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}},
9731
14b57c7c 9732{"e_cmpi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
dfdaec14 9733{"e_cmpwi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
14b57c7c 9734{"e_cmpli", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
dfdaec14 9735{"e_cmplwi", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
14b57c7c
AM
9736{"e_addi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9737{"e_subi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
9738{"e_addi.", SCI8(6,17), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9739{"e_addic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9740{"e_subic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
9741{"e_addic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9742{"e_subic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
9743{"e_mulli", SCI8(6,20), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9744{"e_subfic", SCI8(6,22), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9745{"e_subfic.", SCI8(6,23), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
9746{"e_andi", SCI8(6,24), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9747{"e_andi.", SCI8(6,25), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9748{"e_nop", SCI8(6,26), 0xffffffff, PPCVLE, 0, {0}},
9749{"e_ori", SCI8(6,26), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9750{"e_ori.", SCI8(6,27), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9751{"e_xori", SCI8(6,28), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9752{"e_xori.", SCI8(6,29), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
9753{"e_lbzu", OPVUP(6,0), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9754{"e_lhau", OPVUP(6,3), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9755{"e_lhzu", OPVUP(6,1), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9756{"e_lmw", OPVUP(6,8), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9757{"e_lwzu", OPVUP(6,2), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9758{"e_stbu", OPVUP(6,4), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9759{"e_sthu", OPVUP(6,5), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9760{"e_stwu", OPVUP(6,6), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
9761{"e_stmw", OPVUP(6,9), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
d2e6c9a3 9762{"e_lmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
9763{"e_ldmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9764{"e_stmvgprw", OPVUPRT(6,17,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 9765{"e_lmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
9766{"e_ldmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9767{"e_stmvsprw", OPVUPRT(6,17,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 9768{"e_lmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
9769{"e_ldmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9770{"e_stmvsrrw", OPVUPRT(6,17,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 9771{"e_lmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
9772{"e_ldmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9773{"e_stmvcsrrw", OPVUPRT(6,17,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3 9774{"e_lmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
dfdaec14
AJ
9775{"e_ldmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9776{"e_stmvdsrrw", OPVUPRT(6,17,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
d2e6c9a3
AF
9777{"e_lmvmcsrrw", OPVUPRT(6,16,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
9778{"e_stmvmcsrrw", OPVUPRT(6,17,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
14b57c7c
AM
9779{"e_add16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, SI}},
9780{"e_la", OP(7), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9781{"e_sub16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, NSI}},
9782
9783{"se_addi", SE_IM5(8,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9784{"se_cmpli", SE_IM5(8,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9785{"se_subi", SE_IM5(9,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9786{"se_subi.", SE_IM5(9,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
9787{"se_cmpi", SE_IM5(10,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9788{"se_bmaski", SE_IM5(11,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9789{"se_andi", SE_IM5(11,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9790
9791{"e_lbz", OP(12), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9792{"e_stb", OP(13), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9793{"e_lha", OP(14), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9794
9795{"se_srw", SE_RR(16,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9796{"se_sraw", SE_RR(16,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9797{"se_slw", SE_RR(16,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9798{"se_nop", SE_RR(17,0), 0xffff, PPCVLE, 0, {0}},
9799{"se_or", SE_RR(17,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9800{"se_andc", SE_RR(17,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9801{"se_and", SE_RR(17,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9802{"se_and.", SE_RR(17,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
9803{"se_li", IM7(9), IM7_MASK, PPCVLE, 0, {RX, UI7}},
9804
9805{"e_lwz", OP(20), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9806{"e_stw", OP(21), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9807{"e_lhz", OP(22), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9808{"e_sth", OP(23), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
9809
9810{"se_bclri", SE_IM5(24,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9811{"se_bgeni", SE_IM5(24,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9812{"se_bseti", SE_IM5(25,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9813{"se_btsti", SE_IM5(25,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9814{"se_srwi", SE_IM5(26,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9815{"se_srawi", SE_IM5(26,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9816{"se_slwi", SE_IM5(27,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
9817
9818{"e_lis", I16L(28,28), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9819{"e_and2is.", I16L(28,29), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9820{"e_or2is", I16L(28,26), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9821{"e_and2i.", I16L(28,25), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9822{"e_or2i", I16L(28,24), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
9823{"e_cmphl16i", IA16(28,23), IA16_MASK, PPCVLE, 0, {RA, VLEUIMM}},
9824{"e_cmph16i", IA16(28,22), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
9825{"e_cmpl16i", I16A(28,21), I16A_MASK, PPCVLE, 0, {RA, VLEUIMM}},
14b57c7c
AM
9826{"e_mull2i", I16A(28,20), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
9827{"e_cmp16i", IA16(28,19), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
14b57c7c
AM
9828{"e_sub2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
9829{"e_add2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
9830{"e_sub2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
9831{"e_add2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
9832{"e_li", LI20(28,0), LI20_MASK, PPCVLE, 0, {RT, IMM20}},
9833{"e_rlwimi", M(29,0), M_MASK, PPCVLE, 0, {RA, RS, SH, MB, ME}},
9834{"e_rlwinm", M(29,1), M_MASK, PPCVLE, 0, {RA, RT, SH, MBE, ME}},
9835{"e_b", BD24(30,0,0), BD24_MASK, PPCVLE, 0, {B24}},
9836{"e_bl", BD24(30,0,1), BD24_MASK, PPCVLE, 0, {B24}},
9837{"e_bdnz", EBD15(30,8,BO32DNZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
9838{"e_bdnzl", EBD15(30,8,BO32DNZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
9839{"e_bdz", EBD15(30,8,BO32DZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
9840{"e_bdzl", EBD15(30,8,BO32DZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
9841{"e_bge", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9842{"e_bgel", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9843{"e_bnl", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9844{"e_bnll", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9845{"e_blt", EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9846{"e_bltl", EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9847{"e_bgt", EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9848{"e_bgtl", EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9849{"e_ble", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9850{"e_blel", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9851{"e_bng", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9852{"e_bngl", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9853{"e_bne", EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9854{"e_bnel", EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9855{"e_beq", EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9856{"e_beql", EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9857{"e_bso", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9858{"e_bsol", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9859{"e_bun", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9860{"e_bunl", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9861{"e_bns", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9862{"e_bnsl", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9863{"e_bnu", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9864{"e_bnul", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
9865{"e_bc", BD15(30,8,0), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
9866{"e_bcl", BD15(30,8,1), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
9867
9868{"e_bf", EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
9869{"e_bfl", EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
9870{"e_bt", EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
9871{"e_btl", EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
9872
9873{"e_cmph", X(31,14), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
a8cc8a54 9874{"e_sc", X(31,36), XRTRA_MASK, PPCVLE, 0, {ELEV}},
14b57c7c
AM
9875{"e_cmphl", X(31,46), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
9876{"e_crandc", XL(31,129), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9877{"e_crnand", XL(31,225), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
98553ad3 9878{"e_crnot", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BAB}},
14b57c7c 9879{"e_crnor", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
98553ad3 9880{"e_crclr", XL(31,193), XL_MASK, PPCVLE, 0, {BTAB}},
14b57c7c
AM
9881{"e_crxor", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9882{"e_mcrf", XL(31,16), XL_MASK, PPCVLE, 0, {CRD, CR}},
9883{"e_slwi", EX(31,112), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9884{"e_slwi.", EX(31,113), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9885
9886{"e_crand", XL(31,257), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9887
9888{"e_rlw", EX(31,560), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
9889{"e_rlw.", EX(31,561), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
9890
98553ad3 9891{"e_crset", XL(31,289), XL_MASK, PPCVLE, 0, {BTAB}},
14b57c7c
AM
9892{"e_creqv", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9893
9894{"e_rlwi", EX(31,624), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9895{"e_rlwi.", EX(31,625), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9896
9897{"e_crorc", XL(31,417), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9898
98553ad3 9899{"e_crmove", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BAB}},
14b57c7c
AM
9900{"e_cror", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
9901
9902{"mtmas1", XSPR(31,467,625), XSPR_MASK, PPCVLE, 0, {RS}},
9903
9904{"e_srwi", EX(31,1136), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9905{"e_srwi.", EX(31,1137), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
9906
9907{"se_lbz", SD4(8), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
9908
9909{"se_stb", SD4(9), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
9910
9911{"se_lhz", SD4(10), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
9912
9913{"se_sth", SD4(11), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
9914
9915{"se_lwz", SD4(12), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
9916
9917{"se_stw", SD4(13), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
9918
9919{"se_bge", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9920{"se_bnl", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9921{"se_ble", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9922{"se_bng", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9923{"se_bne", EBD8IO(28,0,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9924{"se_bns", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9925{"se_bnu", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9926{"se_bf", EBD8IO(28,0,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
9927{"se_blt", EBD8IO(28,1,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9928{"se_bgt", EBD8IO(28,1,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9929{"se_beq", EBD8IO(28,1,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9930{"se_bso", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9931{"se_bun", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
9932{"se_bt", EBD8IO(28,1,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
9933{"se_bc", BD8IO(28), BD8IO_MASK, PPCVLE, 0, {BO16, BI16, B8}},
9934{"se_b", BD8(58,0,0), BD8_MASK, PPCVLE, 0, {B8}},
9935{"se_bl", BD8(58,0,1), BD8_MASK, PPCVLE, 0, {B8}},
b9c361e0
JL
9936};
9937
2ceb7719 9938const unsigned int vle_num_opcodes =
b9c361e0
JL
9939 sizeof (vle_opcodes) / sizeof (vle_opcodes[0]);
9940\f
252b5132
RH
9941/* The macro table. This is only used by the assembler. */
9942
9943/* The expressions of the form (-x ! 31) & (x | 31) have the value 0
9944 when x=0; 32-x when x is between 1 and 31; are negative if x is
9945 negative; and are 32 or more otherwise. This is what you want
9946 when, for instance, you are emulating a right shift by a
9947 rotate-left-and-mask, because the underlying instructions support
9948 shifts of size 0 but not shifts of size 32. By comparison, when
9949 extracting x bits from some word you want to use just 32-x, because
9950 the underlying instructions don't support extracting 0 bits but do
9951 support extracting the whole word (32 bits in this case). */
9952
9953const struct powerpc_macro powerpc_macros[] = {
de866fcc
AM
9954{"extldi", 4, PPC64, "rldicr %0,%1,%3,(%2)-1"},
9955{"extldi.", 4, PPC64, "rldicr. %0,%1,%3,(%2)-1"},
bdc7fcfe
AM
9956{"extrdi", 4, PPC64, "rldicl %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
9957{"extrdi.", 4, PPC64, "rldicl. %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
de866fcc
AM
9958{"insrdi", 4, PPC64, "rldimi %0,%1,64-((%2)+(%3)),%3"},
9959{"insrdi.", 4, PPC64, "rldimi. %0,%1,64-((%2)+(%3)),%3"},
9960{"rotrdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),0"},
9961{"rotrdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),0"},
9962{"sldi", 3, PPC64, "rldicr %0,%1,%2,63-(%2)"},
9963{"sldi.", 3, PPC64, "rldicr. %0,%1,%2,63-(%2)"},
9964{"srdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),%2"},
9965{"srdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),%2"},
9966{"clrrdi", 3, PPC64, "rldicr %0,%1,0,63-(%2)"},
9967{"clrrdi.", 3, PPC64, "rldicr. %0,%1,0,63-(%2)"},
9968{"clrlsldi", 4, PPC64, "rldic %0,%1,%3,(%2)-(%3)"},
14b57c7c 9969{"clrlsldi.",4, PPC64, "rldic. %0,%1,%3,(%2)-(%3)"},
de866fcc
AM
9970
9971{"extlwi", 4, PPCCOM, "rlwinm %0,%1,%3,0,(%2)-1"},
9972{"extlwi.", 4, PPCCOM, "rlwinm. %0,%1,%3,0,(%2)-1"},
9973{"extrwi", 4, PPCCOM, "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
9974{"extrwi.", 4, PPCCOM, "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
9975{"inslwi", 4, PPCCOM, "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
9976{"inslwi.", 4, PPCCOM, "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
9977{"insrwi", 4, PPCCOM, "rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
9978{"insrwi.", 4, PPCCOM, "rlwimi. %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
9979{"rotrwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
9980{"rotrwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),0,31"},
9981{"slwi", 3, PPCCOM, "rlwinm %0,%1,%2,0,31-(%2)"},
9982{"sli", 3, PWRCOM, "rlinm %0,%1,%2,0,31-(%2)"},
9983{"slwi.", 3, PPCCOM, "rlwinm. %0,%1,%2,0,31-(%2)"},
9984{"sli.", 3, PWRCOM, "rlinm. %0,%1,%2,0,31-(%2)"},
9985{"srwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
9986{"sri", 3, PWRCOM, "rlinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
9987{"srwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
9988{"sri.", 3, PWRCOM, "rlinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
9989{"clrrwi", 3, PPCCOM, "rlwinm %0,%1,0,0,31-(%2)"},
9990{"clrrwi.", 3, PPCCOM, "rlwinm. %0,%1,0,0,31-(%2)"},
9991{"clrlslwi", 4, PPCCOM, "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
9992{"clrlslwi.",4, PPCCOM, "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)"},
a4ebc835
AM
9993
9994{"e_extlwi", 4, PPCVLE, "e_rlwinm %0,%1,%3,0,(%2)-1"},
9995{"e_extrwi", 4, PPCVLE, "e_rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
9996{"e_inslwi", 4, PPCVLE, "e_rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
9997{"e_insrwi", 4, PPCVLE, "e_rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
9998{"e_rotlwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31"},
9999{"e_rotrwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
10000{"e_slwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31-(%2)"},
10001{"e_srwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
10002{"e_clrlwi", 3, PPCVLE, "e_rlwinm %0,%1,0,%2,31"},
10003{"e_clrrwi", 3, PPCVLE, "e_rlwinm %0,%1,0,0,31-(%2)"},
10004{"e_clrlslwi",4, PPCVLE, "e_rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
74081948
AF
10005
10006/* old SPE instructions have new names with the same opcodes */
10007{"evsadd", 3, PPCSPE|PPCVLE, "efsadd %0,%1,%2"},
10008{"evssub", 3, PPCSPE|PPCVLE, "efssub %0,%1,%2"},
10009{"evsabs", 2, PPCSPE|PPCVLE, "efsabs %0,%1"},
10010{"evsnabs", 2, PPCSPE|PPCVLE, "efsnabs %0,%1"},
10011{"evsneg", 2, PPCSPE|PPCVLE, "efsneg %0,%1"},
10012{"evsmul", 3, PPCSPE|PPCVLE, "efsmul %0,%1,%2"},
10013{"evsdiv", 3, PPCSPE|PPCVLE, "efsdiv %0,%1,%2"},
10014{"evscmpgt", 3, PPCSPE|PPCVLE, "efscmpgt %0,%1,%2"},
10015{"evsgmplt", 3, PPCSPE|PPCVLE, "efscmplt %0,%1,%2"},
10016{"evsgmpeq", 3, PPCSPE|PPCVLE, "efscmpeq %0,%1,%2"},
10017{"evscfui", 2, PPCSPE|PPCVLE, "efscfui %0,%1"},
10018{"evscfsi", 2, PPCSPE|PPCVLE, "efscfsi %0,%1"},
10019{"evscfuf", 2, PPCSPE|PPCVLE, "efscfuf %0,%1"},
10020{"evscfsf", 2, PPCSPE|PPCVLE, "efscfsf %0,%1"},
10021{"evsctui", 2, PPCSPE|PPCVLE, "efsctui %0,%1"},
10022{"evsctsi", 2, PPCSPE|PPCVLE, "efsctsi %0,%1"},
10023{"evsctuf", 2, PPCSPE|PPCVLE, "efsctuf %0,%1"},
10024{"evsctsf", 2, PPCSPE|PPCVLE, "efsctsf %0,%1"},
10025{"evsctuiz", 2, PPCSPE|PPCVLE, "efsctuiz %0,%1"},
10026{"evsctsiz", 2, PPCSPE|PPCVLE, "efsctsiz %0,%1"},
10027{"evststgt", 3, PPCSPE|PPCVLE, "efststgt %0,%1,%2"},
10028{"evststlt", 3, PPCSPE|PPCVLE, "efststlt %0,%1,%2"},
10029{"evststeq", 3, PPCSPE|PPCVLE, "efststeq %0,%1,%2"},
10030
10031/* SPE2 instructions which just are mapped to SPE2 */
10032{"evdotphsssi", 3, PPCSPE2, "evdotphssmi %0,%1,%2"},
10033{"evdotphsssia", 3, PPCSPE2, "evdotphssmia %0,%1,%2"},
10034{"evdotpwsssi", 3, PPCSPE2, "evdotpwssmi %0,%1,%2"},
10035{"evdotpwsssia", 3, PPCSPE2, "evdotpwssmia %0,%1,%2"}
252b5132
RH
10036};
10037
10038const int powerpc_num_macros =
10039 sizeof (powerpc_macros) / sizeof (powerpc_macros[0]);
74081948
AF
10040
10041/* SPE v2 instruction set from SPE2PIM Rev. 2 08/2011 */
10042const struct powerpc_opcode spe2_opcodes[] = {
10043{"evdotpwcssi", VX (4, 128), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10044{"evdotpwcsmi", VX (4, 129), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10045{"evdotpwcssfr", VX (4, 130), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10046{"evdotpwcssf", VX (4, 131), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10047{"evdotpwgasmf", VX (4, 136), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10048{"evdotpwxgasmf", VX (4, 137), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10049{"evdotpwgasmfr", VX (4, 138), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10050{"evdotpwxgasmfr", VX (4, 139), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10051{"evdotpwgssmf", VX (4, 140), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10052{"evdotpwxgssmf", VX (4, 141), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10053{"evdotpwgssmfr", VX (4, 142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10054{"evdotpwxgssmfr", VX (4, 143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10055{"evdotpwcssiaaw3", VX (4, 144), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10056{"evdotpwcsmiaaw3", VX (4, 145), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10057{"evdotpwcssfraaw3", VX (4, 146), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10058{"evdotpwcssfaaw3", VX (4, 147), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10059{"evdotpwgasmfaa3", VX (4, 152), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10060{"evdotpwxgasmfaa3", VX (4, 153), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10061{"evdotpwgasmfraa3", VX (4, 154), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10062{"evdotpwxgasmfraa3", VX (4, 155), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10063{"evdotpwgssmfaa3", VX (4, 156), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10064{"evdotpwxgssmfaa3", VX (4, 157), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10065{"evdotpwgssmfraa3", VX (4, 158), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10066{"evdotpwxgssmfraa3", VX (4, 159), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10067{"evdotpwcssia", VX (4, 160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10068{"evdotpwcsmia", VX (4, 161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10069{"evdotpwcssfra", VX (4, 162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10070{"evdotpwcssfa", VX (4, 163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10071{"evdotpwgasmfa", VX (4, 168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10072{"evdotpwxgasmfa", VX (4, 169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10073{"evdotpwgasmfra", VX (4, 170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10074{"evdotpwxgasmfra", VX (4, 171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10075{"evdotpwgssmfa", VX (4, 172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10076{"evdotpwxgssmfa", VX (4, 173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10077{"evdotpwgssmfra", VX (4, 174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10078{"evdotpwxgssmfra", VX (4, 175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10079{"evdotpwcssiaaw", VX (4, 176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10080{"evdotpwcsmiaaw", VX (4, 177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10081{"evdotpwcssfraaw", VX (4, 178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10082{"evdotpwcssfaaw", VX (4, 179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10083{"evdotpwgasmfaa", VX (4, 184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10084{"evdotpwxgasmfaa", VX (4, 185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10085{"evdotpwgasmfraa", VX (4, 186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10086{"evdotpwxgasmfraa", VX (4, 187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10087{"evdotpwgssmfaa", VX (4, 188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10088{"evdotpwxgssmfaa", VX (4, 189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10089{"evdotpwgssmfraa", VX (4, 190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10090{"evdotpwxgssmfraa", VX (4, 191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10091{"evdotphihcssi", VX (4, 256), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10092{"evdotplohcssi", VX (4, 257), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10093{"evdotphihcssf", VX (4, 258), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10094{"evdotplohcssf", VX (4, 259), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10095{"evdotphihcsmi", VX (4, 264), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10096{"evdotplohcsmi", VX (4, 265), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10097{"evdotphihcssfr", VX (4, 266), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10098{"evdotplohcssfr", VX (4, 267), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10099{"evdotphihcssiaaw3", VX (4, 272), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10100{"evdotplohcssiaaw3", VX (4, 273), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10101{"evdotphihcssfaaw3", VX (4, 274), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10102{"evdotplohcssfaaw3", VX (4, 275), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10103{"evdotphihcsmiaaw3", VX (4, 280), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10104{"evdotplohcsmiaaw3", VX (4, 281), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10105{"evdotphihcssfraaw3", VX (4, 282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10106{"evdotplohcssfraaw3", VX (4, 283), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10107{"evdotphihcssia", VX (4, 288), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10108{"evdotplohcssia", VX (4, 289), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10109{"evdotphihcssfa", VX (4, 290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10110{"evdotplohcssfa", VX (4, 291), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10111{"evdotphihcsmia", VX (4, 296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10112{"evdotplohcsmia", VX (4, 297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10113{"evdotphihcssfra", VX (4, 298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10114{"evdotplohcssfra", VX (4, 299), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10115{"evdotphihcssiaaw", VX (4, 304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10116{"evdotplohcssiaaw", VX (4, 305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10117{"evdotphihcssfaaw", VX (4, 306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10118{"evdotplohcssfaaw", VX (4, 307), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10119{"evdotphihcsmiaaw", VX (4, 312), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10120{"evdotplohcsmiaaw", VX (4, 313), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10121{"evdotphihcssfraaw", VX (4, 314), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10122{"evdotplohcssfraaw", VX (4, 315), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10123{"evdotphausi", VX (4, 320), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10124{"evdotphassi", VX (4, 321), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10125{"evdotphasusi", VX (4, 322), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10126{"evdotphassf", VX (4, 323), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10127{"evdotphsssf", VX (4, 327), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10128{"evdotphaumi", VX (4, 328), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10129{"evdotphasmi", VX (4, 329), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10130{"evdotphasumi", VX (4, 330), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10131{"evdotphassfr", VX (4, 331), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10132{"evdotphssmi", VX (4, 333), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10133{"evdotphsssfr", VX (4, 335), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10134{"evdotphausiaaw3", VX (4, 336), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10135{"evdotphassiaaw3", VX (4, 337), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10136{"evdotphasusiaaw3", VX (4, 338), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10137{"evdotphassfaaw3", VX (4, 339), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10138{"evdotphsssiaaw3", VX (4, 341), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10139{"evdotphsssfaaw3", VX (4, 343), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10140{"evdotphaumiaaw3", VX (4, 344), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10141{"evdotphasmiaaw3", VX (4, 345), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10142{"evdotphasumiaaw3", VX (4, 346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10143{"evdotphassfraaw3", VX (4, 347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10144{"evdotphssmiaaw3", VX (4, 349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10145{"evdotphsssfraaw3", VX (4, 351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10146{"evdotphausia", VX (4, 352), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10147{"evdotphassia", VX (4, 353), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10148{"evdotphasusia", VX (4, 354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10149{"evdotphassfa", VX (4, 355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10150{"evdotphsssfa", VX (4, 359), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10151{"evdotphaumia", VX (4, 360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10152{"evdotphasmia", VX (4, 361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10153{"evdotphasumia", VX (4, 362), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10154{"evdotphassfra", VX (4, 363), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10155{"evdotphssmia", VX (4, 365), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10156{"evdotphsssfra", VX (4, 367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10157{"evdotphausiaaw", VX (4, 368), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10158{"evdotphassiaaw", VX (4, 369), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10159{"evdotphasusiaaw", VX (4, 370), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10160{"evdotphassfaaw", VX (4, 371), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10161{"evdotphsssiaaw", VX (4, 373), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10162{"evdotphsssfaaw", VX (4, 375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10163{"evdotphaumiaaw", VX (4, 376), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10164{"evdotphasmiaaw", VX (4, 377), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10165{"evdotphasumiaaw", VX (4, 378), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10166{"evdotphassfraaw", VX (4, 379), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10167{"evdotphssmiaaw", VX (4, 381), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10168{"evdotphsssfraaw", VX (4, 383), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10169{"evdotp4hgaumi", VX (4, 384), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10170{"evdotp4hgasmi", VX (4, 385), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10171{"evdotp4hgasumi", VX (4, 386), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10172{"evdotp4hgasmf", VX (4, 387), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10173{"evdotp4hgssmi", VX (4, 388), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10174{"evdotp4hgssmf", VX (4, 389), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10175{"evdotp4hxgasmi", VX (4, 390), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10176{"evdotp4hxgasmf", VX (4, 391), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10177{"evdotpbaumi", VX (4, 392), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10178{"evdotpbasmi", VX (4, 393), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10179{"evdotpbasumi", VX (4, 394), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10180{"evdotp4hxgssmi", VX (4, 398), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10181{"evdotp4hxgssmf", VX (4, 399), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10182{"evdotp4hgaumiaa3", VX (4, 400), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10183{"evdotp4hgasmiaa3", VX (4, 401), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10184{"evdotp4hgasumiaa3", VX (4, 402), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10185{"evdotp4hgasmfaa3", VX (4, 403), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10186{"evdotp4hgssmiaa3", VX (4, 404), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10187{"evdotp4hgssmfaa3", VX (4, 405), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10188{"evdotp4hxgasmiaa3", VX (4, 406), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10189{"evdotp4hxgasmfaa3", VX (4, 407), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10190{"evdotpbaumiaaw3", VX (4, 408), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10191{"evdotpbasmiaaw3", VX (4, 409), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10192{"evdotpbasumiaaw3", VX (4, 410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10193{"evdotp4hxgssmiaa3", VX (4, 414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10194{"evdotp4hxgssmfaa3", VX (4, 415), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10195{"evdotp4hgaumia", VX (4, 416), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10196{"evdotp4hgasmia", VX (4, 417), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10197{"evdotp4hgasumia", VX (4, 418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10198{"evdotp4hgasmfa", VX (4, 419), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10199{"evdotp4hgssmia", VX (4, 420), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10200{"evdotp4hgssmfa", VX (4, 421), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10201{"evdotp4hxgasmia", VX (4, 422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10202{"evdotp4hxgasmfa", VX (4, 423), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10203{"evdotpbaumia", VX (4, 424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10204{"evdotpbasmia", VX (4, 425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10205{"evdotpbasumia", VX (4, 426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10206{"evdotp4hxgssmia", VX (4, 430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10207{"evdotp4hxgssmfa", VX (4, 431), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10208{"evdotp4hgaumiaa", VX (4, 432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10209{"evdotp4hgasmiaa", VX (4, 433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10210{"evdotp4hgasumiaa", VX (4, 434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10211{"evdotp4hgasmfaa", VX (4, 435), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10212{"evdotp4hgssmiaa", VX (4, 436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10213{"evdotp4hgssmfaa", VX (4, 437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10214{"evdotp4hxgasmiaa", VX (4, 438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10215{"evdotp4hxgasmfaa", VX (4, 439), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10216{"evdotpbaumiaaw", VX (4, 440), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10217{"evdotpbasmiaaw", VX (4, 441), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10218{"evdotpbasumiaaw", VX (4, 442), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10219{"evdotp4hxgssmiaa", VX (4, 446), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10220{"evdotp4hxgssmfaa", VX (4, 447), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10221{"evdotpwausi", VX (4, 448), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10222{"evdotpwassi", VX (4, 449), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10223{"evdotpwasusi", VX (4, 450), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10224{"evdotpwaumi", VX (4, 456), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10225{"evdotpwasmi", VX (4, 457), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10226{"evdotpwasumi", VX (4, 458), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10227{"evdotpwssmi", VX (4, 461), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10228{"evdotpwausiaa3", VX (4, 464), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10229{"evdotpwassiaa3", VX (4, 465), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10230{"evdotpwasusiaa3", VX (4, 466), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10231{"evdotpwsssiaa3", VX (4, 469), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10232{"evdotpwaumiaa3", VX (4, 472), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10233{"evdotpwasmiaa3", VX (4, 473), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10234{"evdotpwasumiaa3", VX (4, 474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10235{"evdotpwssmiaa3", VX (4, 477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10236{"evdotpwausia", VX (4, 480), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10237{"evdotpwassia", VX (4, 481), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10238{"evdotpwasusia", VX (4, 482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10239{"evdotpwaumia", VX (4, 488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10240{"evdotpwasmia", VX (4, 489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10241{"evdotpwasumia", VX (4, 490), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10242{"evdotpwssmia", VX (4, 493), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10243{"evdotpwausiaa", VX (4, 496), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10244{"evdotpwassiaa", VX (4, 497), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10245{"evdotpwasusiaa", VX (4, 498), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10246{"evdotpwsssiaa", VX (4, 501), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10247{"evdotpwaumiaa", VX (4, 504), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10248{"evdotpwasmiaa", VX (4, 505), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10249{"evdotpwasumiaa", VX (4, 506), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10250{"evdotpwssmiaa", VX (4, 509), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10251{"evaddib", VX (4, 515), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
10252{"evaddih", VX (4, 513), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}},
10253{"evsubifh", VX (4, 517), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
10254{"evsubifb", VX (4, 519), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}},
10255{"evabsb", VX_RB_CONST(4, 520, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10256{"evabsh", VX_RB_CONST(4, 520, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10257{"evabsd", VX_RB_CONST(4, 520, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10258{"evabss", VX_RB_CONST(4, 520, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10259{"evabsbs", VX_RB_CONST(4, 520, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10260{"evabshs", VX_RB_CONST(4, 520, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10261{"evabsds", VX_RB_CONST(4, 520, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10262{"evnegwo", VX_RB_CONST(4, 521, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10263{"evnegb", VX_RB_CONST(4, 521, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10264{"evnegbo", VX_RB_CONST(4, 521, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10265{"evnegh", VX_RB_CONST(4, 521, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10266{"evnegho", VX_RB_CONST(4, 521, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10267{"evnegd", VX_RB_CONST(4, 521, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10268{"evnegs", VX_RB_CONST(4, 521, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10269{"evnegwos", VX_RB_CONST(4, 521, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10270{"evnegbs", VX_RB_CONST(4, 521, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10271{"evnegbos", VX_RB_CONST(4, 521, 11), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10272{"evneghs", VX_RB_CONST(4, 521, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10273{"evneghos", VX_RB_CONST(4, 521, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10274{"evnegds", VX_RB_CONST(4, 521, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10275{"evextzb", VX_RB_CONST(4, 522, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10276{"evextsbh", VX_RB_CONST(4, 522, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10277{"evextsw", VX_RB_CONST(4, 523, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10278{"evrndwh", VX_RB_CONST(4, 524, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10279{"evrndhb", VX_RB_CONST(4, 524, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10280{"evrnddw", VX_RB_CONST(4, 524, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10281{"evrndwhus", VX_RB_CONST(4, 524, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10282{"evrndwhss", VX_RB_CONST(4, 524, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10283{"evrndhbus", VX_RB_CONST(4, 524, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10284{"evrndhbss", VX_RB_CONST(4, 524, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10285{"evrnddwus", VX_RB_CONST(4, 524, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10286{"evrnddwss", VX_RB_CONST(4, 524, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10287{"evrndwnh", VX_RB_CONST(4, 524, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10288{"evrndhnb", VX_RB_CONST(4, 524, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10289{"evrnddnw", VX_RB_CONST(4, 524, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10290{"evrndwnhus", VX_RB_CONST(4, 524, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10291{"evrndwnhss", VX_RB_CONST(4, 524, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10292{"evrndhnbus", VX_RB_CONST(4, 524, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10293{"evrndhnbss", VX_RB_CONST(4, 524, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10294{"evrnddnwus", VX_RB_CONST(4, 524, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10295{"evrnddnwss", VX_RB_CONST(4, 524, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10296{"evcntlzh", VX_RB_CONST(4, 525, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10297{"evcntlsh", VX_RB_CONST(4, 526, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10298{"evpopcntb", VX_RB_CONST(4, 526, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10299{"circinc", VX (4, 528), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10300{"evunpkhibui", VX_RB_CONST(4, 540, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10301{"evunpkhibsi", VX_RB_CONST(4, 540, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10302{"evunpkhihui", VX_RB_CONST(4, 540, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10303{"evunpkhihsi", VX_RB_CONST(4, 540, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10304{"evunpklobui", VX_RB_CONST(4, 540, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10305{"evunpklobsi", VX_RB_CONST(4, 540, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10306{"evunpklohui", VX_RB_CONST(4, 540, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10307{"evunpklohsi", VX_RB_CONST(4, 540, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10308{"evunpklohf", VX_RB_CONST(4, 540, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10309{"evunpkhihf", VX_RB_CONST(4, 540, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10310{"evunpklowgsf", VX_RB_CONST(4, 540, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10311{"evunpkhiwgsf", VX_RB_CONST(4, 540, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10312{"evsatsduw", VX_RB_CONST(4, 540, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10313{"evsatsdsw", VX_RB_CONST(4, 540, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10314{"evsatshub", VX_RB_CONST(4, 540, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10315{"evsatshsb", VX_RB_CONST(4, 540, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10316{"evsatuwuh", VX_RB_CONST(4, 540, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10317{"evsatswsh", VX_RB_CONST(4, 540, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10318{"evsatswuh", VX_RB_CONST(4, 540, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10319{"evsatuhub", VX_RB_CONST(4, 540, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10320{"evsatuduw", VX_RB_CONST(4, 540, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10321{"evsatuwsw", VX_RB_CONST(4, 540, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10322{"evsatshuh", VX_RB_CONST(4, 540, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10323{"evsatuhsh", VX_RB_CONST(4, 540, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10324{"evsatswuw", VX_RB_CONST(4, 540, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10325{"evsatswgsdf", VX_RB_CONST(4, 540, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10326{"evsatsbub", VX_RB_CONST(4, 540, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10327{"evsatubsb", VX_RB_CONST(4, 540, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10328{"evmaxhpuw", VX_RB_CONST(4, 541, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10329{"evmaxhpsw", VX_RB_CONST(4, 541, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10330{"evmaxbpuh", VX_RB_CONST(4, 541, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10331{"evmaxbpsh", VX_RB_CONST(4, 541, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10332{"evmaxwpud", VX_RB_CONST(4, 541, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10333{"evmaxwpsd", VX_RB_CONST(4, 541, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10334{"evminhpuw", VX_RB_CONST(4, 541, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10335{"evminhpsw", VX_RB_CONST(4, 541, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10336{"evminbpuh", VX_RB_CONST(4, 541, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10337{"evminbpsh", VX_RB_CONST(4, 541, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10338{"evminwpud", VX_RB_CONST(4, 541, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10339{"evminwpsd", VX_RB_CONST(4, 541, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10340{"evmaxmagws", VX (4, 543), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10341{"evsl", VX (4, 549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10342{"evsli", VX (4, 551), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
10343{"evsplatie", VX_RB_CONST (4, 553, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10344{"evsplatib", VX_RB_CONST (4, 553, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10345{"evsplatibe", VX_RB_CONST (4, 553, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10346{"evsplatih", VX_RB_CONST (4, 553, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10347{"evsplatihe", VX_RB_CONST (4, 553, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10348{"evsplatid", VX_RB_CONST (4, 553, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10349{"evsplatia", VX_RB_CONST (4, 553, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10350{"evsplatiea", VX_RB_CONST (4, 553, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10351{"evsplatiba", VX_RB_CONST (4, 553, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10352{"evsplatibea", VX_RB_CONST (4, 553, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10353{"evsplatiha", VX_RB_CONST (4, 553, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10354{"evsplatihea", VX_RB_CONST (4, 553, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10355{"evsplatida", VX_RB_CONST (4, 553, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10356{"evsplatfio", VX_RB_CONST (4, 555, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10357{"evsplatfib", VX_RB_CONST (4, 555, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10358{"evsplatfibo", VX_RB_CONST (4, 555, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10359{"evsplatfih", VX_RB_CONST (4, 555, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10360{"evsplatfiho", VX_RB_CONST (4, 555, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10361{"evsplatfid", VX_RB_CONST (4, 555, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10362{"evsplatfia", VX_RB_CONST (4, 555, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10363{"evsplatfioa", VX_RB_CONST (4, 555, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10364{"evsplatfiba", VX_RB_CONST (4, 555, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10365{"evsplatfiboa", VX_RB_CONST (4, 555, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10366{"evsplatfiha", VX_RB_CONST (4, 555, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10367{"evsplatfihoa", VX_RB_CONST (4, 555, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10368{"evsplatfida", VX_RB_CONST (4, 555, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}},
10369{"evcmpgtdu", VX_SPE_CRFD (4, 560, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
10370{"evcmpgtds", VX_SPE_CRFD (4, 561, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
10371{"evcmpltdu", VX_SPE_CRFD (4, 562, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
10372{"evcmpltds", VX_SPE_CRFD (4, 563, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
10373{"evcmpeqd", VX_SPE_CRFD (4, 564, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}},
10374{"evswapbhilo", VX (4, 568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10375{"evswapblohi", VX (4, 569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10376{"evswaphhilo", VX (4, 570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10377{"evswaphlohi", VX (4, 571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10378{"evswaphe", VX (4, 572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10379{"evswaphhi", VX (4, 573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10380{"evswaphlo", VX (4, 574), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10381{"evswapho", VX (4, 575), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10382{"evinsb", VX (4, 584), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
10383{"evxtrb", VX (4, 586), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}},
10384{"evsplath", VX_SPE2_HH (4, 588, 0, 0), VX_SPE2_HH_MASK, PPCSPE2, 0, {RD, RA, HH}},
10385{"evsplatb", VX_SPE2_SPLATB (4, 588, 2), VX_SPE2_SPLATB_MASK, PPCSPE2, 0, {RD, RA, BBB}},
10386{"evinsh", VX_SPE2_DDHH (4, 589, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
10387{"evclrbe", VX_SPE2_CLR (4, 590, 0), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
10388{"evclrbo", VX_SPE2_CLR (4, 590, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
10389{"evclrh", VX_SPE2_CLR (4, 591, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}},
10390{"evxtrh", VX_SPE2_DDHH (4, 591, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}},
10391{"evselbitm0", VX (4, 592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10392{"evselbitm1", VX (4, 593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10393{"evselbit", VX (4, 594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10394{"evperm", VX (4, 596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10395{"evperm2", VX (4, 597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10396{"evperm3", VX (4, 598), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10397{"evxtrd", VX (4, 600), VX_OFF_SPE2_MASK, PPCSPE2, 0, {RD, RA, RB, VX_OFF_SPE2}},
10398{"evsrbu", VX (4, 608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10399{"evsrbs", VX (4, 609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10400{"evsrbiu", VX (4, 610), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
10401{"evsrbis", VX (4, 611), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
10402{"evslb", VX (4, 612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10403{"evrlb", VX (4, 613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10404{"evslbi", VX (4, 614), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
10405{"evrlbi", VX (4, 615), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
10406{"evsrhu", VX (4, 616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10407{"evsrhs", VX (4, 617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10408{"evsrhiu", VX (4, 618), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
10409{"evsrhis", VX (4, 619), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
10410{"evslh", VX (4, 620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10411{"evrlh", VX (4, 621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10412{"evslhi", VX (4, 622), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
10413{"evrlhi", VX (4, 623), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
10414{"evsru", VX (4, 624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10415{"evsrs", VX (4, 625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10416{"evsriu", VX (4, 626), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
10417{"evsris", VX (4, 627), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}},
10418{"evlvsl", VX (4, 628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10419{"evlvsr", VX (4, 629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10420{"evsroiu", VX_SPE2_OCTET (4, 631, 0), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
10421{"evsrois", VX_SPE2_OCTET (4, 631, 1), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
10422{"evsloi", VX_SPE2_OCTET (4, 631, 2), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
10423{"evldbx", VX (4, 774), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10424{"evldb", VX (4, 775), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8, RA}},
10425{"evlhhsplathx", VX (4, 778), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10426{"evlhhsplath", VX (4, 779), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2, RA}},
10427{"evlwbsplatwx", VX (4, 786), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10428{"evlwbsplatw", VX (4, 787), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
10429{"evlwhsplatwx", VX (4, 794), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10430{"evlwhsplatw", VX (4, 795), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
10431{"evlbbsplatbx", VX (4, 798), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10432{"evlbbsplatb", VX (4, 799), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1, RA}},
10433{"evstdbx", VX (4, 806), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10434{"evstdb", VX (4, 807), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8, RA}},
10435{"evlwbex", VX (4, 810), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10436{"evlwbe", VX (4, 811), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
10437{"evlwboux", VX (4, 812), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10438{"evlwbou", VX (4, 813), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
10439{"evlwbosx", VX (4, 814), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10440{"evlwbos", VX (4, 815), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}},
10441{"evstwbex", VX (4, 818), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10442{"evstwbe", VX (4, 819), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
10443{"evstwbox", VX (4, 822), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10444{"evstwbo", VX (4, 823), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
10445{"evstwbx", VX (4, 826), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10446{"evstwb", VX (4, 827), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}},
10447{"evsthbx", VX (4, 830), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10448{"evsthb", VX (4, 831), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2, RA}},
10449{"evlddmx", VX (4, 832), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10450{"evlddu", VX (4, 833), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
10451{"evldwmx", VX (4, 834), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10452{"evldwu", VX (4, 835), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
10453{"evldhmx", VX (4, 836), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10454{"evldhu", VX (4, 837), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
10455{"evldbmx", VX (4, 838), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10456{"evldbu", VX (4, 839), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
10457{"evlhhesplatmx", VX (4, 840), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10458{"evlhhesplatu", VX (4, 841), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
10459{"evlhhsplathmx", VX (4, 842), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10460{"evlhhsplathu", VX (4, 843), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
10461{"evlhhousplatmx", VX (4, 844), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10462{"evlhhousplatu", VX (4, 845), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
10463{"evlhhossplatmx", VX (4, 846), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10464{"evlhhossplatu", VX (4, 847), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
10465{"evlwhemx", VX (4, 848), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10466{"evlwheu", VX (4, 849), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10467{"evlwbsplatwmx", VX (4, 850), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10468{"evlwbsplatwu", VX (4, 851), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10469{"evlwhoumx", VX (4, 852), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10470{"evlwhouu", VX (4, 853), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10471{"evlwhosmx", VX (4, 854), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10472{"evlwhosu", VX (4, 855), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10473{"evlwwsplatmx", VX (4, 856), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10474{"evlwwsplatu", VX (4, 857), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10475{"evlwhsplatwmx", VX (4, 858), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10476{"evlwhsplatwu", VX (4, 859), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10477{"evlwhsplatmx", VX (4, 860), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10478{"evlwhsplatu", VX (4, 861), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10479{"evlbbsplatbmx", VX (4, 862), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10480{"evlbbsplatbu", VX (4, 863), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1_EX0, RA}},
10481{"evstddmx", VX (4, 864), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10482{"evstddu", VX (4, 865), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
10483{"evstdwmx", VX (4, 866), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10484{"evstdwu", VX (4, 867), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
10485{"evstdhmx", VX (4, 868), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10486{"evstdhu", VX (4, 869), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
10487{"evstdbmx", VX (4, 870), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10488{"evstdbu", VX (4, 871), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
10489{"evlwbemx", VX (4, 874), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10490{"evlwbeu", VX (4, 875), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10491{"evlwboumx", VX (4, 876), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10492{"evlwbouu", VX (4, 877), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10493{"evlwbosmx", VX (4, 878), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10494{"evlwbosu", VX (4, 879), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
10495{"evstwhemx", VX (4, 880), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10496{"evstwheu", VX (4, 881), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
10497{"evstwbemx", VX (4, 882), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10498{"evstwbeu", VX (4, 883), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
10499{"evstwhomx", VX (4, 884), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10500{"evstwhou", VX (4, 885), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
10501{"evstwbomx", VX (4, 886), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10502{"evstwbou", VX (4, 887), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
10503{"evstwwemx", VX (4, 888), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10504{"evstwweu", VX (4, 889), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
10505{"evstwbmx", VX (4, 890), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10506{"evstwbu", VX (4, 891), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
10507{"evstwwomx", VX (4, 892), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10508{"evstwwou", VX (4, 893), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
10509{"evsthbmx", VX (4, 894), VX_MASK, PPCSPE2, 0, {RS, RA, RB}},
10510{"evsthbu", VX (4, 895), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2_EX0, RA}},
10511{"evmhusi", VX (4, 1024), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10512{"evmhssi", VX (4, 1025), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10513{"evmhsusi", VX (4, 1026), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10514{"evmhssf", VX (4, 1028), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10515{"evmhumi", VX (4, 1029), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10516{"evmhssfr", VX (4, 1030), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10517{"evmhesumi", VX (4, 1034), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10518{"evmhosumi", VX (4, 1038), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10519{"evmbeumi", VX (4, 1048), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10520{"evmbesmi", VX (4, 1049), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10521{"evmbesumi", VX (4, 1050), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10522{"evmboumi", VX (4, 1052), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10523{"evmbosmi", VX (4, 1053), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10524{"evmbosumi", VX (4, 1054), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10525{"evmhesumia", VX (4, 1066), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10526{"evmhosumia", VX (4, 1070), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10527{"evmbeumia", VX (4, 1080), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10528{"evmbesmia", VX (4, 1081), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10529{"evmbesumia", VX (4, 1082), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10530{"evmboumia", VX (4, 1084), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10531{"evmbosmia", VX (4, 1085), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10532{"evmbosumia", VX (4, 1086), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10533{"evmwusiw", VX (4, 1088), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10534{"evmwssiw", VX (4, 1089), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10535{"evmwhssfr", VX (4, 1094), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10536{"evmwehgsmfr", VX (4, 1110), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10537{"evmwehgsmf", VX (4, 1111), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10538{"evmwohgsmfr", VX (4, 1118), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10539{"evmwohgsmf", VX (4, 1119), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10540{"evmwhssfra", VX (4, 1126), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10541{"evmwehgsmfra", VX (4, 1142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10542{"evmwehgsmfa", VX (4, 1143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10543{"evmwohgsmfra", VX (4, 1150), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10544{"evmwohgsmfa", VX (4, 1151), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10545{"evaddusiaa", VX_RB_CONST(4, 1152, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10546{"evaddssiaa", VX_RB_CONST(4, 1153, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10547{"evsubfusiaa", VX_RB_CONST(4, 1154, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10548{"evsubfssiaa", VX_RB_CONST(4, 1155, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10549{"evaddsmiaa", VX_RB_CONST(4, 1156, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10550{"evsubfsmiaa", VX_RB_CONST(4, 1158, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10551{"evaddh", VX (4, 1160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10552{"evaddhss", VX (4, 1161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10553{"evsubfh", VX (4, 1162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10554{"evsubfhss", VX (4, 1163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10555{"evaddhx", VX (4, 1164), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10556{"evaddhxss", VX (4, 1165), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10557{"evsubfhx", VX (4, 1166), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10558{"evsubfhxss", VX (4, 1167), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10559{"evaddd", VX (4, 1168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10560{"evadddss", VX (4, 1169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10561{"evsubfd", VX (4, 1170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10562{"evsubfdss", VX (4, 1171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10563{"evaddb", VX (4, 1172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10564{"evaddbss", VX (4, 1173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10565{"evsubfb", VX (4, 1174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10566{"evsubfbss", VX (4, 1175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10567{"evaddsubfh", VX (4, 1176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10568{"evaddsubfhss", VX (4, 1177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10569{"evsubfaddh", VX (4, 1178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10570{"evsubfaddhss", VX (4, 1179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10571{"evaddsubfhx", VX (4, 1180), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10572{"evaddsubfhxss", VX (4, 1181), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10573{"evsubfaddhx", VX (4, 1182), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10574{"evsubfaddhxss", VX (4, 1183), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10575{"evadddus", VX (4, 1184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10576{"evaddbus", VX (4, 1185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10577{"evsubfdus", VX (4, 1186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10578{"evsubfbus", VX (4, 1187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10579{"evaddwus", VX (4, 1188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10580{"evaddwxus", VX (4, 1189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10581{"evsubfwus", VX (4, 1190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10582{"evsubfwxus", VX (4, 1191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10583{"evadd2subf2h", VX (4, 1192), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10584{"evadd2subf2hss", VX (4, 1193), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10585{"evsubf2add2h", VX (4, 1194), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10586{"evsubf2add2hss", VX (4, 1195), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10587{"evaddhus", VX (4, 1196), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10588{"evaddhxus", VX (4, 1197), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10589{"evsubfhus", VX (4, 1198), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10590{"evsubfhxus", VX (4, 1199), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10591{"evaddwss", VX (4, 1201), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10592{"evsubfwss", VX (4, 1203), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10593{"evaddwx", VX (4, 1204), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10594{"evaddwxss", VX (4, 1205), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10595{"evsubfwx", VX (4, 1206), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10596{"evsubfwxss", VX (4, 1207), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10597{"evaddsubfw", VX (4, 1208), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10598{"evaddsubfwss", VX (4, 1209), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10599{"evsubfaddw", VX (4, 1210), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10600{"evsubfaddwss", VX (4, 1211), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10601{"evaddsubfwx", VX (4, 1212), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10602{"evaddsubfwxss", VX (4, 1213), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10603{"evsubfaddwx", VX (4, 1214), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10604{"evsubfaddwxss", VX (4, 1215), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10605{"evmar", VX_SPE2_EVMAR (4, 1220), VX_SPE2_EVMAR_MASK, PPCSPE2, 0, {RD}},
10606{"evsumwu", VX_RB_CONST(4, 1221, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10607{"evsumws", VX_RB_CONST(4, 1221, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10608{"evsum4bu", VX_RB_CONST(4, 1221, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10609{"evsum4bs", VX_RB_CONST(4, 1221, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10610{"evsum2hu", VX_RB_CONST(4, 1221, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10611{"evsum2hs", VX_RB_CONST(4, 1221, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10612{"evdiff2his", VX_RB_CONST(4, 1221, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10613{"evsum2his", VX_RB_CONST(4, 1221, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10614{"evsumwua", VX_RB_CONST(4, 1221, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10615{"evsumwsa", VX_RB_CONST(4, 1221, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10616{"evsum4bua", VX_RB_CONST(4, 1221, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10617{"evsum4bsa", VX_RB_CONST(4, 1221, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10618{"evsum2hua", VX_RB_CONST(4, 1221, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10619{"evsum2hsa", VX_RB_CONST(4, 1221, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10620{"evdiff2hisa", VX_RB_CONST(4, 1221, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10621{"evsum2hisa", VX_RB_CONST(4, 1221, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10622{"evsumwuaa", VX_RB_CONST(4, 1221, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10623{"evsumwsaa", VX_RB_CONST(4, 1221, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10624{"evsum4buaaw", VX_RB_CONST(4, 1221, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10625{"evsum4bsaaw", VX_RB_CONST(4, 1221, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10626{"evsum2huaaw", VX_RB_CONST(4, 1221, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10627{"evsum2hsaaw", VX_RB_CONST(4, 1221, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10628{"evdiff2hisaaw", VX_RB_CONST(4, 1221, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10629{"evsum2hisaaw", VX_RB_CONST(4, 1221, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}},
10630{"evdivwsf", VX (4, 1228), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10631{"evdivwuf", VX (4, 1229), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10632{"evdivs", VX (4, 1230), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10633{"evdivu", VX (4, 1231), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10634{"evaddwegsi", VX (4, 1232), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10635{"evaddwegsf", VX (4, 1233), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10636{"evsubfwegsi", VX (4, 1234), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10637{"evsubfwegsf", VX (4, 1235), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10638{"evaddwogsi", VX (4, 1236), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10639{"evaddwogsf", VX (4, 1237), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10640{"evsubfwogsi", VX (4, 1238), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10641{"evsubfwogsf", VX (4, 1239), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10642{"evaddhhiuw", VX (4, 1240), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10643{"evaddhhisw", VX (4, 1241), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10644{"evsubfhhiuw", VX (4, 1242), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10645{"evsubfhhisw", VX (4, 1243), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10646{"evaddhlouw", VX (4, 1244), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10647{"evaddhlosw", VX (4, 1245), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10648{"evsubfhlouw", VX (4, 1246), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10649{"evsubfhlosw", VX (4, 1247), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10650{"evmhesusiaaw", VX (4, 1282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10651{"evmhosusiaaw", VX (4, 1286), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10652{"evmhesumiaaw", VX (4, 1290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10653{"evmhosumiaaw", VX (4, 1294), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10654{"evmbeusiaah", VX (4, 1296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10655{"evmbessiaah", VX (4, 1297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10656{"evmbesusiaah", VX (4, 1298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10657{"evmbousiaah", VX (4, 1300), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10658{"evmbossiaah", VX (4, 1301), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10659{"evmbosusiaah", VX (4, 1302), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10660{"evmbeumiaah", VX (4, 1304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10661{"evmbesmiaah", VX (4, 1305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10662{"evmbesumiaah", VX (4, 1306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10663{"evmboumiaah", VX (4, 1308), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10664{"evmbosmiaah", VX (4, 1309), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10665{"evmbosumiaah", VX (4, 1310), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10666{"evmwlusiaaw3", VX (4, 1346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10667{"evmwlssiaaw3", VX (4, 1347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10668{"evmwhssfraaw3", VX (4, 1348), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10669{"evmwhssfaaw3", VX (4, 1349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10670{"evmwhssfraaw", VX (4, 1350), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10671{"evmwhssfaaw", VX (4, 1351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10672{"evmwlumiaaw3", VX (4, 1354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10673{"evmwlsmiaaw3", VX (4, 1355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10674{"evmwusiaa", VX (4, 1360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10675{"evmwssiaa", VX (4, 1361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10676{"evmwehgsmfraa", VX (4, 1366), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10677{"evmwehgsmfaa", VX (4, 1367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10678{"evmwohgsmfraa", VX (4, 1374), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10679{"evmwohgsmfaa", VX (4, 1375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10680{"evmhesusianw", VX (4, 1410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10681{"evmhosusianw", VX (4, 1414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10682{"evmhesumianw", VX (4, 1418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10683{"evmhosumianw", VX (4, 1422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10684{"evmbeusianh", VX (4, 1424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10685{"evmbessianh", VX (4, 1425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10686{"evmbesusianh", VX (4, 1426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10687{"evmbousianh", VX (4, 1428), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10688{"evmbossianh", VX (4, 1429), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10689{"evmbosusianh", VX (4, 1430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10690{"evmbeumianh", VX (4, 1432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10691{"evmbesmianh", VX (4, 1433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10692{"evmbesumianh", VX (4, 1434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10693{"evmboumianh", VX (4, 1436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10694{"evmbosmianh", VX (4, 1437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10695{"evmbosumianh", VX (4, 1438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10696{"evmwlusianw3", VX (4, 1474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10697{"evmwlssianw3", VX (4, 1475), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10698{"evmwhssfranw3", VX (4, 1476), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10699{"evmwhssfanw3", VX (4, 1477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10700{"evmwhssfranw", VX (4, 1478), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10701{"evmwhssfanw", VX (4, 1479), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10702{"evmwlumianw3", VX (4, 1482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10703{"evmwlsmianw3", VX (4, 1483), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10704{"evmwusian", VX (4, 1488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10705{"evmwssian", VX (4, 1489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10706{"evmwehgsmfran", VX (4, 1494), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10707{"evmwehgsmfan", VX (4, 1495), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10708{"evmwohgsmfran", VX (4, 1502), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10709{"evmwohgsmfan", VX (4, 1503), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10710{"evseteqb", VX (4, 1536), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10711{"evseteqb.", VX (4, 1537), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10712{"evseteqh", VX (4, 1538), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10713{"evseteqh.", VX (4, 1539), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10714{"evseteqw", VX (4, 1540), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10715{"evseteqw.", VX (4, 1541), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10716{"evsetgthu", VX (4, 1544), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10717{"evsetgthu.", VX (4, 1545), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10718{"evsetgths", VX (4, 1546), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10719{"evsetgths.", VX (4, 1547), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10720{"evsetgtwu", VX (4, 1548), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10721{"evsetgtwu.", VX (4, 1549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10722{"evsetgtws", VX (4, 1550), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10723{"evsetgtws.", VX (4, 1551), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10724{"evsetgtbu", VX (4, 1552), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10725{"evsetgtbu.", VX (4, 1553), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10726{"evsetgtbs", VX (4, 1554), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10727{"evsetgtbs.", VX (4, 1555), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10728{"evsetltbu", VX (4, 1556), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10729{"evsetltbu.", VX (4, 1557), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10730{"evsetltbs", VX (4, 1558), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10731{"evsetltbs.", VX (4, 1559), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10732{"evsetlthu", VX (4, 1560), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10733{"evsetlthu.", VX (4, 1561), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10734{"evsetlths", VX (4, 1562), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10735{"evsetlths.", VX (4, 1563), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10736{"evsetltwu", VX (4, 1564), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10737{"evsetltwu.", VX (4, 1565), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10738{"evsetltws", VX (4, 1566), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10739{"evsetltws.", VX (4, 1567), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10740{"evsaduw", VX (4, 1568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10741{"evsadsw", VX (4, 1569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10742{"evsad4ub", VX (4, 1570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10743{"evsad4sb", VX (4, 1571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10744{"evsad2uh", VX (4, 1572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10745{"evsad2sh", VX (4, 1573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10746{"evsaduwa", VX (4, 1576), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10747{"evsadswa", VX (4, 1577), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10748{"evsad4uba", VX (4, 1578), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10749{"evsad4sba", VX (4, 1579), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10750{"evsad2uha", VX (4, 1580), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10751{"evsad2sha", VX (4, 1581), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10752{"evabsdifuw", VX (4, 1584), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10753{"evabsdifsw", VX (4, 1585), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10754{"evabsdifub", VX (4, 1586), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10755{"evabsdifsb", VX (4, 1587), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10756{"evabsdifuh", VX (4, 1588), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10757{"evabsdifsh", VX (4, 1589), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10758{"evsaduwaa", VX (4, 1592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10759{"evsadswaa", VX (4, 1593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10760{"evsad4ubaaw", VX (4, 1594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10761{"evsad4sbaaw", VX (4, 1595), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10762{"evsad2uhaaw", VX (4, 1596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10763{"evsad2shaaw", VX (4, 1597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10764{"evpkshubs", VX (4, 1600), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10765{"evpkshsbs", VX (4, 1601), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10766{"evpkswuhs", VX (4, 1602), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10767{"evpkswshs", VX (4, 1603), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10768{"evpkuhubs", VX (4, 1604), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10769{"evpkuwuhs", VX (4, 1605), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10770{"evpkswshilvs", VX (4, 1606), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10771{"evpkswgshefrs", VX (4, 1607), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10772{"evpkswshfrs", VX (4, 1608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10773{"evpkswshilvfrs", VX (4, 1609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10774{"evpksdswfrs", VX (4, 1610), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10775{"evpksdshefrs", VX (4, 1611), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10776{"evpkuduws", VX (4, 1612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10777{"evpksdsws", VX (4, 1613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10778{"evpkswgswfrs", VX (4, 1614), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10779{"evilveh", VX (4, 1616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10780{"evilveoh", VX (4, 1617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10781{"evilvhih", VX (4, 1618), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10782{"evilvhiloh", VX (4, 1619), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10783{"evilvloh", VX (4, 1620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10784{"evilvlohih", VX (4, 1621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10785{"evilvoeh", VX (4, 1622), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10786{"evilvoh", VX (4, 1623), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10787{"evdlveb", VX (4, 1624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10788{"evdlveh", VX (4, 1625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10789{"evdlveob", VX (4, 1626), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10790{"evdlveoh", VX (4, 1627), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10791{"evdlvob", VX (4, 1628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10792{"evdlvoh", VX (4, 1629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10793{"evdlvoeb", VX (4, 1630), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10794{"evdlvoeh", VX (4, 1631), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10795{"evmaxbu", VX (4, 1632), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10796{"evmaxbs", VX (4, 1633), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10797{"evmaxhu", VX (4, 1634), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10798{"evmaxhs", VX (4, 1635), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10799{"evmaxwu", VX (4, 1636), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10800{"evmaxws", VX (4, 1637), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10801{"evmaxdu", VX (4, 1638), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10802{"evmaxds", VX (4, 1639), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10803{"evminbu", VX (4, 1640), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10804{"evminbs", VX (4, 1641), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10805{"evminhu", VX (4, 1642), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10806{"evminhs", VX (4, 1643), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10807{"evminwu", VX (4, 1644), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10808{"evminws", VX (4, 1645), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10809{"evmindu", VX (4, 1646), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10810{"evminds", VX (4, 1647), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10811{"evavgwu", VX (4, 1648), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10812{"evavgws", VX (4, 1649), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10813{"evavgbu", VX (4, 1650), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10814{"evavgbs", VX (4, 1651), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10815{"evavghu", VX (4, 1652), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10816{"evavghs", VX (4, 1653), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10817{"evavgdu", VX (4, 1654), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10818{"evavgds", VX (4, 1655), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10819{"evavgwur", VX (4, 1656), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10820{"evavgwsr", VX (4, 1657), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10821{"evavgbur", VX (4, 1658), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10822{"evavgbsr", VX (4, 1659), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10823{"evavghur", VX (4, 1660), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10824{"evavghsr", VX (4, 1661), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10825{"evavgdur", VX (4, 1662), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10826{"evavgdsr", VX (4, 1663), VX_MASK, PPCSPE2, 0, {RD, RA, RB}},
10827};
10828
2ceb7719 10829const unsigned int spe2_num_opcodes =
74081948 10830 sizeof (spe2_opcodes) / sizeof (spe2_opcodes[0]);
This page took 2.446407 seconds and 4 git commands to generate.